Home » Archimedes archive » Acorn User » AU 1998-10.adf » Features » SSTV/!PSinstall/PscanFiles/!Runimage

SSTV/!PSinstall/PscanFiles/!Runimage

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 » Acorn User » AU 1998-10.adf » Features
Filename: SSTV/!PSinstall/PscanFiles/!Runimage
Read OK:
File size: 32A94 bytes
Load address: 0000
Exec address: 0000
File contents
    1 REM >Pscan063
    2
    3 REM PD 50 mode added - mode 65, VIS 93/221     - 23.12.97
    4 REM Manual memory area separate from sprities  - 11.12.97
    5 REM Filer changes - new dir & save sprites     - 10.12.97
    6 REM Pathnames file format changed (simplified) - 01.12.97
    7 REM Repeater "beacon" text                     - 30.11.97
    8 REM Serial port address configurable           - 28.11.97
    9
   10 ije_dev%=FALSE : REM Set to TRUE for G4IJE R&D only
   11
   12 REM Configuration now uses Choices window      - 09.11.97
   13 REM Most code blocks moved into Resources dir  - 16.10.97
   14 REM Repeater mode - for FM use only            - 14.10.97
   15 REM Text outline - 2 widths available          - 28.07.97
   16 REM Pic mem change within waveform monitor     - 13.07.97
   17 REM Paint with sprite                          - 22.06.97
   18 REM New borders / plinths for grabbed areas    - 15.06.97
   19 REM JPEG mods / large directories accommodated - 04.05.97
   20 REM PD auto-tune 8, 4 lines or off for FM use  - 15.02.97
   21 REM User entry of pathname + list selector     - 17.02.97
   22 REM Menu cancel moved to last entry            - 06.02.97
   23 REM Auto-mode find - click R icon with adjust  - 27.01.97
   24 REM PD90 save in Pscan format corrected        - 25.01.97
   25 REM Tweaks to "create text" positioning        - 23.01.97
   26 REM Text and mask size adjust                  - 19.01.97
   27 REM New linear tuning indicator                - 28.12.96
   28 REM PD mode RX lookup table 64 - 192           - 23.12.96
   29 REM QwikText captions                          - 12.12.96
   30 REM HQ modes - RX only and not "full spec"     - 25.11.96
   31 REM StrongARM compatible version               - 20.10.96
   32
   33 REM ********************************************************************
   34 REM * Many thanks to Neil, G4RQN, for help with the icon bar WIMP bits *
   35 REM ********************************************************************
   36
   37
   38 ON ERROR MODE MODE:SYS"Hourglass_Smash":PRINT''REPORT$;" at line ";ERL'':END
   39
   40 IF ije_dev% THEN
   41  *SET Pscan$Dir ADFS::HardDisc4.$.PS_Jan98.AppFiles
   42  *FontInstall <Pscan$Dir>.Fonts.
   43 ENDIF
   44
   45 app_name$="Pscan":ver$="3.10 - January 1998"
   46 splash2x%=190
   47 wimp_sprite$="!pscan":windowhandle%=TRUE
   48 font%=-1:just_registered%=FALSE
   49
   50 REM serial_base%=&03010FE0
   51
   52 DIM block% &300,menu% 64,sysvar% 256,err% 256,sprite_name% 32
   53 DIM temp% &300,Wbuffer% &300,qerr% &300:curbuf%=Wbuffer%
   54 DIM choices_window% 32
   55  $choices_window%="Obey <Pscan$Dir>.Choices.!Run"
   56 DIM register_window% 40
   57  $register_window%="Obey <Pscan$Dir>.Choices.Register.!Run"
   58
   59 $(menu%+56)="xxxx"
   60
   61 config_entries%=13
   62 DIM config$(config_entries%)
   63 PROCread_config_file(config_entries%)
   64 memories%=VAL(config$(4))
   65 txtsize%=VAL(config$(5))*1024
   66 IF config$(9)="Y" THEN thumb%=TRUE ELSE thumb%=FALSE
   67 IF EVAL(config$(13))>=&03242000 PROCset_rts_low_on_atomwide
   68
   69 dummy=FNfile_len("<Pscan$Dir>.Resources.id")
   70 F%=OPENIN("<Pscan$Dir>.Resources.id"):INPUT#F%,user$:CLOSE#F%
   71
   72 IF ije_dev% THEN PROCstart_pscan:END
   73
   74 pscan_exit%=FALSE
   75 PROCinitialise
   76 PROCtemplates
   77 ON ERROR PROCerror
   78 PROCwriteicon(28,info%,7,ver$)
   79 PROCwriteicon(28,info%,8,user$)
   80 REPEAT
   81 PROCpoll
   82 UNTIL pscan_exit%=TRUE
   83 SYS"Wimp_CloseDown"
   84 END
   85
   86 DEF PROCinitialise
   87 SYS"Wimp_Initialise",200,&4b534154,app_name$
   88 block%!0=windowhandle%
   89 block%!4=0:block%!8=0
   90 block%!12=68:block%!16=68
   91 block%!20=&301A
   92 $(block%+24)=wimp_sprite$+CHR$0
   93 SYS"Wimp_CreateIcon",,block% TO iconhandle%
   94 ENDPROC
   95
   96 DEF PROCtemplates
   97 LOCAL ERROR
   98 ON ERROR LOCAL ON ERROR SYS "Wimp_CloseTemplate"
   99 SYS "Wimp_OpenTemplate",,"<Pscan$Dir>.Templates"
  100 SYS "Wimp_LoadTemplate",,block%,temp%,temp%+512,-1,"Info",0
  101 SYS "Wimp_CreateWindow",,block% TO info%
  102 SYS "Wimp_CloseTemplate"
  103 RESTORE
  104 ENDPROC
  105
  106 DEF PROCerror
  107 !block%=ERR
  108 $(block%+4)=REPORT$+" (Error code "+STR$(ERL)+")"+CHR$0
  109 SYS"Wimp_ReportError",block%,1,app_name$ TO reply%
  110 IF reply%=2 THEN END
  111 ENDPROC
  112
  113 DEF PROCpoll
  114 SYS"Wimp_Poll",,block% TO reason%
  115 CASE reason% OF
  116  WHEN 2    :SYS &400C5,,block%,,block%
  117  WHEN 3    :PROCclose_window(block%!0)
  118  WHEN 6    :PROCcheckmouse(!block%,block%!4,block%!8,block%!12,block%!16,block%!20)
  119  WHEN 9    :PROCmenuselect(block%)
  120  WHEN 17,18:PROCWreceive
  121 ENDCASE
  122 ENDPROC
  123
  124 DEF PROCclose_window(whandle%)
  125 block%!0=whandle%
  126 SYS "Wimp_CloseWindow",,block%
  127 ENDPROC
  128
  129 DEF PROCWreceive
  130 CASE block%!16 OF
  131 WHEN 0:pscan_exit%=TRUE
  132 ENDCASE
  133 ENDPROC
  134
  135 DEF PROCcheckmouse(mousex%,mousey%,b%,handle%,icon%,ob%)
  136 IF(b%AND2)THEN
  137 CASE handle% OF
  138 WHEN -2
  139 PROCdomenu(101,">Info,Help,Manual,Register...,-Choices...,Quit","Pscan")
  140 ENDCASE
  141 ENDIF
  142 IF(b%AND4)THEN
  143 PROCstart_pscan
  144 ENDIF
  145 ENDPROC
  146
  147 DEF PROCdomenu(handle%,menu$,menutitle$)
  148 menuhandle%=handle%
  149 menuptr%=Wbuffer%
  150 i%=0
  151 menuptr%!20=40:REM block size
  152 $menuptr%=menutitle$
  153 menuptr%?12=7
  154 menuptr%?13=2
  155 menuptr%?14=7
  156 menuptr%?15=0
  157 menuptr%!16=196-24
  158 menuptr%!24=4:REM Height spacing
  159 menuptr%+=28
  160 REPEAT item$=FNpar(","):PROCmenuitem(item$):UNTIL item$=""
  161 menuptr%!-24=(menuptr%!-24)OR&80
  162 SYS "Wimp_CreateMenu",,Wbuffer%,mousex%-64,384
  163 ENDPROC
  164
  165 DEF PROCmenuitem(wtext$)
  166 IF wtext$<>"" THEN
  167 !menuptr%=0
  168  IF LEFT$(wtext$,1)="-" THEN menuptr%?0=2:wtext$=MID$(wtext$,2)
  169  IF LEFT$(wtext$,1)=">" THEN
  170   menuptr%!4=info%
  171   dummy=FNfile_len("<Pscan$Dir>.Resources.id")
  172   F%=OPENIN("<Pscan$Dir>.Resources.id"):INPUT#F%,user$:CLOSE#F%
  173   PROCwriteicon(28,info%,7,ver$)
  174   PROCwriteicon(28,info%,8,user$)
  175  ELSE
  176   menuptr%!4=TRUE
  177  ENDIF
  178 menuptr%!8=&07000021
  179 IF LEFT$(wtext$,1)=">" THEN $(menuptr%+12)=MID$(wtext$,2) ELSE $(menuptr%+12)=wtext$
  180 menuptr%+=24
  181 ENDIF
  182 ENDPROC
  183
  184 DEF FNpar(sep$)
  185 i1%=i%+1:i%=INSTR(menu$+sep$,sep$,i1%)
  186 =MID$(menu$,i1%,i%-i1%)
  187
  188 DEF PROCmenuselect(menus%)
  189 SYS "Wimp_DecodeMenu",,Wbuffer%,menus%,STRING$(200," ")TO,,,a$
  190 IF a$<>"" THEN
  191  CASE menuhandle% OF
  192   WHEN 101
  193   CASE a$ OF
  194    WHEN "Quit"       : pscan_exit%=TRUE
  195    WHEN "Help"       : *Filer_Run <Pscan$Dir>.!Help
  196    WHEN "Manual"     : *Filer_Run <Pscan$Dir>.Manual
  197    WHEN "Choices..." : SYS "Wimp_StartTask",choices_window%
  198    WHEN "Register...": IF $(menu%+56)="sstv" THEN just_registered%=TRUE
  199                        SYS "Wimp_StartTask",register_window%
  200   ENDCASE
  201  ENDCASE
  202 ENDIF
  203 ENDPROC
  204
  205 DEF PROCwriteicon(itw%,whandle%,wic%,wic$)
  206 !block%=whandle%
  207 s%=FNreadicon(itw%,whandle%,wic%):$s%=wic$
  208 block%!4=wic%
  209 block%!8=0:block%!12=0
  210 SYS &400CD,,block%
  211 ENDPROC
  212
  213 DEF FNreadicon(itr%,whandle%,which)
  214 LOCAL a$
  215 !block%=whandle%
  216 SYS "Wimp_GetWindowState",,block%
  217 block%!4=which
  218 SYS &400CE,,block%
  219 =block%!itr%
  220
  221 REM ********** MAIN NON-MULTITASKING PROGRAM STARTS HERE **********
  222
  223 DEF PROCstart_pscan
  224
  225 PROCread_config_file(config_entries%)
  226 PROCset_variables_from_config_file
  227
  228 IF just_registered% THEN
  229  OSCLI("LOAD <Pscan$Dir>.Resources.PscanTX "+STR$~tx_code%)
  230  just_registered%=FALSE 
  231 ENDIF
  232
  233 SYS "Hourglass_On"
  234 desk_mode%=MODE:modelen%=24:ptr%=desk_mode%+20
  235 WHILE !ptr%<>-1
  236 ptr%+=4:modelen%+=4
  237 ENDWHILE
  238 DIM modestore% modelen%
  239 FOR i%=0 TO modelen%-4 STEP 4
  240 modestore%!i%=desk_mode%!i%:NEXT
  241 PROCmode("X640 Y512 C32K"):screen_lines%=512
  242 VDU12,26,20:OFF:WAIT:disp_flag%=0:panel$="Panel.Medium"
  243 screen%=FNscreen_address:GCOL 255,255,0:POINT 0,1023:POINT 2,1023
  244
  245 IF !screen%<>&03FF03FF THEN
  246 PROCmode("X640 Y480 C32K"):screen%=FNscreen_address:OFF:WAIT:screen_lines%=480
  247 GCOL 0,0,128:RECTANGLE FILL 0,0,1280,1024
  248 PROCraised_block(200,300,850,500)
  249 GCOL 255,255,128:RECTANGLE FILL 220,732,804,50
  250 PROCwrite2("Message from Pscan version "+ver$,220,740,4)
  251 PROCwrite2("Pscan needs to use a 640 x 512 screen mode and this",220,670,4)
  252 PROCwrite2("does not seem to be available on your computer.",220,630,4)
  253 PROCwrite2("See the !ReadMe file inside the !Pscan.Extras.Monitors",220,590,4)
  254 PROCwrite2("directory or contact G4IJE (01279 734482) for help.",220,550,4)
  255 PROCwrite2("You can run Pscan in a 640 x 480 screen mode but",220,490,4)
  256 PROCwrite2("some features will not work correctly.",220,450,4)
  257 PROCraised_block(240,340,340,40):PROCwrite2("Continue in 640 x 480",246,344,4)
  258 PROCraised_block(664,340,340,40):PROCwrite2("Quit to Desktop",714,344,4)
  259 SYS "Hourglass_Smash":*POINTER 1
  260 PROCwait_no_button:MOUSE RECTANGLE 240,336,764,48
  261 REPEAT:MOUSE X,Y,B:UNTIL B<>0:IF X>660 THEN SYS "Wimp_SetMode",modestore%:END
  262 MOUSE RECTANGLE 0,0,1280,1024
  263 ENDIF
  264
  265 *FX2,0
  266
  267 IF $(menu%+56)="sstv" THEN
  268 disp_flag%=TRUE : REM Program has been run at least once so variables
  269                   REM are not initialised
  270 ELSE
  271
  272 IF ije_dev% THEN *SET Pscan$Dir ADFS::HardDisc4.$.PS_Jan98.AppFiles
  273
  274 SYS "OS_SWINumberFromString",,"OS_SpriteOp" TO sprswi%
  275 SYS "ADFS_Drives" TO N%,floppies%,hard_drives%
  276
  277
  278 DIM spr% txtsize%:PROCsplash2
  279 
  280 PROCget_drive_number_from_pathname:default_dir$=dir$
  281 auto_save%=0:auto_count%=0
  282 Thumbdir$="<Pscan$Dir>.Thumbs"
  283
  284 PROCload_rx_and_tx_code
  285 PROCload_on_line_manual
  286 
  287 MOUSE ON:*POINTER 1
  288
  289 mode%=1:MEM%=0:GH%=0:GW%=0
  290 mem3%=0:mem4%=0:mem5%=0:mem6%=0:mem7%=0:mem8%=0
  291 DIM mem1% 655420,mem2% 655420
  292 IF memories%>2 THEN DIM mem3% 655420
  293 IF memories%>3 THEN DIM mem4% 655420
  294 IF memories%>4 THEN DIM mem5% 655420
  295 IF memories%>5 THEN DIM mem6% 655420
  296 IF memories%>6 THEN DIM mem7% 655420
  297 IF memories%>7 THEN DIM mem8% 655420
  298
  299 memblock%=mem1%
  300 IF thumb% THEN
  301  DIM thblock% 328000,thpath% 2560
  302  thumb_max%=FNcount_thumbnail_banks:thumb_bank%=1
  303  thblock%!0=328000:thblock%!8=16
  304  SYS sprswi%,256+9,thblock%
  305  SYS "OS_File",5,Thumbdir$+".ThumbPix01" TO a%
  306  SYS "OS_File",5,Thumbdir$+".ThumPath01" TO b%
  307   IF a%=0 OR b%=0 THEN
  308   PROCcreate_blank_thumbnail("new")
  309   thumb_max%=1:thumb_bank%=1:PROCsplash2
  310   ENDIF
  311  PROCload_thumbnail_bank(thumb_bank%)
  312 ENDIF
  313
  314 DIM mode$(200):PROCsetup_modes:area_copied%=0:gbpb_len%=3000
  315 DIM cat$(80),ftype$(80),gbpb% gbpb_len%,path$(8),jpegscale% 16
  316 FOR N%=1 TO 8:path$(N%)="X":NEXT
  317 DIM reddata 32,grndata 32,bludata 32
  318 DIM menu$(27),fontlist% 40,tran% 32,fontbox% 40
  319 DIM load_list$(8),rtc_buffer% 10:PROCcheck_for_bst
  320 DIM user_path$(14),choices_list$(20)
  321 L%=64+FNfile_len("<Pscan$Dir>.UserFiles.Pathnames")
  322 DIM user_path% L%
  323 DIM cw_data% 512:DIM cw_table$(50)
  324
  325 PROCmem_assemble:PROCpicpro_assemble:PROCsprite_shadow_assemble
  326 PROCmysprite_assemble:PROCmanual_assemble:PROCredraw_assemble
  327 PROCtarga_assemble:PROCget_area_assemble:PROCzoom_assemble
  328 PROCrotate_rgb_assemble:PROCmake_small_targa_assemble:PROCquarter_assemble
  329 PROCwaveform_assemble:PROCreset_t0_assemble:PROCmerge_assemble
  330
  331 text1$="":text2$="":text$="":TC%=&03FF:TD%=32:TL%=31:text_out_col%=0
  332 brush_size%=16:step%=0:grad%=0:shad$="BR":SC%=0:shadow%=0
  333 pbr%=255:pbg%=0:pbb%=255:xp%=0:yp%=0:pbri%=8:pbgi%=0:pbbi%=8
  334 text_block_shadow%=0:overlay%=0:font$="{none}"
  335 overlay_outline%=0:OOC%=0:hires%=0:transform%=TRUE:solid%=0:jpeg_scale%=0
  336 file_open%=0:menu_redraw%=TRUE:col_idec%=0
  337 real_shadow1%=0:entire%=0:qbw$="m"
  338 border_width%=2:border_grad%=1:bypass%=0:screen_grabbed%=0:jpeg_info%=0
  339 quit_after_error%=FALSE:lastfile$="":merge%=0:grab$="e":mask_created%=0
  340 shown_dir$="-":dir_entries%=0:text%=0:mmm%=1:VIS%=0
  341 cursor_status%=99:auto_find%=FALSE:rquit%=FALSE:toneburst_result%=0
  342 start_entry%=0:last_start_entry%=0:big_dir%=0:was_big_dir%=0
  343
  344 FOR N%=1 TO 20:choices_list$(N%)="":NEXT
  345 LOCAL ERROR
  346 ON ERROR LOCAL CLOSE#F%:PROCcreate_default_options_file
  347 F%=OPENUP("<Pscan$Dir>.UserFiles.Options")
  348 INPUT#F%,save_type$:choices_list$(1)="ok"
  349 INPUT#F%,qwiktext_colour%:choices_list$(2)="ok"
  350 INPUT#F%,qwiktext_block%:choices_list$(3)="ok"
  351 INPUT#F%,jpeg_opt%:choices_list$(4)="ok"
  352 INPUT#F%,plot_shadow%:choices_list$(5)="ok"
  353 INPUT#F%,plot_border%:choices_list$(6)="ok"
  354 INPUT#F%,fax_average%:choices_list$(7)="ok"
  355 INPUT#F%,red%:choices_list$(8)="ok"
  356 INPUT#F%,grn%:choices_list$(9)="ok"
  357 INPUT#F%,blu%:choices_list$(10)="ok"
  358 INPUT#F%,jpgq%:choices_list$(11)="ok"
  359 INPUT#F%,Ioffset%:choices_list$(12)="ok"
  360 INPUT#F%,header_text%:choices_list$(13)="ok"
  361 INPUT#F%,pd_auto_lines%:choices_list$(14)="ok"
  362 INPUT#F%,sstv_time%:choices_list$(15)="ok"
  363 INPUT#F%,outline_width%:choices_list$(16)="ok"
  364 INPUT#F%,beacon_on%:choices_list$(17)="ok"
  365 CLOSE#F%
  366 RESTORE ERROR
  367
  368 CASE jpeg_opt% OF
  369 WHEN 0,1:jpeg_scale%=0
  370 WHEN 2,3:jpeg_scale%=-1
  371 ENDCASE
  372
  373 IF save_type$="overlay" save_type$="sprite"
  374
  375 DIM mouse1% 300,mouse2% 300,mouse3% 300
  376 dummy=FNfile_len("<Pscan$Dir>.Resources.cross1")
  377 OSCLI("LOAD <Pscan$Dir>.Resources.cross1 "+STR$~mouse1%)
  378 dummy=FNfile_len("<Pscan$Dir>.Resources.cross2")
  379 OSCLI("LOAD <Pscan$Dir>.Resources.cross2 "+STR$~mouse2%)
  380 dummy=FNfile_len("<Pscan$Dir>.Resources.finger")
  381 OSCLI("LOAD <Pscan$Dir>.Resources.finger "+STR$~mouse3%)
  382
  383 SPM%=28000:DIM spb% SPM%:!spb%=SPM%:spb%!4=0:spb%!8=16:spb%!12=16
  384 SYS sprswi%,256+10,spb%,"<Pscan$Dir>.PSsprites.sstv_icons"
  385
  386 DIM translate% 16
  387 RESTORE +0
  388 FOR N%=0 TO 15:READ D%:translate%?N%=D%:NEXT
  389 DATA 255,253,171,169,87,85,3,0,144,61,49,12,190,36,47,227
  390
  391 DIM translate256% 256
  392 FOR N%=0 TO 255
  393 SYS "ColourTrans_ColourNumberToGCOL",N% TO D%
  394 translate256%?N%=D%:NEXT
  395
  396 $(menu%+56)="sstv"
  397 ENDIF
  398
  399 SYS "OS_Byte",229,0,0
  400 LOCAL ERROR
  401 ON ERROR LOCAL PROCpscan_error_handler
  402 PROCget_drive_number_from_pathname
  403 BIGQUIT%=0:himem%=HIMEM
  404 PROCmini_pad:SYS "Hourglass_Smash"
  405 PROCmouse_control
  406 IF NOT ije_dev% THEN SYS "OS_Byte",229,1,0
  407 RESTORE ERROR
  408 SYS "Wimp_SetMode",modestore%
  409 PROCwrite2("Returning to the desktop - please wait a moment",300,500,0)
  410 PROCwrite2("Returning to the desktop - please wait a moment",296,504,1)
  411 PROCupdate_rtc(TRUE)
  412
  413 F%=OPENUP("<Pscan$Dir>.UserFiles.Options")
  414 PRINT#F%,save_type$
  415 PRINT#F%,qwiktext_colour%
  416 PRINT#F%,qwiktext_block%
  417 PRINT#F%,jpeg_opt%
  418 PRINT#F%,plot_shadow%
  419 PRINT#F%,plot_border%
  420 PRINT#F%,fax_average%
  421 PRINT#F%,red%
  422 PRINT#F%,grn%
  423 PRINT#F%,blu%
  424 PRINT#F%,jpgq%
  425 PRINT#F%,Ioffset%
  426 PRINT#F%,header_text%
  427 PRINT#F%,pd_auto_lines%
  428 PRINT#F%,sstv_time%
  429 PRINT#F%,outline_width%
  430 PRINT#F%,beacon_on%
  431 CLOSE#F%
  432 ENDPROC
  433
  434 DEF PROCset_variables_from_config_file
  435  call$=config$(1)
  436  clock_freq%=VAL(config$(2))
  437  dir$=config$(3)
  438  user_drive$=config$(6)
  439  IF INSTR(user_drive$,"::")>0 AND LEN(user_drive$)>6 THEN
  440   ud_path%=TRUE
  441  ELSE
  442   ud_path%=FALSE
  443  ENDIF
  444  auto_dir$=config$(7)
  445  IF config$(8)="Y" THEN X4%=TRUE ELSE X4%=FALSE
  446  header_text$=config$(10)
  447  cw_id$=config$(11)
  448  toneburst_bandwidth%=VAL(config$(12))
  449  serial_base%=EVAL(config$(13))
  450 ENDPROC
  451
  452 DEF PROCread_config_file(L%)
  453  F%=OPENIN("<Pscan$Dir>.Choices.Params")
  454   FOR N%=1 TO L%
  455    config$(N%)=GET$#F%
  456   NEXT
  457  CLOSE#F%
  458 ENDPROC
  459
  460 DEF PROCpscan_error_handler
  461 CALL reset_t0_code%
  462 IF cursor_status%<>99 SYS "OS_Byte",237,cursor_status%,0
  463 VDU26,20,4,7:OFF:WAIT:*POINTER 1
  464 VDU19,1,24,0,0,0
  465 X%=280:Y%=304:W%=720:H%=400:auto_save%=0
  466 SYS "Hourglass_Smash"
  467 IF file_open% THEN CLOSE#F%
  468 PROCraised_block(X%+40,Y%,W%-80,H%-30)
  469 GCOL 63 TINT 0:RECTANGLE FILL X%+64,Y%+100,W%-128,H%-240
  470 GCOL 64,64,64:RECTANGLE X%+64,Y%+100,W%-128,H%-240
  471 GCOL 255,255,255:LINE X%+64,Y%+100,X%+W%-64,Y%+100
  472 LINE X%+W%-64,Y%+100,X%+W%-64,Y%+H%-140
  473 SYS sprswi%,256+52,spb%,"error",X%+66,Y%+280,8,0,translate%
  474 SYS sprswi%,256+52,spb%,"error",X%+570,Y%+280,8,0,translate%
  475 PROCwrite2("Error message from Pscan",X%+170,Y%+300,4)
  476 PROCraised_block(X%+70,Y%+32,240,40)
  477 PROCraised_block(X%+410,Y%+32,240,40)
  478 PROCwrite2("Quit to Desktop",X%+410,Y%+36,4)
  479 PROCwrite2("Continue",X%+120,Y%+36,4)
  480 COLOUR128+63 TINT0:COLOUR 0,0,0
  481 R$=REPORT$
  482 IF INSTR(R$,"irectory") dir$=default_dir$
  483 IF INSTR(R$,"isc") dir$=default_dir$
  484 IF INSTR(R$,"ile") dir$=default_dir$
  485 IF INSTR(R$,"rive") dir$=default_dir$
  486 IF INSTR(R$,"andle") dir$=default_dir$
  487 IF INSTR(R$,"iling") dir$=default_dir$
  488 IF dir$=default_dir$ shown_dir$="-"
  489 message$=REPORT$+CHR$13+CHR$13+"Internal error code "+STR$(ERL)
  490 IF ERR=67782 THEN message$=message$+CHR$13+CHR$13+"You must run Pscan from a hard drive to load or save JPEG files"
  491 $err%=message$:err%?(LEN message$)=0
  492 IF screen_lines%=512 THEN VDU 28,24,37,55,30 ELSE VDU 28,24,33,55,26
  493 SYS "OS_PrettyPrint",err%,0:OFF:WAIT
  494 MOUSE RECTANGLE X%+60,Y%+26,W%-124,54
  495 IF step%<>0 THEN MOUSE STEP step%
  496
  497 PROCwait_no_button:REPEAT:K=INKEY(1):UNTIL K=-1
  498 REPEAT:MOUSE X,Y,B:K=INKEY(1):UNTIL B<>0 OR K<>-1
  499 IF X>680 OR K=13 THEN quit_after_error%=TRUE
  500 MOUSE RECTANGLE 0,0,1280,1024
  501 IF NOT quit_after_error% THEN VDU26:PROCdisplay_memory
  502 ENDPROC
  503
  504 DEF PROCmouse_control
  505 MOUSE ON 1:T=0
  506 REPEAT
  507 IF NOT quit_after_error% THEN
  508 PROCwait_no_button:REPEAT UNTIL INKEY(1)=-1
  509
  510 REPEAT
  511 MOUSE X,Y,B:K$=INKEY$(1)
  512   IF K$=CHR$254 THEN
  513   GCOL 0,32 TINT0:RECTANGLE FILL 20,700,500,300
  514   GCOL 255,255,0:RECTANGLE 20,700,500,300
  515   COLOUR 128+32 TINT 0:COLOUR 255,255,255
  516   PRINT TAB(4,3)"  - Pscan parameters -"
  517   PRINT TAB(4,6)"  Memory in use = ";INT((END-PAGE)/1024);"k "
  518   PRINT TAB(4,8)"  Last VIS code = ";VIS%
  519   PRINT TAB(4,10)"  Ioffset%      = ";Ioffset%
  520  
  521   K$=""
  522   ENDIF
  523  PROCcheck_alt_s_save
  524  IF jpeg_info% AND (TIME-T)>300 THEN PROCdismini:jpeg_info%=0
  525  IF Y<55 THEN mbox%=X DIV 64 ELSE mbox%=99
  526 UNTIL B<>0 OR K$<>"":jpeg_info%=0
  527
  528 IF K$="" THEN
  529  IF B=2 COLOUR 128 TINT 128:CLS:PROCmini_pad
  530  IF (B=1 OR B=4) AND Y<55 mbox%=X DIV 64 ELSE mbox%=99
  531  IF (B=1 OR B=4) AND Y>54 THEN
  532  PROCdisplay_memory:PROCwait_no_button
  533  REPEAT:MOUSE x,y,b:UNTIL b=4 OR b=1
  534  IF x<10 OR x>1270 OR y<10 OR y>950 THEN PROCscroller
  535  PROCmini_pad
  536  ENDIF
  537  ELSE
  538  IF ASC(K$)>96 K$=CHR$(ASC(K$)-32)
  539  X=400
  540  CASE K$ OF
  541  WHEN "C":COLOUR 128 TINT 128:CLS:PROCmini_pad:mbox%=99
  542  WHEN "F":mbox%=19
  543  WHEN "H":mbox%=22
  544  WHEN "M":mbox%=6
  545  WHEN "N":mbox%=18
  546  WHEN "R":mbox%=10
  547  WHEN "T":mbox%=11
  548  WHEN "V":mbox%=8
  549  WHEN "Q":mbox%=21
  550  WHEN "1","2","3","4","5","6","7","8":X=(ASC(K$)-49)*48:mbox%=1
  551 OTHERWISE
  552 mbox%=99
  553 ENDCASE
  554 ENDIF
  555
  556 IF X<384 AND mbox%<>99 THEN PROCmemory_select(X DIV 48,-1)
  557 CASE mbox% OF
  558 WHEN 6,7:PROCmode_menu
  559 WHEN 8,9:PROCvis_start
  560 WHEN 10:IF B=1 auto_find%=TRUE ELSE auto_find%=FALSE
  561        :PROCrx_sstv(FALSE)
  562 WHEN 11:PROCtx_frame(FALSE)
  563 WHEN 12:PROCtest_patterns
  564 WHEN 13:PROCrgb_processing
  565 WHEN 14:PROCtools:IF auto_save% THEN PROCauto_save
  566 WHEN 15:PROCbackground_menu
  567 WHEN 16:PROCgrab_menu
  568 WHEN 17:PROCtext_sprite_overlay_menu
  569 WHEN 18:PROCshow_thumbnails
  570 WHEN 19:PROCfiler_display:IF jpeg_info% THEN PROCjpeg_info
  571 WHEN 22:PROCon_line_manual
  572 WHEN 21:PROCqwiktext
  573 ENDCASE
  574 ELSE
  575 BIGQUIT%=TRUE:quit_after_error%=FALSE
  576 ENDIF
  577 UNTIL BIGQUIT%
  578 ENDPROC
  579
  580 DEF PROCcheck_alt_s_save
  581 IF INKEY(-3) AND INKEY(-82) THEN
  582 OSCLI("SCREENSAVE "+dir$+".PSscreen"+STR$ mmm%)
  583 mmm%+=1
  584 ENDIF
  585 ENDPROC
  586
  587 DEF PROCjpeg_info
  588 PROCraised_block(400,106,472,100):T=TIME
  589 PROCwrite2("JPEG image "+STR$ xs%+" by "+STR$ ys%,456,160,4)
  590 IF jpeg_scale% THEN sc$="scaled" ELSE sc$="cropped"
  591 PROCwrite2("Loaded and "+sc$+" in "+T$+" secs",394,120,4)
  592 ENDPROC
  593
  594 DEF PROCmemory_select(mem%,dis%)
  595 IF mem%<memories% THEN
  596 CASE mem% OF
  597 WHEN 0:memblock%=mem1%
  598 WHEN 1:memblock%=mem2%
  599 WHEN 2:memblock%=mem3%
  600 WHEN 3:memblock%=mem4%
  601 WHEN 4:memblock%=mem5%
  602 WHEN 5:memblock%=mem6%
  603 WHEN 6:memblock%=mem7%
  604 WHEN 7:memblock%=mem8%
  605 ENDCASE
  606 MEM%=mem%:IF dis% THEN PROCdismini
  607 ELSE
  608 IF mem%=memories% AND INKEY(-3) THEN
  609  SYS "Wimp_SlotSize",-1,-1 TO S%
  610  SYS "Wimp_SlotSize",S%+660000,-1
  611  CASE (memories%+1) OF
  612  WHEN 3:mem3%=himem%+64:memblock%=mem3%:himem%+=660000
  613  WHEN 4:mem4%=himem%+64:memblock%=mem4%:himem%+=660000
  614  WHEN 5:mem5%=himem%+64:memblock%=mem5%:himem%+=660000
  615  WHEN 6:mem6%=himem%+64:memblock%=mem6%:himem%+=660000
  616  WHEN 7:mem7%=himem%+64:memblock%=mem7%:himem%+=660000
  617  WHEN 8:mem8%=himem%+64:memblock%=mem8%:himem%+=660000
  618  ENDCASE
  619  memories%+=1:MEM%=mem%:temp_mem_increase%=TRUE:PROCdismini
  620  ENDIF
  621 ENDIF
  622 ENDPROC
  623
  624 DEF PROCget_drive_number_from_pathname
  625 N%=0:drv%=99:REPEAT
  626 drv%=ASC(MID$(dir$,N%,1))-48:N%+=1
  627 UNTIL drv%=0 OR drv%=1 OR drv%=4 OR drv%=5 OR N%=LEN(dir$)
  628 IF drv%<0 OR drv%>5 THEN drv%=4:dir$="ADFS::4.$"
  629 ENDPROC
  630
  631 DEF PROCbackground_menu
  632 GCOL3,63 TINT192:RECTANGLE FILL 964,4,52,50
  633 REPEAT
  634 menu$(0)="  Backgrounds"
  635 menu$(2)="  Single gradations>"
  636 menu$(3)="  Double gradations>"
  637 menu$(4)="  White-blue diagonal"
  638 menu$(5)="  White-red diagonal"
  639 menu$(6)="  Cyan-magenta diagonal"
  640 menu$(7)="  Yellow-magenta diagonal"
  641 menu$(8)="  Yellow-red diagonal"
  642 menu$(9)="  White-green diagonal"
  643 menu$(10)="  Yellow-cyan diagonal"
  644 menu$(11)="  Red-blue diagonal"
  645 menu$(12)="  Multi diagonal type 1"
  646 menu$(13)="  Multi diagonal type 2"
  647 menu$(14)="  Plain background"
  648 menu$(15)="  Circular gradations>"
  649 menu$(16)="  Multi gradations>"
  650 menu$(17)="  Segment gradations>"
  651 menu$(18)="  Miscellaneous>"
  652 IF merge% m$=CHR$128 ELSE m$=" "
  653 menu$(19)=m$+" Merge with picture"
  654 menu$(20)="  Fade top-to-bottom"
  655 menu$(21)="*":PROCmenu(494,90,0)
  656 IF menu_box%=19 THEN merge%=NOT(merge%):menu_redraw%=TRUE
  657 CASE menu_box% OF
  658 WHEN 1:menu_box%=0
  659 WHEN 2:PROCsingle_grad_options
  660 WHEN 3:PROCdouble_grad_options
  661 WHEN 4,5,6,7,8,9,10,11,12,13:PROCdiagonal
  662 WHEN 14:PROCplain_background
  663 WHEN 15:PROCcircular_gradations
  664 WHEN 16:PROCmulti_grad_menu
  665 WHEN 17:PROCsegment_menu
  666 WHEN 18:PROCmisc_backgrounds
  667 WHEN 20:PROCscreen_fade
  668 ENDCASE
  669 UNTIL menu_box%<>19 AND menu_box%<>99
  670 IF merge% AND menu_box%<>0 THEN PROCmerge:merge%=0
  671 PROCdismini
  672 ENDPROC
  673
  674 DEF PROCdouble_grad_options
  675 menu$(0)="Double grad   "
  676 menu$(1)="Red-black"
  677 menu$(2)="Green-black"
  678 menu$(3)="Blue-black"
  679 menu$(4)="Red-yellow"
  680 menu$(5)="Red-magenta"
  681 menu$(6)="Green-cyan"
  682 menu$(7)="Yellow-blue"
  683 menu$(8)="Yellow-black"
  684 menu$(9)="White-black"
  685 menu$(10)="*":PROCmenu(0,90,-1)
  686 CASE menu_box% OF
  687 WHEN 1:PROCdouble_grad_back(255,1,1,-1,0,0)
  688 WHEN 2:PROCdouble_grad_back(1,255,1,0,-1,0)
  689 WHEN 3:PROCdouble_grad_back(1,1,255,0,0,-1)
  690 WHEN 4:PROCdouble_grad_back(255,1,1,0,1,0)
  691 WHEN 5:PROCdouble_grad_back(255,1,1,0,0,1)
  692 WHEN 6:PROCdouble_grad_back(1,255,1,0,0,1)
  693 WHEN 7:PROCdouble_grad_back(255,255,1,-1,-1,1)
  694 WHEN 8:PROCdouble_grad_back(255,255,1,-1,-1,0)
  695 WHEN 9:PROCdouble_grad_back(255,255,255,-1,-1,-1)
  696 ENDCASE
  697 ENDPROC
  698
  699 DEF PROCsingle_grad_options
  700 menu$(0)="Single grads   "
  701 menu$(1)="Black-white"
  702 menu$(2)="Black-yellow"
  703 menu$(3)="Black-cyan"
  704 menu$(4)="Black-green"
  705 menu$(5)="Black-magenta"
  706 menu$(6)="Black-red"
  707 menu$(7)="Black-blue"
  708 menu$(8)="*":PROCmenu(0,90,-1)
  709 CASE menu_box% OF
  710 WHEN 1:PROCsingle_grad_back(0,0,0,1,1,1)
  711 WHEN 2:PROCsingle_grad_back(0,0,0,1,1,0)
  712 WHEN 3:PROCsingle_grad_back(0,0,0,0,1,1)
  713 WHEN 4:PROCsingle_grad_back(0,0,0,0,1,0)
  714 WHEN 5:PROCsingle_grad_back(0,0,0,1,0,1)
  715 WHEN 6:PROCsingle_grad_back(0,0,0,1,0,0)
  716 WHEN 7:PROCsingle_grad_back(0,0,0,0,0,1)
  717 ENDCASE
  718 ENDPROC
  719
  720 DEF PROCplain_background
  721 PROCrgb_sliders(0):GCOL red%,grn%,blu%:RECTANGLE FILL 0,0,1279,1024
  722 IF NOT(merge%) THEN PROCupload_memory
  723 ENDPROC
  724
  725 DEF PROCborder_menu
  726 IF menu_box%=6 THEN bh%=1022 ELSE bh%=958
  727 REPEAT
  728 menu$(0)="  Border options      "
  729 menu$(1)="  White gradated"
  730 menu$(2)="  Yellow gradated"
  731 menu$(3)="  Cyan gradated"
  732 menu$(4)="  Green gradated"
  733 menu$(5)="  Magenta gradated"
  734 menu$(6)="  Red gradated"
  735 menu$(7)="  Blue gradated"
  736 menu$(8)="  Colour selector"
  737 menu$(9)="  ---------------"
  738 IF border_width%=1 THEN m$=CHR$128 ELSE m$=" "
  739 menu$(10)=m$+" Narrow border"
  740 IF border_width%=2 THEN m$=CHR$128 ELSE m$=" "
  741 menu$(11)=m$+" Medium border"
  742 IF border_width%=3 THEN m$=CHR$128 ELSE m$=" "
  743 menu$(12)=m$+" Wide border"
  744 IF border_grad%=1 THEN m$=CHR$128 ELSE m$=" "
  745 menu$(13)=m$+" Gradate to white"
  746 IF border_grad%=2 THEN m$=CHR$128 ELSE m$=" "
  747 menu$(14)=m$+" Gradate to yellow"
  748 IF border_grad%=3 THEN m$=CHR$128 ELSE m$=" "
  749 menu$(15)=m$+" Gradate to cyan"
  750 IF border_grad%=4 THEN m$=CHR$128 ELSE m$=" "
  751 menu$(16)=m$+" Gradate to green"
  752 IF border_grad%=5 THEN m$=CHR$128 ELSE m$=" "
  753 menu$(17)=m$+" Gradate to magenta"
  754 IF border_grad%=6 THEN m$=CHR$128 ELSE m$=" "
  755 menu$(18)=m$+" Gradate to red"
  756 IF border_grad%=7 THEN m$=CHR$128 ELSE m$=" "
  757 menu$(19)=m$+" Gradate to blue"
  758 IF border_grad%=8 THEN m$=CHR$128 ELSE m$=" "
  759 menu$(20)=m$+" Gradate to black"
  760 menu$(21)="*":PROCmenu(0,90,-1)
  761 CASE menu_box% OF
  762 WHEN 10:border_width%=1
  763 WHEN 11:border_width%=2
  764 WHEN 12:border_width%=3
  765 WHEN 13:border_grad%=1
  766 WHEN 14:border_grad%=2
  767 WHEN 15:border_grad%=3
  768 WHEN 16:border_grad%=4
  769 WHEN 17:border_grad%=5
  770 WHEN 18:border_grad%=6
  771 WHEN 19:border_grad%=7
  772 WHEN 20:border_grad%=8
  773 ENDCASE
  774 UNTIL menu_box%<9 OR menu_box%=99
  775 CASE menu_box% OF
  776 WHEN 1:r%=255:g%=255:b%=255
  777 WHEN 2:r%=255:g%=255:b%=0
  778 WHEN 3:r%=0:g%=255:b%=255
  779 WHEN 4:r%=0:g%=255:b%=0
  780 WHEN 5:r%=255:g%=0:b%=255
  781 WHEN 6:r%=255:g%=0:b%=0
  782 WHEN 7:r%=0:g%=0:b%=255
  783 WHEN 8:PROCrgb_sliders(0):r%=red%:g%=grn%:b%=blu%
  784 ENDCASE
  785 IF menu_box%<>99 THEN PROCborder(r%,g%,b%)
  786 ENDPROC
  787
  788 DEF PROCmode_menu
  789 GCOL3,63 TINT192:RECTANGLE FILL 388,4,116,50
  790 REPEAT
  791 menu$(0)="SSTV mode select  "
  792 menu$(2)="Martin 1"
  793 menu$(3)="Martin 2"
  794 menu$(4)="Scottie 1"
  795 menu$(5)="Scottie 2"
  796 menu$(6)="Scottie DX"
  797 menu$(7)="SC2 180 seconds"
  798 menu$(8)="WR180 - JVFAX"
  799 menu$(9)="PD 50  (320x256)"
  800 menu$(10)="PD 90  (320x256)"
  801 menu$(11)="PD 120 (640x496)"
  802 menu$(12)="PD 160 (512x384)"
  803 menu$(13)="PD 180 (640x496)"
  804 menu$(14)="PD 240 (640x496)"
  805 menu$(15)="P3 (Pasokon 640x496)"
  806 menu$(16)="P5 (Pasokon 640x496)"
  807 menu$(17)="P7 (Pasokon 640x496)  "
  808 menu$(18)="HQ-1 (RX only)"
  809 menu$(19)="HQ-2 (RX only)"
  810 menu$(20)="Select Martin 1 timings>"
  811 menu$(21)="Mono FAX modes>"
  812 menu$(22)="Colour FAX modes>"
  813 menu$(23)="PD auto-tune control>"
  814 menu$(24)="*":PROCmenu(282,90,0)
  815 CASE menu_box% OF
  816 WHEN 2:mode%=1
  817 WHEN 3:mode%=2
  818 WHEN 4:mode%=5
  819 WHEN 5:mode%=6
  820 WHEN 6:mode%=9
  821 WHEN 7:mode%=11
  822 WHEN 8:mode%=12
  823 WHEN 9:mode%=65
  824 WHEN 10:mode%=63
  825 WHEN 11:mode%=64
  826 WHEN 12:mode%=62
  827 WHEN 13:mode%=60
  828 WHEN 14:mode%=61
  829 WHEN 15:mode%=20
  830 WHEN 16:mode%=21
  831 WHEN 17:mode%=22
  832 WHEN 18:mode%=70
  833 WHEN 19:mode%=71
  834 WHEN 20:PROCselect_martin1_timings
  835 WHEN 21:PROCfax_mode_menu
  836 WHEN 22:PROCcolour_fax_menu
  837 WHEN 23:PROCpd_auto_tune_control
  838 ENDCASE
  839 UNTIL menu_box%<>99
  840 PROCdismini
  841 ENDPROC
  842
  843 DEF PROCselect_martin1_timings
  844 REPEAT
  845 menu$(0)="  Select Martin 1 timings"
  846 IF sstv_time%=1 THEN m$=CHR$128+" " ELSE m$="  "
  847 menu$(1)=m$+"Robot or Superscan"
  848 IF sstv_time%=2 THEN m$=CHR$128+" " ELSE m$="  "
  849 menu$(2)=m$+"WinPix Pro or GSH (DL4SAW)"
  850 IF sstv_time%=3 THEN m$=CHR$128+" " ELSE m$="  "
  851 menu$(3)=m$+"JVFAX"
  852 menu$(4)="*":PROCmenu(0,90,-1)
  853 CASE menu_box% OF
  854 WHEN 1:sstv_time%=1:mode%=1
  855 WHEN 2:sstv_time%=2:mode%=1
  856 WHEN 3:sstv_time%=3:mode%=1
  857 ENDCASE
  858 UNTIL menu_box%=99
  859 ENDPROC
  860
  861 DEF PROCpd_auto_tune_control
  862 REPEAT
  863 menu$(0)="  PD auto-tune control"
  864 IF pd_auto_lines%=8 THEN m$=CHR$128+" " ELSE m$="  "
  865 menu$(1)=m$+"Average 8 lines"
  866 IF pd_auto_lines%=4 THEN m$=CHR$128+" " ELSE m$="  "
  867 menu$(2)=m$+"Average 4 lines"
  868 IF pd_auto_lines%=0 THEN m$=CHR$128+" " ELSE m$="  "
  869 menu$(3)=m$+"Auto-tune off (FM use)"
  870 menu$(4)="*":PROCmenu(0,90,-1)
  871 CASE menu_box% OF
  872 WHEN 1:pd_auto_lines%=8
  873 WHEN 2:pd_auto_lines%=4
  874 WHEN 3:pd_auto_lines%=0
  875 ENDCASE
  876 UNTIL menu_box%=99
  877 ENDPROC
  878
  879 DEF PROCfax_mode_menu
  880 REPEAT
  881 menu$(0)="  Mono FAX  "
  882 menu$(1)="   60 LPM"
  883 menu$(2)="   90 LPM"
  884 menu$(3)="  120 LPM"
  885 menu$(4)="  180 LPM"
  886 menu$(5)="  240 LPM"
  887 menu$(6)="  360 LPM"
  888 menu$(7)="  480 LPM"
  889 IF fax_average%=1 THEN m$=CHR$128+" " ELSE m$="  "
  890 menu$(8)=m$+"Show every line"
  891 IF fax_average%=2 THEN m$=CHR$128+" " ELSE m$="  "
  892 menu$(9)=m$+"Average 2 lines "
  893 IF fax_average%=3 THEN m$=CHR$128+" " ELSE m$="  "
  894 menu$(10)=m$+"Average 3 lines"
  895 menu$(11)="*":PROCmenu(0,90,-1)
  896 CASE menu_box% OF
  897 WHEN 8:fax_average%=1:menu_redraw%=TRUE
  898 WHEN 9:fax_average%=2:menu_redraw%=TRUE
  899 WHEN 10:fax_average%=3:menu_redraw%=TRUE
  900 ENDCASE
  901 UNTIL menu_box%<8 OR menu_box%=99
  902 IF menu_box%<>99 THEN mode%=menu_box%+99
  903 ENDPROC
  904
  905 DEF PROCcolour_fax_menu
  906 menu$(0)="Colour FAX "
  907 menu$(1)=" 60 LPM"
  908 menu$(2)=" 90 LPM"
  909 menu$(3)="120 LPM"
  910 menu$(4)="180 LPM"
  911 menu$(5)="240 LPM"
  912 menu$(6)="360 LPM"
  913 menu$(7)="480 LPM"
  914 menu$(8)="*":PROCmenu(0,90,-1)
  915 IF menu_box%<>99 THEN mode%=menu_box%+119
  916 ENDPROC
  917
  918 DEF PROCwait_no_button
  919 LOCAL x%,y%,b%:REPEAT:MOUSE x%,y%,b%:UNTIL b%=0
  920 ENDPROC
  921
  922 DEF FNscreen_address
  923 LOCAL IB%(),OB%()
  924 DIM IB% 20,OB% 20
  925 !IB%=148:IB%!4=150:IB%!8=-1
  926 SYS "OS_ReadVduVariables",IB%,OB%
  927 =!OB%
  928
  929 DEF PROCmini_pad
  930 IF disp_flag% PROCdisplay_memory:disp_flag%=0
  931 GCOL 128,180,180:RECTANGLE FILL 0,0,1280,60
  932 GCOL240,240,240:LINE0,60,1280,60
  933 FOR X%=4 TO 340 STEP48
  934 SYS sprswi%,256+52,spb%,"button",X%,4,0,0,translate%
  935 NEXT
  936 PROCraised_block(522,10,106,38)
  937 PROClarge_buttons(384,2,-1)
  938 FOR X%=768 TO 1152 STEP64:PROCbuttons(X%,2,0):NEXT
  939 VDU 23,17,7,6,8;8;0;:GCOL32 TINT0:VDU5
  940 IF NOT(auto_save%) THEN
  941 IF mode%<99 PROCwrite2("VIS",530,12,4) ELSE PROCwrite2("Phase",512,12,4)
  942 ELSE
  943 PROCwrite2("AUTO",516,12,4)
  944 ENDIF
  945 GCOL 0,0,0
  946 IF mode%<120 THEN
  947 MOVE 400,36:PRINT mode$(mode%)
  948 ELSE
  949 MOVE 400,44:PRINT LEFT$(mode$(mode%),6)
  950 MOVE 392,24:PRINT MID$(mode$(mode%),7)
  951 ENDIF
  952 SYS sprswi%,256+52,spb%,"rgb",838,6,0,0,translate%
  953 SYS sprswi%,256+52,spb%,"brush",902,6,0,0,translate%
  954 SYS sprswi%,256+52,spb%,"text",1094,6,0,0,translate%
  955 SYS sprswi%,256+52,spb%,"tp",774,6,0,0,translate%
  956 SYS sprswi%,256+52,spb%,"camera",1030,6,0,0,translate%
  957 SYS sprswi%,256+52,spb%,"roller",966,6,0,0,translate%
  958 SYS sprswi%,256+52,spb%,"rx",646,4,0,0,translate%
  959 SYS sprswi%,256+52,spb%,"tx",710,4,0,0,translate%
  960 SYS sprswi%,256+52,spb%,"thumb",1158,6,0,0,translate%
  961 SYS sprswi%,256+52,spb%,"filer",1216,4,8,0,translate%
  962 XM%=(memories%-1)*48+4
  963 M%=1:FOR X%=4 TO XM% STEP48
  964 PROCwrite2(STR$ M%,X%,12,4):M%+=1:NEXT
  965 GCOL 0,64,0:RECTANGLE FILL 612,24,10,10
  966 VDU4:OFF:WAIT:menu_redraw%=TRUE
  967 GCOL3,255,255,255:RECTANGLE FILL MEM%*48+6,8,38,44
  968 COLOUR128:VDU23,17,7,6,8;8;0;
  969 ENDPROC
  970
  971 DEF PROCbuttons(X,Y,F)
  972 GCOL63 TINT192
  973 LINE X+4,Y+4,X+4,Y+50:LINE X+4,Y+52,X+56,Y+52
  974 GCOL0 TINT0
  975 LINE X+4,Y+2,X+56,Y+2:LINE X+56,Y+2,X+56,Y+50
  976 IF(F) THEN GCOL42 TINT192:RECTANGLE FILL X+8,Y+8,44,56
  977 ENDPROC
  978
  979 DEF PROClarge_buttons(X,Y,F)
  980 GCOL63 TINT192
  981 LINE X+4,Y+4,X+4,Y+50:LINE X+4,Y+52,X+120,Y+52
  982 GCOL0 TINT0
  983 LINE X+4,Y+2,X+120,Y+2:LINE X+120,Y+2,X+120,Y+50
  984 IF(F) THEN GCOL255,190,0:RECTANGLE FILL X+6,Y+4,112,46
  985 ENDPROC
  986
  987 DEF PROCmem_assemble
  988 DIM mem_code% 64
  989 FOR P=0 TO 2 STEP2
  990 P%=mem_code%
  991 [OPT P
  992 .mem_transfer
  993 MOV R12,#16384
  994 .mts_loop
  995 LDMIA R0!,{R1,R3-R11}:STMIA R2!,{R1,R3-R11}
  996 SUBS R12,R12,#1:BNE mts_loop
  997 MOV PC,R14
  998 ]:NEXT
  999 ENDPROC
 1000
 1001 DEF PROCdisplay_memory
 1002 A%=memblock%+20:C%=screen%:CALL mem_transfer
 1003 ENDPROC
 1004
 1005 DEF PROCupload_memory
 1006 C%=memblock%+20:A%=screen%:CALL mem_transfer
 1007 path$(MEM%+1)="X"
 1008 ENDPROC
 1009
 1010 DEF PROCscroller
 1011 VDU19,1,24,255,0,255:MOUSE X,Y,B
 1012 mid%=!screen%:IF FNhigh_res_mode xy%=2 ELSE xy%=4
 1013 REPEAT
 1014 IF Y>950 THEN RECTANGLE FILL 0,0,1280,1024 TO 0,xy%
 1015 IF Y<10 THEN RECTANGLE FILL 0,0,1280,1024 TO 0,-xy%
 1016 IF X>1270 THEN RECTANGLE FILL 0,0,1280,1024 TO xy%,0
 1017 IF X<10 THEN RECTANGLE FILL 0,0,1280,1024 TO -xy%,0
 1018 K%=INKEY(5)
 1019 REPEAT:MOUSE X,Y,B:UNTIL B=4
 1020 UNTIL (Y>100 AND Y<923) AND (X>100 AND X<1179)
 1021 VDU19,1,24,0,0,0:!screen%=mid%
 1022 PROCupload_memory
 1023 ENDPROC
 1024
 1025 DEF FNhigh_res_mode
 1026 LOCAL result%
 1027 CASE mode% OF
 1028  WHEN 1,2,5,6,9,11,12,63,70,71:result%=FALSE
 1029 OTHERWISE
 1030  result%=TRUE
 1031 ENDCASE
 1032 =result%
 1033
 1034 DEF PROCsetup_modes
 1035 RESTORE +0
 1036 FOR N%=1 TO 12:READ mode$(N%):NEXT
 1037 DATA " M-1 "," M-2 "," M-3 "," M-4 "," S-1 "," S-2 "," S-3 "," S-4 "
 1038 DATA " S-DX","SC-120","SC-180","WR-180"
 1039 FOR N%=100 TO 107:READ mode$(N%):NEXT
 1040 DATA "FAX 60","FAX 90","FAX120","FAX180","FAX240"
 1041 DATA "FAX360","FAX480","QST480"
 1042 FOR N%=120 TO 126:READ mode$(N%):NEXT
 1043 mode$(60)="PD-180":mode$(61)="PD-240"
 1044 mode$(62)="PD-160":mode$(63)="PD-90"
 1045 mode$(64)="PD-120":mode$(65)="PD-50"
 1046 mode$(70)=" HQ-1":mode$(71)=" HQ-2"
 1047 mode$(20)=" P-3":mode$(21)=" P-5":mode$(22)=" P-7"
 1048 DATA "HamCol60 /204","HamCol90 /204"
 1049 DATA "HamCol120/204","HamCol180/204","HamCol240/204"
 1050 DATA "HamCol360/204","HamCol480/204"
 1051 ENDPROC
 1052
 1053 DEF PROCfont_list_select
 1054 REPEAT
 1055 PROCprint_font_list
 1056 MOUSE RECTANGLE 26,0,1204,888
 1057 D%=400:W%=380:PROCwait_no_button
 1058 REPEAT:MOUSE X,Y,B:MX%=(X-32)DIV D%:MY%=(956-Y)DIV32
 1059 box%=(MX%+1)+(MY%-2)*3
 1060 IF box%<=N% OR box%=78 THEN
 1061 GCOL 3,63 TINT192:RECTANGLE FILL MX%*D%+32,922-MY%*32,W%,32
 1062 REPEAT:MOUSE X,Y,B:MX2%=(X-32)DIV D%:MY2%=(956-Y)DIV32
 1063 UNTIL MX2%<>MX% OR MY2%<>MY% OR B=4
 1064 RECTANGLE FILL MX%*D%+32,922-MY%*32,W%,32
 1065 ENDIF
 1066 UNTIL B=4
 1067 UNTIL box%<78:MOUSE RECTANGLE 0,0,1280,1024:ORIGIN 0,0
 1068 ENDPROC
 1069
 1070 DEF PROCprint_font_list
 1071 ORIGIN 0,32
 1072 COLOUR128+32 TINT0:CLS:GCOL255,255,255:RECTANGLE 20,52,1236,892
 1073 LINE 422,52,422,896:LINE 822,52,822,896:LINE 20,896,1256,896
 1074 COLOUR 255,255,255:PRINT TAB(3,4)"Font list: Last used was "
 1075 COLOUR 255,255,0:PRINT TAB(28,4)LEFT$(font$,31);" ";
 1076 COLOUR 255,255,255:PRINT"at ";
 1077 COLOUR 255,255,0:PRINT;xp%;" / ";yp%;
 1078 COLOUR 255,255,255:PRINT" points"
 1079 GCOL 128,255,255:RECTANGLE FILL 320,12,600,32:GCOL 0,0,0
 1080 VDU5:MOVE 342,36:PRINT"Click on an empty position to abort":VDU4:OFF:WAIT
 1081 COLOUR 255,255,0:COLOUR128+32 TINT0:X%=3:Y%=7
 1082 FOR J%=0TO77:cat$(J%)="":NEXT:N%=0:shown_dir$="-"
 1083 REPEAT
 1084 SYS "Font_ListFonts",0,fontlist%,F%,-1 TO,,end%
 1085 IF NOT end% THEN
 1086 cat$(N%)=$fontlist%:PRINT TAB(X%,Y%)LEFT$(cat$(N%),23)
 1087 F%+=1:N%+=1:X%+=25:IF X%>54 THEN X%=3:Y%+=2
 1088 ENDIF
 1089 UNTIL N%=77 OR end%=TRUE
 1090 IF NOT end% THEN COLOUR 255,255,255:PRINT TAB(54,57)"[ NEXT FONT PAGE  ]"
 1091 ENDPROC
 1092
 1093 DEF PROCtext_sprite_overlay_menu
 1094 GCOL3,63 TINT192:RECTANGLE FILL 1092,4,52,50
 1095 REPEAT
 1096 menu$(0)="Text & sprite overlays"
 1097 menu$(2)="QwikText options>"
 1098 menu$(3)="QwikText display"
 1099 menu$(4)="------------------"
 1100 menu$(5)="Select text colour>"
 1101 menu$(6)="Select text outline>"
 1102 menu$(7)="Select text shadow>"
 1103 menu$(8)="Create text overlay"
 1104 menu$(9)="Grab screen ellipse"
 1105 menu$(10)="Grab screen rectangle"
 1106 menu$(11)="Text mask options>"
 1107 menu$(12)="Sprite overlay outline>"
 1108 menu$(13)="------------------"
 1109 IF text% THEN menu$(16)="Display '"+LEFT$(text1$,12)+"'" ELSE menu$(16)="{no text or overlay}"
 1110 IF overlay% THEN menu$(16)="Display '"+sprite_name$+"'"
 1111 IF overlay% THEN
 1112  menu$(14)="Tile '"+sprite_name$+"'"
 1113  menu$(15)="Save '"+sprite_name$+"'>"
 1114 ELSE
 1115  menu$(14)="{no sprite loaded}"
 1116  menu$(15)="{no sprite loaded}"
 1117 ENDIF
 1118 menu$(17)="*":PROCmenu(494,90,0)
 1119 CASE menu_box% OF
 1120 WHEN 2:PROCqwiktext_menu
 1121 WHEN 3:PROCqwiktext
 1122 WHEN 5:PROCtext_colour_menu
 1123 WHEN 6:PROCtext_outline_menu:menu_box%=6
 1124 WHEN 7:PROCtext_shadow_menu
 1125 WHEN 8:PROCfont_text(0):menu_box%=8
 1126 WHEN 9:PROCgrab_screen_ellipse:menu_box%=1
 1127 WHEN 10:PROCgrab_screen_rectangle:menu_box%=1
 1128 WHEN 11:PROCtext_mask_menu
 1129 WHEN 12:PROCoverlay_outline:menu_box%=8
 1130 WHEN 14:IF overlay% THEN PROCtiled_sprite_background
 1131 WHEN 16:IF (text% OR overlay%) THEN PROCdisplay_text
 1132 WHEN 15:IF overlay% THEN
 1133          st2$=save_type$:save_type$="overlay"
 1134          PROCfiler_display:save_type$=st2$
 1135         ENDIF
 1136 ENDCASE
 1137 UNTIL menu_box%=1 OR menu_box%=3 OR (menu_box%>13 AND menu_box%<17)
 1138 IF menu_box%<>15 PROCdismini
 1139 ENDPROC
 1140
 1141 DEF PROCqwiktext_menu
 1142 REPEAT
 1143 menu$(0)="QwikText options"
 1144 menu$(1)="White text"
 1145 menu$(2)="Yellow text"
 1146 menu$(3)="Cyan text"
 1147 menu$(4)="Green text"
 1148 menu$(5)="Magenta text"
 1149 menu$(6)="Red text"
 1150 menu$(7)="Blue text"
 1151 menu$(8)="Black text"
 1152 menu$(9)="  -----------"
 1153 menu$(10)="White block"
 1154 menu$(11)="Yellow block"
 1155 menu$(12)="Cyan block"
 1156 menu$(13)="Green block"
 1157 menu$(14)="Magenta block"
 1158 menu$(15)="Red block"
 1159 menu$(16)="Blue block"
 1160 menu$(17)="Black block"
 1161 menu$(18)="Transparent"
 1162 FOR N%=1 TO 8
 1163 IF N%=qwiktext_colour% m$=CHR$128 ELSE m$=" "
 1164 menu$(N%)=m$+" "+menu$(N%):NEXT
 1165 FOR N%=10 TO 18
 1166 IF N%=qwiktext_block% m$=CHR$128 ELSE m$=" "
 1167 menu$(N%)=m$+" "+menu$(N%):NEXT
 1168 menu$(19)="*":PROCmenu(0,90,-1)
 1169 CASE menu_box% OF
 1170 WHEN 1,2,3,4,5,6,7,8:qwiktext_colour%=menu_box%
 1171 WHEN 10,11,12,13,14,15,16,17,18:qwiktext_block%=menu_box%
 1172 ENDCASE
 1173 UNTIL menu_box%=99
 1174 ENDPROC
 1175
 1176 DEF PROCoverlay_outline
 1177 menu$(0)="Overlay outline       " 
 1178 menu$(1)="White outline"
 1179 menu$(2)="Yellow outline"
 1180 menu$(3)="Cyan outline"
 1181 menu$(4)="Green outline"
 1182 menu$(5)="Magenta outline"
 1183 menu$(6)="Red outline"
 1184 menu$(7)="Blue outline"
 1185 menu$(8)="Black outline"
 1186 menu$(9)="Colour selector"
 1187 menu$(10)="Soft multiple shadow"
 1188 menu$(11)="Single shadow - close"
 1189 menu$(12)="Single shadow - wide"
 1190 menu$(13)="No outline or shadow"
 1191 menu$(14)="*":PROCmenu(0,90,-1)
 1192 overlay_outline%=TRUE
 1193 CASE menu_box% OF
 1194 WHEN 1:OOC%=&7FFF
 1195 WHEN 2:OOC%=&03FF
 1196 WHEN 3:OOC%=&7FE0
 1197 WHEN 4:OOC%=&03E0
 1198 WHEN 5:OOC%=&7C1F
 1199 WHEN 6:OOC%=&001F
 1200 WHEN 7:OOC%=&7C00
 1201 WHEN 8:OOC%=&0000
 1202 WHEN 9:PROCrgb_sliders(0):OOC%=RGB%
 1203 WHEN 10:OOC%=1
 1204 WHEN 11:OOC%=2
 1205 WHEN 12:OOC%=3
 1206 WHEN 13:overlay_outline%=0
 1207 ENDCASE
 1208 ENDPROC
 1209
 1210 DEF PROCtext_shadow_menu
 1211 menu$(0)="Text shadow           "
 1212 menu$(1)="Solid drop shadow"
 1213 menu$(2)="Gradated shadow"
 1214 menu$(3)="Soft multiple shadow"
 1215 menu$(4)="Single shadow - close"
 1216 menu$(5)="Single shadow - wide"
 1217 menu$(6)="Grey block shadow"
 1218 menu$(7)="Yellow block shadow"
 1219 menu$(8)="Cyan block shadow"
 1220 menu$(9)="Green block shadow"
 1221 menu$(10)="Magenta block shadow"
 1222 menu$(11)="Red block shadow"
 1223 menu$(12)="Blue block shadow"
 1224 menu$(13)="Solid letter effect"
 1225 menu$(14)="No shadow"
 1226 menu$(15)="*":PROCmenu(0,90,-1)
 1227 CASE menu_box% OF
 1228 WHEN 1,2:PROCrgb_sliders(0):SC%=RGB%
 1229 WHEN 3:real_shadow1%=1:shadow%=0:text_block_shadow%=0
 1230 WHEN 4:real_shadow1%=2:shadow%=0:text_block_shadow%=0
 1231 WHEN 5:real_shadow1%=3:shadow%=0:text_block_shadow%=0
 1232 WHEN 6:!shadow_flag=0:!clear_mask=%01000010000100000100001000010000
 1233 WHEN 7:!shadow_flag=1:!clear_mask=%01111100000000000111110000000000
 1234 WHEN 8:!shadow_flag=1:!clear_mask=%00000000000111110000000000011111
 1235 WHEN 9:!shadow_flag=1:!clear_mask=%01111100000111110111110000011111
 1236 WHEN 10:!shadow_flag=1:!clear_mask=%00000011111000000000001111100000
 1237 WHEN 11:!shadow_flag=1:!clear_mask=%01111111111000000111111111100000
 1238 WHEN 12:!shadow_flag=1:!clear_mask=%00000011111111110000001111111111
 1239 WHEN 13:SC%=0:text_block_shadow%=0:shadow%=0:real_shadow1%=0
 1240 WHEN 14:SC%=0:text_block_shadow%=0:shadow%=0:real_shadow1%=0
 1241 ENDCASE
 1242 IF menu_box%<3 THEN shadow%=TRUE:text_block_shadow%=0:real_shadow1%=0
 1243 IF menu_box%>5 AND menu_box%<13 THEN text_block_shadow%=TRUE:outline_width%=0:shadow%=0:real_shadow1%=0
 1244 IF menu_box%=2 THEN grad%=TRUE ELSE grad%=0
 1245 IF menu_box%=13 THEN solid%=TRUE ELSE solid%=0
 1246 menu_box%=99
 1247 ENDPROC
 1248
 1249 DEF PROCtext_colour_menu
 1250 menu$(0)="Text colour           "
 1251 menu$(1)="Plain WHITE text"
 1252 menu$(2)="Plain YELLOW text"
 1253 menu$(3)="Plain CYAN text"
 1254 menu$(4)="Plain GREEN text"
 1255 menu$(5)="Plain MAGENTA text"
 1256 menu$(6)="Plain RED text"
 1257 menu$(7)="Plain BLUE text"
 1258 menu$(8)="Plain BLACK text"
 1259 menu$(9)="Grad YELLOW to RED"
 1260 menu$(10)="Grad YELLOW to GREEN"
 1261 menu$(11)="Grad CYAN to GREEN"
 1262 menu$(12)="Grad CYAN to BLUE"
 1263 menu$(13)="Grad MAGENTA to RED"
 1264 menu$(14)="Grad MAGENTA to BLUE"
 1265 menu$(15)="Grad WHITE to MAGENTA"
 1266 menu$(16)="Grad WHITE to RED"
 1267 menu$(17)="Grad WHITE to BLUE"
 1268 menu$(18)="Grad RED to WHITE"
 1269 menu$(19)="Grad GREEN to WHITE"
 1270 menu$(20)="Grad BLUE to WHITE"
 1271 menu$(21)="Colour selector"
 1272 menu$(22)="*":PROCmenu(0,90,-1)
 1273 CASE menu_box% OF
 1274 WHEN 1:TC%=&7FFF:TD%=0:TL%=0
 1275 WHEN 2:TC%=&03FF:TD%=0:TL%=0
 1276 WHEN 3:TC%=&7FE0:TD%=0:TL%=0
 1277 WHEN 4:TC%=&03E0:TD%=0:TL%=0
 1278 WHEN 5:TC%=&7C1F:TD%=0:TL%=0
 1279 WHEN 6:TC%=&001F:TD%=0:TL%=0
 1280 WHEN 7:TC%=&7C00:TD%=0:TL%=0
 1281 WHEN 8:TC%=&0000:TD%=0:TL%=0
 1282 WHEN 9:TC%=&03FF:TD%=32:TL%=31
 1283 WHEN 10:TC%=&03FF:TD%=1:TL%=992
 1284 WHEN 11:TC%=&7FE0:TD%=1024:TL%=992
 1285 WHEN 12:TC%=&7FE0:TD%=32:TL%=31744
 1286 WHEN 13:TC%=&7C1F:TD%=1024:TL%=31
 1287 WHEN 14:TC%=&7C1F:TD%=1:TL%=31744
 1288 WHEN 15:TC%=&7FFF:TD%=32:TL%=31775
 1289 WHEN 16:TC%=&7FFF:TD%=1056:TL%=31
 1290 WHEN 17:TC%=&7FFF:TD%=33:TL%=31744
 1291 WHEN 18:TC%=31:TD%=1056:TL%=&7FFF:REM First incremented gradation
 1292 WHEN 19:TC%=&03E0:TD%=&401:TL%=&7FFF
 1293 WHEN 20:TC%=&7C00:TD%=33:TL%=&7FFF
 1294 WHEN 21:PROCrgb_sliders(0):TC%=RGB%:TD%=0:TL%=0
 1295 ENDCASE
 1296 IF menu_box%<18 OR menu_box%=21 OR menu_box%=99 THEN
 1297  col_idec%=0
 1298 ELSE
 1299  col_idec%=1
 1300 ENDIF
 1301 menu_box%=99
 1302 ENDPROC
 1303
 1304 DEF PROCtext_outline_menu
 1305 REPEAT
 1306 menu$(0)="  Text outline    "
 1307 IF text_out_col%=&7FFF AND outline_width%>0 m$=CHR$128+" " ELSE m$="  "
 1308 menu$(1)=m$+"White outline"
 1309 IF text_out_col%=&03FF AND outline_width%>0 m$=CHR$128+" " ELSE m$="  "
 1310 menu$(2)=m$+"Yellow outline"
 1311 IF text_out_col%=&7FE0 AND outline_width%>0 m$=CHR$128+" " ELSE m$="  "
 1312 menu$(3)=m$+"Cyan outline"
 1313 IF text_out_col%=&03E0 AND outline_width%>0 m$=CHR$128+" " ELSE m$="  "
 1314 menu$(4)=m$+"Green outline"
 1315 IF text_out_col%=&7C1F AND outline_width%>0 m$=CHR$128+" " ELSE m$="  "
 1316 menu$(5)=m$+"Magenta outline"
 1317 IF text_out_col%=&001F AND outline_width%>0 m$=CHR$128+" " ELSE m$="  "
 1318 menu$(6)=m$+"Red outline"
 1319 IF text_out_col%=&7C00 AND outline_width%>0 m$=CHR$128+" " ELSE m$="  "
 1320 menu$(7)=m$+"Blue outline"
 1321 IF text_out_col%=&0000 AND outline_width%>0 m$=CHR$128+" " ELSE m$="  "
 1322 menu$(8)=m$+"Black outline"
 1323 menu$(9)="  Colour selector"
 1324 menu$(10)="  ----------------"
 1325 IF outline_width%=1 m$=CHR$128+" " ELSE m$="  "
 1326 menu$(11)=m$+"Narrow outline"
 1327 IF outline_width%=2 m$=CHR$128+" " ELSE m$="  "
 1328 menu$(12)=m$+"Wide outline"
 1329 IF outline_width%=3 m$=CHR$128+" " ELSE m$="  "
 1330 menu$(13)=m$+"Relief outline"
 1331 IF outline_width%=0 m$=CHR$128+" " ELSE m$="  "
 1332 menu$(14)=m$+"No outline"
 1333 menu$(15)="*":PROCmenu(0,90,-1)
 1334 CASE menu_box% OF
 1335 WHEN 1:text_out_col%=&7FFF
 1336 WHEN 2:text_out_col%=&03FF
 1337 WHEN 3:text_out_col%=&7FE0
 1338 WHEN 4:text_out_col%=&03E0
 1339 WHEN 5:text_out_col%=&7C1F
 1340 WHEN 6:text_out_col%=&001F
 1341 WHEN 7:text_out_col%=&7C00
 1342 WHEN 8:text_out_col%=&0000
 1343 WHEN 9:PROCrgb_sliders(0):text_out_col%=RGB%
 1344 WHEN 11:outline_width%=1
 1345 WHEN 12:outline_width%=2
 1346 WHEN 13:outline_width%=3
 1347 WHEN 14:outline_width%=0
 1348 ENDCASE
 1349 UNTIL menu_box%=9 OR menu_box%=99
 1350 ENDPROC
 1351
 1352 DEF PROCfont_text(mask_flag%)
 1353 F%=0
 1354 REPEAT:PROCfont_list_select:UNTIL box%<78 OR end%=TRUE
 1355 font$=cat$(box%-1)
 1356 IF font$<>"" THEN
 1357 CLS:GCOL255,255,255:LINE 0,400,1280,400:overlay%=0
 1358 ON:COLOUR255,255,0:PRINT TAB(1,40)"Font chosen is       : "font$
 1359 COLOUR255,255,255:INPUT LINE''" Enter caption line 1 : "text1$
 1360 IF text1$="" THEN text1$=call$:PRINT TAB(24,43)text1$
 1361 INPUT LINE'" Enter caption line 2 : "text2$
 1362 INPUT''" Enter X point size   : "xp%
 1363 IF xp%<10 OR xp%>200 THEN xp%=64:PRINT TAB(24,48);xp%;"  "
 1364 INPUT''" Enter Y point size   : "yp%
 1365 IF yp%<10 OR yp%>400 THEN yp%=xp%:PRINT TAB(24,51);yp%;"  "
 1366 IF NOT mask_flag% THEN
 1367 INPUT''" Horiz or Vert (H/V)  : "hv$
 1368 CLS:OFF:WAIT:transform%=TRUE:hv2$=hv$
 1369 IF hv$="V" OR hv$="v" THEN
 1370 PROCvertical_write(font$,text1$,16,840,xp%,yp%,1)
 1371 hv$="V":transform%=0
 1372 ELSE
 1373 PROCplot_text
 1374 ENDIF
 1375 OFF:WAIT
 1376 PROCgrab_text:IF transform% THEN PROCtransform_text
 1377 PROCdismini
 1378 ENDIF
 1379 ENDIF:OFF:WAIT
 1380 IF font$="" AND NOT mask_flag% THEN PROCdismini ELSE text%=TRUE
 1381 ENDPROC
 1382
 1383 DEF PROCplot_text
 1384 IF text2$="" THEN
 1385 PROCwrite(font$,text1$,16,556,xp%,yp%,1)
 1386 ELSE
 1387 IF font%<>-1 SYS "Font_LoseFont",font%
 1388 SYS "Font_FindFont",,font$,xp%*16,yp%*16 TO font%
 1389 SYS "Font_CharBBox",font%,ASC"A",16 TO,,,r3%,r4%
 1390 PROCwrite(font$,text1$,16,650,xp%,yp%,1)
 1391 PROCwrite(font$,text2$,16,650-r4%-32,xp%,yp%,1)
 1392 Ymax%=r4%+24:hv$="V"
 1393 ENDIF
 1394 ENDPROC
 1395
 1396 DEF PROCtransform_text
 1397 mul=65536:a=1:b=0:c=0:d=1:e=0:f=0:try%=0:xp_start%=xp%:yp_start%=yp%
 1398 ORIGIN 0,0:GCOL 0,0,136:RECTANGLE FILL 0,0,1280,1024
 1399 REPEAT
 1400 IF try% ORIGIN 0,0:GCOL 0,0,136:RECTANGLE FILL 0,0,1280,1024
 1401 PROCplot_text:PROCgrab_text
 1402 Y1%=1040-((S%-screen%)/1280)*2
 1403 Y2%=1000-((E%-screen%)/1280)*2
 1404 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
 1405 SYS sprswi%,256+16,spr%,"t",0,0,Y2%,W%+12,Y1%
 1406 REPEAT:ORIGIN 0,0:GCOL 0,0,136:RECTANGLE FILL 0,0,1280,1024
 1407 GCOL 200,200,200:RECTANGLE FILL 0,0,1280,370
 1408 PROCraised_block(784,16,448,342)
 1409 GCOL 255,180,100:RECTANGLE FILL 784,320,444,38
 1410 SYS sprswi%,256+52,spb%,"sh_l",1020,260,8,0,translate%
 1411 SYS sprswi%,256+52,spb%,"sh_r",1130,260,8,0,translate%
 1412 SYS sprswi%,256+52,spb%,"sh_u",1020,200,8,0,translate%
 1413 SYS sprswi%,256+52,spb%,"sh_d",1130,200,8,0,translate%
 1414 SYS sprswi%,256+52,spb%,"up2",1084,156,8,0,translate%
 1415 SYS sprswi%,256+52,spb%,"left",1040,120,8,0,translate%
 1416 SYS sprswi%,256+52,spb%,"right",1130,120,8,0,translate%
 1417 SYS sprswi%,256+52,spb%,"down",1084,82,8,0,translate%
 1418 SYS sprswi%,256+52,spb%,"left",810,220,8,0,translate%
 1419 SYS sprswi%,256+52,spb%,"right",930,220,8,0,translate%
 1420 SYS sprswi%,256+52,spb%,"left",810,100,8,0,translate%
 1421 SYS sprswi%,256+52,spb%,"right",930,100,8,0,translate%
 1422 PROCshow_point_sizes
 1423 PROCwrite2("x/y point",812,272,4)
 1424 PROCwrite2("y point",828,152,4)
 1425 PROCraised_block(808,32,120,32)
 1426 PROCraised_block(948,32,120,32)
 1427 PROCraised_block(1088,32,120,32)
 1428 PROCwrite2("UNDO",822,32,4)
 1429 PROCwrite2("TRY",970,32,4)
 1430 PROCwrite2("OK",1116,32,4)
 1431 PROCwrite2("  Re-size        Transform",800,324,4)
 1432 PROCwrite2("Do not allow transformation process to move",50,324,4)
 1433 PROCwrite2("caption into this grey area.",50,284,4)
 1434 PROCwrite2("Click adjust on the 'compass points'",50,220,4)
 1435 PROCwrite2("to re-position caption if necessary.",50,180,4)
 1436 PROCwrite2("Click OK or press <return> to finish.",50,120,4)
 1437
 1438 GCOL 0,0,0:LINE 988,86,988,294
 1439 GCOL 255,255,255:LINE 992,86,992,294
 1440 MOUSE RECTANGLE 784,16,448,338
 1441 ORIGIN 0,500:quit%=0:reset%=0:try%=0
 1442 REPEAT
 1443 tran%!0=a*mul:tran%!4=b*mul
 1444 tran%!8=c*mul:tran%!12=d*mul
 1445 tran%!16=e*mul:tran%!20=f*mul
 1446 SYS sprswi%,256+56,spr%,"t",%00,,8,tran%:OFF:WAIT
 1447 REPEAT:MOUSE X,Y,B:K=INKEY(5):UNTIL B<>0 OR K=13
 1448 point_button$=""
 1449
 1450 IF B=4 OR B=1 THEN
 1451
 1452 IF ABS(X-830)<28 AND ABS(Y--260)<28 point_button$="xm"
 1453 IF ABS(X-942)<28 AND ABS(Y--260)<28 point_button$="xp"
 1454 IF ABS(X-830)<28 AND ABS(Y--380)<28 point_button$="ym"
 1455 IF ABS(X-942)<28 AND ABS(Y--380)<28 point_button$="yp"
 1456
 1457 IF ABS(X-868)<60 AND ABS(Y--450)<24 THEN reset%=TRUE
 1458 IF ABS(X-1008)<60 AND ABS(Y--450)<24 THEN try%=TRUE
 1459 IF ABS(X-1148)<60 AND ABS(Y--450)<24 THEN quit%=TRUE
 1460 IF ABS(X-1044)<28 AND ABS(Y--218)<28 THEN c-=0.01
 1461 IF ABS(X-1044)<28 AND ABS(Y--278)<28 THEN b+=0.01
 1462 IF ABS(X-1156)<28 AND ABS(Y--218)<28 THEN c+=0.01
 1463 IF ABS(X-1156)<28 AND ABS(Y--278)<28 THEN b-=0.01
 1464 ENDIF
 1465
 1466 IF point_button$<>"" OR reset% THEN
 1467 CASE point_button$ OF
 1468 WHEN "xm":IF xp%>10 xp%-=2:yp%-=2
 1469 WHEN "xp":IF xp%<200 xp%+=2:yp%+=2
 1470 WHEN "ym":IF yp%>10 yp%-=2
 1471 WHEN "yp":IF yp%<200 yp%+=2
 1472 ENDCASE
 1473 IF reset% xp%=xp_start%:yp%=yp_start%
 1474 ORIGIN 0,0
 1475 GCOL 32 TINT0:RECTANGLE FILL 0,372,1280,660
 1476 PROCplot_text:PROCgrab_text
 1477 Y1%=1040-((S%-screen%)/1280)*2
 1478 Y2%=1000-((E%-screen%)/1280)*2
 1479 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
 1480 SYS sprswi%,256+16,spr%,"t",0,0,Y2%,W%+12,Y1%
 1481 RECTANGLE FILL 0,372,1280,660
 1482 PROCshow_point_sizes
 1483 ORIGIN 0,500
 1484 ENDIF
 1485
 1486 IF ABS(X-1100)<20 AND ABS(Y--330)<20 THEN
 1487 IF B=1 THEN f+=0.02 ELSE d+=0.02
 1488 ENDIF
 1489 IF ABS(X-1100)<20 AND ABS(Y--394)<20 THEN
 1490 IF B=1 THEN f-=0.02 ELSE d-=0.02
 1491 ENDIF
 1492 IF ABS(X-1056)<20 AND ABS(Y--362)<20 THEN
 1493 IF B=1 THEN e-=0.02 ELSE a-=0.02
 1494 ENDIF
 1495 IF ABS(X-1140)<20 AND ABS(Y--362)<20 THEN
 1496 IF B=1 THEN e+=0.02 ELSE a+=0.02
 1497 ENDIF
 1498
 1499 IF K=13 THEN quit%=TRUE
 1500 K=INKEY(1):WAIT
 1501 IF reset% THEN PROCwait_no_button:mul=65536:a=1:b=0:c=0:d=1:e=0:f=0:try%=0
 1502 UNTIL quit% OR reset% OR try%
 1503 UNTIL quit% OR try%
 1504 IF b<0 THEN shad$="BL" ELSE shad$="BR"
 1505 ORIGIN 0,0
 1506 PROCgrab_text
 1507 IF try% THEN PROCdisplay_text
 1508 IF B=4 THEN try%=0:menu_box%=1
 1509 UNTIL NOT try%
 1510 ORIGIN 0,0:MOUSE RECTANGLE 0,0,1280,1024
 1511 ENDPROC
 1512
 1513 DEF PROCshow_point_sizes
 1514 GCOL 255,255,255
 1515 RECTANGLE FILL 856,218,68,40:RECTANGLE FILL 856,98,68,40
 1516 xp$=STR$ xp%:yp$=STR$ yp%
 1517 IF LEN xp$<3 xp$=" "+xp$
 1518 IF LEN yp$<3 yp$=" "+yp$
 1519 PROCwrite2(xp$,854,222,0):PROCwrite2(yp$,854,102,0)
 1520 ENDPROC
 1521
 1522 DEF PROCgreyscale32
 1523 g%=0:FOR X%=0 TO 1240 STEP40:GCOL g%,g%,g%
 1524 RECTANGLE FILL X%,0,40,1024:g%+=8:NEXT
 1525 PROCupmini
 1526 ENDPROC
 1527
 1528 DEF PROCtopscale(s%)
 1529 IF s%<>2 THEN PROCdisplay_memory
 1530 IF s%=1 THEN Y%=0 ELSE Y%=960
 1531 ORIGIN 0,0:g%=0:FOR X%=0 TO 1200 STEP80:GCOL g%,g%,g%
 1532 RECTANGLE FILL X%,Y%,80,1024:g%+=16:NEXT
 1533 IF s%<>2 THEN PROCupmini
 1534 ENDPROC
 1535
 1536 DEF PROCtopscale2(s%)
 1537 IF s%<>2 THEN PROCdisplay_memory
 1538 GCOL 48,48,184:RECTANGLE FILL 0,988,200,44
 1539 IF s%<>1 THEN
 1540 GCOL 255,255,255:RECTANGLE FILL 0,960,200,26
 1541 GCOL 255,0,0:RECTANGLE FILL 8,964,60,18
 1542 GCOL 0,255,0:RECTANGLE FILL 68,964,62,18
 1543 GCOL 0,0,255:RECTANGLE FILL 128,964,62,18
 1544 ENDIF
 1545 IF s%=1 THEN Y%=988 ELSE Y%=960
 1546 ORIGIN 0,0:g%=0:FOR X=200 TO 1212.5 STEP67.5:GCOL g%,g%,g%
 1547 RECTANGLE FILL X,Y%,68,64:g%+=16:NEXT
 1548 IF s%<>2 THEN PROCupmini
 1549 ENDPROC
 1550
 1551 DEF PROCtools
 1552 GCOL3,63 TINT192:RECTANGLE FILL 900,4,52,50
 1553 REPEAT
 1554 menu$(0)="  Tools and utilities"
 1555 menu$(2)="  Repair QRM"
 1556 menu$(3)="  Flood fill"
 1557 menu$(4)="  Paintbrush"
 1558 menu$(5)="  Paint with sprite"
 1559 menu$(6)="  Cloning brush"
 1560 menu$(7)="  Grad border - full>"
 1561 menu$(8)="  Grad border - 480>"
 1562 menu$(9)="  Pipe border - full>"
 1563 menu$(10)="  Pipe border - 480>"
 1564 menu$(11)="  TX test tones>"
 1565 IF auto_save% THEN m$=CHR$128+" " ELSE m$="  "
 1566 menu$(12)=m$+"Auto save mode"
 1567 IF X4% THEN m$=CHR$128+" " ELSE m$="  "
 1568 menu$(13)=m$+"TX tone X4 mode"
 1569 IF bypass% THEN m$=CHR$128+" " ELSE m$="  "
 1570 menu$(14)=m$+"Bypass save check"
 1571 menu$(15)="  On-line manual"
 1572 menu$(16)="  Repeater mode"
 1573 IF beacon_on% THEN m$=CHR$128+" " ELSE m$="  "
 1574 menu$(17)=m$+"Repeater beacon"
 1575 IF call$="G3SID" OR call$="G0WYR" THEN
 1576  IF call$="G3SID" THEN c$="G0WYR" ELSE c$="G3SID"
 1577   menu$(18)="  Set callsign to "+c$
 1578   menu$(19)="*"
 1579  ELSE
 1580   menu$(18)="*"
 1581  ENDIF
 1582 PROCmenu(494,90,0)
 1583 CASE menu_box% OF
 1584 WHEN 1:PROCdismini
 1585 WHEN 2:PROCrepairQRM
 1586 WHEN 3:PROCflood_fill
 1587 WHEN 4:PROCpaintbrush
 1588 WHEN 5:PROCpaint_with_sprite
 1589 WHEN 6:PROCcloning_brush(16)
 1590 WHEN 7,8:PROCborder_menu
 1591 WHEN 9,10:PROCpipe_border_menu(menu_box%)
 1592 WHEN 11:PROCtx_test_tone_menu:menu_box%=11
 1593 WHEN 12:auto_save%=NOT(auto_save%):menu_redraw%=TRUE
 1594 WHEN 13:X4%=NOT(X4%):PROCtx_params_setup:menu_redraw%=TRUE
 1595 WHEN 14:bypass%=NOT(bypass%):menu_redraw%=TRUE
 1596 WHEN 15:PROCon_line_manual
 1597 WHEN 16:PROCrepeater_control
 1598 WHEN 17:beacon_on%=NOT(beacon_on%):menu_redraw%=TRUE
 1599 WHEN 18:IF call$="G3SID" THEN call$="G0WYR" ELSE call$="G3SID"
 1600         IF call$="G0WYR" THEN
 1601          OSCLI("LOAD <Pscan$Dir>.Resources.G0WYR.PscanTX "+STR$~tx_code%)
 1602         ELSE
 1603          OSCLI("LOAD <Pscan$Dir>.Resources.PscanTX "+STR$~tx_code%)
 1604         ENDIF
 1605         PROCdismini
 1606 ENDCASE
 1607 UNTIL (menu_box%<11 OR menu_box%>14) AND menu_box%<>17 AND menu_box%<>99
 1608 ENDPROC
 1609
 1610 DEF PROCtx_test_tone_menu
 1611 REPEAT
 1612 menu$(0)="TX test tones"
 1613 N=1:FOR F=1000 TO 1700 STEP100:menu$(N)=STR$ F+" Hz":N+=1:NEXT
 1614 menu$(9)="1750 Hz"
 1615 N=10:FOR F=1800 TO 2400 STEP100:menu$(N)=STR$ F+" Hz":N+=1:NEXT
 1616 menu$(17)="*":PROCmenu(0,90,-1)
 1617 CASE menu_box% OF
 1618 WHEN 1,2,3,4,5,6,7,8:PROCtx_test_tone(900+menu_box%*100)
 1619 WHEN 9:PROCtx_test_tone(1750)
 1620 WHEN 10,11,12,13,14,15,16:PROCtx_test_tone(1800+(menu_box%-10)*100)
 1621 ENDCASE
 1622 UNTIL menu_box%=99
 1623 ENDPROC
 1624
 1625 DEF PROCgrab_menu
 1626 GCOL3,63 TINT192:RECTANGLE FILL 1028,4,52,50
 1627 REPEAT
 1628 menu$(0)="  Grab screen area"
 1629 menu$(2)="  Grab screen area"
 1630 menu$(3)="  Grab entire screen"
 1631 IF plot_border%=1 t$=CHR$128+" " ELSE t$="  "
 1632 menu$(4)=t$+"Plinth options>"
 1633 IF plot_border%=2 t$=CHR$128+" " ELSE t$="  "
 1634 menu$(5)=t$+"Border options>"
 1635 IF plot_shadow% t$=CHR$128+" " ELSE t$="  "
 1636 menu$(6)=t$+"Shadow options>"
 1637 menu$(7)="  Quad display"
 1638 menu$(8)="  Quad border>"
 1639 menu$(9)="  Plot entire screen"
 1640 menu$(10)="  Plot area - flipped"
 1641 menu$(11)="  Plot area - normal"
 1642 menu$(12)="*":PROCmenu(494,90,0)
 1643 CASE menu_box% OF
 1644 WHEN 1:PROCdismini
 1645 WHEN 2:PROCgrab_rectangle(0)
 1646 WHEN 3:PROCgrab_rectangle(-1):entire%=TRUE
 1647 WHEN 4:PROCplot_border_menu:menu_box%=4:menu_redraw%=TRUE
 1648 WHEN 5:PROCplot_border97_menu:menu_box%=5:menu_redraw%=TRUE
 1649 WHEN 6:PROCplot_shadow_menu:menu_box%=6:menu_redraw%=TRUE
 1650 WHEN 7:PROCquad_display
 1651 WHEN 8:PROCquad_border_menu
 1652 ENDCASE
 1653 IF menu_box%=9 THEN
 1654 IF entire% THEN PROCplot_grabbed_area(1) ELSE menu_box%=4
 1655 ENDIF
 1656 IF menu_box%=10 THEN PROCplot_grabbed_area(-1)
 1657 IF menu_box%=11 THEN PROCplot_grabbed_area(0)
 1658 UNTIL menu_box%<>4 AND menu_box%<>5 AND menu_box%<>6 AND menu_box%<>99
 1659 IF menu_box%=3 THEN entire%=TRUE
 1660 IF menu_box%=2 THEN entire%=0
 1661 ENDPROC
 1662
 1663 DEF PROCplot_shadow_menu
 1664 menu$(0)="Plot shadow options" 
 1665 menu$(1)="Real shadow effect"
 1666 menu$(2)="No shadow"
 1667 menu$(3)="*":PROCmenu(0,90,-1)
 1668 IF menu_box%=1 THEN plot_shadow%=1
 1669 IF menu_box%=2 THEN plot_shadow%=0
 1670 ENDPROC
 1671
 1672 DEF PROCplot_border97_menu
 1673 menu$(0)="Border options  "
 1674 menu$(1)="White"
 1675 menu$(2)="Yellow"
 1676 menu$(3)="Cyan"
 1677 menu$(4)="Green"
 1678 menu$(5)="Magenta"
 1679 menu$(6)="Red"
 1680 menu$(7)="Blue"
 1681 menu$(8)="Purple-red"
 1682 menu$(9)="Magenta-green"
 1683 menu$(10)="Green-gold"
 1684 menu$(11)="Multi-colour 1"
 1685 menu$(12)="Multi-colour 2"
 1686 menu$(13)="Multi-colour 3"
 1687 menu$(14)="Multi-colour 4"
 1688 menu$(15)="No border"
 1689 menu$(16)="*":PROCmenu(0,90,-1)
 1690 CASE menu_box% OF
 1691 WHEN 1:pbr%=128:pbg%=128:pbb%=128:pbri%=8:pbgi%=8:pbbi%=8
 1692 WHEN 2:pbr%=128:pbg%=128:pbb%=0:pbri%=8:pbgi%=8:pbbi%=0
 1693 WHEN 3:pbr%=0:pbg%=128:pbb%=128:pbri%=0:pbgi%=8:pbbi%=8
 1694 WHEN 4:pbr%=0:pbg%=128:pbb%=0:pbri%=0:pbgi%=8:pbbi%=0
 1695 WHEN 5:pbr%=128:pbg%=0:pbb%=128:pbri%=8:pbgi%=0:pbbi%=8
 1696 WHEN 6:pbr%=128:pbg%=0:pbb%=0:pbri%=8:pbgi%=0:pbbi%=0
 1697 WHEN 7:pbr%=0:pbg%=0:pbb%=128:pbri%=0:pbgi%=0:pbbi%=8
 1698 WHEN 8:pbr%=128:pbg%=0:pbb%=64:pbri%=8:pbgi%=0:pbbi%=8
 1699 WHEN 9:pbr%=64:pbg%=128:pbb%=64:pbri%=8:pbgi%=8:pbbi%=8
 1700 WHEN 10:pbr%=128:pbg%=80:pbb%=32:pbri%=8:pbgi%=8:pbbi%=0
 1701 WHEN 11:pbr%=64:pbg%=32:pbb%=64:pbri%=4:pbgi%=4:pbbi%=8
 1702 WHEN 12:pbr%=0:pbg%=128:pbb%=64:pbri%=4:pbgi%=8:pbbi%=12
 1703 WHEN 13:pbr%=128:pbg%=128:pbb%=64:pbri%=4:pbgi%=8:pbbi%=12
 1704 WHEN 14:pbr%=128:pbg%=128:pbb%=64:pbri%=4:pbgi%=8:pbbi%=8
 1705 WHEN 15:plot_border%=0
 1706 ENDCASE
 1707 IF menu_box%>0 AND menu_box%<15 THEN plot_border%=2
 1708 ENDPROC
 1709
 1710 DEF PROCplot_border_menu
 1711 menu$(0)="Plinth options  "
 1712 menu$(1)="White"
 1713 menu$(2)="Yellow"
 1714 menu$(3)="Cyan"
 1715 menu$(4)="Green"
 1716 menu$(5)="Magenta"
 1717 menu$(6)="Red"
 1718 menu$(7)="Blue"
 1719 menu$(8)="Black"
 1720 menu$(9)="Colour selector"
 1721 menu$(10)="No plinth"
 1722 menu$(11)="*":PROCmenu(0,90,-1)
 1723 CASE menu_box% OF
 1724 WHEN 1:pbr%=255:pbg%=255:pbb%=255
 1725 WHEN 2:pbr%=255:pbg%=255:pbb%=0
 1726 WHEN 3:pbr%=0:pbg%=255:pbb%=255
 1727 WHEN 4:pbr%=0:pbg%=255:pbb%=0
 1728 WHEN 5:pbr%=255:pbg%=0:pbb%=255
 1729 WHEN 6:pbr%=255:pbg%=0:pbb%=0
 1730 WHEN 7:pbr%=0:pbg%=0:pbb%=255
 1731 WHEN 8:pbr%=0:pbg%=0:pbb%=0
 1732 WHEN 9:PROCrgb_sliders(0):pbr%=red%:pbg%=grn%:pbb%=blu%
 1733 WHEN 10:plot_border%=0
 1734 ENDCASE
 1735 IF menu_box%>0 AND menu_box%<10 THEN plot_border%=1
 1736 ENDPROC
 1737
 1738 DEF PROCpaintbrush
 1739 PROCdisplay_memory:PROCwait_no_button
 1740 REPEAT
 1741 REPEAT:MOUSE X,Y,B:UNTIL B<>0
 1742 IF Y>8 THEN
 1743 IF B=4 THEN GCOL red%,grn%,blu%:CIRCLE FILL X,Y,brush_size%
 1744 IF B=2 THEN PROCupload_memory:PROCrgb_sliders(-1):PROCdisplay_memory
 1745 IF B=1 THEN
 1746 RGB%=POINT(X,Y):red%=(RGB%AND31)*8
 1747 grn%=((RGB%>>5)AND31)*8:blu%=((RGB%>>10)AND31)*8
 1748 ENDIF
 1749 ENDIF
 1750 UNTIL Y<9
 1751 PROCupmini:PROCwait_no_button
 1752 ENDPROC
 1753
 1754 DEF PROCtest_patterns
 1755 GCOL3,63 TINT192:RECTANGLE FILL 772,4,52,50
 1756 REPEAT
 1757 menu$(0)="  Test patterns"
 1758 menu$(2)="  32 step greyscale"
 1759 menu$(3)="  16 step greyscale"
 1760 menu$(4)="  Test Card"
 1761 menu$(5)="  Colour Bars"
 1762 menu$(6)="  TOP greyscale - type 1"
 1763 menu$(7)="  TOP greyscale - type 2 "
 1764 menu$(8)="  TOP greyscale - short"
 1765 IF header_text% m$=CHR$128+" " ELSE m$="  "
 1766 menu$(9)=m$+"Header text on/off"
 1767 menu$(10)="  Hamcolor FAX header"
 1768 menu$(11)="  Monochrome FAX header"
 1769 menu$(12)="  Chequer board"
 1770 menu$(13)="  Star field"
 1771 menu$(14)="  Opening screen"
 1772 menu$(15)="  Repeater beacon page"
 1773 menu$(16)="*":PROCmenu(494,90,0)
 1774 CASE menu_box% OF
 1775 WHEN 1:PROCdismini
 1776 WHEN 2:PROCgreyscale32
 1777 WHEN 3:PROCtopscale(1)
 1778 WHEN 4:PROCtest_card
 1779 WHEN 5:PROCcolour_bars
 1780 WHEN 6:PROCtopscale(0)
 1781 WHEN 7:PROCtopscale2(0)
 1782 WHEN 8:PROCtopscale2(1)
 1783 WHEN 9:header_text%=NOT(header_text%):menu_redraw%=TRUE
 1784 WHEN 10:PROCfax_header(0)
 1785 WHEN 11:PROCfax_header(-1)
 1786 WHEN 12:PROCchequer
 1787 WHEN 13:PROCstar_field:PROCupmini
 1788 WHEN 14:PROCsplash2:PROCupmini
 1789 WHEN 15:PROCrepeater_beacon_text
 1790 ENDCASE
 1791 UNTIL menu_box%<>9
 1792 ENDPROC
 1793
 1794 DEF PROCcolour_bars
 1795 RESTORE +0
 1796 FOR X%=0 TO 1120 STEP160:READ r%,g%,b%
 1797 GCOL r%,g%,b%:RECTANGLE FILL X%,0,160,1024:NEXT
 1798 DATA 255,255,255,255,255,0,0,255,255,0,255,0,255,0,255
 1799 DATA 255,0,0,0,0,255,0,0,0
 1800 PROCupmini
 1801 ENDPROC
 1802
 1803 DEF PROCchequer
 1804 GCOL 0,0,0:RECTANGLE FILL 0,0,1280,1024
 1805 GCOL 255,255,255
 1806 FOR X%=0 TO 1280 STEP320
 1807 RECTANGLE FILL X%,0,160,1024:NEXT
 1808 GCOL 3,255,255,255
 1809 FOR Y%=0 TO 1024 STEP320
 1810 RECTANGLE FILL 0,Y%,1280,160
 1811 NEXT:PROCupload_memory:PROCtopscale2(0)
 1812 ENDPROC
 1813
 1814 DEF PROCupmini
 1815 PROCupload_memory:PROCmini_pad
 1816 ENDPROC
 1817
 1818 DEF PROCdismini
 1819 PROCdisplay_memory:PROCmini_pad
 1820 ENDPROC
 1821
 1822 DEF PROCmouse_cross1
 1823 mouse1%?&01=2:mouse1%!&06=mouse1%+&0A
 1824 SYS "OS_Word",&15,mouse1%
 1825 ENDPROC
 1826 DEF PROCmouse_cross2
 1827 mouse2%?&01=2:mouse2%!&06=mouse2%+&0A
 1828 SYS "OS_Word",&15,mouse2%
 1829 ENDPROC
 1830 DEF PROCmouse3
 1831 mouse3%?&01=2:mouse3%!&06=mouse3%+&0A
 1832 SYS "OS_Word",&15,mouse3%
 1833 MOUSE ON 2:MOUSE COLOUR 1,0,255,255:MOUSE COLOUR 3,48,48,184
 1834 ENDPROC
 1835
 1836 DEF PROCrepairQRM
 1837 IF NOT(FNhigh_res_mode) THEN
 1838 H%=2:PROCmouse_cross2
 1839 ELSE
 1840 H%=1:PROCmouse_cross1
 1841 ENDIF
 1842 MOUSE ON 2:MC%=255:MOUSE COLOUR 1,MC%,MC%,MC%
 1843 SYS "OS_Byte",161,194 TO,,step%:MOUSE STEP H%
 1844 PROCdisplay_memory:REPEAT:PROCwait_no_button
 1845 REPEAT:MOUSE X,Y,B:UNTIL B<>0
 1846 IF H%=2 THEN
 1847 X=(X DIV 4)*4:Y=(Y DIV 4)*4
 1848 ELSE
 1849 X=(X DIV 2)*2:Y=(Y DIV 2)*2
 1850 ENDIF
 1851 PROCwait_no_button:GCOL 3,63 TINT192
 1852 IF B=2 THEN MC%=MC% EOR 255:MOUSE COLOUR 1,MC%,MC%,MC%
 1853 IF B=4 THEN
 1854 SX%=X:SY%=Y:LINE SX%,SY%,X,SY%
 1855 IF H%=2 THEN LINE SX%,SY%+2,X,SY%+2
 1856 REPEAT
 1857 REPEAT:MOUSE X1,Y,B
 1858 IF H%=2 THEN
 1859 X1=(X1 DIV 4)*4:Y=(Y DIV 4)*4
 1860 ELSE
 1861 X1=(X1 DIV 2)*2:Y=(Y DIV 2)*2
 1862 ENDIF
 1863 UNTIL X1<>X OR B<>0
 1864 LINE SX%,SY%,X,SY%:LINE SX%,SY%,X1,SY%
 1865 IF H%=2 THEN LINE SX%,SY%+2,X,SY%+2:LINE SX%,SY%+2,X1,SY%+2
 1866 X=X1:UNTIL B<>0
 1867 LINE SX%,SY%,X1,SY%
 1868 IF H%=2 THEN LINE SX%,SY%+2,X1,SY%+2
 1869 IF B=4 AND X1>SX% THEN
 1870 IF H%=2 AND Y<=SY% THEN Yoffset%=-2
 1871 IF H%=2 AND Y>SY% THEN Yoffset%=5
 1872 IF H%=1 AND Y<=SY% THEN Yoffset%=-1
 1873 IF H%=1 AND Y>SY% THEN Yoffset%=2
 1874 MOVE SX%,SY%+Yoffset%:MOVE BY X1-SX%,Yoffset%
 1875 PLOT&BF,SX%,SY%
 1876 ENDIF
 1877 ENDIF
 1878 UNTIL B=1:PROCupmini
 1879 MOUSE ON 1:MOUSE COLOUR 1,0,255,255:MOUSE STEP step%
 1880 ENDPROC
 1881
 1882 DEF PROCdisplay_text
 1883 PROCdisplay_memory:PROCwait_no_button:!colour_inc_or_dec=col_idec%
 1884 IF overlay% THEN
 1885 PROCplot_overlay_sprite
 1886 ELSE
 1887 !colour_store=0:MOUSE RECTANGLE -300,-300,1600,1400
 1888 IF hv$="V"ORhv$="v"THEN !vertical_start=(Ymax%+4)/2 ELSE !vertical_start=500
 1889
 1890 REPEAT
 1891  MOUSE X,Y,B
 1892  a%=(960-Y)DIV2*1280+X-20:a%=(a%DIV4)*4+screen%
 1893  !colour_store=TC%:!colour_limit=TL%
 1894  !colour_decrement=TD%:!colour_height=2
 1895  !opstart=a%:CALL output_sprite
 1896  REPEAT
 1897   MOUSE x,y,B
 1898  UNTIL x<>X OR y<>Y OR B<>0
 1899  PROCdisplay_memory
 1900 UNTIL B<>0
 1901 !colour_inc_or_dec=0
 1902
 1903 IF B=4 THEN
 1904
 1905 IF text_block_shadow% THEN
 1906  !shadow_start=a%-7680:!num_lines=text_lines%+12
 1907  !num_bytes=text_width%+16:CALL shadow
 1908  sy%=a%-7680-screen%:sy%=1024-(sy%DIV1280)*2:sx%=(a%-screen%)MOD1280
 1909  GCOL 208,208,208:RECTANGLE FILL sx%,sy%,text_width%+14,2:GCOL 0,0,0
 1910  RECTANGLE FILL sx%,(sy%-((text_lines%+12)*2))-2,text_width%+14,2
 1911  GCOL 180,180,180
 1912  RECTANGLE FILL sx%-2,(sy%-((text_lines%+12)*2))-2,2,(text_lines%+12)*2+4
 1913  GCOL 32,32,32
 1914  RECTANGLE FILL sx%+text_width%+14,(sy%-((text_lines%+12)*2))-2,2,(text_lines%+12)*2+2
 1915  ENDIF
 1916
 1917 IF real_shadow1%=1 THEN PROCreal_shadow1(10,shad$)
 1918 IF real_shadow1%=2 OR real_shadow1%=3 THEN PROCreal_shadow2(real_shadow1%)
 1919 IF shadow% THEN PROCshadow_text(5,shad$)
 1920 IF solid% THEN PROCsolid_text:outline_width%=0
 1921
 1922 IF outline_width%=1 OR outline_width%=2 THEN
 1923  !colour_decrement=0:!colour_limit=0
 1924  w%=2560*outline_width%:w2%=4*outline_width%
 1925  FOR J%=a%-w% TO a%+w% STEP1280
 1926   FOR N%=J%-w2% TO J%+w2% STEP4
 1927    !opstart=N%:!colour_store=text_out_col%:CALL output_sprite
 1928   NEXT
 1929  NEXT
 1930 ENDIF
 1931
 1932 IF outline_width%=3 THEN
 1933  REM new relief effect - outline on top and left edges
 1934  !colour_decrement=0:!colour_limit=0
 1935  !opstart=a%-2560-4:!colour_store=text_out_col%
 1936  CALL output_sprite
 1937  !opstart=a%-5120-8:!colour_store=text_out_col%
 1938  CALL output_sprite
 1939 ENDIF
 1940
 1941 !opstart=a%:!colour_store=TC%:!colour_limit=TL%
 1942 !colour_decrement=TD%:!colour_inc_or_dec=col_idec%
 1943
 1944 IF hv$="V"ORhv$="v" THEN
 1945  !vertical_start=(Ymax%+4)/2
 1946  !colour_height=2
 1947 ELSE
 1948  !vertical_start=500
 1949  !colour_height=1+(INT(text_lines%/40))
 1950 ENDIF
 1951
 1952 CALL output_sprite:PROCupload_memory
 1953
 1954 ELSE PROCdisplay_memory
 1955
 1956 ENDIF
 1957 ENDIF
 1958 MOUSE RECTANGLE 0,0,1280,1024
 1959 ENDPROC
 1960
 1961 DEF PROCshadow_text(size%,shad$)
 1962 IF outline_width%>0 THEN size%+=2
 1963 !colour_decrement=0:!colour_limit=0:x%=size%*4:sc%=SC%
 1964 IF shad$="BL" OR shad$="TL" THEN x%=-x%
 1965 FOR J%=a%+(size%*2560) TO a% STEP-2560
 1966 N%=J%+x%:!opstart=N%:!colour_store=sc%:CALL output_sprite
 1967 IF grad% THEN
 1968 r%=sc%AND31:g%=(sc%>>5)AND31:b%=(sc%>>10)AND31
 1969 IF r%>1 THEN r%-=2
 1970 IF g%>1 THEN g%-=2
 1971 IF b%>1 THEN b%-=2
 1972 sc%=(b%<<10)+(g%<<5)+r%
 1973 ENDIF
 1974 IF shad$="BL" OR shad$="TL" THEN x%+=4 ELSE x%-=4
 1975 NEXT
 1976 ENDPROC
 1977
 1978 DEF PROCsolid_text
 1979 !colour_decrement=0:!colour_limit=0:x%=-24:sc%=TC%
 1980 str=sc%AND31:stg=(sc%>>5)AND31:stb=(sc%>>10)AND31
 1981 stri=(str-str/3)/8
 1982 stgi=(stg-stg/3)/8
 1983 stbi=(stb-stb/3)/8
 1984 str=str/3:stg=stg/3:stb=stb/3
 1985 FOR J%=a%-(6*2560) TO a% STEP 2560
 1986 sc%=(stb<<10)+(stg<<5)+str
 1987 N%=J%+x%:!opstart=N%:!colour_store=sc%:CALL output_sprite
 1988 str=str+stri:stg=stg+stgi:stb=stb+stbi
 1989 x%+=4
 1990 NEXT
 1991 ENDPROC
 1992
 1993 DEF PROCreal_shadow1(size%,shad$)
 1994 FOR N%=0 TO 31
 1995 grndata?N%=N%-2:IF grndata?N%>31 THEN grndata?N%=0
 1996 NEXT
 1997 !colour_decrement=0:!colour_limit=0:x%=size%*4:sc%=SC%
 1998 !shadow_table_address=grndata:!colour_store=1
 1999 IF shad$="BL" OR shad$="TL" THEN x%=-x%
 2000 FOR J%=a%+(size%*2560) TO a%-2560*0 STEP-2560
 2001 N%=J%+x%:!opstart=N%:CALL output_sprite
 2002 IF shad$="BL" OR shad$="TL" THEN x%+=4 ELSE x%-=4
 2003 NEXT
 2004 FOR N%=0 TO 31:grndata?N%=N%-4:IF grndata?N%>31 THEN grndata?N%=0
 2005 NEXT
 2006 N%=a%-2564:!opstart=N%:CALL output_sprite
 2007 N%=a%-5128:!opstart=N%:CALL output_sprite
 2008 N%=a%-2560:!opstart=N%:CALL output_sprite
 2009 N%=a%-5120:!opstart=N%:CALL output_sprite
 2010 N%=a%-2556:!opstart=N%:CALL output_sprite
 2011 N%=a%-5116:!opstart=N%:CALL output_sprite
 2012 ENDPROC
 2013
 2014 DEF PROCreal_shadow2(s%)
 2015 FOR N%=0 TO 31:grndata?N%=N%/2:NEXT
 2016 !colour_decrement=0:!colour_limit=0
 2017 !shadow_table_address=grndata:!colour_store=1
 2018 IF s%=2 !opstart=a%+12*1282 ELSE !opstart=a%+20*1282
 2019 CALL output_sprite
 2020 ENDPROC
 2021
 2022 DEF PROCgrab_text
 2023 IF hv2$="V" OR hv2$="v" THEN
 2024 !ft_bottom=screen%+&9FB00
 2025 ELSE
 2026 !ft_bottom=screen%+&65E00
 2027 ENDIF
 2028 !ft_screen=screen%
 2029 S%=USR(find_top)
 2030 E%=USR(find_bottom)
 2031 !ft_right=S%:!frlines=(E%-S%)DIV1280+1
 2032 W%=USR(find_right)
 2033 text_width%=W%:!getwidth=text_width%:!getstart=S%
 2034 !getstore=spr%+16:!getlines=(E%-S%)DIV1280+1
 2035 text_lines%=!getlines
 2036 !spr%=W%:spr%!4=(E%-S%)DIV1280+1
 2037 spr%!8=&4400
 2038 IF (!getlines)*(!getwidth)>txtsize% THEN
 2039  text1$="":overlay%=0:mask_created%=0:text%=0
 2040  ERROR 1997,"Caption is too large for available overlay area"
 2041 ENDIF
 2042 CALL get_screen
 2043 ENDPROC
 2044
 2045 DEF PROCmysprite_assemble
 2046 DIM mysprite% 960
 2047
 2048 REM Registers used in "find" routines and .get_screen
 2049 base2=2:base=3:offset=4:data=5:lines=6:white=7
 2050
 2051 REM Registers used in .output_sprite
 2052 colour=1:base2=2:table=3:data3=4:data1=5:lines=6
 2053 mask2=7:mask1=8:data2=9:scrn1=10:scrn2=11:result=12
 2054 FOR P=0 TO 2 STEP2
 2055 P%=mysprite%
 2056 [OPT P
 2057 .ft_screen EQUD 0
 2058 .ft_white  EQUD &7FFF7FFF
 2059 .ft_bottom EQUD 0
 2060 .ft_right  EQUD 0
 2061 .frlines   EQUD 0
 2062 .getwidth  EQUD 0
 2063 .getstart  EQUD 0
 2064 .getstore  EQUD 0
 2065 .getlines  EQUD 0
 2066 .opstart   EQUD 0
 2067
 2068 .find_top
 2069 MOV offset,#0:LDR base,ft_screen:LDR white,ft_white:MOV lines,#640
 2070 .top_loop LDR data,[base,offset]:CMP data,white:BEQ ftexit
 2071 ADD offset,offset,#4:CMP offset,#1280:BNE top_loop
 2072 ADD base,base,#1280:MOV offset,#0:SUBS lines,lines,#1:BNE top_loop
 2073 .ftexit MOV R0,base:MOV PC,R14
 2074
 2075 .find_bottom
 2076 MOV offset,#0:LDR base,ft_bottom:LDR white,ft_white:MOV lines,#640
 2077 .bot_loop LDR data,[base,offset]:CMP data,white:BEQ fbexit
 2078 ADD offset,offset,#4:CMP offset,#1280:BNE bot_loop
 2079 SUB base,base,#1280:MOV offset,#0:SUBS lines,lines,#1:BNE bot_loop
 2080 .fbexit MOV R0,base:MOV PC,R14
 2081
 2082 .find_right
 2083 MOV offset,#1264:LDR base,ft_right:LDR white,ft_white:LDR lines,frlines
 2084 .right_loop LDR data,[base,offset]:CMP data,white:BEQ frexit
 2085 ADD base,base,#1280:SUBS lines,lines,#1:BNE right_loop
 2086 LDR base,ft_right:LDR lines,frlines:SUBS offset,offset,#4:BNE right_loop
 2087 .frexit ADD R0,offset,#8:MOV PC,R14
 2088
 2089 .get_screen
 2090 LDR offset,getwidth:LDR base,getstart
 2091 LDR base2,getstore:LDR lines,getlines
 2092 .get_loop LDR data,[base,offset]:STR data,[base2,offset]
 2093 SUBS offset,offset,#4:BPL get_loop
 2094 LDR offset,getwidth:ADD base,base,#1280
 2095 ADD base2,base2,offset
 2096 SUBS lines,lines,#1:BNE get_loop
 2097 MOV PC,R14
 2098
 2099 ; - - - - - - -
 2100
 2101 .output_sprite
 2102 STR R13,r13_temp:LDR R13,vertical_start
 2103 LDR R0,colour_store:STR R0,colour_start
 2104 LDR R0,colour_height:STR R0,colour_lines
 2105 LDR base,opstart:LDR base2,getstore:SUB R0,base2,#16
 2106 LDR offset,[R0,#0]:LDR lines,[R0,#4]:LDR mask1,[R0,#8]
 2107 MOV mask2,mask1,ASL#16
 2108
 2109 .oploop
 2110 LDR data2,[base2,offset]
 2111 MOV data1,data2,ASL#16:MOV data1,data1,LSR#16
 2112 MOV data2,data2,LSR#16:MOV data2,data2,ASL#16
 2113 LDR scrn2,[base,offset]
 2114 MOV scrn1,scrn2,ASL#16:MOV scrn1,scrn1,LSR#16
 2115 MOV scrn2,scrn2,LSR#16:MOV scrn2,scrn2,ASL#16
 2116
 2117 LDR colour,colour_store:CMP colour,#1:BNE not_shadow
 2118
 2119 STR R0,r0_temp:ADR R0,reg_store:STMIA R0,{R1-R11}
 2120 LDR table,shadow_table_address:MOV result,#0
 2121 CMP data1,mask1:MOVEQ result,scrn1:BEQ next_half
 2122 AND R2,scrn1,#31:LDRB result,[table,R2]
 2123 MOV R2,scrn1,LSR#5:AND R2,R2,#31:LDRB data3,[table,R2]
 2124 MOV data3,data3,LSL#5:ADD result,result,data3
 2125 MOV R2,scrn1,LSR#10:AND R2,R2,#31:LDRB data3,[table,R2]
 2126 MOV data3,data3,LSL#10:ADD result,result,data3
 2127
 2128 .next_half CMP data2,mask2:ADDEQ result,result,scrn2:BEQ store_result
 2129 MOV R2,scrn2,LSR#16:AND R2,R2,#31:LDRB data3,[table,R2]
 2130 MOV data3,data3,LSL#16:ADD result,result,data3
 2131 MOV R2,scrn2,LSR#21:AND R2,R2,#31:LDRB data3,[table,R2]
 2132 MOV data3,data3,LSL#21:ADD result,result,data3
 2133 MOV R2,scrn2,LSR#26:AND R2,R2,#31:LDRB data3,[table,R2]
 2134 MOV data3,data3,LSL#26:ADD result,result,data3
 2135 .store_result ADR R0,reg_store:LDMIA R0,{R1-R11}
 2136 LDR R0,r0_temp:STR result,[base,offset]:B shadow_jump
 2137
 2138 .not_shadow
 2139 CMP colour,#2:BNE not_filter_text
 2140 STR R0,r0_temp:ADR R0,reg_store:STMIA R0,{R1-R12}
 2141 LDR R1,colour_filter_mask
 2142 CMP data1,mask1:MOVEQ result,scrn1
 2143 BICNE result,scrn1,R1
 2144 CMP data2,mask2:ADDEQ result,result,scrn2
 2145 MOVNE scrn2,scrn2,LSR#16
 2146 BICNE R8,scrn2,R1:ADDNE result,result,R8,LSL#16
 2147 STR result,[base,offset]
 2148 ADR R0,reg_store:LDMIA R0,{R1-R12}:LDR R0,r0_temp
 2149 B shadow_jump
 2150
 2151 .not_filter_text
 2152 CMP data1,mask1:MOVNE result,colour:MOVEQ result,scrn1
 2153 CMP data2,mask2:ADDNE result,result,colour,ASL#16
 2154 ADDEQ result,result,scrn2:STR result,[base,offset]
 2155
 2156 .shadow_jump SUBS offset,offset,#4:BPL oploop
 2157 LDR offset,[R0,#0]:ADD base,base,#1280
 2158 LDR data1,getwidth:ADD base2,base2,data1
 2159 CMP colour,#0:BEQ next_line
 2160 CMP colour,#2:BEQ next_line
 2161
 2162 ADR R9,reg_store:STMIA R9,{R0-R7}
 2163 LDR R0,colour_lines:SUBS R0,R0,#1:STR R0,colour_lines:BNE wrcol_exit
 2164 LDR R0,colour_height:STR R0,colour_lines
 2165 LDR R0,colour_inc_or_dec:CMP R0,#1:BEQ col_inc
 2166 .col_dec LDR R7,colour_decrement:SUB colour,colour,R7:LDR R7,colour_limit
 2167 CMP colour,R7:MOVLT colour,R7:STR colour,colour_store:B wrcol_exit
 2168 .col_inc LDR R7,colour_decrement:ADD colour,colour,R7:LDR R7,colour_limit
 2169 CMP colour,R7:MOVGT colour,R7:STR colour,colour_store
 2170 .wrcol_exit ADR R9,reg_store:LDMIA R9,{R0-R7}
 2171
 2172 .next_line
 2173 SUBS R13,R13,#1:LDREQ colour,colour_start:LDREQ R13,vertical_start
 2174 STREQ colour,colour_store
 2175 SUBS lines,lines,#1:BNE oploop
 2176 LDR R13,r13_temp:MOV PC,R14
 2177
 2178 .vertical_start EQUD 0
 2179 .colour_start EQUD 0
 2180 .colour_store EQUD 0
 2181 .colour_limit EQUD 0
 2182 .colour_decrement EQUD 0
 2183 .colour_height EQUD 0
 2184 .colour_lines EQUD 0
 2185 .colour_filter_mask EQUD %0111111111100000
 2186 .colour_inc_or_dec EQUD 0
 2187 .r13_temp EQUD 0
 2188 .r0_temp  EQUD 0
 2189 .reg_store EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 2190            EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 2191 .shadow_table_address EQUD 0
 2192 ]
 2193 NEXT
 2194 IF P%-mysprite%>960 THEN ERROR 0,"Code too long ..."
 2195 ENDPROC
 2196
 2197 DEF PROCsave_targa(st$)
 2198 PROCdisplay_memory
 2199 !targa_base=memblock%+20:CALL targa_convert
 2200 A%=memblock%+2:RESTORE +0
 2201 FOR N%=A% TO A%+17:READ D%:?N%=D%:NEXT
 2202 end%=(memblock%+20)+655360
 2203 !end%=0:end%!4=0:$(end%+8)="TRUEVISION-TARGA.":end%?25=0
 2204 DATA 0,0,2,0,0,0,0,0,0,0,0,0,128,2,0,2,16,&20
 2205 SYS "OS_File",10,st$,&69D,0,A%,A%+&A002C:REM *SAVE
 2206 PROCupload_memory
 2207 ENDPROC
 2208
 2209 DEF PROCtarga_assemble
 2210 DIM targa_code1% 240
 2211 base=0:offset=1:data=2:red1=3:red2=4:green1=5:green2=6:blue1=7:blue2=8
 2212 result=9:words=10
 2213 FOR P=0 TO 2 STEP2
 2214 P%=targa_code1%
 2215 [OPT P
 2216 .targa_base EQUD 0
 2217
 2218 .targa_convert
 2219 LDR base,targa_base:MOV offset,#0:MOV words,#163840
 2220 .targa_loop MOV result,#0
 2221 LDR data,[base,offset]:AND red1,data,#31:MOV red1,red1,LSL#10
 2222 MOV red2,data,LSR#16:AND red2,red2,#31:MOV red2,red2,LSL#26
 2223 AND green1,data,#992
 2224 MOV green2,data,LSR#16:AND green2,green2,#992:MOV green2,green2,LSL#16
 2225 MOV blue1,data,LSR#10:AND blue1,blue1,#31
 2226 MOV blue2,data,LSR#26:AND blue2,blue2,#31:MOV blue2,blue2,LSL#16
 2227
 2228 ADD result,red1,green1:ADD result,result,blue1
 2229 ADD result,result,red2:ADD result,result,green2:ADD result,result,blue2
 2230 STR result,[base,offset]:ADD offset,offset,#4
 2231 SUBS words,words,#1:BNE targa_loop
 2232 MOV PC,R14
 2233
 2234 ]
 2235 NEXT
 2236 ENDPROC
 2237
 2238 DEF PROCfiler_display
 2239
 2240 REPEAT
 2241  filer_info%=0:box%=0:refresh%=TRUE:right%=0
 2242  GCOL 216,216,216:RECTANGLE FILL 0,-50,1280,1074
 2243  ORIGIN 0,50
 2244  PROCclick_info
 2245  REPEAT
 2246   right%=0
 2247   IF refresh% THEN
 2248    PROCpanelled_background
 2249    PROCpath_block
 2250    PROCshow_file_list
 2251    PROCmake_mini_pic
 2252   ENDIF
 2253   refresh%=TRUE
 2254
 2255   MOUSE RECTANGLE 0,-50,1280,926+80
 2256   x1%=0:y1%=0:quit%=0:exit%=0
 2257   PROCwait_no_button
 2258   GCOL3,63 TINT192:RECTANGLE FILL x1%*256+54,y1%*40-2,198,38
 2259
 2260   REPEAT
 2261
 2262    REPEAT
 2263     MOUSE X,Y,B:x2%=(X-32) DIV 256:y2%=Y DIV 40
 2264     PROCcheck_alt_s_save
 2265    UNTIL x1%<>x2% OR y1%<>y2% OR B<>0
 2266
 2267    IF B=1 THEN B=4:right%=TRUE
 2268
 2269    IF B=2 AND ftype$(box%)<>"dir" THEN
 2270     PROCfiler_info:B=2:GCOL 216,216,216:quit%=TRUE:y2%=0
 2271     RECTANGLE FILL 0,-40,1280,268:PROCclick_info
 2272     GCOL3,63:MOUSE RECTANGLE 0,-50,1280,926
 2273    ENDIF
 2274
 2275    RECTANGLE FILL x1%*256+54,y1%*40-2,198,38
 2276    RECTANGLE FILL x2%*256+54,y2%*40-2,198,38
 2277    x1%=x2%:y1%=y2%
 2278    IF y2%>5 AND y2%<22 box%=(21-y1%)+x1%*16 ELSE box%=79
 2279
 2280    IF cat$(box%)="" THEN
 2281     RECTANGLE FILL x2%*256+54,y2%*40-2,198,38
 2282
 2283     REPEAT
 2284      MOUSE X,Y,B:x1%=(X-32) DIV 256:y1%=Y DIV 40
 2285      IF y1%>5 AND y1%<22 THEN box%=(21-y1%)+x1%*16 ELSE box%=79
 2286      IF B=1 THEN B=4:right%=TRUE
 2287     UNTIL cat$(box%)<>"" OR (B=4 AND Y<228) OR filer_info%                                OR (B=4 AND Y>900) OR (B=4 AND ABS(X-1142)<140 AND ABS(Y-282)<40)
 2288
 2289     IF B=4 AND Y>900 AND X<1063 THEN
 2290      big_dir%=0:PROCuser_pathname(dir$,260,950,46,TRUE):refresh%=TRUE:B=4
 2291     ENDIF
 2292
 2293     IF B=4 AND Y>900 AND X>1062 AND X<1110 THEN
 2294      big_dir%=0:PROClist_Pathnames:refresh%=TRUE:B=4
 2295     ENDIF
 2296
 2297     IF ABS(X-520)<24 AND Y>-30 AND Y<170 THEN PROCjpeg_buttons:refresh%=0
 2298     IF cat$(box%)<>"" THEN RECTANGLE FILL x1%*256+54,y1%*40-2,198,38
 2299     IF B=4 AND ABS(X-1012)<22 AND ABS(Y-76)<22 THEN PROCdrive0:big_dir%=0
 2300     IF B=4 AND ABS(X-1066)<22 AND ABS(Y-76)<22 THEN PROCdrive1:big_dir%=0
 2301     IF B=4 AND ABS(X-1120)<22 AND ABS(Y-76)<22 THEN PROCdrive4:big_dir%=0
 2302     IF B=4 AND ABS(X-1174)<22 AND ABS(Y-76)<22 THEN PROCdrive5:big_dir%=0
 2303     IF B=4 AND ABS(X-1228)<22 AND ABS(Y-76)<22 THEN PROCdrive_user:big_dir%=0
 2304     IF B=4 AND ABS(X-404)<22 AND ABS(Y-94)<132 THEN PROCmem_select
 2305
 2306     IF B=4 AND ABS(X-1226)<43 AND ABS(Y-266)<34 AND big_dir% THEN
 2307      shown_dir$="":start_entry%=last_start_entry%+77:c%=-1
 2308     ELSE
 2309      start_entry%=last_start_entry%
 2310     ENDIF
 2311
 2312     IF B=4 AND ABS(X-1184)<86 AND ABS(Y-266)<34 AND was_big_dir% THEN
 2313      start_entry%=0:last_start_entry%=0:shown_dir$="":was_big_dir%=0
 2314     ENDIF
 2315
 2316     IF B=4 AND ABS(X-1142)<43 AND ABS(Y-266)<34 AND big_dir% THEN
 2317      start_entry%=0:last_start_entry%=0:shown_dir$="":was_big_dir%=0
 2318     ENDIF
 2319
 2320    ENDIF
 2321
 2322   UNTIL B=4 OR filer_info%
 2323
 2324   IF cat$(box%)<>"" AND ftype$(box%)<>"dir" lastfile$=cat$(box%)
 2325
 2326   IF LEFT$(cat$(box%),9)="SSTVfonts" THEN
 2327    OSCLI("Fontinstall "+dir$+"."+cat$(box%)+".")
 2328    quit%=TRUE
 2329   ENDIF
 2330
 2331   IF cat$(box%)<>"" AND ftype$(box%)="pscan" THEN
 2332    PROCload_pscan(dir$+"."+cat$(box%))
 2333   ENDIF
 2334   IF cat$(box%)<>"" AND ftype$(box%)="targa" THEN
 2335    PROCload_targa(dir$+"."+cat$(box%))
 2336   ENDIF
 2337   IF cat$(box%)<>"" AND ftype$(box%)="sprite" THEN
 2338    PROCload_sprite(dir$+"."+cat$(box%))
 2339   ENDIF
 2340   IF cat$(box%)<>"" AND ftype$(box%)="jpeg" THEN
 2341    PROCload_jpeg(dir$+"."+cat$(box%))
 2342   ENDIF
 2343   IF cat$(box%)<>"" AND ftype$(box%)="photo" THEN
 2344    ERROR 1997,"PhotoCD images cannot currently be loaded by Pscan."
 2345   ENDIF
 2346
 2347   IF X>920 AND X<1260 AND Y<2 exit%=TRUE
 2348   IF ftype$(box%)="dir" AND NOT(quit%) dir$=dir$+"."+cat$(box%)
 2349   IF ABS(X-1184)<80 AND ABS(Y-140)<24 quit%=TRUE
 2350   IF X>1140 AND X<1266 AND Y>178 AND Y<220 PROCup_one_dir:big_dir%=0
 2351   IF X>1054 AND X<1126 AND Y>174 AND Y<224 THEN
 2352    GCOL216,216,216:RECTANGLE FILL 440,-48,900,280
 2353    PROCrename(FALSE):big_dir%=0:shown_dir$=""
 2354    GCOL216,216,216:RECTANGLE FILL 0,-44,1280,272:PROCclick_info
 2355   ENDIF
 2356   IF X>916 AND X<1046 AND Y>178 AND Y<220 PROCroot_dir:big_dir%=0
 2357
 2358   IF X>920 AND X<1080 AND Y>120 AND Y<160 THEN
 2359    PROCsave_options
 2360    IF NOT(quit%) GCOL216,216,216:RECTANGLE FILL 0,-52,1280,288:PROCclick_info
 2361   ENDIF
 2362
 2363   IF right% AND big_dir% start_entry%=last_start_entry%:shown_dir$=dir$
 2364
 2365  UNTIL quit% OR exit%
 2366
 2367 UNTIL NOT filer_info% AND NOT right%
 2368
 2369 IF quit% AND big_dir% shown_dir$=dir$
 2370
 2371 ORIGIN 0,0:MOUSE RECTANGLE 0,0,1280,1024
 2372 IF exit% THEN BIGQUIT%=TRUE ELSE PROCdismini
 2373
 2374 ENDPROC
 2375
 2376
 2377 DEF PROCdrive0
 2378 dir$="ADFS::0.$":drv%=0:PROCclick_info
 2379 ENDPROC
 2380
 2381 DEF PROCdrive1
 2382 IF floppies%>1 THEN dir$="ADFS::1.$":drv%=1:PROCclick_info
 2383 ENDPROC
 2384
 2385 DEF PROCdrive4
 2386 dir$="ADFS::4.$":drv%=4:PROCclick_info
 2387 ENDPROC
 2388
 2389 DEF PROCdrive5
 2390 IF hard_drives%>1 THEN dir$="ADFS::5.$":drv%=5:PROCclick_info
 2391 ENDPROC
 2392
 2393 DEF PROCdrive_user
 2394 IF ud_path% THEN dir$=user_drive$:drv%=6:PROCclick_info
 2395 ENDPROC
 2396
 2397 DEF PROCmem_select
 2398 IF ABS(Y-212)<16 THEN ms%=0
 2399 IF ABS(Y-178)<16 THEN ms%=1
 2400 IF ABS(Y-144)<16 THEN ms%=2
 2401 IF ABS(Y-110)<16 THEN ms%=3
 2402 IF ABS(Y-76)<16 THEN ms%=4
 2403 IF ABS(Y-42)<16 THEN ms%=5
 2404 IF ABS(Y-8)<16 THEN ms%=6
 2405 IF ABS(Y--26)<16 THEN ms%=7
 2406 IF ms%<memories% THEN
 2407 MEM%=ms%
 2408 CASE MEM% OF
 2409 WHEN 0:memblock%=mem1%
 2410 WHEN 1:memblock%=mem2%
 2411 WHEN 2:memblock%=mem3%
 2412 WHEN 3:memblock%=mem4%
 2413 WHEN 4:memblock%=mem5%
 2414 WHEN 5:memblock%=mem6%
 2415 WHEN 6:memblock%=mem7%
 2416 WHEN 7:memblock%=mem8%
 2417 ENDCASE
 2418 ENDIF
 2419 PROCmake_mini_pic:refresh%=0
 2420 ENDPROC
 2421
 2422 DEF PROCare_you_sure
 2423 PROCraised_block(754,-16,508,236)
 2424 GCOL 200,0,0:RECTANGLE FILL 754,-16,508,236
 2425 PROCwrite2("Delete file : "+cat$(box%),830,212,1)
 2426 PROCwrite2("Are you sure ?",884,146,1)
 2427 PROCraised_block(832,8,140,50)
 2428 PROCraised_block(1034,8,140,50)
 2429 PROCwrite2("YES",862,68,4)
 2430 PROCwrite2("NO",1074,68,4)
 2431 MOUSE RECTANGLE 754,-16,508,236
 2432 PROCwait_no_button:REPEAT:MOUSE X,Y,B:UNTIL B=4 OR B=1
 2433 IF ABS(X-904)<74 AND ABS(Y-34)<30 THEN sure%=TRUE ELSE sure%=0
 2434 ENDPROC
 2435
 2436 DEF PROCrename(flag%)
 2437 REM If flag%=TRUE then rename, if FALSE then create new directory
 2438 PROCraised_block(754,-16,512,236)
 2439 rename_quit%=0
 2440 GCOL 200,100,0:RECTANGLE FILL 754,-16,508,236
 2441 GCOL 255,255,255:RECTANGLE FILL 872,96,240,40
 2442  IF flag%=TRUE THEN
 2443  rename$=cat$(box%)
 2444  PROCwrite2("Enter new filename :-",834,212,1)
 2445 ELSE
 2446  rename$="newdir"
 2447  PROCwrite2("Enter new directory name:-",810,212,1)
 2448 ENDIF
 2449 PROCwrite2(rename$+"|",880,150,0)
 2450 PROCraised_block(832,8,140,50)
 2451 PROCraised_block(1034,8,140,50)
 2452 PROCwrite2("CANCEL",844,68,4)
 2453 PROCwrite2("OK",1074,68,4)
 2454 MOUSE RECTANGLE 754,-16,508,236
 2455 PROCwait_no_button:REPEAT UNTIL INKEY$(1)=""
 2456 REPEAT
 2457  REPEAT
 2458   MOUSE X,Y,B:K$=INKEY$(1)
 2459  UNTIL B=4 OR B=1 OR K$<>""
 2460  IF B=1 THEN B=4
 2461  IF K$=CHR$8 THEN K$=CHR$127
 2462  IF ASC(K$)=127 AND LEN(rename$)>0 THEN
 2463   L%=LEN(rename$):rename$=LEFT$(rename$,L%-1)
 2464   GCOL 255,255,255:RECTANGLE FILL 872,96,240,40
 2465   PROCwrite2(rename$+"|",880,150,0)
 2466  ENDIF
 2467  IF ASC(K$)=21 THEN
 2468   rename$="":GCOL 255,255,255:RECTANGLE FILL 872,96,240,40
 2469   PROCwrite2(rename$+"|",880,150,0)
 2470  ENDIF
 2471  IF LEN(rename$)<10 AND ASC(K$)>31 AND ASC(K$)<123 THEN
 2472   rename$+=K$:GCOL 255,255,255:RECTANGLE FILL 872,96,240,40
 2473   PROCwrite2(rename$+"|",880,150,0)
 2474  ENDIF
 2475 UNTIL B=4 OR K$=CHR$13
 2476 IF (B=4 AND (ABS(X-1104)<74 AND ABS(Y-34)<30)) OR K$=CHR$13 THEN
 2477  IF LEN(rename$)>0 THEN
 2478   IF flag%=TRUE THEN
 2479    OSCLI("RENAME "+dir$+"."+cat$(box%)+" "+dir$+"."+rename$):shown_dir$="-"
 2480   ELSE
 2481    OSCLI("CDIR "+dir$+"."+rename$):dir$=dir$+"."+rename$
 2482   ENDIF
 2483  ENDIF
 2484 ENDIF
 2485 ENDPROC
 2486
 2487 DEF PROCfiler_info
 2488 GCOL 216,216,216:RECTANGLE FILL 0,-50,1280,282
 2489 COLOUR 240,240,240
 2490 X%=4:Y%=53:C$="":VDU31,X%,Y%:OSCLI("INFO "+dir$+"."+cat$(box%))
 2491 REPEAT:VDU31,X%,Y%
 2492 SYS "OS_Byte",135 TO,SV%:IF SV%>31 THEN C$=C$+CHR$(SV%)
 2493 X%+=1:UNTIL X%=70:RECTANGLE FILL 0,-50,1280,282
 2494 PROCraised_block(16,-16,720,236)
 2495 GCOL 160,200,255:RECTANGLE FILL 16,-16,720,236
 2496 GCOL 255,255,255:RECTANGLE FILL 32,160,400,40
 2497 PROCwrite2("Info on file : "+cat$(box%),46,212,0)
 2498 PROCwrite2(MID$(C$,22),44,146,0)
 2499 PROCraised_block(52,8,172,50)
 2500 PROCraised_block(290,8,172,50)
 2501 PROCraised_block(528,8,172,50)
 2502 PROCwrite2("DELETE",78,68,4)
 2503 PROCwrite2("CANCEL",558,68,4)
 2504 PROCwrite2("RENAME",314,68,4)
 2505 MOUSE RECTANGLE 16,-16,720,236
 2506 delete%=0:cancel%=0:rename%=0:REPEAT
 2507 REPEAT:MOUSE X,Y,B:UNTIL B=4 OR B=1
 2508 IF ABS(X-139)<90 AND ABS(Y-34)<30 THEN delete%=TRUE
 2509 IF ABS(X-376)<90 AND ABS(Y-34)<30 THEN PROCrename(TRUE):cancel%=TRUE
 2510 IF ABS(X-614)<90 AND ABS(Y-34)<30 THEN cancel%=TRUE
 2511 UNTIL cancel% OR delete%
 2512 IF delete% THEN
 2513 PROCare_you_sure
 2514 IF sure% THEN OSCLI("DELETE "+dir$+"."+cat$(box%)):shown_dir$="-"
 2515 ENDIF:filer_info%=TRUE
 2516 MOUSE RECTANGLE 0,0,1280,1024
 2517 PROCwait_no_button
 2518 ENDPROC
 2519
 2520 DEF PROCpanelled_background
 2521 GCOL 216,216,216:RECTANGLE FILL 0,234,1280,878
 2522 FOR Y%=238 TO 878 STEP40:GCOL 200,200,200:LINE 0,Y%,1280,Y%
 2523 GCOL 232,232,232:LINE 0,Y%-2,1280,Y%-2:NEXT
 2524 FOR X%=256 TO 1024 STEP256:GCOL 232,232,232:LINE X%,238,X%,878
 2525 GCOL 200,200,200:LINE X%-2,238,X%-2,878:NEXT
 2526 GCOL 216,216,216:RECTANGLE FILL 1026,234,260,60
 2527
 2528 ENDPROC
 2529 
 2530 DEF PROCwrite2(text$,x%,y%,fc%)
 2531 IF LEFT$(panel$,5)="Panel" THEN
 2532  IF fc%>99 THEN
 2533  panel$="Panel.Fixed":fc%-=100
 2534  ELSE
 2535  panel$="Panel.Medium"
 2536  ENDIF
 2537 ENDIF
 2538 SYS "Font_FindFont",,panel$,12*16,12*16 TO font2%
 2539 CASE fc% OF
 2540 WHEN 0    :SYS "Font_SetPalette",,0,0,0,&FFFFFF00,0,&65757254 :REM Black
 2541 WHEN 1,4,6:SYS "Font_SetPalette",,0,0,0,0,&FFFFFF00,&65757254 :REM White
 2542 WHEN 2    :SYS "Font_SetPalette",,0,0,0,0,&C8400000,&65757254 :REM Blue
 2543 WHEN 3    :SYS "Font_SetPalette",,0,0,0,0,&80404000,&65757254 :REM Blue2
 2544 WHEN 5    :SYS "Font_SetPalette",,0,0,0,0,&FF808000,&65757254 :REM Blue3
 2545 WHEN 7    :SYS "Font_SetPalette",,0,0,0,0,&00008000,&65757254 :REM Red
 2546 ENDCASE
 2547 px%=0:py%=0
 2548 IF fc%=4 OR fc%=6 THEN px%+=2:py%-=2
 2549 SYS "Font_Paint",font2%,CHR$127+text$,256+16,x%+px%,y%+py%
 2550 IF fc%=4 THEN
 2551 SYS "Font_SetPalette",,0,0,0,&FFFFFF00,0,&65757254
 2552 SYS "Font_Paint",font2%,CHR$127+text$,256+16,x%+px%-2,y%+py%+2
 2553 ENDIF
 2554 IF fc%=6 THEN
 2555 SYS "Font_SetPalette",,0,0,0,0,&A0A0A000,&65757254
 2556 SYS "Font_Paint",font2%,CHR$127+text$,256+16,x%+px%-2,y%+py%+2
 2557 ENDIF
 2558 SYS "Font_LoseFont",font2%
 2559 ENDPROC
 2560
 2561 DEF PROCpath_block
 2562 GCOL 255,255,255:RECTANGLE FILL 12,896,1250,54
 2563 GCOL 160,160,160:RECTANGLE FILL 18,892,1250,54
 2564 GCOL 200,200,255:RECTANGLE FILL 16,896,1248,50
 2565 SYS sprswi%,256+52,spb%,"acorn",16,884,8,0,translate%
 2566 PROCwrite2("Pathname :",92,954,4)
 2567 PROCwrite2(dir$,264,954,100)
 2568 SYS sprswi%,256+52,spb%,"list",260+808,898,0,0,translate%
 2569 GCOL 0,0,0:RECTANGLE 260+860,900,140,40
 2570 ENDPROC
 2571
 2572 DEF PROCjpeg_buttons
 2573 FOR Y%=120 TO -30 STEP-50
 2574 SYS sprswi%,256+52,spb%,"off",500,Y%,8,0,translate%:NEXT
 2575 IF Y>110 THEN jpeg_opt%=0
 2576 IF Y>60 AND Y<111 THEN jpeg_opt%=1
 2577 IF Y>10 AND Y<61 THEN jpeg_opt%=2
 2578 IF Y<11 THEN jpeg_opt%=3
 2579 Y%=120-50*jpeg_opt%
 2580 SYS sprswi%,256+52,spb%,"on",500,Y%,8,0,translate%
 2581 CASE jpeg_opt% OF
 2582 WHEN 0,1:jpeg_scale%=0
 2583 WHEN 2,3:jpeg_scale%=-1
 2584 ENDCASE
 2585 ENDPROC
 2586
 2587 DEF PROCclick_info
 2588  PROCraised_block(464,-36,410,256)
 2589  PROCwrite2("JPEG loading options:-",498,232,4)
 2590  Y%=120:FOR y%=0 TO 3
 2591  IF y%=jpeg_opt% THEN
 2592   SYS sprswi%,256+52,spb%,"on",500,Y%,8,0,translate%
 2593  ELSE
 2594   SYS sprswi%,256+52,spb%,"off",500,Y%,8,0,translate%
 2595  ENDIF
 2596  Y%-=50:NEXT
 2597  PROCwrite2("Crop to  640 x 480",544,176,4)
 2598  PROCwrite2("Crop to  640 x 512",544,126,4)
 2599  PROCwrite2("Scale to 640 x 480",544,76,4)
 2600  PROCwrite2("Scale to 640 x 512",544,26,4)
 2601
 2602 PROCraised_block(920,180,120,40) :PROCwrite2("ROOT",934,234,4)
 2603 PROCraised_block(1144,180,120,40):PROCwrite2("UP",1150,234,4)
 2604 PROCraised_block(920,120,160,40)
 2605 PROCraised_block(1104,120,160,40)
 2606 PROCraised_block(920,-40,344,40)
 2607 PROCraised_block(920,20,344,80)
 2608 GCOL 96,96,96:LINE 1204,20,1204,104
 2609 GCOL 255,255,255:LINE 1208,20,1208,104
 2610 IF drv%=0 THEN
 2611 SYS sprswi%,256+52,spb%,"on",992,54,8,0,translate%
 2612 ELSE
 2613 SYS sprswi%,256+52,spb%,"off",992,54,8,0,translate%
 2614 ENDIF
 2615 IF drv%=1 THEN
 2616 SYS sprswi%,256+52,spb%,"on",1046,54,8,0,translate%
 2617 ELSE
 2618 IF floppies%>1 THEN
 2619 SYS sprswi%,256+52,spb%,"off",1046,54,8,0,translate%
 2620 ELSE
 2621 SYS sprswi%,256+52,spb%,"off_grey",1046,54,8,0,translate%
 2622 ENDIF
 2623 ENDIF
 2624 IF drv%=4 THEN
 2625 SYS sprswi%,256+52,spb%,"on",1100,54,8,0,translate%
 2626 ELSE
 2627 SYS sprswi%,256+52,spb%,"off",1100,54,8,0,translate%
 2628 ENDIF
 2629 IF drv%=5 THEN
 2630 SYS sprswi%,256+52,spb%,"on",1154,54,8,0,translate%
 2631 ELSE
 2632 IF hard_drives%>1 THEN
 2633 SYS sprswi%,256+52,spb%,"off",1154,54,8,0,translate%
 2634 ELSE
 2635 SYS sprswi%,256+52,spb%,"off_grey",1154,54,8,0,translate%
 2636 ENDIF
 2637 ENDIF
 2638 IF drv%=6 THEN
 2639 SYS sprswi%,256+52,spb%,"on",1214,54,8,0,translate%
 2640 ELSE
 2641 IF ud_path% THEN
 2642 SYS sprswi%,256+52,spb%,"off",1214,54,8,0,translate%
 2643 ELSE
 2644 SYS sprswi%,256+52,spb%,"off_grey",1214,54,8,0,translate%
 2645 ENDIF
 2646 ENDIF
 2647 PROCwrite2("ADFS",912,110,4)
 2648 PROCwrite2("Drive",912,70,4)
 2649 PROCwrite2("0",994,70,4)
 2650 PROCwrite2("1",1048,70,4)
 2651 PROCwrite2("4",1102,70,4)
 2652 PROCwrite2("5",1156,70,4)
 2653 PROCwrite2("UD",1210,70,4)
 2654 PROCwrite2("SAVE",952,174,4)
 2655 PROCwrite2("CANCEL",1124,174,4)
 2656 PROCwrite2("QUIT to DESKTOP",972,14,4)
 2657 SYS sprswi%,256+52,spb%,"up",1220,186,8,0,translate%
 2658 SYS sprswi%,256+52,spb%,"newdir",1058,176,8,0,translate256%
 2659 ENDPROC
 2660
 2661 DEF PROCsave_options
 2662 old_save_type$=save_type$
 2663 MOUSE RECTANGLE 0,-48,1280,280
 2664 GCOL 216,216,216:RECTANGLE FILL 600,-50,680,44
 2665 PROCraised_block(444,-44,820,272):save_name$="":save_quit%=0
 2666 CASE save_type$ OF
 2667 WHEN "sprite" :PROCsave_buttons(1)
 2668 WHEN "targa1" :PROCsave_buttons(2)
 2669 WHEN "pscan"  :PROCsave_buttons(3)
 2670 WHEN "jpeg1"  :PROCsave_buttons(4)
 2671 WHEN "jpeg2"  :PROCsave_buttons(5)
 2672 WHEN "overlay":IF overlay% PROCsave_buttons(6)
 2673 ENDCASE
 2674 PROCwrite2("Sprite  640 x 512",510,234,4)
 2675 PROCwrite2("Targa   640 x 512",510,190,4)
 2676 PROCwrite2("Pscan",510,146,4)
 2677 PROCwrite2("320 x 256",620,146,4)
 2678 PROCwrite2("JPEG    640 x 512",510,102,4)
 2679 PROCwrite2("JPEG    320 x 256",510,58,4)
 2680 PROCwrite2("Save sprite overlay",510,14,4)
 2681 PROCwrite2("Enter filename :",920,224,0)
 2682 GCOL 255,255,255:RECTANGLE FILL 920,120,240,40
 2683 PROCwrite2("|",928,174,0)
 2684 PROCraised_block(864,40,160,40)
 2685 PROCraised_block(1064,40,160,40)
 2686 PROCwrite2("SAVE",898,94,4)
 2687 PROCwrite2("CANCEL",1084,94,4)
 2688 IF LEFT$(save_type$,4)="jpeg" THEN PROCjpeg_panel
 2689 REPEAT
 2690 PROCwait_no_button:REPEAT:K$=INKEY$(1):UNTIL K$=""
 2691 REPEAT:MOUSE X,Y,B:K$=INKEY$(1):UNTIL B=4 OR B=1 OR K$<>""
 2692 IF B=1 THEN B=4
 2693 IF K$=CHR$8 THEN K$=CHR$127
 2694 IF ASC(K$)=127 AND LEN(save_name$)>0 THEN
 2695 L%=LEN(save_name$):save_name$=LEFT$(save_name$,L%-1)
 2696 GCOL 255,255,255:RECTANGLE FILL 920,120,240,40
 2697 PROCwrite2(save_name$+"|",928,174,0)
 2698 ENDIF
 2699 IF ASC(K$)=21 THEN
 2700 save_name$="":GCOL 255,255,255:RECTANGLE FILL 920,120,240,40
 2701 PROCwrite2(save_name$+"|",928,174,0)
 2702 ENDIF
 2703 IF LEN(save_name$)<10 AND ASC(K$)>32 AND ASC(K$)<127 AND K$<>"." THEN
 2704 save_name$+=K$:GCOL 255,255,255:RECTANGLE FILL 920,120,240,40
 2705 PROCwrite2(save_name$+"|",928,174,0)
 2706 ENDIF
 2707 IF B=4 THEN
 2708 IF ABS(480-X)<22 AND ABS(200-Y)<22 THEN PROCsave_buttons(1)
 2709 IF ABS(480-X)<22 AND ABS(156-Y)<22 THEN PROCsave_buttons(2)
 2710 IF ABS(480-X)<22 AND ABS(112-Y)<22 THEN PROCsave_buttons(3)
 2711 IF ABS(480-X)<22 AND ABS(68-Y)<22  THEN PROCsave_buttons(4)
 2712 IF ABS(480-X)<22 AND ABS(24-Y)<22  THEN PROCsave_buttons(5)
 2713 IF ABS(480-X)<22 AND ABS(-20-Y)<22 AND overlay% PROCsave_buttons(6)
 2714 IF ABS(1142-X)<80 AND ABS(64-Y)<26 THEN save_quit%=TRUE
 2715 IF ABS(X-398)<22 AND ABS(Y-94)<132 THEN PROCmem_select:refresh%=TRUE
 2716 IF ABS(X-964)<22 AND ABS(Y)<18 AND LEFT$(save_type$,4)="jpeg" AND jpgq%>30 THEN jpgq%-=5:PROCjpeg_panel
 2717 IF ABS(X-1122)<22 AND ABS(Y)<18 AND LEFT$(save_type$,4)="jpeg" AND jpgq%<95 THEN jpgq%+=5:PROCjpeg_panel
 2718 ENDIF
 2719 IF (B=4 AND (ABS(948-X)<80 AND ABS(64-Y)<26)) OR K$=CHR$13 THEN
 2720  GCOL3,63 TINT192:RECTANGLE FILL 860,36,168,48
 2721  IF LEN(save_name$)>0 THEN
 2722   PROCsave_picture
 2723  ELSE
 2724   K=INKEY(25):RECTANGLE FILL 860,36,168,48
 2725  ENDIF
 2726 ENDIF
 2727 IF LEFT$(save_type$,4)="jpeg" THEN PROCjpeg_panel ELSE PROCblank_jpeg_panel
 2728 UNTIL save_quit%
 2729 IF save_type$="overlay" save_type$=old_save_type$
 2730 ENDPROC
 2731
 2732 DEF PROCblank_jpeg_panel
 2733 GCOL 208,208,216:RECTANGLE FILL 892,-20,304,40
 2734 ENDPROC
 2735
 2736 DEF PROCjpeg_panel
 2737 GCOL 255,255,255:RECTANGLE FILL 992,-20,104,40
 2738 Q$="Q = "+STR$(jpgq%):PROCwrite2(Q$,988,32,0)
 2739 SYS sprswi%,256+52,spb%,"left",942,-18,8,0,translate%
 2740 SYS sprswi%,256+52,spb%,"right",1108,-18,8,0,translate%
 2741 ENDPROC
 2742
 2743 DEF PROCsave_picture
 2744 PROCdisplay_memory
 2745 IF FNsave_ok THEN
 2746 CASE save_type$ OF
 2747 WHEN "sprite":OSCLI("SCREENSAVE "+dir$+"."+save_name$)
 2748 WHEN "targa1" :PROCsave_targa(dir$+"."+save_name$)
 2749 WHEN "pscan"  :PROCsave_pscan(dir$+"."+save_name$)
 2750 WHEN "jpeg1"  :PROCsave_jpeg(dir$+"."+save_name$)
 2751 WHEN "jpeg2"  :PROCsave_jpeg(dir$+"."+save_name$)
 2752 WHEN "overlay":SYS sprswi%,256+12,spr%,dir$+"."+save_name$
 2753 ENDCASE
 2754 shown_dir$="-":path$(MEM%+1)=dir$+"."+save_name$
 2755 ELSE
 2756 ERROR 1997,"There is already a directory called "+save_name$+" - try again using a different filename"
 2757 ENDIF
 2758 save_quit%=TRUE:quit%=TRUE
 2759 ENDPROC
 2760
 2761 DEF FNsave_ok
 2762 sok%=TRUE
 2763 FOR N%=0 TO num%-1
 2764 c1$="":FOR J%=1 TO LEN(cat$(N%))
 2765 c1$+=CHR$(ASC(MID$(cat$(N%),J%,1)) OR 32):NEXT
 2766 c2$="":FOR J%=1 TO LEN(save_name$)
 2767 c2$+=CHR$(ASC(MID$(save_name$,J%,1)) OR 32):NEXT
 2768 IF c1$=c2$ AND ftype$(N%)="dir" THEN sok%=FALSE
 2769 NEXT
 2770 =sok%
 2771
 2772 DEF PROCsave_buttons(b%)
 2773  SYS sprswi%,256+52,spb%,"off",460,180,8,0,translate%
 2774  SYS sprswi%,256+52,spb%,"off",460,136,8,0,translate%
 2775  SYS sprswi%,256+52,spb%,"off",460,92,8,0,translate%
 2776  SYS sprswi%,256+52,spb%,"off",460,48,8,0,translate%
 2777  SYS sprswi%,256+52,spb%,"off",460,4,8,0,translate%
 2778  IF overlay% THEN
 2779   SYS sprswi%,256+52,spb%,"off",460,-40,8,0,translate%
 2780  ELSE
 2781   SYS sprswi%,256+52,spb%,"off_grey",460,-40,8,0,translate%
 2782  ENDIF
 2783  CASE b% OF
 2784   WHEN 1 : SYS sprswi%,256+52,spb%,"on",460,180,8,0,translate%
 2785            save_type$="sprite"
 2786   WHEN 2 : SYS sprswi%,256+52,spb%,"on",460,136,8,0,translate%
 2787            save_type$="targa1"
 2788   WHEN 3 : SYS sprswi%,256+52,spb%,"on",460,92,8,0,translate%
 2789            save_type$="pscan"
 2790   WHEN 4 : SYS sprswi%,256+52,spb%,"on",460,48,8,0,translate%
 2791            save_type$="jpeg1"
 2792   WHEN 5 : SYS sprswi%,256+52,spb%,"on",460,4,8,0,translate%
 2793            save_type$="jpeg2"
 2794   WHEN 6 : SYS sprswi%,256+52,spb%,"on",460,-40,8,0,translate%
 2795            save_type$="overlay"
 2796  ENDCASE
 2797 ENDPROC
 2798  
 2799 DEF PROCshow_file_list
 2800 IF dir$=shown_dir$ THEN
 2801  PROCshow_last_file_list
 2802 ELSE
 2803 IF NOT big_dir% THEN start_entry%=0
 2804 last_start_entry%=start_entry%
 2805 FOR N%=0TO80:cat$(N%)="":ftype$(N%)="":NEXT
 2806 SYS "OS_GBPB",10,dir$,gbpb%,77,start_entry%,gbpb_len%,0 TO,,,num%,o%
 2807 IF o%=-1 THEN
 2808  IF big_dir% THEN was_big_dir%=TRUE
 2809  big_dir%=FALSE
 2810  ELSE
 2811  big_dir%=TRUE
 2812  start_entry%+=num%
 2813  shown_dir$=""
 2814  ENDIF
 2815 A%=gbpb%:ns%=0:C%=0:PX%=54:PY%=844
 2816 IF num%>0 THEN
 2817 REPEAT
 2818 ft$=STR$~!A%:ft$=MID$(ft$,4,3)
 2819 A%=A%+20:f$=""
 2820 REPEAT:f$+=CHR$(?A%):A%=A%+1:UNTIL ?A%=0
 2821 IF ft$="FFD" THEN SYS "OS_File",15,dir$+"."+f$ TO d%:IF d%=2 ft$="dir"
 2822 IF ft$<>"" THEN
 2823 type$="no_use"
 2824 IF ft$="BE8" THEN type$="photo"
 2825 IF ft$="FF9" THEN type$="sprite"
 2826 IF ft$="69D" THEN type$="targa"
 2827 IF ft$="96A" THEN type$="pscan"
 2828 IF ft$="C85" OR RIGHT$(f$,4)="/JPG" OR RIGHT$(f$,3)="/JP" OR RIGHT$(f$,2)="/J" THEN type$="jpeg"
 2829 IF ft$="dir" THEN type$="dir"
 2830 ftype$(ns%)=type$:cat$(ns%)=f$
 2831 c$=cat$(ns%):dos_ext%=INSTR(c$,"/")
 2832 IF dos_ext%>0 c$=LEFT$(c$,dos_ext%-1)
 2833 IF cat$(ns%)=lastfile$ c$=c$+" "+CHR$128 ELSE c$=c$+"  "
 2834 PROCwrite2(c$,PX%,PY%+46,0)
 2835 CASE type$ OF
 2836 WHEN "sprite":icon$="sm_ff9"
 2837 WHEN "targa" :icon$="sm_69d"
 2838 WHEN "pscan" :icon$="sm_96a"
 2839 WHEN "jpeg"  :icon$="sm_c85"
 2840 WHEN "photo" :icon$="sm_be8"
 2841 WHEN "dir"   :icon$="dir"
 2842 WHEN "no_use":icon$="no_use"
 2843 ENDCASE
 2844 SYS sprswi%,256+52,spb%,icon$,PX%-40,PY%-4,0,0,translate%
 2845 ns%+=1:PY%-=40:IF PY%<244 THEN PX%+=256:PY%=844
 2846 ENDIF
 2847 C%+=1:A%+=1:WHILE A%/4<>A%DIV4 A%+=1:ENDWHILE
 2848 UNTIL C%=num%
 2849 ENDIF
 2850 PROCwrite2("Total files = "+STR$ num%,1026,370,4)
 2851 IF NOT big_dir% THEN shown_dir$=dir$
 2852 dir_entries%=num%
 2853 ENDIF
 2854 PROCraised_block(1104,240,70,40)
 2855 PROCraised_block(1192,240,70,40)
 2856 IF big_dir% c%=4 ELSE c%=6
 2857 PROCwrite2("<<",1108,294,c%)
 2858 PROCwrite2(">>",1200,294,c%)
 2859 ENDPROC
 2860
 2861 DEF PROCshow_last_file_list
 2862 IF dir_entries%>0 THEN
 2863  C%=0:PX%=54:PY%=844
 2864  REPEAT
 2865   c$=cat$(C%):dos_ext%=INSTR(c$,"/")
 2866   IF dos_ext%>0 c$=LEFT$(c$,dos_ext%-1)
 2867   IF cat$(C%)=lastfile$ c$=c$+" "+CHR$128 ELSE c$=c$+"  "
 2868   PROCwrite2(c$,PX%,PY%+46,0)
 2869   type$=ftype$(C%)
 2870   CASE type$ OF
 2871    WHEN "sprite":icon$="sm_ff9"
 2872    WHEN "targa" :icon$="sm_69d"
 2873    WHEN "pscan" :icon$="sm_96a"
 2874    WHEN "jpeg"  :icon$="sm_c85"
 2875    WHEN "photo" :icon$="sm_be8"
 2876    WHEN "dir"   :icon$="dir"
 2877    WHEN "no_use":icon$="no_use"
 2878   ENDCASE
 2879   SYS sprswi%,256+52,spb%,icon$,PX%-40,PY%-4,0,0,translate%
 2880   PY%-=40:IF PY%<244 THEN PX%+=256:PY%=844
 2881   C%+=1
 2882  UNTIL C%=dir_entries%
 2883 ENDIF
 2884 PROCwrite2("Total files = "+STR$ dir_entries%,1026,370,4)
 2885 ENDPROC
 2886
 2887 DEF PROCup_one_dir
 2888 IF RIGHT$(dir$,1)<>"$" THEN
 2889 N%=LEN(dir$):REPEAT:N%-=1:UNTIL MID$(dir$,N%,1)="."
 2890 dir$=LEFT$(dir$,N%-1)
 2891 ENDIF
 2892 ENDPROC
 2893
 2894 DEF PROCroot_dir
 2895 WHILE RIGHT$(dir$,1)<>"$" PROCup_one_dir:ENDWHILE
 2896 ENDPROC
 2897
 2898 DEF PROCdisplay_separation(rgb$)
 2899 PROCdisplay_memory:!start_address=screen%
 2900 CASE rgb$ OF
 2901 WHEN "R":CALL display_red_as_mono
 2902 WHEN "G":CALL display_green_as_mono
 2903 WHEN "B":CALL display_blue_as_mono
 2904 ENDCASE
 2905 PROCwait_no_button
 2906 REPEAT:MOUSE X,Y,B:UNTIL B<>0
 2907 PROCdisplay_memory
 2908 ENDPROC
 2909
 2910 DEF PROCrgb_processing
 2911 GCOL3,63 TINT192:RECTANGLE FILL 836,4,52,50
 2912 REPEAT
 2913 menu$(0)="RGB processing and misc." 
 2914 menu$(2)="Rotate R-G-B sequence"
 2915 menu$(3)="Show RED separation"
 2916 menu$(4)="Show GREEN separation"
 2917 menu$(5)="Show BLUE separation"
 2918 menu$(6)="Invert RED"
 2919 menu$(7)="Invert GREEN"
 2920 menu$(8)="Invert BLUE"
 2921 menu$(9)="Picture processing"
 2922 menu$(10)="Scale picture 2:1"
 2923 menu$(11)="Scale picture 1:2"
 2924 menu$(12)="320 x 256 preview"
 2925 menu$(13)="Tile perspective effect>"
 2926 menu$(14)="Rotate or flip>"
 2927 menu$(15)="Fade top-to-bottom"
 2928 menu$(16)="Show pixel RGB values"
 2929 menu$(17)="Waveform monitor"
 2930 menu$(18)="*":PROCmenu(494,90,0)
 2931 menu_redraw%=TRUE
 2932 CASE menu_box% OF
 2933 WHEN 1:PROCdisplay_memory
 2934 WHEN 2:PROCdisplay_memory:CALL rgb_correction:PROCupload_memory
 2935 WHEN 3:PROCdisplay_separation("R")
 2936 WHEN 4:PROCdisplay_separation("G")
 2937 WHEN 5:PROCdisplay_separation("B")
 2938 WHEN 9:PROCpicpro_panel(420,100)
 2939 WHEN 6,7,8:PROCinvert_colour(menu_box%)
 2940 WHEN 10:PROCzoom_pic
 2941 WHEN 11:PROCquarter
 2942 WHEN 12:PROCundo_dither
 2943 WHEN 13:PROCperp_menu
 2944 WHEN 14:PROCtran_menu
 2945 WHEN 15:PROCscreen_fade
 2946 WHEN 16:PROCpixel_rgb
 2947 WHEN 17:PROCwaveform_monitor
 2948 ENDCASE
 2949 UNTIL menu_box%=1
 2950 PROCmini_pad
 2951 ENDPROC
 2952
 2953 DEF PROCinvert_colour(c%)
 2954 FOR N%=0 TO 31
 2955 IF c%=6 THEN reddata?N%=31-N% ELSE reddata?N%=N%
 2956 IF c%=7 THEN grndata?N%=31-N% ELSE grndata?N%=N%
 2957 IF c%=8 THEN bludata?N%=31-N% ELSE bludata?N%=N%
 2958 NEXT:PROCdisplay_memory
 2959 !start_address=screen%:!picpro_bytes=1280:!picpro_lines=512
 2960 !red_address=reddata:!green_address=grndata:!blue_address=bludata
 2961 CALL picture_process:PROCupload_memory
 2962 ENDPROC
 2963
 2964 DEF PROCrotate_rgb_assemble
 2965 base=3:offset=4:data=5:blue_mask=6:rgb_mask=7
 2966 mask1=8:mask2=9
 2967 DIM rgb_code 200
 2968 FOR P=0 TO 2 STEP2
 2969 P%=rgb_code
 2970 [OPT P
 2971 .rgb_scrn_address EQUD 0
 2972 .rgb_blu_mask EQUD %01111100000000000111110000000000
 2973 .rgb_rgb_mask EQUD %10000000000111111000000000011111
 2974 .corr_mask1   EQUD %11111100000000001111110000000000
 2975 .corr_mask2   EQUD %00000011111111110000001111111111
 2976
 2977 .rotate_rgb_code
 2978 LDR base,rgb_scrn_address:MOV offset,#0
 2979 LDR blue_mask,rgb_blu_mask:LDR rgb_mask,rgb_rgb_mask
 2980
 2981 .rgb_loop
 2982 LDR data,[base,offset]:AND R0,data,blue_mask:MOV R0,R0,LSR#10
 2983 MOV data,data,LSL#5:BIC data,data,rgb_mask
 2984 ADD data,data,R0
 2985 STR data,[base,offset]:ADD offset,offset,#4
 2986 CMP offset,#655360:BNE rgb_loop
 2987 MOV PC,R14
 2988
 2989 .rgb_correction
 2990 LDR base,rgb_scrn_address:MOV offset,#0
 2991 LDR mask1,corr_mask1:LDR mask2,corr_mask2
 2992 .rgb_corr_loop
 2993 LDR data,[base,offset]:MOV data,data,LSR#5:BIC data,data,mask1
 2994 ADD base,base,#1280:LDR R0,[base,offset]:SUB base,base,#1280
 2995 MOV R0,R0,LSL#10:BIC R0,R0,mask2
 2996 ADD data,data,R0:STR data,[base,offset]:ADD offset,offset,#4
 2997 CMP offset,#655360:BNE rgb_corr_loop
 2998 MOV PC,R14
 2999 ]
 3000 NEXT:!rgb_scrn_address=screen%
 3001 ENDPROC
 3002
 3003 DEF PROCsave_jpeg(dest$)
 3004 OSCLI("Create <Pscan$Dir>.JPEG.JPEGscrap.scrapfile F0000")
 3005 SYS "Hourglass_On"
 3006 source$="<Pscan$Dir>.JPEG.JPEGscrap.scrapfile"
 3007 IF save_type$="jpeg1" THEN
 3008 PROCsave_targa(source$)
 3009 ELSE
 3010 PROCsmall_targa(source$)
 3011 ENDIF
 3012 q$="-Q "+STR$ jpgq%+" "
 3013 SYS "Wimp_StartTask","<Pscan$Dir>.JPEG.cjpeg -T "+q$+source$+" "+dest$
 3014 OSCLI("SETTYPE "+dest$+" JPEG")
 3015 OSCLI("DELETE "+source$)
 3016 SYS "OS_Byte",229,0,0:VDU26
 3017 SYS "Hourglass_Off"
 3018 ENDPROC
 3019
 3020 DEF PROCload_jpeg(source$)
 3021 SYS "Hourglass_On":ORIGIN 0,0:CLS:T=TIME
 3022 jpeg_len%=FNfile_len(source$)
 3023 IF jpeg_len%>655360 THEN ERROR 1997,"File too long - limit is 640k"
 3024 OSCLI("LOAD "+source$+" "+STR$~(memblock%+20))
 3025 SYS "JPEG_Info",,memblock%+20,655360 TO ,,xs%,ys%
 3026 jpegscale%!0=100000:jpegscale%!4=100000
 3027 jpegscale%!8=100000:jpegscale%!12=100000:x%=0:y%=0
 3028 IF jpeg_scale% THEN
 3029 IF jpeg_opt%=2 THEN W%=480 ELSE W%=512
 3030 IF xs%<640 THEN jpegscale%!0=640/xs%*100000
 3031 IF xs%>640 THEN jpegscale%!8=xs%/640*100000
 3032 IF ys%<W% THEN jpegscale%!4=W%/ys%*100000
 3033 IF ys%>W% THEN jpegscale%!12=ys%/W%*100000
 3034 ELSE
 3035 IF jpeg_opt%=0 THEN W%=480 ELSE W%=512
 3036 x%=640-xs%:y%=W%-ys%
 3037 ENDIF
 3038 SYS "JPEG_PlotScaled",memblock%+20,x%,y%,jpegscale%,jpeg_len%,1
 3039 T$=LEFT$(STR$((TIME-T)/100),4):IF W%=480 THEN PROCtopscale2(2)
 3040 PROCupload_memory:quit%=TRUE:jpeg_info%=TRUE:path$(MEM%+1)=source$
 3041 SYS "Hourglass_Off"
 3042 ENDPROC
 3043
 3044 DEF PROCload_pscan(source$)
 3045 a%=memblock%+20
 3046 OSCLI("LOAD "+source$+" "+STR$~a%)
 3047 !targa_screen=screen%:!targa_memory=memblock%+20
 3048 CALL decode_pscan_96a:PROCupload_memory:quit%=TRUE
 3049 path$(MEM%+1)=source$
 3050 ENDPROC
 3051
 3052 DEF PROCload_sprite(source$)
 3053 MOUSE mx%,my%,d%
 3054 ch%=OPENUP(source$)
 3055 FOR N%=28 TO 35:PTR#ch%=N%:gbpb%?N%=BGET#ch%:NEXT
 3056 PTR#ch%=55:M%=BGET#ch%:CLOSE#ch%
 3057 ORIGIN 0,0:loaded%=0
 3058 IF (gbpb%!32)=511 AND (gbpb%!28)=319 THEN
 3059 OSCLI("SCREENLOAD "+source$)
 3060 OFF:WAIT:PROCupload_memory:loaded%=TRUE
 3061 ENDIF
 3062 IF (gbpb%!32)=479 AND (gbpb%!28)=319 THEN
 3063 IF screen_lines%=512 THEN N%=40904 ELSE N%=1224
 3064 OSCLI("LOAD "+source$+" "+STR$~(screen%+N%))
 3065 PROCupload_memory:PROCtopscale2(0):loaded%=TRUE
 3066 ENDIF
 3067 IF NOT(loaded%) THEN PROCload_overlay_sprite
 3068 IF loaded% THEN path$(MEM%+1)=source$
 3069 quit%=TRUE:*POINTER 1
 3070 MOUSE TO mx%,my%+50
 3071 ENDPROC
 3072
 3073 DEF PROCload_targa(source$)
 3074 a%=memblock%+2
 3075 OSCLI("LOAD "+source$+" "+STR$~a%)
 3076 !targa_base=memblock%+20:CALL targa_convert:quit%=TRUE
 3077 IF a%?13=1 THEN
 3078 !targa_screen=screen%:!targa_memory=!targa_base
 3079 CALL decode_small_targa:PROCupload_memory
 3080 ENDIF
 3081 path$(MEM%+1)=source$
 3082 ENDPROC
 3083
 3084 DEF PROCsave_pscan(st$)
 3085 IF NOT bypass% THEN
 3086 IF !screen%<>&80008000 THEN ERROR 1996,"This picture was not received in a 320 x 256 SSTV mode so it cannot be saved in Pscan format"+CHR$13+CHR$13
 3087 ENDIF
 3088 !targa_screen=screen%:!targa_memory=memblock%+20
 3089 PROCdisplay_memory:!pscan_temp=1:CALL make_small_targa
 3090 A%=memblock%+20
 3091 SYS "OS_File",10,st$,&96A,0,A%,A%+&28000:REM *SAVE
 3092 PROCupload_memory
 3093 ENDPROC
 3094
 3095 DEF PROCsmall_targa(st$)
 3096 !targa_screen=screen%:!targa_memory=memblock%+20
 3097 PROCdisplay_memory:!pscan_temp=0:CALL make_small_targa
 3098 !targa_base=memblock%+20:CALL targa_convert
 3099 A%=memblock%+2
 3100 RESTORE +0
 3101 FOR N%=A% TO A%+17:READ D%:?N%=D%:NEXT
 3102 end%=(memblock%+20)+163840
 3103 !end%=0:end%!4=0:$(end%+8)="TRUEVISION-TARGA.":end%?25=0
 3104 DATA 0,0,2,0,0,0,0,0,0,0,0,0,64,1,0,1,16,&20
 3105 SYS "OS_File",10,st$,&69D,0,A%,A%+&2802C:REM *SAVE
 3106 PROCupload_memory
 3107 ENDPROC
 3108 
 3109 DEF PROCmake_small_targa_assemble
 3110 base1=3:base2=4:offset1=5:offset2=6:data1=7:data2=8
 3111 mask=9:mask2=10:lines=11:pscan_flag=12
 3112 DIM targa_code2% 640
 3113 FOR P=0 TO 2 STEP2
 3114 P%=targa_code2%
 3115 [OPT P
 3116 .targa_mask   EQUD %00000000000000001111111111111111
 3117 .targa_mask2  EQUD %11111111111111110000000000000000
 3118 .pscan_temp   EQUD 0
 3119 .targa_screen EQUD 0
 3120 .targa_memory EQUD 0
 3121 .green_mask   EQUD %11111111111111111000001111100000
 3122
 3123 .make_small_targa
 3124 LDR base1,targa_screen:LDR base2,targa_memory:LDR pscan_flag,pscan_temp
 3125 LDR mask,targa_mask:MOV offset1,#0:MOV offset2,#0:MOV lines,#256
 3126
 3127 .make_targa_loop
 3128 LDR R1,[base1,offset1]:AND data1,R1,mask:ADD offset1,offset1,#4
 3129 LDR R2,[base1,offset1]:AND data2,R2,mask
 3130 MOV data2,data2,LSL#16:ADD R0,data1,data2
 3131 CMP pscan_flag,#0:BEQ just_targa
 3132
 3133 MOV data1,R1,LSR#5:AND data1,data1,#31
 3134 MOV data2,R1,LSR#21:AND data2,data2,#31
 3135 CMP data1,data2:ORRNE R0,R0,#%00000000000000001000000000000000
 3136 MOV data1,R2,LSR#5:AND data1,data1,#31
 3137 MOV data2,R2,LSR#21:AND data2,data2,#31
 3138 CMP data1,data2:ORRNE R0,R0,#%10000000000000000000000000000000
 3139
 3140 .just_targa
 3141 STR R0,[base2,offset2]:ADD offset2,offset2,#4:ADD offset1,offset1,#4
 3142 CMP offset2,#640:BNE make_targa_loop
 3143 ADD base1,base1,#2560:ADD base2,base2,#640
 3144 MOV offset1,#0:MOV offset2,#0:SUBS lines,lines,#1:BNE make_targa_loop
 3145 MOV PC,R14
 3146
 3147 ; -------------------------------------------
 3148
 3149 .decode_small_targa
 3150 LDR base1,targa_screen:LDR base2,targa_memory
 3151 LDR mask,targa_mask:LDR mask2,targa_mask2
 3152 MOV offset1,#0:MOV offset2,#0:MOV lines,#256
 3153
 3154 .decode_targa_loop
 3155 LDR R0,[base2,offset2]:AND data1,R0,mask:MOV data2,data1,LSL#16
 3156 ADD data2,data2,data1:STR data2,[base1,offset1]:ADD base1,base1,#1280
 3157 STR data2,[base1,offset1]:SUB base1,base1,#1280:ADD offset1,offset1,#4
 3158
 3159 LDR R0,[base2,offset2]:AND data1,R0,mask2:MOV data2,data1,LSR#16
 3160 ADD data2,data2,data1:STR data2,[base1,offset1]:ADD base1,base1,#1280
 3161 STR data2,[base1,offset1]:SUB base1,base1,#1280:ADD offset1,offset1,#4
 3162 ADD offset2,offset2,#4:CMP offset2,#640:BNE decode_targa_loop
 3163
 3164 ADD base2,base2,#640:ADD base1,base1,#2560
 3165 MOV offset1,#0:MOV offset2,#0:SUBS lines,lines,#1:BNE decode_targa_loop
 3166 MOV PC,R14
 3167
 3168 ; -------------------------------------------
 3169
 3170 .decode_pscan_96a
 3171
 3172 LDR base1,targa_screen:LDR base2,targa_memory
 3173 LDR mask,targa_mask:LDR mask2,targa_mask2
 3174 MOV offset1,#0:MOV offset2,#0:MOV lines,#256
 3175
 3176 .decode_pscan_loop
 3177 LDR R0,[base2,offset2]:AND data1,R0,mask
 3178 TST data1,#%1000000000000000:BEQ no_dither1
 3179 MOV R0,data1,LSR#5:AND R0,R0,#31:SUB R0,R0,#1:MOV R0,R0,LSL#5
 3180 LDR R1,green_mask:BIC R1,data1,R1:ADD R0,R0,R1:MOV R0,R0,LSL#16
 3181 ADD R0,data1,R0:B store_words1
 3182 .no_dither1
 3183 MOV data2,data1,LSL#16:ADD R0,data1,data2
 3184 .store_words1
 3185 STR R0,[base1,offset1]:MOV R0,R0,ROR#16
 3186 ADD base1,base1,#1280:STR R0,[base1,offset1]
 3187 SUB base1,base1,#1280:ADD offset1,offset1,#4
 3188
 3189 LDR R0,[base2,offset2]:AND data1,R0,mask2:MOV data1,data1,LSR#16
 3190 TST data1,#%1000000000000000:BEQ no_dither2
 3191 MOV R0,data1,LSR#5:AND R0,R0,#31:SUB R0,R0,#1:MOV R0,R0,LSL#5
 3192 LDR R1,green_mask:BIC R1,data1,R1:ADD R0,R0,R1:MOV R0,R0,LSL#16
 3193 ADD R0,data1,R0:B store_words2
 3194 .no_dither2
 3195 MOV data2,data1,LSL#16:ADD R0,data1,data2
 3196 .store_words2
 3197 STR R0,[base1,offset1]:MOV R0,R0,ROR#16
 3198 ADD base1,base1,#1280:STR R0,[base1,offset1]
 3199 SUB base1,base1,#1280:ADD offset1,offset1,#4
 3200 ADD offset2,offset2,#4:CMP offset2,#640:BNE decode_pscan_loop
 3201
 3202 ADD base2,base2,#640:ADD base1,base1,#2560
 3203 MOV offset1,#0:MOV offset2,#0:SUBS lines,lines,#1:BNE decode_pscan_loop
 3204 MOV PC,R14
 3205 ]:NEXT
 3206 ENDPROC
 3207
 3208 DEF PROCtest_card
 3209 GCOL0,0,0:RECTANGLE FILL 0,0,1279,1024:FOR X%=40 TO 1200 STEP160
 3210 GCOL 255,255,255:RECTANGLE FILL X%,0,78,960:NEXT
 3211 FOR Y%=32 TO 900 STEP138
 3212 RECTANGLE FILL 0,Y%,1280,64:NEXT
 3213 GCOL 128,128,128:RECTANGLE FILL 48,40,1182,876
 3214 GCOL 255,255,255:FOR X%=116 TO 1162 STEP80
 3215 RECTANGLE FILL X%,40,6,880:NEXT
 3216 FOR Y%=94 TO 860 STEP69:RECTANGLE FILL 40,Y%,1198,6:NEXT
 3217 RESTORE +0
 3218 FOR X%=124 TO 1022 STEP128:READ r%,g%,b%
 3219 GCOL r%,g%,b%:RECTANGLE FILL X%,446,134,198:NEXT
 3220 GCOL 255,255,255:LINE 124,448,124,644
 3221 g%=6:FOR X%=126 TO 1140 STEP32:GCOL g%,g%,g%
 3222 RECTANGLE FILL X%,654,36,128:g%+=8:NEXT:LINE 1152,656,1152,790
 3223 GCOL 0,0,0:LINE 124,656,124,782
 3224 r%=80:g%=0:b%=156
 3225 FOR Y%=792 TO 854 STEP2:GCOL r%,g%,b%:LINE 364,Y%,914,Y%
 3226 r%+=3:g%+=3:b%+=3:NEXT
 3227 FOR Y%=856 TO 916 STEP2:GCOL r%,g%,b%:LINE 364,Y%,914,Y%
 3228 r%-=3:g%-=3:b%-=3:NEXT
 3229 W%=FNtext_width("Homerton.Bold",call$,54,46):X%=364+(548-W%)/2
 3230 PROCwrite("Homerton.Bold",call$,X%+10,808,54,46,0)
 3231 PROCwrite("Homerton.Bold",call$,X%,818,54,46,1)
 3232 GCOL 0,0,0:RECTANGLE FILL 124,240,1030,128:GCOL 255,255,255
 3233 FOR X%=152 TO 500 STEP64:RECTANGLE FILL X%,240,30,128:NEXT
 3234 FOR X%=524 TO 844 STEP32:RECTANGLE FILL X%,240,14,128:NEXT
 3235 FOR X%=868 TO 1150 STEP16:RECTANGLE FILL X%,240,6,128:NEXT
 3236 g%=254:FOR X%=124 TO 1140 STEP32:GCOL g%,g%,g%
 3237 RECTANGLE FILL X%,102,38,128:g%-=8:NEXT
 3238 GCOL 0,0,0:RECTANGLE FILL 1150,104,2,126
 3239 PROCupload_memory:PROCtopscale2(0)
 3240 DATA 255,255,255,255,255,0,0,255,255,0,255,0,255,0,255
 3241 DATA 255,0,0,0,0,255,0,0,0
 3242 ENDPROC
 3243
 3244 DEF PROCfax_header(bw%)
 3245 PROCdisplay_memory:VDU23,17,7,6,16;16;0;
 3246 GCOL 255,255,255:RECTANGLE FILL 0,960,1280,64
 3247 IF NOT bw% THEN
 3248 GCOL 255,0,0:RECTANGLE FILL 64,968,64,48
 3249 GCOL 0,255,0:RECTANGLE FILL 128,968,64,48
 3250 GCOL 0,0,255:RECTANGLE FILL 192,968,64,48
 3251 GCOL 0,0,0:VDU5:MOVE 80,1004:PRINT"R"
 3252 MOVE 144,1004:PRINT"G"
 3253 MOVE 208,1004:PRINT"B"
 3254 PROCwrite("Homerton.Bold",call$+" colour FAX",570,976,16,20,2)
 3255 ELSE
 3256 PROCwrite("Homerton.Bold",call$+" mono FAX",570,976,16,20,2)
 3257 GCOL 0,0,0:FOR X%=64 TO 252 STEP 16
 3258 RECTANGLE FILL X%,968,6,48:NEXT
 3259 RECTANGLE 64,968,182,48
 3260 ENDIF
 3261 PROCwrite("Homerton.Bold",MID$(TIME$,5,6)+"'"+MID$(TIME$,14,2),970,976,16,20,2)
 3262 SYS sprswi%,256+52,spb%,"acorn2",1196,960,8,0,translate%
 3263 VDU4:OFF:WAIT:g%=0
 3264 FOR X%=280 TO 528 STEP8
 3265 GCOL g%,g%,g%:RECTANGLE FILL X%,968,8,48
 3266 g%+=8:NEXT
 3267 GCOL 0,0,0:RECTANGLE 278,966,258,52:RECTANGLE 276,964,262,56
 3268 VDU23,17,7,6,8;8;0;
 3269 PROCupmini
 3270 ENDPROC
 3271
 3272 DEF PROCgrab_rectangle(all%)
 3273 PROCdisplay_memory:PROCwait_no_button
 3274 IF all% THEN
 3275 X=1280:Y=0:X1=0:Y1=1024:plot_border%=0:plot_shadow%=0
 3276 ELSE
 3277 PROCgrab_rectangle_cursor
 3278 ENDIF
 3279 GW%=X-X1:GH%=Y1-Y
 3280 A%=((1024-Y1)DIV2)*1280+X1
 3281 A%=A%-A% MOD4
 3282 A%=A%+(memblock%+20)
 3283 GL%=(Y1-Y)DIV2:GB%=X-X1
 3284 !source_start=A%:!num_lines=GL%+4:!num_bytes=GB%+8
 3285 PROCdismini
 3286 ENDPROC
 3287
 3288 DEF PROCgrab_rectangle_cursor
 3289 REPEAT:MOUSE X,Y,B:UNTIL B<>0:X1=X:Y1=Y
 3290 IF B=4 THEN
 3291 PROCwait_no_button
 3292 GCOL3,63 TINT0:REPEAT:MOUSE X,Y,B
 3293 RECTANGLE X1,Y1,X-X1,Y-Y1
 3294 REPEAT:MOUSE x,y,b:UNTIL x<>X OR y<>Y OR b=4
 3295 RECTANGLE X1,Y1,X-X1,Y-Y1
 3296 UNTIL B=4 OR b=4
 3297 RECTANGLE X1,Y1,X-X1,Y-Y1
 3298 IF X<X1 THEN SWAP X,X1
 3299 IF Y1<Y THEN SWAP Y1,Y
 3300 ENDIF
 3301 ENDPROC
 3302
 3303 DEF PROCgrab_quarter_area
 3304 X1=320:Y1=766:X=960:Y=288
 3305 GW%=X-X1:GH%=Y1-Y:A%=((1024-Y1)DIV2)*1280+X1
 3306 A%=A%-A% MOD4:A%=A%+(memblock%+20)
 3307 GL%=(Y1-Y)DIV2:GB%=X-X1
 3308 !source_start=A%:!num_lines=GL%+4:!num_bytes=GB%+8
 3309 plot_border%=0:plot_shadow%=0
 3310 ENDPROC
 3311
 3312 DEF PROCplot_grabbed_area(flipx%)
 3313 IF flipx%=1 THEN
 3314  !num_lines=512:!num_bytes=1280:!dest_start=screen%:CALL get_area
 3315  ELSE
 3316  IF GW%=0 OR GH%=0 THEN
 3317   PROCdisplay_memory
 3318   ELSE
 3319   PROCdisplay_memory:PROCwait_no_button:MOUSE X,Y,B
 3320   GCOL 3,63:RECTANGLE X,Y,GW%,GH%:REPEAT
 3321   REPEAT:MOUSE X1,Y1,B:UNTIL X<>X1 OR Y<>Y1 OR B<>0
 3322   RECTANGLE X,Y,GW%,GH%:RECTANGLE X1,Y1,GW%,GH%
 3323   X=X1:Y=Y1:UNTIL B<>0
 3324   IF B<>4 THEN
 3325    PROCdisplay_memory
 3326    ELSE
 3327    PROCdisplay_memory
 3328    WHILE X/4<>X DIV 4:X+=1:ENDWHILE
 3329    Y=Y+GH%:A%=((1024-Y)DIV2)*1280+X
 3330    IF plot_shadow%=1 PROCgradated_shadow
 3331    IF plot_border%=1 PROCplinth(X1-20,Y1-20,GW%+44,GH%+40,32,pbr%,pbg%,pbb%)
 3332    IF plot_border%=2 PROCplinth2(X1-30,Y1-30,GW%+64,GH%+60,pbr%,pbg%,pbb%,pbri%,pbgi%,pbbi%)
 3333    ENDIF
 3334    !num_lines=GL%:!num_bytes=GB%:!dest_start=screen%+A%
 3335    IF flipx% THEN CALL get_area_flipx ELSE CALL get_area
 3336   ENDIF
 3337  ENDIF
 3338 ENDIF
 3339 PROCupmini
 3340 ENDPROC
 3341
 3342 DEF PROCgradated_shadow
 3343 !red_address=reddata:!green_address=grndata:!blue_address=bludata
 3344 !picpro_lines=GL%+20:!picpro_bytes=GB%+24
 3345 !start_address=screen%+A%+28+1280*12
 3346 FOR N%=0 TO 31
 3347 reddata?N%=N%-2:IF reddata?N%>31 THEN reddata?N%=0
 3348 grndata?N%=N%-2:IF grndata?N%>31 THEN grndata?N%=0
 3349 bludata?N%=N%-2:IF bludata?N%>31 THEN bludata?N%=0
 3350 NEXT
 3351 FOR N%=1 TO 10:CALL picture_process
 3352 !start_address=(!start_address)-2564:NEXT
 3353 ENDPROC
 3354
 3355 DEF PROCscreen_fade
 3356 PROCdisplay_memory
 3357 !red_address=reddata:!green_address=grndata:!blue_address=bludata
 3358 FOR N%=1 TO 31:reddata?N%=N%-1:grndata?N%=N%-1:bludata?N%=N%-1:NEXT
 3359 reddata?0=0:grndata?0=0:bludata?0=0
 3360 L%=512:!picpro_bytes=1280:O%=0
 3361 FOR N%=1 TO 16
 3362 !picpro_lines=L%:!start_address=screen%+O%:CALL picture_process
 3363 L%-=32:O%+=40960:NEXT
 3364 PROCupload_memory:ENDPROC
 3365
 3366 DEF PROCget_area_assemble
 3367 DIM get_code 320
 3368 base1=4:base2=5:offset=6:lines=7:bytes=8:data=9:clear=10:shadtype=11
 3369 offset2=12
 3370 FOR P=0 TO 2 STEP2
 3371 P%=get_code
 3372 [OPT P
 3373 .source_start EQUD 0
 3374 .dest_start EQUD 0
 3375 .num_bytes EQUD 0
 3376 .num_lines EQUD 0
 3377 .shadow_start EQUD 0
 3378 .shadow_flag EQUD 0
 3379 .clear_mask EQUD 0
 3380
 3381 .get_area
 3382 LDR base1,source_start:LDR base2,dest_start
 3383 LDR bytes,num_bytes:MOV offset,#0:LDR lines,num_lines
 3384 .get_area_loop
 3385 LDR data,[base1,offset]:STR data,[base2,offset]
 3386 ADD offset,offset,#4:CMP offset,bytes:BLT get_area_loop
 3387 ADD base1,base1,#1280:ADD base2,base2,#1280:MOV offset,#0
 3388 SUBS lines,lines,#1:BNE get_area_loop
 3389 MOV PC,R14
 3390
 3391 .get_area_flipx
 3392 LDR base1,source_start:LDR base2,dest_start
 3393 LDR bytes,num_bytes:MOV offset,#0:MOV offset2,bytes:LDR lines,num_lines
 3394 .get_area_flipx_loop
 3395 LDR data,[base1,offset]:MOV data,data,ROR#16:STR data,[base2,offset2]
 3396 SUB offset2,offset2,#4:ADD offset,offset,#4
 3397 CMP offset,bytes:BLT get_area_flipx_loop
 3398 ADD base1,base1,#1280:ADD base2,base2,#1280
 3399 MOV offset,#0:MOV offset2,bytes
 3400 SUBS lines,lines,#1:BNE get_area_flipx_loop
 3401 MOV PC,R14
 3402
 3403 .shadow
 3404 LDR base1,shadow_start:MOV offset,#0:LDR clear,clear_mask
 3405 LDR shadtype,shadow_flag
 3406 LDR bytes,num_bytes:LDR lines,num_lines
 3407 .shadow_loop LDR data,[base1,offset]
 3408 CMP shadtype,#0:MOVEQ data,data,LSR#1
 3409 BIC data,data,clear:STR data,[base1,offset]
 3410 ADD offset,offset,#4:CMP offset,bytes:BLT shadow_loop
 3411 ADD base1,base1,#1280:MOV offset,#0
 3412 SUBS lines,lines,#1:BNE shadow_loop
 3413 MOV PC,R14
 3414 ]
 3415 NEXT
 3416 ENDPROC
 3417
 3418 DEF PROCdouble_grad_back(R,G,B,RI,GI,BI)
 3419 r=R:g=G:b=B
 3420 FOR Y%=0 TO 508 STEP2
 3421 GCOL r,g,b:RECTANGLE FILL 0,Y%,1279,2
 3422 r+=RI:g+=GI:b+=BI:NEXT
 3423 IF r=-1 THEN r=1
 3424 IF g=-1 THEN g=1
 3425 IF b=-1 THEN b=1
 3426 IF r=256 THEN r=254
 3427 IF g=256 THEN g=254
 3428 IF b=256 THEN b=254
 3429 FOR Y%=510 TO 1018 STEP2
 3430 GCOL r,g,b:RECTANGLE FILL 0,Y%,1279,4
 3431 r-=RI:g-=GI:b-=BI:NEXT
 3432 IF NOT(merge%) THEN PROCupload_memory
 3433 ENDPROC
 3434
 3435 DEF PROCsingle_grad_back(R,G,B,RI,GI,BI)
 3436 FOR Y=1020 TO 0 STEP-4
 3437 GCOL R,G,B:RECTANGLE FILL 0,Y,1280,4
 3438 R+=RI:G+=GI:B+=BI:NEXT
 3439 IF NOT(merge%) THEN PROCupload_memory
 3440 ENDPROC
 3441
 3442 DEF FNtext_width(font$,text$,xp%,yp%)
 3443 IF font%<>-1 SYS "Font_LoseFont",font%
 3444 SYS "Font_FindFont",,font$,16*xp%,16*yp% TO font%
 3445 SYS "Font_Converttopoints",,1280,1024 TO,xp%,yp%
 3446 SYS "Font_StringWidth",,text$,xp%,yp%,-1,100 TO,,x2%,y2%
 3447 SYS "Font_ConverttoOS",,x2%,y2% TO,x2%,y2%
 3448 =x2%
 3449
 3450 DEF PROCrgb_sliders(flag%)
 3451 X%=380:Y%=304:W%=460:H%=240
 3452 red1%=0:grn1%=0:blu1%=0
 3453 IF flag% THEN Y2%=140 ELSE Y2%=0
 3454 PROCraised_block(X%,Y%-Y2%,W%,H%+Y2%)
 3455 FOR YY%=Y%+56 TO Y%+148 STEP44
 3456 PROCboxes(X%+16,YY%,262,32,0)
 3457 NEXT:MOUSE RECTANGLE X%,Y%-Y2%,W%,H%+Y2%
 3458 PROCraised_block(X%+346,Y%+56,88,44)
 3459 PROCboxes(X%+340,Y%+120,100,56,0)
 3460 PROCwrite2("Pscan 32K colour selector",X%+8,Y%+200,4)
 3461 PROCwrite2("Drag sliders to define colour",X%+8,Y%+8,4)
 3462 PROCwrite2("OK",X%+362,Y%+62,4)
 3463 IF flag% THEN
 3464 PROCwrite2("Click on required brush size",X%+8,Y%+8-Y2%,4)
 3465 R%=4
 3466 FOR XX%=X%+16 TO X%+322 STEP 76.5
 3467 GCOL 128,0,0:CIRCLE FILL XX%+48,Y%-Y2%+92,R%:R%=R%+4
 3468 PROCboxes(XX%+16,Y%-Y2%+60,64,64,-1):NEXT
 3469 ENDIF
 3470 GCOL 255,0,0:RECTANGLE FILL X%+20,Y%+148,red%,24
 3471 GCOL 0,255,0:RECTANGLE FILL X%+20,Y%+104,grn%,24
 3472 GCOL 0,0,255:RECTANGLE FILL X%+20,Y%+60,blu%,24
 3473 PROCwait_no_button
 3474 REPEAT
 3475 GCOL red%,grn%,blu%:RECTANGLE FILL X%+344,Y%+124,92,48
 3476 IF red%<>red1% THEN
 3477 GCOL 208,208,216:RECTANGLE FILL X%+286,Y%+144,40,30
 3478 red$=STR$(red%/8):IF LEN red$<2 THEN red$="0"+red$
 3479 PROCwrite2(red$,X%+278,Y%+142,4):red1%=red%
 3480 ENDIF
 3481 IF grn%<>grn1% THEN
 3482 GCOL 208,208,216:RECTANGLE FILL X%+286,Y%+100,40,30
 3483 grn$=STR$(grn%/8):IF LEN grn$<2 THEN grn$="0"+grn$
 3484 PROCwrite2(grn$,X%+278,Y%+98,4):grn1%=grn%
 3485 ENDIF
 3486 IF blu%<>blu1% THEN
 3487 GCOL 208,208,216:RECTANGLE FILL X%+286,Y%+56,40,30
 3488 blu$=STR$(blu%/8):IF LEN blu$<2 THEN blu$="0"+blu$
 3489 PROCwrite2(blu$,X%+280,Y%+54,4):blu1%=blu%
 3490 ENDIF
 3491 REPEAT:MOUSE X,Y,B:IF B<>4 THEN MOUSE RECTANGLE X%,Y%-Y2%,W%,H%+Y2%
 3492 UNTIL B=4
 3493 IF flag% AND ABS(Y-256)<28 THEN
 3494 IF ABS(X-444)<28 THEN brush_size%=4
 3495 IF ABS(X-520)<28 THEN brush_size%=8
 3496 IF ABS(X-596)<28 THEN brush_size%=12
 3497 IF ABS(X-674)<28 THEN brush_size%=16
 3498 IF ABS(X-748)<28 THEN brush_size%=20
 3499 ENDIF
 3500 IF X>X%+18 AND X<X%+19+256 AND Y>Y%+60 AND Y<Y%+60+26 THEN PROCblue_slider
 3501 IF X>X%+18 AND X<X%+19+256 AND Y>Y%+104 AND Y<Y%+104+26 THEN PROCgreen_slider
 3502 IF X>X%+18 AND X<X%+19+256 AND Y>Y%+148 AND Y<Y%+148+26 THEN PROCred_slider
 3503 red%=(red% DIV 8)*8:grn%=(grn% DIV 8)*8:blu%=(blu% DIV 8)*8
 3504 UNTIL ABS(X-768)<47 AND ABS(Y-386)<33
 3505 RGB%=POINT(X%+350,Y%+128):menu_redraw%=TRUE
 3506 PROCwait_no_button:MOUSE RECTANGLE 0,0,1280,1024
 3507 ENDPROC
 3508
 3509 DEF PROCblue_slider
 3510 blu%=X-19-X%
 3511 GCOL 0,0,255:RECTANGLE FILL X%+20,Y%+60,blu%-2,24
 3512 GCOL 216,216,216:RECTANGLE FILL X%+blu%+22,Y%+60,252-blu%,24
 3513 MOUSE RECTANGLE X%+19,Y,255,0
 3514 ENDPROC
 3515
 3516 DEF PROCgreen_slider
 3517 grn%=X-19-X%
 3518 GCOL 0,255,0:RECTANGLE FILL X%+20,Y%+104,grn%-2,24
 3519 GCOL 216,216,216:RECTANGLE FILL X%+grn%+22,Y%+104,252-grn%,24
 3520 MOUSE RECTANGLE X%+19,Y,255,0
 3521 ENDPROC
 3522
 3523 DEF PROCred_slider
 3524 red%=X-19-X%
 3525 GCOL 255,0,0:RECTANGLE FILL X%+20,Y%+148,red%-2,24
 3526 GCOL 216,216,216:RECTANGLE FILL X%+red%+22,Y%+148,252-red%,24
 3527 MOUSE RECTANGLE X%+19,Y,255,0
 3528 ENDPROC
 3529
 3530 DEF PROCboxes(x%,y%,w%,h%,raised%)
 3531 IF raised% THEN GCOL 96,96,96 ELSE GCOL 255,255,255
 3532 RECTANGLE x%,y%,w%,h%:RECTANGLE x%+2,y%+2,w%-4,h%-4
 3533 IF raised% THEN GCOL 255,255,255 ELSE GCOL 96,96,96
 3534 LINE x%,y%,x%,y%+h%:LINE x%,y%+h%,x%+w%,y%+h%
 3535 LINE x%+2,y%+2,x%+2,y%+h%-2:LINE x%+2,y%+h%-2,x%+w%-2,y%+h%-2
 3536 ENDPROC
 3537
 3538 DEF PROCflood_fill
 3539 PROCdisplay_memory:quit%=0
 3540 PROCwait_no_button:REPEAT
 3541 REPEAT:MOUSE X,Y,B:UNTIL B<>0
 3542 IF Y>9 THEN
 3543 IF B=4 THEN
 3544 RGB%=POINT(X,Y):Bred%=(RGB%AND31)*8
 3545 Bgrn%=((RGB%>>5)AND31)*8:Bblu%=((RGB%>>10)AND31)*8
 3546 IF NOT (Bred%=red% AND Bgrn%=grn% AND Bblu%=blu%) THEN
 3547 rgb%=(Bblu%<<24)+(Bgrn%<<16)+(Bred%<<8)
 3548 GCOL red%,grn%,blu%
 3549 SYS "ColourTrans_SetGCOL",rgb%,0,0,128,0:FILL X,Y
 3550 ELSE VDU7
 3551 ENDIF
 3552 ENDIF
 3553 IF B=1 THEN
 3554 RGB%=POINT(X,Y):red%=(RGB%AND31)*8
 3555 grn%=((RGB%>>5)AND31)*8:blu%=((RGB%>>10)AND31)*8
 3556 ENDIF
 3557 IF B=2 THEN PROCupload_memory:PROCrgb_sliders(0):PROCdisplay_memory
 3558 ENDIF
 3559 PROCwait_no_button:UNTIL Y<10 OR quit%
 3560 PROCupmini
 3561 ENDPROC
 3562
 3563 DEF PROCvertical_write(F$,text$,x%,y%,xp%,yp%,c%)
 3564 IF font%<>-1 SYS "Font_LoseFont",font%
 3565 SYS "Font_FindFont",,F$,xp%*16,yp%*16 TO font%
 3566 Ymax%=0:Xmax%=0
 3567 FOR V%=1 TO LEN(text$)
 3568 SYS "Font_CharBBox",font%,ASC(MID$(text$,V%)),16 TO,,,r3%,r4%
 3569 IF r3%>Xmax% THEN Xmax%=r3%
 3570 IF r4%>Ymax% THEN Ymax%=r4%
 3571 NEXT:Ymax%+=16
 3572 FOR V%=1 TO LEN(text$)
 3573 CH$=MID$(text$,V%,1):SYS "Font_CharBBox",font%,ASC(CH$),16 TO,,,w%
 3574 px%=x%+(Xmax%-w%)/2
 3575 PROCwrite(F$,CH$,px%,y%,xp%,yp%,c%)
 3576 y%=y%-Ymax%-4:NEXT
 3577 ENDPROC
 3578
 3579 DEF PROCcloning_brush(s%)
 3580 PROCdisplay_memory:PROCwait_no_button
 3581 REPEAT:MOUSE X,Y,B
 3582 GCOL 3,63 TINT 192:RECTANGLE X-s%/2,Y-s%/2,s%,s%
 3583 REPEAT:MOUSE X1,Y1,B:UNTIL X1<>X OR Y1<>Y OR B<>0
 3584 RECTANGLE X-s%/2,Y-s%/2,s%,s%:X=X1:Y=Y1:UNTIL B=4
 3585 SX=X1:SY=Y1:RECTANGLE SX-s%/2,SY-s%/2,s%,s%
 3586 PROCwait_no_button:REPEAT:MOUSE X,Y,B:UNTIL B<>0
 3587 RECTANGLE SX-s%/2,SY-s%/2,s%,s%:Xdiff%=X-SX:Ydiff%=Y-SY
 3588 X=(X DIV 2)*2:Y=(Y DIV 2)*2:REPEAT
 3589 RECTANGLE X-Xdiff%-s%/2,Y-Ydiff%-s%/2,s%,s%
 3590 REPEAT:MOUSE X1,Y1,B:X1=(X1 DIV 2)*2:Y1=(Y1 DIV 2)*2
 3591 UNTIL X1<>X OR Y1<>Y OR B<>0
 3592 RECTANGLE X-Xdiff%-s%/2,Y-Ydiff%-s%/2,s%,s%
 3593 IF B=2 THEN
 3594 s%+=8:IF s%>48 THEN s%=8
 3595 PROCwait_no_button
 3596 ENDIF
 3597 IF B=4 THEN
 3598 MOVE X-Xdiff%-s%/2,Y-Ydiff%-s%/2
 3599 MOVE BY s%,s%:PLOT &BF,X1-s%/2,Y1-s%/2
 3600 ENDIF
 3601 X=X1:Y=Y1:UNTIL B=1:PROCupmini
 3602 ENDPROC
 3603
 3604 DEF PROCdiagonal
 3605 CASE menu_box% OF
 3606 WHEN 4:R=255:G=255:B=255:RI=-.8:GI=-.8:BI=0
 3607 WHEN 5:R=255:G=255:B=255:RI=0:GI=-.8:BI=-.8
 3608 WHEN 6:R=0:G=255:B=255:RI=.8:GI=-.8:BI=0
 3609 WHEN 7:R=255:G=255:B=0:RI=0:GI=-.8:BI=.8
 3610 WHEN 8:R=255:G=255:B=0:RI=0:GI=-.8:BI=0
 3611 WHEN 9:R=255:G=255:B=255:RI=-.8:GI=0:BI=-.8
 3612 WHEN 10:R=255:G=255:B=0:RI=-.8:GI=0:BI=+.8
 3613 WHEN 11:R=255:G=0:B=0:RI=-.8:GI=0:BI=+.8
 3614 WHEN 12:R=255:G=0:B=0:RI=-1.6:GI=-.8:BI=1.6
 3615 WHEN 13:R=255:G=255:B=128:RI=1.6:GI=4.8:BI=-3.2
 3616 ENDCASE
 3617 Y=2048:FOR X%=-1280 TO 1280 STEP8
 3618 GCOL R,G,B
 3619 MOVE X%,0:MOVE 1280,Y
 3620 PLOT 85,1280,0
 3621 R+=RI:IF R>255 THEN R=255:RI=-RI
 3622 IF R<0 THEN R=0:RI=-RI
 3623 G+=GI:IF G>255 THEN G=255:GI=-GI
 3624 IF G<0 THEN G=0:GI=-GI
 3625 B+=BI:IF B>255 THEN B=255:BI=-BI
 3626 IF B<0 THEN B=0:BI=-BI
 3627 Y-=6.4:NEXT
 3628 IF NOT(merge%) THEN PROCupload_memory
 3629 ENDPROC
 3630
 3631 DEF PROCborder(r%,g%,b%)
 3632 PROCdisplay_memory
 3633 W%=1278:Y%=0:inc%=16/border_width%
 3634 CASE border_grad% OF
 3635 WHEN 1:ri%=inc%:gi%=inc%:bi%=inc%
 3636 WHEN 2:ri%=inc%:gi%=inc%:bi%=-inc%
 3637 WHEN 3:ri%=-inc%:gi%=inc%:bi%=inc%
 3638 WHEN 4:ri%=-inc%:gi%=inc%:bi%=-inc%
 3639 WHEN 5:ri%=inc%:gi%=-inc%:bi%=inc%
 3640 WHEN 6:ri%=inc%:gi%=-inc%:bi%=-inc%
 3641 WHEN 7:ri%=-inc%:gi%=-inc%:bi%=inc%
 3642 WHEN 8:ri%=-inc%:gi%=-inc%:bi%=-inc%
 3643 ENDCASE
 3644 FOR X%=0 TO 31*border_width% STEP2
 3645 GCOL r%,g%,b%:RECTANGLE X%,Y%,W%,bh%
 3646 Y%+=2:W%-=4:bh%-=4
 3647 r%+=ri%:IF r%>255 THEN r%=255
 3648 IF r%<0 THEN r%=0
 3649 g%+=gi%:IF g%>255 THEN g%=255
 3650 IF g%<0 THEN g%=0
 3651 b%+=bi%:IF b%>255 THEN b%=255
 3652 IF b%<0 THEN b%=0
 3653 NEXT
 3654 PROCupmini
 3655 ENDPROC
 3656
 3657 DEF PROCload_overlay_sprite
 3658 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
 3659 SYS sprswi%,256+10,spr%,dir$+"."+cat$(box%)
 3660 SYS sprswi%,256+13,spr%,sprite_name%,32,1 TO,,,L%
 3661 ?(sprite_name%+L%)=13:sprite_name$=$sprite_name%
 3662 overlay%=TRUE:overlay_outline%=0:screen_grabbed%=0:mask_created%=0
 3663 IF RIGHT$(dir$,7)="PStiles" THEN PROCtiled_sprite_background
 3664 ENDPROC
 3665
 3666 DEF PROCgrab_screen_ellipse
 3667 PROCdisplay_memory:PROCwait_no_button
 3668 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
 3669 MOUSE X%,Y%,B%:R1%=200:R2%=200:GCOL 3,63:ELLIPSE X%,Y%,R1%,R2%
 3670 REPEAT:REPEAT:MOUSE X2%,Y2%,B%:UNTIL X2%<>X% OR Y2%<>Y% OR B%<>0
 3671 ELLIPSE X%,Y%,R1%,R2%:X%=X2%:Y%=Y2%
 3672 IF B%=2 AND R1%>8 AND R2%>8 THEN
 3673 IF INKEY(-5) THEN R1%-=1
 3674 IF INKEY(-6) THEN R2%-=1
 3675 IF NOT(INKEY-5) AND NOT(INKEY-6) THEN R1%-=1:R2%-=1
 3676 K%=INKEY(2)
 3677 ENDIF
 3678 IF B%=1 AND ((R1%+1)*(R2%+1)*2)+((R1%+1)*(R2%+1)/8)<txtsize% THEN
 3679 IF INKEY(-5) THEN R1%+=1
 3680 IF INKEY(-6) THEN R2%+=1
 3681 IF NOT(INKEY-5) AND NOT(INKEY-6) THEN R1%+=1:R2%+=1
 3682 K%=INKEY(2)
 3683 ENDIF
 3684 ELLIPSE X2%,Y2%,R1%,R2%
 3685 UNTIL B%=4:R1%=(R1%DIV4)*4:R2%=(R2%DIV4)*4
 3686 GCOL 0,0:PROCdisplay_memory
 3687 SYS sprswi%,256+16,spr%,"ellipse",0,X2%-R1%,Y2%-R2%,X2%+R1%,Y2%+R2%
 3688 SYS sprswi%,256+29,spr%,"ellipse"
 3689 SYS sprswi%,256+61,spr%,"ellipse"
 3690 GCOL0:RECTANGLE FILL 0,0,R1%*2,R2%*2
 3691 GCOL1:ELLIPSE FILL R1%,R2%,R1%,R2%
 3692 SYS sprswi%,256+61,spr%,0:OFF:WAIT:screen_grabbed%=TRUE:grab$="e"
 3693 grabsize1%=X2%:grabsize2%=Y2%:grabsize3%=R1%:grabsize4%=R2%
 3694 overlay%=TRUE:overlay_outline%=TRUE:sprite_name$="ellipse":OOC%=1023
 3695 mask_created%=0
 3696 ENDPROC
 3697
 3698 DEF PROCgrab_screen_rectangle
 3699 PROCdisplay_memory:PROCwait_no_button
 3700 PROCgrab_rectangle_cursor:GCOL 0,0:PROCdisplay_memory
 3701 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
 3702 SYS sprswi%,256+16,spr%,"rectangle",0,X1,Y1,X,Y
 3703 screen_grabbed%=TRUE:grabsize1%=X1:grabsize2%=Y1:grabsize3%=X:grabsize4%=Y
 3704 overlay%=TRUE:overlay_outline%=0:sprite_name$="rectangle":OOC%=1023:grab$="r"
 3705 mask_created%=0
 3706 ENDPROC
 3707
 3708 DEF FNwhich_translate
 3709 CASE (spr%!56)AND255 OF
 3710 WHEN 9,12,14,16,17,20,22,27,31,35,39,43,46,48:t%=translate%
 3711 WHEN 10,13,15,21,24,28,32,36,40,47,49:t%=translate256%
 3712 OTHERWISE t%=0
 3713 ENDCASE
 3714 =t%
 3715
 3716 DEF PROCplot_overlay_sprite
 3717 t%=FNwhich_translate
 3718 MOUSE RECTANGLE -640,-512,1280+640,1024+512
 3719 PROCdisplay_memory:PROCwait_no_button
 3720 GCOL 255,255,255:RECTANGLE 0,0,1278,1022
 3721 MOUSE X,Y,B
 3722 SYS sprswi%,256+52,spr%,sprite_name$,X,Y,11,0,t%
 3723 REPEAT
 3724 REPEAT:MOUSE x,y,b:UNTIL x<>X OR Y<>y OR b=1 OR b=4
 3725 SYS sprswi%,256+52,spr%,sprite_name$,X,Y,11,0,t%
 3726 SYS sprswi%,256+52,spr%,sprite_name$,x,y,11,0,t%
 3727 X=x:Y=y
 3728 UNTIL b=1 OR b=4
 3729 PROCdisplay_memory
 3730 IF b=1 MOUSE RECTANGLE 0,0,1280,1024:ENDPROC
 3731 SYS sprswi%,256+52,spr%,sprite_name$,x,y,11,0,t%
 3732 IF b=4 AND overlay_outline% AND OOC%>0 AND OOC%<4 THEN
 3733  PROCsprite_shadow(x,y,OOC%)
 3734  ELSE
 3735  IF b=4 AND overlay_outline% THEN
 3736   r%=(OOC%AND31)*8:g%=((OOC%>>5)AND31)*8:b%=((OOC%>>10)AND31)*8
 3737   IF screen_grabbed% THEN
 3738    GCOL r%,g%,b%
 3739    IF grab$="e" THEN
 3740     ELLIPSE FILL grabsize3%+x,grabsize4%+y,grabsize3%+8,grabsize4%+8
 3741    ELSE
 3742     w%=grabsize3%-grabsize1%+16:h%=grabsize2%-grabsize4%+16
 3743     RECTANGLE FILL x-8,y-8,w%,h%
 3744    ENDIF
 3745   ELSE
 3746    overlay_outline_RGB%=(b%<<24)+(g%<<16)+(r%<<8)
 3747    SYS "ColourTrans_SetGCOL",overlay_outline_RGB%,0,0,128,0
 3748    FOR Y%=y-8 TO y+8 STEP4:FOR X%=x-8 TO x+8 STEP4
 3749    SYS sprswi%,256+49,spr%,sprite_name$,X%,Y%:NEXT:NEXT
 3750   ENDIF
 3751  ENDIF
 3752 ENDIF
 3753 IF b=4 THEN SYS sprswi%,256+52,spr%,sprite_name$,x,y,8,0,t%
 3754 MOUSE RECTANGLE 0,0,1280,1024
 3755 PROCupload_memory
 3756 ENDPROC
 3757
 3758 DEF PROCpaint_with_sprite
 3759 IF NOT overlay% ERROR 1997,"No sprite is available ..."+CHR$13+"Load or create one and try again"
 3760 t%=FNwhich_translate
 3761 MOUSE RECTANGLE -640,-512,1280+640,1024+512
 3762 PROCdisplay_memory:PROCwait_no_button
 3763 MOUSE X,Y,B
 3764 REPEAT
 3765 REPEAT
 3766 SYS sprswi%,256+52,spr%,sprite_name$,X,Y,11,0,t%
 3767 REPEAT:MOUSE X1,Y1,B:UNTIL X<>X1 OR Y<>Y1
 3768 SYS sprswi%,256+52,spr%,sprite_name$,X,Y,11,0,t%
 3769 X=X1:Y=Y1
 3770 UNTIL B<>0
 3771 IF B=4 SYS sprswi%,256+52,spr%,sprite_name$,X,Y,8,0,t%
 3772 UNTIL B=1
 3773 PROCupmini
 3774 MOUSE RECTANGLE 0,0,1280,1024
 3775 ENDPROC
 3776
 3777 DEF PROCtiled_sprite_background
 3778 PROCdisplay_memory:t%=FNwhich_translate
 3779 SYS sprswi%,256+40,spr%,sprite_name$ TO,,,w%,h%
 3780 FOR Y%=0 TO 1600 STEP h%*2:FOR X%=0 TO 1800 STEP w%*2
 3781 SYS sprswi%,256+52,spr%,sprite_name$,X%,Y%,8,0,t%
 3782 NEXT:NEXT:PROCupload_memory
 3783 ENDPROC
 3784
 3785 DEF PROCstar_field:B=180:FOR Y%=0TO1023STEP4:GCOL0,0,B
 3786 RECTANGLE FILL0,Y%,1280,4:B-=.8:IF B<0 THEN B=0
 3787 NEXT:FOR N%=1TO400:X%=RND(1280):Y%=RND(1024):R%=51+Y%/5:b%=RND(255)
 3788 GCOL R%,R%,b%:POINT X%,Y%:POINT X%+2,Y%:NEXT
 3789 ENDPROC
 3790
 3791 DEF PROCsplash2
 3792 B=255:BI=-1:FOR Y=1020 TO 0 STEP-4:GCOL 64,0,B:RECTANGLE FILL 0,Y,1280,4
 3793 B+=BI:NEXT:B=0:BI=1:FOR Y=1020 TO 0 STEP-4:GCOL 0,0,B
 3794 RECTANGLE FILL 100,Y,1078,4:B+=BI:NEXT
 3795 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
 3796 SYS sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.pscan96"
 3797 SYS sprswi%,256+52,spr%,"pscan96",350,800,8,0,0
 3798 SYS sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.acorn"
 3799 SYS sprswi%,256+52,spr%,"acorn",510,340,8,0,0
 3800 SYS sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.vmess1"
 3801 SYS sprswi%,256+52,spr%,"vmess1",20,140,8,0,0
 3802 SYS sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.vmess2"
 3803 SYS sprswi%,256+52,spr%,"vmess2",1200,156,8,0,0
 3804 text%=0
 3805 PROCwrite("Homerton.Bold","Version "+ver$,splash2x%,208,28,28,0)
 3806 PROCwrite("Homerton.Bold","Version "+ver$,splash2x%-10,216,28,28,7)
 3807 PROCwrite("Homerton.Bold","- Press H for help -",364,106,24,24,5)
 3808 ENDPROC
 3809
 3810 DEF PROCraised_block(rbx%,rby%,rbw%,rbh%)
 3811 GCOL 0,0,0:RECTANGLE FILL rbx%-6,rby%-6,rbw%+10,rbh%+12
 3812 GCOL 255,255,255:RECTANGLE FILL rbx%-4,rby%-4,rbw%+6,rbh%+8
 3813 GCOL 96,96,96:RECTANGLE FILL rbx%,rby%-4,rbw%+2,rbh%+4
 3814 GCOL 208,208,216:RECTANGLE FILL rbx%,rby%,rbw%-2,rbh%
 3815 GCOL 96,96,96:MOVE rbx%-4,rby%-4
 3816 MOVE rbx%-2,rby%-4:PLOT85,rbx%-2,rby%-2
 3817 GCOL 96,96,96:MOVE rbx%+rbw%,rby%+rbh%+2
 3818 MOVE rbx%+rbw%+2,rby%+rbh%+2:PLOT85,rbx%+rbw%+2,rby%+rbh%+4
 3819 ENDPROC
 3820
 3821 DEF PROCcircular_gradations
 3822 menu$(0)="Circular grads    "
 3823 menu$(1)="Red to yellow"
 3824 menu$(2)="Red to white"
 3825 menu$(3)="Red to black"
 3826 menu$(4)="Red to blue"
 3827 menu$(5)="Blue to white"
 3828 menu$(6)="Blue to cyan"
 3829 menu$(7)="Blue to black"
 3830 menu$(8)="Orange to black"
 3831 menu$(9)="Green to white"
 3832 menu$(10)="Green to black"
 3833 menu$(11)="Magenta to white"
 3834 menu$(12)="Magenta to yellow"
 3835 menu$(13)="*":PROCmenu(0,90,-1)
 3836 CASE menu_box% OF
 3837 WHEN 1:PROCgrad_circle(255,0,0,0,1,0)
 3838 WHEN 2:PROCgrad_circle(255,0,0,0,1,1)
 3839 WHEN 3:PROCgrad_circle(255,0,0,-1,0,0)
 3840 WHEN 4:PROCgrad_circle(255,0,0,-1,0,1)
 3841 WHEN 5:PROCgrad_circle(0,0,255,1,1,0)
 3842 WHEN 6:PROCgrad_circle(0,0,255,0,1,0)
 3843 WHEN 7:PROCgrad_circle(0,0,255,0,0,-1)
 3844 WHEN 8:PROCgrad_circle(255,128,0,-1,-.5,0)
 3845 WHEN 9:PROCgrad_circle(0,255,0,1,0,1)
 3846 WHEN 10:PROCgrad_circle(0,255,0,0,-1,0)
 3847 WHEN 11:PROCgrad_circle(255,0,255,0,1,0)
 3848 WHEN 12:PROCgrad_circle(255,0,255,0,1,-1)
 3849 ENDCASE
 3850 ENDPROC
 3851
 3852 DEF PROCgrad_circle(R,G,B,RI,GI,BI)
 3853 GCOL R,G,B:RECTANGLE FILL 0,900,1280,124
 3854 FOR D%=812 TO 50 STEP-3
 3855 GCOL R,G,B:CIRCLE FILL 640,480,D%
 3856 R+=RI:G+=GI:B+=BI:NEXT
 3857 IF NOT(merge%) THEN PROCupload_memory
 3858 ENDPROC
 3859
 3860 DEF PROCquarter
 3861 !source_address=memblock%+20+40960
 3862 !dest_address=screen%+164160
 3863 GCOL128,128,128:RECTANGLE FILL 0,0,1280,1024
 3864 !quarter_lines=240:CALL make_quarter
 3865 IF FNundo("Zoom 1:2 - options") THEN
 3866 PROCdismini
 3867 ELSE
 3868 GCOL128,128,128:RECTANGLE FILL 480,80,340,160
 3869 PROCgrab_quarter_area:PROCupmini
 3870 ENDIF
 3871 ENDPROC
 3872
 3873 DEF PROCquarter_assemble
 3874 data1=3:data2=4:source=5:dest=6:offset1=7:offset2=8:lines=9:mask=10
 3875 DIM quarter_code% 320
 3876 FOR P=0 TO 2 STEP2
 3877 P%=quarter_code%
 3878 [OPT P
 3879 .make_quarter
 3880 LDR source,source_address:LDR dest,dest_address:LDR lines,quarter_lines
 3881 LDR mask,mask_store:MOV offset1,#0:MOV offset2,#0
 3882 .quarter_loop
 3883 LDR data1,[source,offset1]:AND data1,data1,mask:ADD offset1,offset1,#4
 3884 LDR data2,[source,offset1]:AND data2,data2,mask:MOV data2,data2,LSL#16
 3885 ADD data2,data2,data1:STR data2,[dest,offset2]:ADD offset2,offset2,#4
 3886 ADD offset1,offset1,#4:CMP offset1,#1280:BLT quarter_loop
 3887 MOV offset1,#0:MOV offset2,#0
 3888 ADD source,source,#2560:ADD dest,dest,#1280
 3889 SUBS lines,lines,#1:BNE quarter_loop
 3890 .quarter_exit MOV PC,R14
 3891
 3892 .make_mini
 3893 LDR source,source_address:LDR dest,dest_address
 3894 LDR mask,mask_store:MOV offset1,#0:MOV offset2,#0
 3895 LDR lines,mini_lines
 3896 .make_mini_loop
 3897 LDR data1,[source,offset1]:AND data1,data1,mask:ADD offset1,offset1,#8
 3898 LDR data2,[source,offset1]:AND data2,data2,mask:MOV data2,data2,LSL#16
 3899 ADD data2,data2,data1:STR data2,[dest,offset2]:ADD offset2,offset2,#4
 3900 ADD offset1,offset1,#8:CMP offset1,#1280:BLT make_mini_loop
 3901 MOV offset1,#0:MOV offset2,#0
 3902 ADD source,source,#5120:ADD dest,dest,#1280
 3903 SUBS lines,lines,#1:BNE make_mini_loop
 3904 MOV PC,R14
 3905
 3906 .make_thumbnail
 3907 LDR source,source_address:LDR dest,dest_address
 3908 LDR mask,mask_store:MOV offset1,#0:MOV offset2,#0:MOV lines,#64
 3909 .make_thumbnail_loop
 3910 LDR data1,[source,offset1]:AND data1,data1,mask:ADD offset1,offset1,#16
 3911 LDR data2,[source,offset1]:AND data2,data2,mask:MOV data2,data2,LSL#16
 3912 ADD data2,data2,data1:STR data2,[dest,offset2]:ADD offset2,offset2,#4
 3913 ADD offset1,offset1,#16:CMP offset1,#1280:BLT make_thumbnail_loop
 3914 MOV offset1,#0:MOV offset2,#0
 3915 ADD source,source,#10240:ADD dest,dest,#1280
 3916 SUBS lines,lines,#1:BNE make_thumbnail_loop
 3917 MOV PC,R14
 3918
 3919 .source_address EQUD 0
 3920 .dest_address   EQUD 0
 3921 .quarter_lines  EQUD 240
 3922 .mini_lines     EQUD 128
 3923 .mask_store     EQUD %1111111111111111
 3924
 3925 ]:NEXT
 3926 ENDPROC
 3927
 3928 DEF PROCmake_mini_pic
 3929 PROCraised_block(38,-34,322,254)
 3930 FOR y%=-36 TO 202 STEP34:PROCraised_block(378,y%,40,20):NEXT
 3931 m%=1:FOR y%=246 TO 8 STEP-34
 3932 IF m%<=memories% THEN PROCwrite2(STR$ m%,378,y%,0)
 3933 m%+=1:NEXT:GCOL3,63 TINT192
 3934 CASE MEM% OF
 3935 WHEN 0:RECTANGLE FILL 374,200,46,26
 3936 WHEN 1:RECTANGLE FILL 374,166,46,26
 3937 WHEN 2:RECTANGLE FILL 374,132,46,26
 3938 WHEN 3:RECTANGLE FILL 374,98,46,26
 3939 WHEN 4:RECTANGLE FILL 374,64,46,26
 3940 WHEN 5:RECTANGLE FILL 374,30,46,26
 3941 WHEN 6:RECTANGLE FILL 374,-4,46,26
 3942 WHEN 7:RECTANGLE FILL 374,-38,46,26
 3943 ENDCASE
 3944 !source_address=memblock%+20
 3945 IF screen_lines%=512 THEN
 3946 !dest_address=screen%+1280*376+40
 3947 ELSE
 3948 !dest_address=screen%+1280*344+40
 3949 ENDIF
 3950 !mini_lines=128:CALL make_mini
 3951 ENDPROC
 3952
 3953 DEF PROCmulti_grad_menu
 3954 menu$(0)="Multi grads" 
 3955 menu$(1)="Type 1"
 3956 menu$(2)="Type 2"
 3957 menu$(3)="Type 3"
 3958 menu$(4)="Type 4"
 3959 menu$(5)="Type 5"
 3960 menu$(6)="Type 6"
 3961 menu$(7)="-------"
 3962 menu$(8)="Type 7"
 3963 menu$(9)="Type 8"
 3964 menu$(10)="Type 9"
 3965 menu$(11)="Type 10"
 3966 menu$(12)="Type 11"
 3967 menu$(13)="Type 12"
 3968 menu$(14)="*":PROCmenu(0,90,-1)
 3969 CASE menu_box% OF
 3970 WHEN 1,2,3,4,5,6:PROCmulti_grad(menu_box%)
 3971 WHEN 8,9,10,11,12,13:PROCmulti_grad(menu_box%-1)
 3972 ENDCASE
 3973 ENDPROC
 3974
 3975 DEF PROCmulti_grad(type%)
 3976 GCOL 0,0,0:RECTANGLE FILL 0,0,1280,1024
 3977 CASE type% OF
 3978 WHEN 1:PROCleft_right_grad(0,0,0,0,1,0)
 3979 PROCbottom_top_grad(255,0,0,-1,0,1)
 3980 WHEN 2:PROCleft_right_grad(0,0,0,0,0,1)
 3981 PROCbottom_top_grad(0,255,0,1,-1,0)
 3982 WHEN 3:PROCleft_right_grad(0,0,0,1,0,0)
 3983 PROCbottom_top_grad(0,255,0,0,-1,1)
 3984 WHEN 4:PROCleft_right_grad(0,0,0,0,0,1)
 3985 PROCbottom_top_grad(255,0,0,-1,0,0)
 3986 WHEN 5:PROCleft_right_grad(0,0,0,0,0,1)
 3987 PROCbottom_top_grad(255,255,0,-1,-1,0)
 3988 WHEN 6:PROCleft_right_grad(0,255,0,0,-1,0)
 3989 PROCbottom_top_grad(0,0,0,0,0,1)
 3990 WHEN 7:PROCleft_right_grad(0,0,0,0,8,0)
 3991 PROCbottom_top_grad(248,0,0,-8,0,8)
 3992 WHEN 8:PROCleft_right_grad(0,0,0,0,0,8)
 3993 PROCbottom_top_grad(0,248,0,8,-8,0)
 3994 WHEN 9:PROCleft_right_grad(0,0,0,8,0,0)
 3995 PROCbottom_top_grad(0,248,0,0,-8,8)
 3996 WHEN 10:PROCleft_right_grad(0,0,0,0,0,8)
 3997 PROCbottom_top_grad(248,0,0,-8,0,0)
 3998 WHEN 11:PROCleft_right_grad(0,0,0,0,0,8)
 3999 PROCbottom_top_grad(248,248,0,-8,-8,0)
 4000 WHEN 12:PROCleft_right_grad(0,248,0,0,-8,0)
 4001 PROCbottom_top_grad(0,0,0,0,0,8)
 4002 WHEN 13:PROCleft_right_grad(0,248,0,0,-8,0)
 4003 PROCbottom_top_grad(0,0,0,0,0,8)
 4004 ENDCASE
 4005 IF NOT(merge%) THEN PROCupload_memory
 4006 ENDPROC
 4007
 4008 DEF PROCleft_right_grad(r%,g%,b%,ri%,gi%,bi%)
 4009 FOR x%=0 TO 1280 STEP6:GCOL 1,r%,g%,b%
 4010 RECTANGLE FILL x%,0,4,1024
 4011 r%+=ri%:g%+=gi%:b%+=bi%
 4012 IF r%>248 THEN r%=248:ri%=-ri%
 4013 IF g%>248 THEN g%=248:gi%=-gi%
 4014 IF b%>248 THEN b%=248:bi%=-bi%
 4015 IF r%<0 THEN r%=0:ri%=-ri%
 4016 IF g%<0 THEN g%=0:gi%=-gi%
 4017 IF b%<0 THEN b%=0:bi%=-bi%
 4018 NEXT
 4019 ENDPROC
 4020
 4021 DEF PROCbottom_top_grad(r%,g%,b%,ri%,gi%,bi%)
 4022 FOR y%=0 TO 1020 STEP4:GCOL 1,r%,g%,b%
 4023 RECTANGLE FILL 0,y%,1280,2
 4024 r%+=ri%:g%+=gi%:b%+=bi%
 4025 IF r%>248 THEN r%=248:ri%=-ri%
 4026 IF g%>248 THEN g%=248:gi%=-gi%
 4027 IF b%>248 THEN b%=248:bi%=-bi%
 4028 IF r%<0 THEN r%=0:ri%=-ri%
 4029 IF g%<0 THEN g%=0:gi%=-gi%
 4030 IF b%<0 THEN b%=0:bi%=-bi%
 4031 NEXT
 4032 ENDPROC
 4033
 4034 DEF PROCplinth(x%,y%,w%,h%,t%,r%,g%,b%)
 4035 GCOL r%,g%,b%:MOVE x%,y%+h%:MOVE x%+t%,y%+h%-t%
 4036 PLOT85,x%+w%,y%+h%:PLOT85,x%+w%-t%,y%+h%-t%
 4037 r2%=r%-40:g2%=g%-40:b2%=b%-40
 4038 IF r2%<0 THEN r2%=0
 4039 IF g2%<0 THEN g2%=0
 4040 IF b2%<0 THEN b2%=0
 4041 GCOL r2%,g2%,b2%
 4042 MOVE x%,y%+h%:MOVE x%+t%,y%+h%-t%
 4043 PLOT85,x%,y%:PLOT85,x%+t%,y%+t%
 4044 r2%=r%-100:g2%=g%-100:b2%=b%-100
 4045 IF r2%<0 THEN r2%=0
 4046 IF g2%<0 THEN g2%=0
 4047 IF b2%<0 THEN b2%=0
 4048 GCOL r2%,g2%,b2%
 4049 MOVE x%+w%,y%+h%:MOVE x%+w%-t%,y%+h%-t%
 4050 PLOT85,x%+w%,y%:PLOT85,x%+w%-t%,y%+t%
 4051 r2%=r%-160:g2%=g%-160:b2%=b%-160
 4052 IF r2%<0 THEN r2%=0
 4053 IF g2%<0 THEN g2%=0
 4054 IF b2%<0 THEN b2%=0
 4055 GCOL r2%,g2%,b2%
 4056 MOVE x%,y%:MOVE x%+t%,y%+t%
 4057 PLOT85,x%+w%,y%:PLOT85,x%+w%-t%,y%+t%
 4058
 4059 IF w%>300 THEN
 4060 r2=r%:g2=g%:b2=b%
 4061 ri=(255-r2)/64
 4062 gi=(255-g2)/64
 4063 bi=(255-b2)/64
 4064 xx%=x%+w%/2-t%/2-128
 4065 FOR xs%=xx% TO xx%+258 STEP2
 4066 GCOL r2,g2,b2:LINE xs%,y%+h%-t%,xs%+t%,y%+h%
 4067 r2+=ri:g2+=gi:b2+=bi
 4068 IF r2>255 THEN r2=255:ri=-ri
 4069 IF g2>255 THEN g2=255:gi=-gi
 4070 IF b2>255 THEN b2=255:bi=-bi
 4071 NEXT
 4072 ENDIF
 4073
 4074 IF h%>260 THEN
 4075 r2=r%-40:g2=g%-40:b2=b%-40
 4076 IF r2<0 THEN r2=0
 4077 IF g2<0 THEN g2=0
 4078 IF b2<0 THEN b2=0
 4079 ri=(215-r2)/54
 4080 gi=(215-g2)/54
 4081 bi=(215-b2)/54
 4082 yy%=y%+h%/2-t%/2-114
 4083 FOR ys%=yy% TO yy%+212 STEP2
 4084 GCOL r2,g2,b2:LINE x%,ys%,x%+t%,ys%+t%
 4085 r2+=ri:g2+=gi:b2+=bi
 4086 IF r2>215 THEN r2=210:ri=-ri
 4087 IF g2>215 THEN g2=210:gi=-gi
 4088 IF b2>215 THEN b2=210:bi=-bi
 4089 NEXT
 4090 ENDIF
 4091 ENDPROC
 4092
 4093 DEF PROCpicpro_panel(x%,y%)
 4094 xstart%=x%:ystart%=y%
 4095 PROCdisplay_memory:r%=0:g%=0:b%=0
 4096 exit%=0:REPEAT:reset%=0:ORIGIN 0,0
 4097 PROCraised_block(x%,y%,456,280)
 4098 ORIGIN x%,y%
 4099 PROCraised_block(32,32,108,40)
 4100 PROCraised_block(172,32,108,40)
 4101 PROCraised_block(312,32,108,40)
 4102 PROCwrite2("RESET",x%+34,y%+36,4)
 4103 PROCwrite2("TRY",x%+192,y%+36,4)
 4104 PROCwrite2("OK",x%+338,y%+36,4)
 4105 GCOL 255,0,0:RECTANGLE FILL 162,216,126,52
 4106 GCOL 0,200,0:RECTANGLE FILL 162,156,126,52
 4107 GCOL 0,0,255:RECTANGLE FILL 162,96,126,52
 4108 GCOL 255,255,255:FOR Y%=100 TO 220 STEP60
 4109 SYS sprswi%,256+52,spb%,"left",108,Y%+4,8,0,translate%
 4110 SYS sprswi%,256+52,spb%,"right",304,Y%+4,8,0,translate%
 4111 RECTANGLE FILL 166,Y%,118,44:NEXT
 4112 MOUSE RECTANGLE 0,0,456,280
 4113 GCOL 255,255,255:PROCwait_no_button
 4114 REPEAT
 4115 IF r%>-1 THEN r$="+"+STR$ r%+"%" ELSE r$=STR$ r%+"%"
 4116 IF g%>-1 THEN g$="+"+STR$ g%+"%" ELSE g$=STR$ g%+"%"
 4117 IF b%>-1 THEN b$="+"+STR$ b%+"%" ELSE b$=STR$ b%+"%"
 4118 PROCwrite2(r$,x%+180,y%+226,0)
 4119 PROCwrite2(g$,x%+180,y%+166,0)
 4120 PROCwrite2(b$,x%+180,y%+106,0)
 4121 K=INKEY(20)
 4122 REPEAT:MOUSE X,Y,B:UNTIL B=4
 4123 IF ABS(X-132)<24 AND ABS(Y-242)<24 THEN PROCred_minus
 4124 IF ABS(X-318)<24 AND ABS(Y-242)<24 THEN PROCred_plus
 4125 IF ABS(X-132)<24 AND ABS(Y-182)<24 THEN PROCgreen_minus
 4126 IF ABS(X-318)<24 AND ABS(Y-182)<24 THEN PROCgreen_plus
 4127 IF ABS(X-132)<24 AND ABS(Y-122)<24 THEN PROCblue_minus
 4128 IF ABS(X-318)<24 AND ABS(Y-122)<24 THEN PROCblue_plus
 4129 IF ABS(X-366)<60 AND ABS(Y-56)<30 THEN
 4130 PROCprocess_picture:PROCupload_memory:exit%=TRUE
 4131 ENDIF
 4132 IF ABS(X-224)<60 AND ABS(Y-56)<30 THEN PROCprocess_picture:reset%=TRUE
 4133 IF ABS(X-84)<60 AND ABS(Y-56)<30 THEN
 4134 r%=0:g%=0:b%=0:PROCdisplay_memory:reset%=TRUE
 4135 ENDIF
 4136 UNTIL exit% OR reset%
 4137 UNTIL NOT reset%
 4138 ORIGIN 0,0:PROCdisplay_memory:MOUSE RECTANGLE 0,0,1280,1024
 4139 ENDPROC
 4140
 4141 DEF PROCred_minus
 4142 IF r%>-50 THEN r%-=5:RECTANGLE FILL 168,222,112,40
 4143 ENDPROC
 4144 DEF PROCred_plus
 4145 IF r%<50 THEN r%+=5:RECTANGLE FILL 168,222,112,40
 4146 ENDPROC
 4147 DEF PROCgreen_minus
 4148 IF g%>-50 THEN g%-=5:RECTANGLE FILL 168,162,112,40
 4149 ENDPROC
 4150 DEF PROCgreen_plus
 4151 IF g%<50 THEN g%+=5:RECTANGLE FILL 168,162,112,40
 4152 ENDPROC
 4153 DEF PROCblue_minus
 4154 IF b%>-50 THEN b%-=5:RECTANGLE FILL 168,102,112,40
 4155 ENDPROC
 4156 DEF PROCblue_plus
 4157 IF b%<50 THEN b%+=5:RECTANGLE FILL 168,102,112,40
 4158 ENDPROC
 4159
 4160 DEF PROCprocess_picture
 4161 PROCpicpro_tables:PROCdisplay_memory
 4162 !start_address=screen%:!picpro_bytes=1280:!picpro_lines=512
 4163 !red_address=reddata:!green_address=grndata:!blue_address=bludata
 4164 CALL picture_process
 4165 ENDPROC
 4166
 4167 DEF PROCpicpro_assemble
 4168 redtable=3:greentable=4:bluetable=5:new=6
 4169 base=7:offset=8:bytes=9:lines=10:data=11
 4170 new1=3:new2=4:result1=6:result2=9
 4171 DIM picpro_code% 800
 4172 FOR P=0 TO 2 STEP2
 4173 P%=picpro_code%
 4174 [OPT P
 4175 .picture_process
 4176 LDR base,start_address:MOV offset,#0
 4177 LDR bytes,picpro_bytes:LDR lines,picpro_lines
 4178 LDR redtable,red_address:LDR greentable,green_address
 4179 LDR bluetable,blue_address
 4180 .picpro_loop
 4181 MOV new,#0:LDR R0,[base,offset]
 4182 AND R2,R0,#31:LDRB new,[redtable,R2]
 4183 MOV R2,R0,LSR#5:AND R2,R2,#31:LDRB data,[greentable,R2]
 4184 MOV data,data,LSL#5:ADD new,new,data
 4185 MOV R2,R0,LSR#10:AND R2,R2,#31:LDRB data,[bluetable,R2]
 4186 MOV data,data,LSL#10:ADD new,new,data
 4187 MOV R2,R0,LSR#16:AND R2,R2,#31:LDRB data,[redtable,R2]
 4188 MOV data,data,LSL#16:ADD new,new,data
 4189 MOV R2,R0,LSR#21:AND R2,R2,#31:LDRB data,[greentable,R2]
 4190 MOV data,data,LSL#21:ADD new,new,data
 4191 MOV R2,R0,LSR#26:AND R2,R2,#31:LDRB data,[bluetable,R2]
 4192 MOV data,data,LSL#26:ADD new,new,data
 4193 STR new,[base,offset]:ADD offset,offset,#4
 4194 CMP offset,bytes:BLT picpro_loop
 4195 ADD base,base,#1280:MOV offset,#0
 4196 SUBS lines,lines,#1:BNE picpro_loop
 4197 MOV PC,R14
 4198
 4199 .display_red_as_mono
 4200 LDR base,start_address:MOV offset,#0:MOV lines,#512
 4201 .red_mono_loop
 4202 LDR R0,[base,offset]:AND data,R0,#31
 4203 MOV new1,data,LSL#5:MOV new2,data,LSL#10
 4204 ADD result1,new2,new1:ADD result1,result1,data
 4205 MOV R0,R0,LSR#16:AND data,R0,#31
 4206 MOV new1,data,LSL#5:MOV new2,data,LSL#10
 4207 ADD result2,new2,new1:ADD result2,result2,data
 4208 MOV result2,result2,LSL#16:ADD result1,result1,result2
 4209 STR result1,[base,offset]:ADD offset,offset,#4
 4210 CMP offset,#1280:BNE red_mono_loop
 4211 MOV offset,#0:ADD base,base,#1280
 4212 SUBS lines,lines,#1:BNE red_mono_loop
 4213 MOV PC,R14
 4214
 4215 .display_green_as_mono
 4216 LDR base,start_address:MOV offset,#0:MOV lines,#512
 4217 .green_mono_loop
 4218 LDR R0,[base,offset]:MOV data,R0,LSR#5:AND data,data,#31
 4219 MOV new1,data,LSL#5:MOV new2,data,LSL#10
 4220 ADD result1,new2,new1:ADD result1,result1,data
 4221 MOV R0,R0,LSR#21:AND data,R0,#31
 4222 MOV new1,data,LSL#5:MOV new2,data,LSL#10
 4223 ADD result2,new2,new1:ADD result2,result2,data
 4224 MOV result2,result2,LSL#16:ADD result1,result1,result2
 4225 STR result1,[base,offset]:ADD offset,offset,#4
 4226 CMP offset,#1280:BNE green_mono_loop
 4227 MOV offset,#0:ADD base,base,#1280
 4228 SUBS lines,lines,#1:BNE green_mono_loop
 4229 MOV PC,R14
 4230
 4231 .display_blue_as_mono
 4232 LDR base,start_address:MOV offset,#0:MOV lines,#512
 4233 .blue_mono_loop
 4234 LDR R0,[base,offset]:MOV data,R0,LSR#10:AND data,data,#31
 4235 MOV new1,data,LSL#5:MOV new2,data,LSL#10
 4236 ADD result1,new2,new1:ADD result1,result1,data
 4237 MOV R0,R0,LSR#26:AND data,R0,#31
 4238 MOV new1,data,LSL#5:MOV new2,data,LSL#10
 4239 ADD result2,new2,new1:ADD result2,result2,data
 4240 MOV result2,result2,LSL#16:ADD result1,result1,result2
 4241 STR result1,[base,offset]:ADD offset,offset,#4
 4242 CMP offset,#1280:BNE blue_mono_loop
 4243 MOV offset,#0:ADD base,base,#1280
 4244 SUBS lines,lines,#1:BNE blue_mono_loop
 4245 MOV PC,R14
 4246
 4247 .red_address   EQUD 0
 4248 .green_address EQUD 0
 4249 .blue_address  EQUD 0
 4250 .start_address EQUD 0
 4251 .picpro_bytes  EQUD 0
 4252 .picpro_lines  EQUD 0
 4253 ]
 4254 NEXT
 4255 ENDPROC
 4256
 4257 DEF PROCpicpro_tables
 4258 red=1+(ABS(r%))/100:green=1+(ABS(g%))/100:blue=1+(ABS(b%))/100
 4259 FOR N%=0 TO 31
 4260 IF r%>-1 THEN R=N%*red:IF R>31 THEN R=31
 4261 IF r%<0 THEN R=31-INT(((31-N%)*red)):IF R<0 THEN R=0
 4262 IF g%>-1 THEN G=N%*green:IF G>31 THEN G=31
 4263 IF g%<0 THEN G=31-INT(((31-N%)*green)):IF G<0 THEN G=0
 4264 IF b%>-1 THEN B=N%*blue:IF B>31 THEN B=31
 4265 IF b%<0 THEN B=31-INT(((31-N%)*blue)):IF B<0 THEN B=0
 4266 reddata?N%=R:grndata?N%=G:bludata?N%=B
 4267 NEXT
 4268 ENDPROC
 4269
 4270 DEF PROCzoom_pic
 4271 MOUSE RECTANGLE 0,0,640,512
 4272 PROCdisplay_memory:PROCwait_no_button:MOUSE X,Y,B
 4273 GCOL 3,63:RECTANGLE X,Y,640,512:REPEAT
 4274 REPEAT:MOUSE X1,Y1,B:UNTIL X<>X1 OR Y<>Y1 OR B<>0
 4275 RECTANGLE X,Y,640,512:RECTANGLE X1,Y1,640,512
 4276 X=X1:Y=Y1:UNTIL B<>0
 4277 IF B=4 THEN
 4278 Y+=512:y%=(1024-Y)/2:x%=X:offset%=y%*1280+x%
 4279 WHILE offset%/4<>offset%DIV4
 4280 offset%-=1:ENDWHILE
 4281 !zoom_source_address=memblock%+20+offset%
 4282 !zoom_dest_address=screen%
 4283 CALL zoom_code%
 4284 IF FNundo("Zoom 2:1 - options") THEN
 4285 PROCdisplay_memory
 4286 ELSE
 4287 CALL zoom_code%:PROCupload_memory
 4288 ENDIF
 4289 ELSE
 4290 RECTANGLE X1,Y1,640,512
 4291 ENDIF
 4292 MOUSE RECTANGLE 0,0,1280,1024
 4293 ENDPROC
 4294
 4295 DEF FNundo(title$)
 4296 PROCwait_no_button:MOUSE RECTANGLE 490,100,300,120
 4297 PROCraised_block(490,100,300,120):PROCraised_block(510,120,108,40)
 4298 PROCraised_block(660,120,108,40)
 4299 PROCwrite2(title$,494,180,0)
 4300 PROCwrite2("RESET",512,124,4)
 4301 PROCwrite2("OK",684,124,4)
 4302 REPEAT:MOUSE X,Y,B:UNTIL B=4
 4303 MOUSE RECTANGLE 0,0,1280,1024
 4304 IF ABS(X-712)<52 AND ABS(Y-142)<22 THEN un%=0 ELSE un%=TRUE
 4305 =un%
 4306
 4307 DEF PROCundo_dither
 4308 PROCdisplay_memory:PROCwait_no_button
 4309 !zoom_source_address=memblock%+20
 4310 !zoom_dest_address=screen%:CALL preview320x256
 4311 IF FNundo(" Preview options") THEN
 4312 PROCdisplay_memory
 4313 ELSE
 4314 CALL preview320x256:PROCupload_memory
 4315 ENDIF
 4316 ENDPROC
 4317
 4318 DEF PROCzoom_assemble
 4319 DIM zoom_code% 360
 4320 red=1:green=2:blue=11
 4321 source_base=3:dest_base=4:source_offset=5:dest_offset=6
 4322 data1=7:data2=8:lines=9:mask1=10:offset=5
 4323 FOR P=0 TO 2 STEP2
 4324 P%=zoom_code%
 4325 [OPT P
 4326
 4327 .zoom_pic
 4328 LDR source_base,zoom_source_address:LDR dest_base,zoom_dest_address
 4329 MOV source_offset,#0:MOV dest_offset,#0:MOV lines,#256
 4330 LDR mask1,mask_bits
 4331 .zoom_loop
 4332 LDR data1,[source_base,source_offset]
 4333 AND data1,data1,mask1
 4334 MOV data2,data1,LSL#16:ADD data2,data2,data1
 4335 STR data2,[dest_base,dest_offset]:ADD dest_base,dest_base,#1280
 4336 STR data2,[dest_base,dest_offset]:SUB dest_base,dest_base,#1280
 4337 ADD dest_offset,dest_offset,#4
 4338 LDR data1,[source_base,source_offset]
 4339 MOV data1,data1,LSR#16:AND data1,data1,mask1
 4340 MOV data2,data1,LSL#16:ADD data2,data2,data1
 4341 STR data2,[dest_base,dest_offset]:ADD dest_base,dest_base,#1280
 4342 STR data2,[dest_base,dest_offset]:SUB dest_base,dest_base,#1280
 4343 ADD dest_offset,dest_offset,#4
 4344 ADD source_offset,source_offset,#4
 4345 CMP source_offset,#640:BLT zoom_loop
 4346 MOV source_offset,#0:MOV dest_offset,#0
 4347 ADD source_base,source_base,#1280
 4348 ADD dest_base,dest_base,#2560
 4349 SUBS lines,lines,#1:BNE zoom_loop
 4350 MOV PC,R14
 4351
 4352 .preview320x256
 4353 LDR source_base,zoom_source_address:LDR dest_base,zoom_dest_address
 4354 MOV offset,#0:MOV lines,#256
 4355 .preview_loop
 4356 LDR data1,[source_base,offset]:AND red,data1,#31
 4357 MOV R0,data1,LSR#16:AND R0,R0,#31:ADD R0,R0,red:MOV red,R0,LSR#1
 4358 MOV green,data1,LSR#5:AND green,green,#31
 4359 MOV R0,data1,LSR#21:AND R0,R0,#31:ADD R0,R0,green:MOV green,R0,LSR#1
 4360 MOV blue,data1,LSR#10:AND blue,blue,#31
 4361 MOV R0,data1,LSR#26:AND R0,R0,#31:ADD R0,R0,blue:MOV blue,R0,LSR#1
 4362 MOV green,green,LSL#5:MOV blue,blue,LSL#10
 4363 ADD data1,red,green:ADD data1,data1,blue
 4364 MOV data2,data1,LSL#16:ADD data2,data2,data1
 4365 STR data2,[dest_base,offset]:ADD dest_base,dest_base,#1280
 4366 STR data2,[dest_base,offset]:SUB dest_base,dest_base,#1280
 4367 ADD offset,offset,#4:CMP offset,#1280:BNE preview_loop
 4368 ADD source_base,source_base,#2560
 4369 ADD dest_base,dest_base,#2560:MOV offset,#0
 4370 SUBS lines,lines,#1:BNE preview_loop
 4371 MOV PC,R14
 4372
 4373 .zoom_source_address EQUD 0
 4374 .zoom_dest_address   EQUD 0
 4375 .mask_bits EQUD %00000000000000001111111111111111
 4376 ]
 4377 NEXT
 4378 ENDPROC
 4379
 4380 DEF PROCmenu(mmx%,mmy%,sub%)
 4381 MOUSE ON 1:N%=0:W%=0:WHILE menu$(N%)<>"*"
 4382 L%=LEN(menu$(N%)):IF L%>W% THEN W%=L%
 4383 N%+=1:ENDWHILE
 4384 IF NOT sub% THEN
 4385  IF LEFT$(menu$(0),2)="  " THEN
 4386  menu$(N%)="  [Close menu]":menu$(1)="  [Close menu]"
 4387  ELSE
 4388  menu$(N%)="[Close menu]":menu$(1)="[Close menu]"
 4389  ENDIF
 4390 ELSE N%-=1
 4391 ENDIF
 4392 IF sub% THEN mmx%=main_mmx%+main_width%+12
 4393 IF menu_redraw% OR sub% THEN
 4394 PROCraised_block(mmx%,mmy%,W%*16,N%*36+64):COLOUR128+63 TINT0:M%=N%
 4395 FOR Y%=mmy% TO (mmy%+(N%-1)*36) STEP36:GCOL 0,0,0
 4396 IF INSTR(menu$(M%),">")<>0 THEN fc%=2 ELSE fc%=0
 4397 IF (M%=N% OR M%=1) AND NOT(sub%) fc%=7
 4398 IF INSTR(menu$(M%),"---")<>0 THEN fc%=3
 4399 m$=menu$(M%):IF RIGHT$(m$,1)=">" m$=LEFT$(m$,LEN m$-1)
 4400 PROCwrite2(m$,mmx%,Y%+16,fc%)
 4401 IF RIGHT$(menu$(M%),1)=">" THEN
 4402 SYS sprswi%,256+52,spb%,"sub",mmx%+W%*16-24,Y%+22,8,0,translate%
 4403 ENDIF:M%-=1:NEXT:menu_redraw%=0
 4404 IF sub% THEN GCOL 128,64,0 ELSE GCOL 0,64,128
 4405 RECTANGLE FILL mmx%+4,mmy%+N%*36+20,W%*16-10,40
 4406 PROCwrite2(menu$(0),mmx%+4,mmy%+N%*36+20,0)
 4407 PROCwrite2(menu$(0),mmx%,mmy%+N%*36+24,1)
 4408 ELSE
 4409 GCOL 3,255,255,255
 4410 RECTANGLE FILL main_x%,main_y%,main_w%,36
 4411 ENDIF
 4412 MOUSE RECTANGLE mmx%-4,mmy%+12,W%*16-64,N%*36+4
 4413 MOUSE RECTANGLE mmx%-4,mmy%+12,W%*16+8,N%*36+4
 4414 IF sub% THEN MOUSE RECTANGLE mmx%-32,mmy%+12,W%*16+32,N%*36+4
 4415 effect%=3:PROCwait_no_button
 4416 BX%=mmx%+4:BY%=mmy%+8:BW%=W%*16-32
 4417 T%=mmy%+N%*36+10:subx%=mmx%+W%*16-24
 4418 REPEAT
 4419 GCOL effect%,255,255,255
 4420 MOUSE X,Y,B:menu_box%=(T%-Y)DIV36
 4421 RECTANGLE FILL BX%,T%-32-menu_box%*36,BW%,36
 4422 REPEAT:MOUSE x,y,B:menu_box2%=(T%-y)DIV36
 4423 IF x<mmx%-24 AND sub% THEN B=99
 4424 m$=menu$(menu_box2%+1):IF x>subx% AND RIGHT$(m$,1)=">" THEN B=8
 4425 PROCcheck_alt_s_save
 4426 UNTIL menu_box2%<>menu_box% OR B<>0
 4427 RECTANGLE FILL BX%,T%-32-menu_box%*36,BW%,36
 4428 IF INSTR(menu$((T%-y)DIV36+1),"---")<>0 THEN effect%=5 ELSE effect%=3
 4429 UNTIL B<>0
 4430 IF B<8 THEN
 4431 FOR F%=1 TO 5
 4432 RECTANGLE FILL BX%,T%-32-menu_box2%*36,BW%,36:WAIT:WAIT:NEXT
 4433 ELSE
 4434 RECTANGLE FILL BX%,T%-32-menu_box2%*36,BW%,36
 4435 ENDIF
 4436 IF NOT(sub%) THEN
 4437 main_mmx%=mmx%:main_width%=W%*16
 4438 main_x%=BX%:main_y%=T%-32-menu_box2%*36:main_w%=BW%
 4439 ENDIF
 4440 menu_box%=(T%-y)DIV36+1
 4441 IF menu_box%=N% AND NOT(sub%) menu_box%=1 : REM 1 = main menu cancel
 4442 IF B=99 THEN menu_box%=99                 : REM 99 = sub-menu cancel
 4443 IF sub% THEN PROCredraw(mmx%-6,82,W%*16+16,N%*36+80)
 4444 MOUSE RECTANGLE 0,0,1280,1024
 4445 ENDPROC
 4446
 4447 DEF PROCredraw(rx%,ry%,rw%,rh%)
 4448 tl%=ry%+rh%:A%=((screen_lines%*2-tl%)DIV2)*1280+rx%:A%=A%-(A%MOD4)
 4449 !redraw_source=A%+memblock%+20:!redraw_screen=screen%+A%
 4450 !redraw_bytes=rw%:!redraw_lines=rh%/2:CALL redraw_code%
 4451 ENDPROC
 4452
 4453 DEF PROCredraw_assemble
 4454 DIM redraw_code% 128
 4455 FOR P=0 TO 2 STEP 2
 4456 P%=redraw_code%
 4457 [OPT P
 4458 LDR R2,redraw_source:LDR R3,redraw_screen
 4459 LDR R4,redraw_bytes:LDR R5,redraw_lines:MOV R1,#0
 4460 .redraw_loop
 4461 LDR R0,[R2,R1]:STR R0,[R3,R1]
 4462 ADD R1,R1,#4:CMP R1,R4:BLT redraw_loop
 4463 ADD R2,R2,#1280:ADD R3,R3,#1280:MOV R1,#0
 4464 SUBS R5,R5,#1:BNE redraw_loop
 4465 MOV PC,R14
 4466 .redraw_source EQUD 0
 4467 .redraw_screen EQUD 0
 4468 .redraw_bytes  EQUD 0
 4469 .redraw_lines  EQUD 0
 4470 ]
 4471 NEXT
 4472 ENDPROC
 4473
 4474 DEF PROCperp_menu
 4475 menu$(0)="Tile colours" 
 4476 menu$(1)="White"
 4477 menu$(2)="Yellow"
 4478 menu$(3)="Cyan"
 4479 menu$(4)="Green"
 4480 menu$(5)="Magenta"
 4481 menu$(6)="Red"
 4482 menu$(7)="Blue"
 4483 menu$(8)="Orange"
 4484 menu$(9)="Sky blue"
 4485 menu$(10)="Pink"
 4486 menu$(11)="Crimson"
 4487 menu$(12)="Purple"
 4488 menu$(13)="*":PROCmenu(0,90,-1)
 4489 pr=255:pg=255:pb=255
 4490 CASE menu_box% OF
 4491 WHEN 1:pr=255:pg=255:pb=255
 4492 WHEN 2:pr=255:pg=255:pb=0
 4493 WHEN 3:pr=0:pg=255:pb=255
 4494 WHEN 4:pr=0:pg=255:pb=0
 4495 WHEN 5:pr=255:pg=0:pb=255
 4496 WHEN 6:pr=255:pg=0:pb=0
 4497 WHEN 7:pr=0:pg=0:pb=255
 4498 WHEN 8:pr=255:pg=128:pb=0
 4499 WHEN 9:pr=0:pg=128:pb=255
 4500 WHEN 10:pr=255:pg=128:pb=255
 4501 WHEN 11:pr=255:pg=0:pb=128
 4502 WHEN 12:pr=128:pg=0:pb=255
 4503 ENDCASE
 4504 CASE pr OF
 4505 WHEN 255:pri=.6
 4506 WHEN 128:pri=.3
 4507 WHEN 0  :pri=0
 4508 ENDCASE
 4509 CASE pg OF
 4510 WHEN 255:pgi=.6
 4511 WHEN 128:pgi=.3
 4512 WHEN 0  :pgi=0
 4513 ENDCASE
 4514 CASE pb OF
 4515 WHEN 255:pbi=.6
 4516 WHEN 128:pbi=.3
 4517 WHEN 0  :pbi=0
 4518 ENDCASE
 4519 IF menu_box%<>99 THEN PROCmake_perp
 4520 ENDPROC
 4521
 4522 DEF PROCmake_perp
 4523 pm%=MEM%:MEM%+=1:IF MEM%>=memories% THEN MEM%=0
 4524 PROCmemory_select(MEM%,0):PROCdisplay_memory
 4525 MEM%=pm%:PROCmemory_select(MEM%,0)
 4526 X=50:W=1180
 4527 r=pr-56:IF r<0 THEN r=0
 4528 g=pg-56:IF g<0 THEN g=0
 4529 b=pb-56:IF b<0 THEN b=0
 4530 R=r:G=g:B=b
 4531 IF R=0 THEN ri=2.3 ELSE ri=.5
 4532 IF G=0 THEN gi=2.3 ELSE gi=.5
 4533 IF B=0 THEN bi=2.3 ELSE bi=.5
 4534 FOR Y%=164 TO 204:GCOL R,G,B:LINE 50,Y%,1230,Y%
 4535 R+=ri:G+=gi:B+=bi:NEXT
 4536 FOR Y%=204 TO 244:GCOL R,G,B:LINE 50,Y%,1230,Y%
 4537 R-=ri:G-=gi:B-=bi:NEXT
 4538 FOR Y%=242 TO 764 STEP2
 4539 GCOL pr,pg,pb:LINE X,Y%,X+W,Y%:X+=.5:W-=1
 4540 pr=pr-pri:IF pr<0 THEN pr=0
 4541 pg=pg-pgi:IF pg<0 THEN pg=0
 4542 pb=pb-pbi:IF pb<0 THEN pb=0
 4543 NEXT
 4544 A%=memblock%+20+40960:W%=880:SX=200:Y%=140
 4545 FOR N%=A%TOA%+611840STEP2560:X=SX:XI=W%/640:FOR J%=N%TON%+1278STEP2:S%=(1280*Y%+INT X+screen%)DIV2*2:?S%=?J%:?(S%+1)=?(J%+1):X=X+XI:NEXT:SX-=.5:W%+=1:Y%+=1
 4546 NEXT:menu_box%=1:PROCupload_memory
 4547 ENDPROC
 4548
 4549 DEF PROCload_rx_and_tx_code
 4550 DIM rx_code% FNfile_len("<Pscan$Dir>.Resources.PscanRX")
 4551 OSCLI("LOAD <Pscan$Dir>.Resources.PscanRX "+STR$~rx_code%)
 4552 rx_param%=rx_code%+(rx_code%!4)
 4553 rx_parameters%=rx_param%
 4554
 4555 DIM hq_rx_code% FNfile_len("<Pscan$Dir>.Resources.HQRX")
 4556 OSCLI("LOAD <Pscan$Dir>.Resources.HQRX "+STR$~hq_rx_code%)
 4557 hq_rx_param%=hq_rx_code%+(hq_rx_code%!4)
 4558 hq_parameters%=hq_rx_param%
 4559
 4560 DIM rx_table% FNfile_len("<Pscan$Dir>.Resources.RX_table")
 4561 OSCLI("LOAD <Pscan$Dir>.Resources.RX_table "+STR$~rx_table%)
 4562
 4563 DIM pd_rx_table% 4096 : REM This table converts counts to 64-192
 4564 FOR C%=0 TO 4095
 4565 F=(1/(4096-C%))*1000000
 4566 D=(F-1500)/3.125/2+64
 4567 IF D<0 D=0
 4568 IF D>255 D=255
 4569 pd_rx_table%?C%=D:NEXT
 4570
 4571 DIM pd_auto_table% 3400 : REM Convert measured sync frequency to offset.
 4572 FOR C%=3096 TO 3382     : REM 1000 to 1400 Hz only.
 4573 F=(1/(4096-C%))*1000000
 4574 D=(F-1000)/3.125/2+32
 4575 pd_auto_table%?C%=D:NEXT
 4576
 4577 DIM tuning_indicator_table% 4096 : REM Convert counts to screen offset
 4578 FOR C%=0 TO 4095
 4579 F=(1/(4096-C%))*1000000
 4580 D=(F-1000)/5
 4581 tuning_indicator_table%?C%=D:NEXT
 4582
 4583 DIM green_store% 12800*4
 4584 green_store2%=green_store%+2560
 4585 blue_store%=green_store%+2560*2
 4586 blue_store2%=green_store%+2560*3
 4587 red_store%=green_store%+2560*4
 4588 PROCcreate_ry_tables
 4589 PROCset_rx_parameters
 4590
 4591 DIM tx_code% FNfile_len("<Pscan$Dir>.Resources.PscanTX")
 4592 OSCLI("LOAD <Pscan$Dir>.Resources.PscanTX "+STR$~tx_code%)
 4593 tx_param%=tx_code%+(!tx_code%)
 4594 PROCtx_params_setup
 4595
 4596 DIM vis_code% FNfile_len("<Pscan$Dir>.Resources.PscanVIS")
 4597 OSCLI("LOAD <Pscan$Dir>.Resources.PscanVIS "+STR$~vis_code%)
 4598 vis_param%=vis_code%+(vis_code%!4)
 4599
 4600 DIM offset_code% FNfile_len("<Pscan$Dir>.Resources.PscanOFF")
 4601 OSCLI("LOAD <Pscan$Dir>.Resources.PscanOFF "+STR$~offset_code%)
 4602 offset_result%=offset_code%+(offset_code%!4)
 4603
 4604 DIM auto_code% FNfile_len("<Pscan$Dir>.Resources.AutoMode")
 4605 OSCLI("LOAD <Pscan$Dir>.Resources.AutoMode "+STR$~auto_code%)
 4606
 4607 DIM vis_table% 2360:N=0
 4608 FOR C=3392 TO 3100 STEP-1
 4609 F=(1/(4096-C))*1000000:F2=F-180:F3=F+180
 4610 C2%=4096-(1/F2*1000000):C3%=4096-(1/F3*1000000)
 4611 !(vis_table%+N)=C2%:!(vis_table%+N+4)=C3%:N+=8:NEXT
 4612 vis_param%!24=vis_table%
 4613
 4614 ENDPROC
 4615
 4616 DEF PROCcreate_ry_tables
 4617 DIM tab_ry1% 1024,tab_by1% 1024,tab_y1% 1024,tab_r1% 1024,tab_b1% 1024
 4618 A%=0:FOR N%=-129 TO 126
 4619 tab_ry1%!A%=INT(N%*1.408):tab_by1%!A%=INT(N%*1.786)
 4620 A%+=4:NEXT
 4621 FOR N%=0 TO 255
 4622 tab_y1%?N%=INT((N%/2)*1.695):tab_r1%?N%=INT(N%*0.508)
 4623 tab_b1%?N%=INT(N%*0.186):NEXT
 4624 ENDPROC
 4625
 4626 DEF PROCset_rx_parameters
 4627 rx_param%!40=green_store%:hq_rx_param%!40=green_store%
 4628 rx_param%!44=green_store2%:hq_rx_param%!44=green_store2%
 4629 rx_param%!48=blue_store%:hq_rx_param%!48=blue_store%
 4630 rx_param%!52=blue_store2%:hq_rx_param%!52=blue_store2%
 4631 rx_param%!56=red_store%:hq_rx_param%!56=red_store%
 4632 IF screen_lines%=512 THEN
 4633 rx_param%!76=screen%+558560:hq_rx_param%!76=screen%+558560
 4634 ELSE
 4635 rx_param%!76=screen%+517600:hq_rx_param%!76=screen%+517600
 4636 ENDIF
 4637 rx_param%!80=screen%+632932:hq_rx_param%!80=screen%+632932
 4638 rx_param%!32=rx_table%:hq_rx_param%!32=rx_table%
 4639 rx_param%!36=screen%:hq_rx_param%!36=screen%
 4640 rx_param%!116=pd_rx_table%:hq_rx_param%!116=pd_rx_table%
 4641 rx_param%!124=tab_ry1%:hq_rx_param%!124=tab_ry1%
 4642 rx_param%!128=tab_by1%:hq_rx_param%!128=tab_by1%
 4643 rx_param%!132=tab_y1%:hq_rx_param%!132=tab_y1%
 4644 rx_param%!136=tab_r1%:hq_rx_param%!136=tab_r1%
 4645 rx_param%!140=tab_b1%:hq_rx_param%!140=tab_b1%
 4646 ENDPROC
 4647
 4648 DEF PROCtx_table_62
 4649 G%=0:IF X4% THEN M%=4 ELSE M%=1
 4650 FOR F=1500*M% TO 2301*M% STEP 800/31*M%
 4651 C=INT(1/F/2*1000000*2-1+.5)
 4652 tx_table%!G%=C:G%+=4:NEXT
 4653 ENDPROC
 4654
 4655 DEF PROCtx_table_248
 4656 G%=0:IF X4% THEN M%=4 ELSE M%=1
 4657 FOR F=1500*M% TO 2301*M% STEP 800/248*M%
 4658 C=INT(1/F/2*1000000*2-1+.5)
 4659 tx_table%!G%=C:G%+=4:NEXT
 4660 ENDPROC
 4661
 4662 DEF PROCset_fax_tx_tones
 4663 IF X4% THEN
 4664 tx_param%!104=108:tx_param%!108=0
 4665 tx_param%!72=108 :tx_param%!76=0
 4666 ELSE
 4667 tx_param%!104=178:tx_param%!108=1
 4668 tx_param%!72=64  :tx_param%!76=3
 4669 ENDIF
 4670 ENDPROC
 4671
 4672 DEF PROCset_sstv_tx_tones
 4673 IF X4% THEN
 4674 tx_param%!104=166:tx_param%!108=0
 4675 tx_param%!72=207:tx_param%!76=0
 4676 ELSE
 4677 tx_param%!104=154:tx_param%!108=2
 4678 tx_param%!72=64  :tx_param%!76=3
 4679 ENDIF
 4680 ENDPROC
 4681
 4682 DEF PROCtx_params_setup
 4683 DIM tx_table% 1024
 4684 IF X4% THEN
 4685 tx_param%!64=226 :tx_param%!68=0
 4686 tx_param%!72=207 :tx_param%!76=0
 4687 tx_param%!80=191 :tx_param%!84=0
 4688 tx_param%!88=166 :tx_param%!92=0
 4689 tx_param%!96=131 :tx_param%!100=0
 4690 tx_param%!104=108:tx_param%!108=0
 4691 ELSE
 4692 tx_param%!64=140 :tx_param%!68=3
 4693 tx_param%!72=64  :tx_param%!76=3
 4694 tx_param%!80=0   :tx_param%!84=3
 4695 tx_param%!88=154 :tx_param%!92=2
 4696 tx_param%!96=13  :tx_param%!100=2
 4697 tx_param%!104=178:tx_param%!108=1
 4698 ENDIF
 4699 DIM pd_tx_buffer% 2592
 4700 tx_param%!112=pd_tx_buffer%
 4701 DIM red30% 250,grn59% 250,blu11% 250,ry71% 250,by56% 256
 4702 FOR N%=0 TO 250
 4703 red30%?N%=INT(N%*0.3+.5)
 4704 grn59%?N%=INT(N%*0.59+.4)
 4705 blu11%?N%=INT(N%*.11+.5)
 4706 ry71%?N%=INT(N%*.71+.5)
 4707 by56%?N%=INT(N%*.56+.5)
 4708 NEXT
 4709 tx_param%!120=red30%:tx_param%!124=grn59%
 4710 tx_param%!128=blu11%:tx_param%!132=ry71%:tx_param%!136=by56%
 4711 ENDPROC
 4712
 4713 DEF PROCtx_frame(rflag%)
 4714 PROCdisplay_memory
 4715 GCOL 63 TINT 192
 4716 N%=tx_code%+(!tx_code%)
 4717 IF mode%>69 AND mode%<80 THEN ERROR 1997,"TX not available in HQ modes"
 4718 IF mode%>59 AND mode%<68 THEN PROCcal_pd_97
 4719 IF mode%<20 THEN PROCcal_sstv_new
 4720 IF mode%>19 AND mode%<23 THEN PROCcal_pasokon_new
 4721 IF mode%>99 THEN PROCcal_fax_new
 4722 N%!12=long% MOD 256:N%!16=long% DIV 256
 4723 N%!20=short% MOD 256:N%!24=short% DIV 256
 4724 N%!4=pixel% MOD 256:N%!8=pixel% DIV 256
 4725 IF mode%>99 THEN N%!40=512 ELSE N%!40=256
 4726 IF mode%>19 AND mode%<23 THEN N%!40=496 : REM Pasokon modes
 4727 IF mode%>59 AND mode%<68 THEN PROCtx_table_248 ELSE PROCtx_table_62
 4728 N%!36=tx_table% : REM pass tx table address
 4729 IF mode%=62 THEN pd_offset%=FNpd160_cursor ELSE pd_offset%=0
 4730 IF (mode%>19 AND mode%<23) OR (mode%>59 AND mode%<66 AND mode%<>62) THEN
 4731  pd_offset%=20480:GCOL 32,32,32:RECTANGLE FILL 0,992,1280,40
 4732  PROCpd_mode_header(0,960):PROCupload_memory
 4733  ENDIF
 4734 IF mode%=63 OR mode%=65 THEN pd_offset%=1280
 4735 N%!0=screen%+pd_offset%   : REM pass screen memory start address
 4736 N%!28=memblock%+20+pd_offset%
 4737 IF mode%>99 THEN N%!52=TXphase% MOD 256:N%!56=TXphase% DIV 256
 4738 FOR N%=0 TO 2592 STEP4:pd_tx_buffer%!N%=&7F7F7F7F:NEXT:PROCwait_no_button
 4739
 4740 IF rflag% PROCdisplay_header_text(call$+" Pscan repeater")
 4741
 4742 IF header_text% AND mode%<100 AND NOT rflag% THEN
 4743  PROCdisplay_header_text(header_text$)
 4744 ENDIF
 4745
 4746 tx_param%!148=serial_base%
 4747
 4748 IF pd_offset%<>1 THEN E%=mode%:CALL(tx_code%+8):REM 1 = PD160 cursor abort
 4749 PROCdisplay_memory:PROCmini_pad
 4750 ENDPROC
 4751
 4752 DEF PROCcal_hq
 4753 CASE mode% OF
 4754 WHEN 70:L=705410:P=534:pixel%=266:rx_param%!60=254:rx_param%!120=320
 4755         rx_param%!36=screen%+5120:rx_param%!144=132:rx_param%!148=0
 4756         rx_param%!168=30:rx_param%!172=2
 4757         rx_param%!176=68:rx_param%!180=1:rx_param%!184=96
 4758         corr=(L/1000000/2)*(clock_freq%-2000000)
 4759         long%=(21680+corr)*2-0.5
 4760 WHEN 71:L=873610:P=664:pixel%=331:rx_param%!60=254:rx_param%!120=320
 4761         rx_param%!36=screen%+5120:rx_param%!144=165:rx_param%!148=0
 4762         rx_param%!168=60:rx_param%!172=3
 4763         rx_param%!176=165:rx_param%!180=0:rx_param%!184=80
 4764         corr=(L/1000000/2)*(clock_freq%-2000000)
 4765         long%=(21690+corr)*2-0.5        
 4766 ENDCASE
 4767 short%=pixel%:rx_param%!100=10
 4768 ENDPROC
 4769
 4770 DEF PROCcal_pd_97
 4771 CASE mode% OF
 4772 WHEN 60:L=754240 :P=286:pixel%=142:rx_param%!60=494:rx_param%!120=640:
 4773 IF screen_lines%=512 THEN rx_param%!36=screen%+23040 ELSE rx_param%!36=screen%
 4774 WHEN 61:L=1000000:P=382:pixel%=190:rx_param%!60=494:rx_param%!120=640:
 4775 IF screen_lines%=512 THEN rx_param%!36=screen%+23040 ELSE rx_param%!36=screen%
 4776 WHEN 62:L=804416 :P=382:pixel%=190:rx_param%!60=398:rx_param%!120=512
 4777        :rx_param%!36=screen%+56*1280+128
 4778 WHEN 63:L=703040 :P=532:pixel%=265:rx_param%!60=254:rx_param%!120=320
 4779 IF screen_lines%=512 THEN rx_param%!36=screen%+3840 ELSE rx_param%!36=screen%
 4780 WHEN 64:L=508480 :P=190:pixel%=94:rx_param%!60=494:rx_param%!120=640:
 4781 IF screen_lines%=512 THEN rx_param%!36=screen%+23040 ELSE rx_param%!36=screen%
 4782 WHEN 65:L=388160 :P=286:pixel%=142:rx_param%!60=254:rx_param%!120=320
 4783 IF screen_lines%=512 THEN rx_param%!36=screen%+3840 ELSE rx_param%!36=screen%
 4784 ENDCASE
 4785 CASE mode% OF
 4786 WHEN 60,61,64:tp%=2560
 4787 WHEN 62      :tp%=2048
 4788 WHEN 63,65   :tp%=1280
 4789 ENDCASE
 4790 TS=L-(tp%*P*2000000/clock_freq%)
 4791 T1=TS*clock_freq%/2000000
 4792 long%=INT(T1*2-.5):short%=pixel%
 4793 rx_param%!100=16:rx_param%!144=pd_auto_table%
 4794 rx_param%!192=pd_auto_lines%
 4795 PROCset_sstv_tx_tones
 4796 ENDPROC
 4797
 4798 DEF PROCcal_pasokon_new
 4799 CASE mode% OF
 4800 WHEN 20:long=7453:short=1203:pixel=52:line_time=409375
 4801        :pp1%=6976.5-4*208:pp2%=5*208:rx_param%!100=7 
 4802 WHEN 21:long=11179.5:short=1804.5:pixel=78:line_time=614062.5
 4803        :pp1%=10625-4*312.5:pp2%=5*312.5:rx_param%!100=9
 4804 WHEN 22:long=14906:short=2406:pixel=104:line_time=818750
 4805        :pp1%=14543.5-4*416.5:pp2%=5*416.5:rx_param%!100=11
 4806 ENDCASE
 4807 line_total=(pixel*2561*3+long+short+short)*(clock_freq%/2000000)
 4808 line_error=line_total-line_time:long=long+line_error 
 4809 rx_param%!60=495  :REM lines
 4810 rx_param%!72=2560 :REM 640 pixels
 4811 IF screen_lines%=512 THEN rx_param%!36=screen%+21760 ELSE rx_param%!36=screen%
 4812 PROCset_sstv_tx_tones
 4813 long%=long*2-.5:short%=short*2-.5:pixel%=pixel*2-1
 4814 tx_param%!140=pp1% DIV 128:tx_param%!144=pp2% DIV 128
 4815 ENDPROC
 4816
 4817 DEF PROCcal_fax_new
 4818 CASE mode% OF
 4819 WHEN 100,120:pixel=388.5:l%=1000000:phase%=7999
 4820 WHEN 101,121:pixel=258.5:l%=666667 :phase%=5333
 4821 WHEN 102,122:pixel=193.5:l%=500000 :phase%=3999
 4822 WHEN 103,123:pixel=128.5:l%=333333 :phase%=2665
 4823 WHEN 104,124:pixel=95.5 :l%=250000 :phase%=1999
 4824 WHEN 105,125:pixel=63.0 :l%=166667 :phase%=1333
 4825 WHEN 106,126:pixel=47.0 :l%=125000 :phase%=999
 4826 ENDCASE
 4827 TXphase%=INT(((l%/20)*clock_freq%/2000000)*2)-.5
 4828 tv%=pixel*4*640:cst=l%-(tv%*2000000/clock_freq%):cst-=pixel
 4829 long%=INT(cst*2-.5):short%=long%:pixel%=pixel*2-1
 4830 IF mode%>119 THEN rx_param%!60=550 ELSE rx_param%!60=1020
 4831 rx_param%!72=2560    :REM 640 pixels
 4832 rx_param%!36=screen% :REM Start at top of frame
 4833 rx_param%!84=phase% MOD 256:rx_param%!88=phase% DIV 256
 4834 rx_param%!156=&03000000:rx_param%!160=0:rx_param%!164=0
 4835 IF mode%>119 THEN rx_param%!152=0 ELSE rx_param%!152=fax_average%
 4836 PROCset_fax_tx_tones
 4837 ENDPROC
 4838
 4839 DEF PROCcal_sstv_new
 4840 CASE mode% OF
 4841 WHEN 1
 4842  CASE sstv_time% OF
 4843  WHEN 1:long=5763.5:short=329.5
 4844  WHEN 2:long=5623.5:short=399.5
 4845  WHEN 3:long=5843.5:short=289.5
 4846  ENDCASE
 4847  pixel=114.5:line_time=446446
 4848 WHEN 2:long=6205:short=771:pixel=57:line_time=226798
 4849 WHEN 5:long=10392:short=1392:pixel=108:line_time=428220
 4850 WHEN 6:long=10175:short=1175:pixel=69:line_time=277692
 4851 WHEN 9:long=10230:short=1230:pixel=270:line_time=1050300
 4852 WHEN 11:long=6710:short=533:pixel=183:line_time=711045
 4853 WHEN 12:long=5828:short=974:pixel=183:line_time=711045
 4854 ENDCASE
 4855 line_total=(1281*pixel*3+long+short+short)*(clock_freq%/2000000)
 4856 line_error=line_total-line_time:long=long+line_error
 4857 rx_param%!60=255  :REM lines
 4858 rx_param%!72=1280 :REM 1280 "samples", each 1 is average of 4
 4859 IF screen_lines%=512 THEN rx_param%!36=screen%+2560 ELSE rx_param%!36=screen%
 4860 rx_param%!100=6
 4861 long%=long*2-.5:short%=short*2-.5:pixel%=pixel*2-1
 4862 ENDPROC
 4863
 4864
 4865 DEF PROCrx_sstv(rflag%)
 4866
 4867 IF NOT rflag% THEN
 4868 GCOL3,255,255,255:RECTANGLE FILL 10*64+8,6,48,46
 4869 ENDIF
 4870
 4871 L%=0
 4872
 4873 IF auto_find% THEN
 4874  PROCauto_mode_find
 4875  auto_find%=FALSE
 4876 ENDIF
 4877
 4878 IF L%=1 OR L%=2 THEN PROCdismini:PROCwait_no_button:ENDPROC
 4879 REM Auto-mode aborted (L%=1) or timeout (L%=2)
 4880
 4881 IF mode%=70 OR mode%=71 rx_param%=hq_parameters% ELSE rx_param%=rx_parameters%
 4882 PROCset_rx_parameters:rx_param%!152=0
 4883 FOR N%=0 TO 12796 STEP4:green_store%!N%=3440:NEXT
 4884
 4885 IF mode%=60 OR mode%=61 OR mode%=62 OR mode%=64 THEN
 4886  GCOL 32,32,32
 4887   IF mode%=62 THEN
 4888    RECTANGLE FILL 0,0,1280,1024
 4889   ELSE
 4890    RECTANGLE FILL 0,988,1280,64
 4891   ENDIF
 4892 ELSE
 4893  GCOL 0,0,0:RECTANGLE FILL 0,1020,1280,4
 4894 ENDIF
 4895
 4896 IF mode%<20 THEN PROCcal_sstv_new
 4897 IF mode%>19 AND mode%<23 THEN PROCcal_pasokon_new
 4898 IF mode%>99 THEN PROCcal_fax_new
 4899 IF mode%>59 AND mode%<67 THEN PROCcal_pd_97
 4900 IF mode%>69 AND mode%<80 THEN PROCcal_hq
 4901 short2%=short%+pixel%:lines%=rx_param%!60:rx_param%!68=mode%
 4902 rx_param%!0=pixel% MOD 256:rx_param%!4=pixel% DIV 256
 4903 rx_param%!8=pixel% MOD 256:rx_param%!12=pixel% DIV 256
 4904 rx_param%!16=short2% MOD 256:rx_param%!20=short2% DIV 256
 4905 rx_param%!24=long% MOD 256:rx_param%!28=long% DIV 256
 4906 IF mode%<100 PROCtuning_indicator
 4907 IF mode%>99 AND mbox%=10 THEN rx_param%!92=1 ELSE rx_param%!92=0
 4908 rx_param%!196=serial_base%
 4909 REPEAT
 4910 PROCwait_no_button:K=INKEY(1)
 4911 PROCinterface_offset:rx_param%!112=Ioffset% DIV 2
 4912 rx_param%!188=tuning_indicator_table%
 4913 rx_param%!64=0
 4914 IF mode%=70 OR mode%=71 CALL hq_rx_code% ELSE CALL rx_code%
 4915 IF rx_param%!64=96 THEN
 4916  REM 96 = re-sync
 4917  IF mode%>99 THEN rx_param%!92=1
 4918  IF mode%>59 AND mode%<80 THEN
 4919  rx_param%!60=(rx_param%!60)-2
 4920  ELSE
 4921  rx_param%!60=(rx_param%!60)-1
 4922 ENDIF
 4923 ENDIF
 4924 UNTIL rx_param%!64<>96
 4925
 4926 IF lines%-(rx_param%!60)>12 THEN
 4927   N%=screen_lines%*2-1-(((rx_param%!36)-screen%)DIV640):GCOL32,32,32
 4928    IF N%>0 THEN
 4929     FOR Y%=0 TO N% STEP2:LINE 0,Y%,1280,Y%:NEXT
 4930    ENDIF
 4931   IF mode%<20 OR mode%=70 OR mode%=71 OR mode%=63 OR mode%=65 !screen%=&80008000
 4932 ELSE
 4933   PROCdisplay_memory
 4934 ENDIF
 4935
 4936 IF rx_param%!164>511 AND mode%>99 THEN
 4937 S%=screen%:SL%=(rx_param%!164)-511:screen%=screen%+1280*SL%
 4938 PROCupload_memory:screen%=S%:sb%=rx_param%+156:sb2%=sb%+4
 4939 !sb%=&03000000:!sb2%=0:SYS "OS_Word",22,sb%+3:PROCdisplay_memory
 4940 ENDIF
 4941
 4942 IF rflag% PROCupload_memory ELSE PROCupmini
 4943 VDU7:CALL reset_t0_code%
 4944 PROCwait_no_button
 4945 ENDPROC
 4946
 4947 DEF PROCtuning_indicator
 4948 PROCraised_block(426,100,434,90)
 4949 GCOL 0,0,0
 4950 FOR N%=480 TO 800 STEP40:RECTANGLE FILL N%,108,2,54:NEXT
 4951 GCOL 0,64,32:RECTANGLE FILL 636,108,10,56
 4952 GCOL 0,40,96:RECTANGLE FILL 466,116,350,38
 4953 PROCwrite2("Lo",416,118,4)
 4954 PROCwrite2("Hi",812,118,4)
 4955 SYS sprswi%,256+52,spb%,"ti_scale",458,170,8,0,translate%
 4956 ENDPROC
 4957
 4958 DEF PROCinterface_offset
 4959 offset_result%!16=serial_base%
 4960 CALL offset_code%
 4961 t1=(offset_result%!0)/(offset_result%!4)
 4962 t2=(offset_result%!8)/(offset_result%!12)
 4963 N%=t2-t1+1
 4964 IF ABS(N%)<100 THEN Ioffset%=(Ioffset%+N%)/2
 4965 IF call$="G4IJE" THEN
 4966 COLOUR63:PRINT TAB(23,58);"Last value:";N%;"  Running average:";Ioffset%
 4967 ENDIF
 4968 ENDPROC
 4969
 4970 DEF PROCvis_start
 4971 GCOL3,255,255,255:RECTANGLE FILL 8*64+6,8,112,44
 4972 r%=64:g%=255:b%=64
 4973 GCOL r%,g%,b%:RECTANGLE FILL 612,24,10,10
 4974 IF mode%>99 THEN
 4975 PROCrx_sstv(FALSE)
 4976 ELSE
 4977 GCOL 196,196,196:RECTANGLE FILL 390,6,112,46
 4978 vis_quit%=0
 4979 vis_param%!80=0 : REM Normal (wide) bandwidth
 4980 vis_param%!4=serial_base%
 4981 REPEAT
 4982 PROCwait_no_button
 4983 REPEAT:CALL vis_code%
 4984 g%=g%EOR255:GCOL r%,g%,b%:RECTANGLE FILL 612,24,10,10
 4985 UNTIL !vis_param%<>256
 4986 VIS%=!vis_param%
 4987 PROCvis_convert_to_mode(VIS%)
 4988 IF good_vis% THEN
 4989 GCOL 255,64,0:RECTANGLE FILL 612,24,10,10
 4990 VDU5:GCOL0 TINT0:MOVE400,36:PRINT mode$(mode%):VDU4:OFF:WAIT
 4991 PROCrx_sstv(FALSE):vis_quit%=TRUE
 4992 ENDIF
 4993 IF VIS%=320 THEN auto_save%=0:PROCmini_pad:vis_quit%=TRUE
 4994 UNTIL vis_quit%
 4995 ENDIF
 4996 ENDPROC
 4997
 4998 DEF PROCtx_test_tone(f%)
 4999 IF X4% THEN M%=4 ELSE M%=1
 5000 c%=INT(1/(f%*M%)/2*1000000*2-1+.5)
 5001 vis_param%!56=c% MOD 256:vis_param%!60=c% DIV 256
 5002 vis_param%!80=0 : REM normal VIS / test tones
 5003 vis_param%!4=serial_base%
 5004 PROCwait_no_button:PROCraised_block(842,90,208,640)
 5005 GCOL 255,255,0:RECTANGLE FILL 850,550,186,94
 5006 PROCwrite2("Sending",874,600,4)
 5007 PROCwrite2(STR$ f%+" Hz",874,560,4)
 5008 PROCraised_block(870,200,150,40)
 5009 PROCwrite2("Cancel",884,204,4)
 5010 MOUSE TO 990,216:WAIT
 5011 CALL vis_code%+(vis_code%!8)
 5012 PROCwait_no_button:menu_redraw%=TRUE
 5013 ENDPROC
 5014
 5015 DEF PROCupdate_rtc(upd%)
 5016 ?rtc_buffer%=1
 5017 SYS "IIC_Control",&A0,rtc_buffer%,1
 5018 SYS "IIC_Control",&A1,rtc_buffer%,6
 5019 S$=STR$~rtc_buffer%?1:s%=VAL(S$)
 5020 IF s%<30 THEN s%+=1:S$=STR$(s%)
 5021 IF LEN S$<2 THEN S$="0"+S$
 5022 M$=STR$~rtc_buffer%?2:IF LEN M$<2 THEN M$="0"+M$
 5023 h%=rtc_buffer%?3:IF bst_flag% THEN h%+=1:IF h%=24 THEN h%=0
 5024 H$=STR$~h%:IF LEN H$<2 THEN H$="0"+H$
 5025 IF H$>=MID$(TIME$,17,2) THEN
 5026 ?rtc_buffer%=8:$(rtc_buffer%+1)=H$+":"+M$+":"+S$
 5027 IF upd% SYS "OS_Word",15,rtc_buffer%
 5028 ENDIF
 5029 ENDPROC
 5030
 5031 DEF PROCcheck_for_bst
 5032 ?rtc_buffer%=1
 5033 SYS "IIC_Control",&A0,rtc_buffer%,1
 5034 SYS "IIC_Control",&A1,rtc_buffer%,6
 5035 H$=STR$~rtc_buffer%?3:IF LEN H$<2 THEN H$="0"+H$
 5036 T$=MID$(TIME$,17,2):IF H$<>T$ THEN bst_flag%=TRUE ELSE bst_flag%=0
 5037 ENDPROC
 5038
 5039 DEF PROCauto_save
 5040 REPEAT
 5041 GCOL 128+21 TINT0:CLS:PROCmini_pad:PROCvis_start
 5042 IF VIS%<>320 THEN
 5043 ?rtc_buffer%=1
 5044 SYS "IIC_Control",&A0,rtc_buffer%,1
 5045 SYS "IIC_Control",&A1,rtc_buffer%,6
 5046 M$=STR$~rtc_buffer%?2:IF LEN M$<2 THEN M$="0"+M$
 5047 H$=STR$~rtc_buffer%?3:IF LEN H$<2 THEN H$="0"+H$
 5048 F$=MID$(TIME$,8,3)+MID$(TIME$,5,2)+"-"+H$+M$
 5049 save_type$="jpeg1":PROCsave_jpeg(auto_dir$+"."+F$)
 5050 auto_count%+=1:MEM%=MEM%+1
 5051 IF MEM%=memories% THEN MEM%=0
 5052 ENDIF
 5053 UNTIL VIS%=320
 5054 ENDPROC
 5055
 5056 DEF PROCwaveform_assemble
 5057 DIM waveform_code% 400
 5058 FOR P=0 TO 2 STEP2
 5059 P%=waveform_code%
 5060 base1=3:data=4:offset1=5:offset2=6
 5061 increment=7:lines=8:wave_limit=9
 5062 base2=10:rgb=11
 5063 [OPT P
 5064 LDR base1,waveform_source:LDR base2,waveform_plot_base
 5065 LDR increment,waveform_increment:MOV R1,#1280:MOV lines,#256
 5066 MOV offset1,#0:MOV offset2,#0:LDR wave_limit,waveform_limit
 5067 LDR rgb,waveform_rgb
 5068 .wave_loop
 5069 LDR base2,waveform_plot_base
 5070 LDR data,[base1,offset1]
 5071 CMP rgb,#2:MOVEQ data,data,LSR#5
 5072 CMP rgb,#3:MOVEQ data,data,LSR#10
 5073 AND R0,data,#31
 5074 MOV data,data,LSR#16:AND data,data,#31
 5075 ADD R0,data,R0:MOV R0,R0,LSL#1
 5076 MUL data,R0,R1
 5077 SUB data,base2,data
 5078 LDR R0,[data,offset2]
 5079 CMP R0,wave_limit
 5080 ADDNE R0,R0,increment:STR R0,[data,offset2]
 5081 ADD data,data,#1280:STR R0,[data,offset2]
 5082 ADD offset1,offset1,#16:ADD offset2,offset2,#4
 5083 CMP offset2,#320:BNE wave_loop
 5084 MOV offset1,#0:MOV offset2,#0
 5085 ADD base1,base1,#2560:SUBS lines,lines,#1:BNE wave_loop
 5086
 5087 .wave_exit
 5088 MOV PC,R14
 5089
 5090 .waveform_source    EQUD 0
 5091 .waveform_plot_base EQUD 0
 5092 .waveform_increment EQUD &00200020
 5093 .waveform_limit     EQUD &03E003E0
 5094 .waveform_rgb       EQUD 0
 5095
 5096 ]
 5097 NEXT
 5098 ENDPROC
 5099
 5100 DEF PROCwaveform_monitor
 5101 exit%=0
 5102 REPEAT
 5103 PROCdisplay_memory
 5104 GCOL 64,64,64:RECTANGLE FILL 0,0,1280,320
 5105 GCOL 128,128,128:LINE 0,320,1280,320
 5106 GCOL 0,0,0
 5107 RECTANGLE FILL 20,14,318,254
 5108 RECTANGLE FILL 348,14,318,254
 5109 RECTANGLE FILL 676,14,318,254
 5110 PROCraised_block(1060,20,160,50) :REM Cancel
 5111 PROCraised_block(1060,100,160,50):REM Upload
 5112 PROCwrite2("Cancel",1080,28,4)
 5113 PROCwrite2("Upload",1080,108,4)
 5114 PROCwrite2("RED",144,274,1)
 5115 PROCwrite2("GREEN",458,274,1)
 5116 PROCwrite2("BLUE",794,274,1)
 5117
 5118 m%=1
 5119 FOR X%=1030 TO 1210 STEP 60
 5120 PROCraised_block(X%,250,40,40):PROCwrite2(STR$ m%,X%-2,254,4)
 5121 PROCraised_block(X%,190,40,40):PROCwrite2(STR$(m%+4),X%-2,194,4)
 5122 m%+=1:NEXT
 5123
 5124 GCOL 3,63 TINT192
 5125 CASE MEM% OF
 5126 WHEN 0:RECTANGLE FILL 1026,246,46,48
 5127 WHEN 1:RECTANGLE FILL 1086,246,46,48
 5128 WHEN 2:RECTANGLE FILL 1146,246,46,48
 5129 WHEN 3:RECTANGLE FILL 1206,246,46,48
 5130 WHEN 4:RECTANGLE FILL 1026,186,46,48
 5131 WHEN 5:RECTANGLE FILL 1086,186,46,48
 5132 WHEN 6:RECTANGLE FILL 1146,186,46,48
 5133 WHEN 7:RECTANGLE FILL 1206,186,46,48
 5134 ENDCASE
 5135
 5136 !waveform_increment=&00400040:!waveform_limit=&03C003C0
 5137 !waveform_rgb=1 : REM RED
 5138 !waveform_source=memblock%+20
 5139 !waveform_plot_base=screen%+642580
 5140 CALL waveform_code%
 5141 !waveform_rgb=2 : REM GREEN
 5142 !waveform_plot_base=screen%+642600+310
 5143 CALL waveform_code%
 5144 !waveform_rgb=3 : REM BLUE
 5145 !waveform_plot_base=screen%+642600+636
 5146 CALL waveform_code%
 5147
 5148 GCOL 50 TINT 192
 5149 FOR Y=39.4 TO 242.6 STEP25.4:MOVE 18,Y:PLOT 17,978,0:NEXT
 5150 FOR X=18 TO 980 STEP82:MOVE X,16:PLOT 17,0,252:NEXT
 5151
 5152 PROCwait_no_button
 5153 REPEAT:MOUSE X,Y,B:K$=INKEY$(1):UNTIL B=4 OR K$<>""
 5154 IF K$<>"" THEN
 5155  X=0:m%=ASC(K$)-49
 5156  IF m%>-1 AND m%<memories% PROCmemory_select(m%,0):PROCdisplay_memory
 5157  ENDIF
 5158
 5159 IF B=4 THEN
 5160
 5161  m%=99
 5162  IF FNcheck_button(1030,250,40,40) m%=0
 5163  IF FNcheck_button(1090,250,40,40) m%=1
 5164  IF FNcheck_button(1150,250,40,40) m%=2
 5165  IF FNcheck_button(1210,250,40,40) m%=3
 5166  IF FNcheck_button(1030,190,40,40) m%=4
 5167  IF FNcheck_button(1090,190,40,40) m%=5
 5168  IF FNcheck_button(1150,190,40,40) m%=6
 5169  IF FNcheck_button(1210,190,40,40) m%=7
 5170  IF m%<memories% PROCmemory_select(m%,0):PROCdisplay_memory
 5171
 5172  IF FNcheck_button(1060,100,160,50) THEN
 5173  PROCupload_memory:exit%=TRUE
 5174  ENDIF
 5175
 5176  IF FNcheck_button(1060,20,160,50) THEN
 5177  PROCdisplay_memory:exit%=TRUE
 5178  ENDIF
 5179
 5180 ENDIF
 5181
 5182 UNTIL exit%
 5183 ENDPROC
 5184
 5185 DEF PROCsegment_menu
 5186 menu$(0)="Segment grads  "
 5187 menu$(1)="Preset type 1"
 5188 menu$(2)="Preset type 2"
 5189 menu$(3)="Preset type 3"
 5190 menu$(4)="Preset type 4"
 5191 menu$(5)="User defined"
 5192 menu$(6)="*":PROCmenu(0,90,-1)
 5193 CASE menu_box% OF
 5194 WHEN 1:R=255:G=0:B=0
 5195 WHEN 2:R=128:G=128:B=128
 5196 WHEN 3:R=128:G=128:B=255
 5197 WHEN 4:R=0:G=255:B=128
 5198 WHEN 5:PROCrgb_sliders(0):R=red%:G=grn%:B=blu%
 5199 ENDCASE
 5200 IF menu_box%<>99 THEN PROCsegment_background
 5201 ENDPROC
 5202
 5203 DEF PROCsegment_background
 5204 PROCwait_no_button
 5205 GCOL 64,64,64:RECTANGLE FILL 0,0,1280,1024
 5206 PROCraised_block(310,184,600,100)
 5207 PROCwrite2("Move mouse pointer to desired centre",320,240,4)
 5208 PROCwrite2("then click select - click adjust to abort",320,200,4)
 5209 REPEAT:MOUSE x,y,b:UNTIL b<>0:IF b=4 THEN
 5210 ORIGIN x,y:MOVE x,y:MOVE x,y
 5211 RI=2:GI=1:BI=3:hi%=255:lo%=0
 5212 step=(2*PI)/512
 5213 FOR A=0 TO 2*PI+step STEP step
 5214 GCOL R,G,B:X=1640*COS A:Y=1640*SIN A
 5215 X2=1640*COS(A+step):Y2=1640*SIN(A+step)
 5216 PLOT &B5,X2,Y2:LINE 0,0,X,Y
 5217 R+=RI
 5218 IF R>hi% THEN R=hi%:RI=-RI
 5219 IF R<lo% THEN R=lo%:RI=-RI
 5220 G+=GI
 5221 IF G>hi% THEN G=hi%:GI=-GI
 5222 IF G<lo% THEN G=lo%:GI=-GI
 5223 B+=BI
 5224 IF B>hi% THEN B=hi%:BI=-BI
 5225 IF B<lo% THEN B=lo%:BI=-BI
 5226 NEXT:ORIGIN 0,0
 5227 IF NOT(merge%) THEN PROCupload_memory
 5228 ENDIF
 5229 ENDPROC
 5230
 5231 DEF PROCpixel_rgb
 5232 x%=0:y%=0
 5233 REPEAT
 5234 PROCdisplay_memory:PROCwait_no_button
 5235 PROCraised_block(550+x%,8+y%,160,108)
 5236 GCOL 220,220,120:RECTANGLE FILL 550+x%,84+y%,158,30
 5237 PROCwrite2("RGB values",544+x%,84+y%,4)
 5238 PROCwrite2("R   G   B",556+x%,44+y%,4)
 5239 MOUSE X1,Y1,B
 5240 REPEAT
 5241 REPEAT:MOUSE X,Y,B:UNTIL X<>X1 OR Y<>Y1 OR B<>0
 5242 rgb%=POINT(X,Y):X1=X:Y1=Y
 5243 r%=rgb%AND31:g%=(rgb%>>5)AND31:b%=(rgb%>>10)AND31
 5244 r$=STR$(r%):IF LEN(r$)<2 THEN r$="0"+r$
 5245 g$=STR$(g%):IF LEN(g$)<2 THEN g$="0"+g$
 5246 b$=STR$(b%):IF LEN(b$)<2 THEN b$="0"+b$
 5247 GCOL 208,208,216:RECTANGLE FILL 560+x%,14+y%,140,28
 5248 PROCwrite2(r$,550+x%,10+y%,4)
 5249 PROCwrite2(g$,600+x%,10+y%,4)
 5250 PROCwrite2(b$,650+x%,10+y%,4)
 5251 UNTIL B<>0
 5252 IF B=4 THEN y%=y% EOR 894
 5253 UNTIL B=1:PROCdisplay_memory
 5254 ENDPROC
 5255
 5256 DEF PROCmode(mode$)
 5257 LOCAL c$,ex,ey,mode,end
 5258 DIM mode 64:end=mode+20:!mode=1
 5259 mode!4=VAL FN_m(mode$,"X","")
 5260 mode!8=VAL FN_m(mode$,"Y","")
 5261 c$=FN_m(mode$,"C","*")
 5262 IF c$="*" THEN
 5263 c$=FN_m(mode$,"G","")
 5264 IF c$="256" THEN !end=3:end!4=255:end+=8
 5265 ENDIF
 5266 mode!12=FN_bpp(c$)
 5267 mode!16=VAL FN_m(mode$,"F","-1")
 5268 ex=VAL FN_m(mode$,"EX","-1")
 5269 IF ex<>-1 THEN !end=4:end!4=ex:end+=8
 5270 ey=VAL FN_m(mode$,"EY","-1")
 5271 IF ey<>-1 THEN !end=5:end!4=ey:end+=8
 5272 !end=-1
 5273 LOCAL ERROR
 5274 ON ERROR LOCAL ENDPROC
 5275 MODE mode
 5276 RESTORE ERROR
 5277 ENDPROC
 5278
 5279 DEF FN_m(s$,p$,d$)
 5280 LOCAL i,j:i=INSTR(s$,p$)
 5281 IF i<1 AND d$="" THEN ERROR 490,"Missing "+p$
 5282 j=INSTR(s$+" "," ",i+1)
 5283 IF i<1 THEN fnm$=d$ ELSE fnm$=MID$(s$,i+1,j-i-1)
 5284 =fnm$
 5285
 5286 DEF FN_bpp(n$)
 5287 CASE n$ OF
 5288 WHEN "2":bpp%=0
 5289 WHEN "4":bpp%=1
 5290 WHEN "16":bpp%=2
 5291 WHEN "256":bpp%=3
 5292 WHEN "32T","32t","32K","32k":bpp%=4
 5293 WHEN "16M","16m":bpp%=5
 5294 OTHERWISE:bpp%=0:ERROR 490,"Bad parameter "+n$
 5295 ENDCASE
 5296 =bpp%
 5297
 5298 DEF FNmem_to_block(m%)
 5299 CASE m% OF
 5300 WHEN 1:mb%=mem1%
 5301 WHEN 2:mb%=mem2%
 5302 WHEN 3:mb%=mem3%
 5303 WHEN 4:mb%=mem4%
 5304 WHEN 5:mb%=mem5%
 5305 WHEN 6:mb%=mem6%
 5306 WHEN 7:mb%=mem7%
 5307 WHEN 8:mb%=mem8%
 5308 ENDCASE
 5309 =mb%
 5310
 5311 DEF PROCquad_display
 5312 tl%=9:tr%=9:bl%=9:br%=9:quad_quit%=0:quad_ok%=0
 5313 GCOL 0,32,64:RECTANGLE FILL 0,0,1280,1024
 5314 !source_address=FNmem_to_block(MEM%+1)+20
 5315 !dest_address=screen%+164160:!quarter_lines=256:CALL make_quarter
 5316
 5317 M%=1:FOR QB%=4 TO 7 STEP3
 5318 IF M%<=memories% THEN
 5319  !dest_address=screen%+(QB% DIV 4)*163840+(QB% MOD 4)*320
 5320  !source_address=FNmem_to_block(M%)+20:!mini_lines=128:CALL make_mini
 5321  M%+=7:NEXT
 5322 ENDIF
 5323
 5324 M%=3:FOR QB%=12 TO 15
 5325 IF M%<=memories% THEN
 5326  !dest_address=screen%+(QB% DIV 4)*163840+(QB% MOD 4)*320
 5327  !source_address=FNmem_to_block(M%)+20:!mini_lines=128:CALL make_mini
 5328  M%+=1:NEXT
 5329 ENDIF
 5330
 5331 M%=2:FOR QB%=8 TO 11 STEP3
 5332 IF M%<=memories% THEN
 5333  !dest_address=screen%+(QB% DIV 4)*163840+(QB% MOD 4)*320
 5334  !source_address=FNmem_to_block(M%)+20:!mini_lines=128:CALL make_mini
 5335  M%+=5:NEXT
 5336 ENDIF
 5337 
 5338 FOR QB%=12 TO 15:PROCquad_border(QB%,255,255,0):NEXT
 5339 FOR QB%=4 TO 7 STEP3:PROCquad_border(QB%,255,255,0):NEXT
 5340 FOR QB%=8 TO 11 STEP3:PROCquad_border(QB%,255,255,0):NEXT
 5341 PROCquad_border2
 5342 PROCraised_block(460,800,360,120)
 5343 PROCraised_block(490,820,120,40)
 5344 PROCraised_block(668,820,120,40)
 5345 PROCwrite2("CANCEL",492,824,4)
 5346 PROCwrite2("OK",700,824,4)
 5347 PROCwrite2("Pscan Quad Display",494,880,4)
 5348 REPEAT
 5349 REPEAT:MOUSE X,Y,B:UNTIL B<>0
 5350 IF ABS(X-550)<62 AND ABS(Y-844)<22 THEN quad_quit%=TRUE
 5351 IF ABS(X-728)<62 AND ABS(Y-844)<22 THEN quad_ok%=TRUE
 5352 IF NOT(quad_quit%) AND NOT(quad_ok%) THEN
 5353 MB1%=(X DIV 321)+((1024-Y)DIV 257)*4:x1=X:y1=Y
 5354 IF MB1%=4 OR MB1%=7 OR MB1%=8 OR (MB1%>10 AND MB1%<16) THEN PROCquad_cursor(MB1%,X,Y)
 5355 MB2%=(x1 DIV 321)+((1024-y1)DIV 257)*4
 5356 IF MB1%=4 OR MB1%=7 OR MB1%=8 OR (MB1%>10 AND MB1%<16) THEN
 5357 IF MB2%=5 OR MB2%=6 OR MB2%=9 OR MB2%=10 THEN PROCquad_move
 5358 ENDIF
 5359 ENDIF
 5360 UNTIL quad_quit% OR quad_ok%
 5361 IF quad_ok% THEN
 5362 PROCdisplay_memory
 5363 IF tl%<>9 THEN
 5364 !source_address=FNmem_to_block(tl%)+20+40960
 5365 !dest_address=screen%+40960:!quarter_lines=240:CALL make_quarter
 5366 ENDIF
 5367 IF tr%<>9 THEN
 5368 !source_address=FNmem_to_block(tr%)+20+40960
 5369 !dest_address=screen%+41600:!quarter_lines=240:CALL make_quarter
 5370 ENDIF
 5371 IF bl%<>9 THEN
 5372 !source_address=FNmem_to_block(bl%)+20+40960
 5373 !dest_address=screen%+348160:!quarter_lines=240:CALL make_quarter
 5374 ENDIF
 5375 IF br%<>9 THEN
 5376 !source_address=FNmem_to_block(br%)+20+40960
 5377 !dest_address=screen%+348800:!quarter_lines=240:CALL make_quarter
 5378 ENDIF
 5379 PROCupload_memory:PROCtopscale2(0)
 5380 ELSE
 5381 PROCdismini
 5382 ENDIF
 5383 ENDPROC
 5384
 5385 DEF PROCquad_border(qb%,r%,g%,b%)
 5386 GCOL r%,g%,b%
 5387 y%=768-((qb% DIV 4)*256):x%=(qb% MOD 4)*320
 5388 RECTANGLE x%,y%,318,254
 5389 RECTANGLE x%+2,y%+2,314,250
 5390 RECTANGLE x%+4,y%+4,310,246
 5391 ENDPROC
 5392
 5393 DEF PROCquad_border2
 5394 GCOL 255,0,0:RECTANGLE 320,256,318,238:RECTANGLE 640,256,318,238
 5395 RECTANGLE 320,496,318,238:RECTANGLE 640,496,318,238
 5396 ENDPROC
 5397
 5398 DEF PROCquad_move
 5399 CASE MB1% OF
 5400 WHEN 4:M%=1
 5401 WHEN 7:M%=8
 5402 WHEN 8:M%=2
 5403 WHEN 11:M%=7
 5404 WHEN 12,13,14,15:M%=MB1%-9
 5405 ENDCASE
 5406 IF M%<=memories% THEN
 5407 IF MB2%=5 OR MB2%=6 o%=16 ELSE o%=8
 5408 !dest_address=screen%+(MB2% DIV 4)*163840+(MB2% MOD 4)*320+1280*o%
 5409 !source_address=FNmem_to_block(M%)+20+1280*32:!mini_lines=120:CALL make_mini
 5410 PROCquad_border2
 5411 CASE MB2% OF
 5412 WHEN 5:tl%=M%
 5413 WHEN 6:tr%=M%
 5414 WHEN 9:bl%=M%
 5415 WHEN 10:br%=M%
 5416 ENDCASE
 5417 ENDIF
 5418 ENDPROC
 5419
 5420 DEF PROCquad_cursor(source%,x,y)
 5421 qcx%=(source% MOD 4)*320:qcy%=768-((source% DIV 4)*256)
 5422 xo%=x-qcx%:yo%=y-qcy%:GCOL 3,63 TINT 192
 5423 RECTANGLE qcx%,qcy%,318,238
 5424 REPEAT
 5425 REPEAT:MOUSE x1,y1,B
 5426 UNTIL x1<>x OR y1<>y OR B=0
 5427 IF B<>0 THEN
 5428 RECTANGLE qcx%,qcy%,318,238
 5429 qcx%=x1-xo%:qcy%=y1-yo%
 5430 RECTANGLE qcx%,qcy%,318,238
 5431 x=x1:y=y1
 5432 ELSE
 5433 RECTANGLE qcx%,qcy%,318,238
 5434 ENDIF
 5435 UNTIL B=0
 5436 ENDPROC
 5437 
 5438 DEF PROCquad_display_border(r%,g%,b%,qbw$)
 5439 PROCdisplay_memory
 5440 CASE qbw$ OF
 5441 WHEN "n":qw%=10
 5442 WHEN "m":qw%=20
 5443 WHEN "w":qw%=30
 5444 ENDCASE
 5445 GCOL r%,g%,b%:PROCdisplay_memory
 5446 RECTANGLE FILL 0,0,qw%,960
 5447 RECTANGLE FILL 0,960-qw%,1280,qw%
 5448 RECTANGLE FILL 1279-qw%,0,qw%,960
 5449 RECTANGLE FILL 0,0,1280,qw%
 5450 RECTANGLE FILL 640-qw%/2,0,qw%,960
 5451 RECTANGLE FILL 0,480-qw%/2,1280,qw%
 5452 PROCupmini
 5453 ENDPROC
 5454 
 5455 DEF PROCquad_border_menu
 5456 REPEAT
 5457 menu$(0)="  Quad borders    "
 5458 IF qbw$="n" THEN menu$(1)=CHR$128+" Narrow" ELSE menu$(1)="  Narrow"
 5459 IF qbw$="m" THEN menu$(2)=CHR$128+" Medium" ELSE menu$(2)="  Medium"
 5460 IF qbw$="w" THEN menu$(3)=CHR$128+" Wide" ELSE menu$(3)="  Wide"
 5461 menu$(4)="  Colour selector"
 5462 menu$(5)="*":PROCmenu(0,90,-1)
 5463 CASE menu_box% OF
 5464 WHEN 1:qbw$="n"
 5465 WHEN 2:qbw$="m"
 5466 WHEN 3:qbw$="w"
 5467 WHEN 4:PROCrgb_sliders(0)
 5468 ENDCASE
 5469 UNTIL menu_box%=4 OR menu_box%=99
 5470 IF menu_box%=4 THEN PROCquad_display_border(red%,grn%,blu%,qbw$):menu_box%=1
 5471 ENDPROC
 5472 
 5473 DEF PROCreset_t0_assemble
 5474 DIM reset_t0_code% 64
 5475 FOR P=0 TO 2 STEP2
 5476 P%=reset_t0_code%
 5477 [OPT P
 5478 SWI "OS_EnterOS"
 5479 MOV R2,#&03200000
 5480 MOV R0,#31:STRB R0,[R2,#&40]
 5481 MOV R0,#78:STRB R0,[R2,#&44]
 5482 TEQP PC,#0:MOV R0,R0:MOV PC,R14
 5483 ]:NEXT
 5484 ENDPROC
 5485 
 5486 DEF FNpd160_cursor
 5487 PROCwait_no_button:MOUSE RECTANGLE 0,0,254,222
 5488 MOUSE X,Y,B:GCOL 3,63:RECTANGLE X,Y,1024,768
 5489 REPEAT
 5490 REPEAT:MOUSE X1,Y1,B
 5491 UNTIL X1<>X OR Y1<>Y OR B<>0
 5492 RECTANGLE X,Y,1024,768
 5493 RECTANGLE X1,Y1,1024,768
 5494 X=X1:Y=Y1:UNTIL B<>0
 5495 RECTANGLE X1,Y1,1024,768
 5496 X%=(X DIV 4)*4:Y%=(Y DIV 2)*2
 5497 MOUSE RECTANGLE 0,0,1280,1024
 5498 IF B=4 THEN
 5499 GCOL 32,32,32
 5500 RECTANGLE FILL 0,0,1280,Y%-2
 5501 RECTANGLE FILL 0,0,X%-2,1024
 5502 RECTANGLE FILL 1024+X%,0,256,1024
 5503 RECTANGLE FILL 0,Y%+768,1280,280
 5504 PROCpd_mode_header(X%,Y%+768)
 5505 PROCupload_memory
 5506 pdr%=((224-Y%)/2)*1280+X%
 5507 ELSE
 5508 pdr%=1
 5509 ENDIF
 5510 =pdr%
 5511
 5512 DEF PROCpd_mode_header(X%,Y%)
 5513 IF mode%=62 THEN W%=624 ELSE W%=880
 5514 IF mode%=63 OR mode%=65 THEN H%=64 ELSE H%=32
 5515 GCOL 48,48,184
 5516 RECTANGLE FILL X%,Y%,200,H%
 5517 RECTANGLE FILL X%+W%+198,Y%,204,H%
 5518 RECTANGLE FILL X%,Y%,204,H%:GCOL 255,255,255
 5519
 5520 CASE mode% OF
 5521 WHEN 20:pd$=" P-3"
 5522 WHEN 21:pd$=" P-5"
 5523 WHEN 22:pd$=" P-7"
 5524 WHEN 60:pd$="PD180"
 5525 WHEN 61:pd$="PD240"
 5526 WHEN 62:pd$="PD160"
 5527 WHEN 63:pd$="PD 90"
 5528 WHEN 64:pd$="PD120"
 5529 WHEN 65:pd$="PD 50"
 5530 ENDCASE
 5531 VDU5
 5532 IF mode%=63 OR mode%=65 THEN
 5533 VDU23,17,7,6,16;32;0;
 5534 h%=54
 5535 ELSE
 5536 VDU23,17,7,6,16;16;0;
 5537 h%=28
 5538 ENDIF
 5539 MOVE X%+W%+220,Y%+h%:PRINT pd$
 5540 IF LEN(call$)>5 THEN x%=4 ELSE x%=16
 5541 MOVE X%+x%,Y%+h%:PRINT call$
 5542 VDU23,17,7,6,8;8;0;:VDU4:OFF:WAIT
 5543 G%=6:w=W%/31
 5544 FOR x%=X%+200 TO x%+W%-w STEP w
 5545 GCOL G%,G%,G%:RECTANGLE FILL x%,Y%,w+8,H%
 5546 G%+=8:NEXT
 5547 ENDPROC
 5548
 5549 DEF PROCload_on_line_manual
 5550  mantile_size%=FNfile_len("<Pscan$Dir>.PSsprites.Mantile")
 5551  manual_size%=FNfile_len("<Pscan$Dir>.Manual")
 5552  DIM spr_manual% mantile_size%+manual_size%+32
 5553  !spr_manual%=mantile_size%+4
 5554  spr_manual%!4=0:spr_manual%!8=16:spr_manual%!12=16
 5555  SYS sprswi%,256+10,spr_manual%,"<Pscan$Dir>.PSsprites.Mantile"
 5556  OSCLI("LOAD <Pscan$Dir>.Manual "+STR$~(spr_manual%+mantile_size%+16))
 5557 ENDPROC
 5558
 5559 DEF PROCon_line_manual
 5560 T%=spr_manual%+mantile_size%+16
 5561 ch%=0:!man_block_temp=T%:!man_len_temp=manual_size%:CALL man_code%
 5562 GCOL 80,80,80:RECTANGLE FILL 0,0,1280,1024
 5563 GCOL 255,255,255:LINE 8,1008,1266,1008
 5564 LINE 8,1010,1266,1010:GCOL 0,0,0:LINE 8,78,1266,78
 5565 LINE 8,76,1266,76:GCOL 16,16,16:LINE 1268,76,1268,1010
 5566 LINE 1270,76,1270,1010:VDU5,26:VDU23,17,7,6,8;16;0;
 5567 CR%=0:N%=0:manquit%=FALSE:newpara%=FALSE:page%=0
 5568 PROCmanual_buttons:man_box%=99:PROCmouse3
 5569
 5570 REPEAT:PROCmanual_background
 5571 IF newpara% THEN GCOL 0,64,160:RECTANGLE FILL 16,954,1240,48:GCOL 255,255,0
 5572 MOVE 24,992:!(page_store%+page%*4)=N%
 5573
 5574 REPEAT:K%=?(T%+N%):IF K%=ASC"�" THEN CR%=26
 5575 IF K%=10 THEN
 5576 VDU 13,10:CR%+=1:MOVE BY 24,-4:GCOL 0,0,0
 5577 IF ?(T%+N%+3)=41 THEN CR%=25:newpara%=TRUE
 5578 ELSE newpara%=FALSE
 5579 ENDIF
 5580 IF K%>30 THEN VDU K%
 5581 N%+=1:UNTIL CR%>24
 5582
 5583 page%+=1
 5584 IF newpara% AND page%>1 THEN
 5585 MOVE BY 0,32:GCOL 64,0,196:PRINT "� End of chapter �"
 5586 ENDIF
 5587 IF page%>1 THEN PROCmanual_control
 5588 CR%=0:MOVE BY 24,-16:UNTIL manquit%
 5589 VDU4:OFF:WAIT:PROCdismini
 5590 *POINTER 1
 5591 ENDPROC
 5592
 5593 DEF PROCmanual_control
 5594 GCOL 80,80,80:RECTANGLE FILL 0,16,800,54
 5595 GCOL 128,0,255:RECTANGLE FILL 8,22,750,48
 5596 IF page%=2 THEN
 5597  PROCwrite2("Click on a line in the index to go to that chapter",24,30,1)
 5598 ELSE
 5599  PROCwrite2("Click anywhere on this page to return to the index",24,30,1)
 5600 ENDIF
 5601 PROCwait_no_button:GCOL 3,63 TINT 192
 5602 CASE man_box% OF
 5603 WHEN 8:RECTANGLE FILL 924,22,110,48
 5604 WHEN 9:RECTANGLE FILL 1038,22,110,46
 5605 ENDCASE
 5606 REPEAT : REM page%=2 when index displayed
 5607 REPEAT:MOUSE X,Y,B
 5608 IF Y>200 AND Y<860 AND ABS(X-640)>32 AND page%=2 THEN
 5609  PROCmouse3
 5610 ELSE
 5611  *POINTER 1
 5612 ENDIF
 5613 index%=(((1024-Y+8) DIV 36)-5)*2+1
 5614 IF X>640 THEN index%+=1
 5615 UNTIL B<>0
 5616 IF (index%>0 AND index%<36) AND page%=2 THEN
 5617 N%=man_chapter%!(index%*4):man_box%=2:newpara%=TRUE
 5618 ELSE
 5619 IF Y>18 AND Y<72 THEN man_box%=(X-10) DIV 114 ELSE man_box%=0
 5620 ENDIF
 5621 CASE man_box% OF
 5622 WHEN 0:N%=0:page%=0
 5623 WHEN 8:PROCman_page_back
 5624 WHEN 9:IF CR%<>26 THEN RECTANGLE FILL 1038,22,110,48 ELSE N%=0:page%=0:man_box%=0
 5625 WHEN 10:manquit%=TRUE
 5626 ENDCASE
 5627 UNTIL man_box%=0 OR man_box%=2 OR man_box%>7 AND man_box%<11
 5628 GCOL 0,0,0
 5629 ENDPROC
 5630
 5631 DEF PROCman_page_back
 5632 IF page%>0 AND page%<200 THEN
 5633 N%=page_store%!((page%-2)*4)
 5634 RECTANGLE FILL 924,22,110,48:page%-=2
 5635 IF ?(T%+N%+2)=41 THEN newpara%=TRUE ELSE newpara%=FALSE
 5636 ENDIF
 5637 ENDPROC
 5638
 5639 DEF PROCmanual_background
 5640 FOR X%=8 TO 848 STEP 420:FOR Y%=80 TO 696 STEP 308
 5641 SYS sprswi%,256+52,spr_manual%,"mantile",X%,Y%,0,0,translate256%:NEXT:NEXT
 5642 ENDPROC
 5643
 5644 DEF PROCmanual_buttons
 5645 FOR X%=814 TO 1156 STEP 114:PROCraised_block(X%,26,102,40):NEXT
 5646 PROCwrite2("next >",1036,30,4):PROCwrite2("Cancel",1150,30,4)
 5647 PROCwrite2("< back",920,30,4):PROCwrite2("Search",806,30,6)
 5648 ENDPROC
 5649
 5650 DEF PROCmanual_assemble
 5651 DIM man_code% 256
 5652 FOR P=0 TO 2 STEP2
 5653 P%=man_code%
 5654 [OPT P
 5655 LDR R3,man_block_temp:LDR R4,man_len_temp
 5656 LDR R5,man_chap_temp:MOV R2,#0:MOV R6,#0
 5657 .man_loop LDRB R0,[R3,R2]:CMP R0,#10:BNE no_lf
 5658 ADD R2,R2,#3:LDRB R0,[R3,R2]:CMP R0,#41
 5659 SUB R2,R2,#2:STREQ R2,[R5,R6]:ADDEQ R6,R6,#4:SUBEQ R2,R2,#1
 5660 .no_lf ADD R2,R2,#1:CMP R2,R4:BLT man_loop
 5661 MOV R0,R6:MOV PC,R14
 5662 .man_block_temp EQUD 0
 5663 .man_len_temp   EQUD 0
 5664 .man_chap_temp  EQUD 0
 5665 ]
 5666 NEXT
 5667 DIM page_store% 200*4,man_chapter% 50*4:!man_chap_temp=man_chapter%
 5668 ENDPROC
 5669
 5670 DEF PROCtran_menu
 5671 menu$(0)="Rotate or flip  "
 5672 menu$(1)="Rotate left 90"
 5673 menu$(2)="Rotate right 90"
 5674 menu$(3)="Rotate 180"
 5675 menu$(4)="Flip left-right"
 5676 menu$(5)="Flip top-bottom"
 5677 menu$(6)="*":PROCmenu(0,90,-1)
 5678 CASE menu_box% OF
 5679 WHEN 1:x1%=128:y1%=-128:x2%=128:y2%=1151:x3%=1151:y3%=1151:x4%=1151:y4%=-128
 5680 WHEN 2:x1%=1151:y1%=1151:x2%=1151:y2%=-128:x3%=128:y3%=-128:x4%=128:y4%=1151
 5681 WHEN 3:x1%=1279:y1%=0:x2%=0:y2%=0:x3%=0:y3%=1023:x4%=1279:y4%=1023
 5682 WHEN 4:x1%=1279:y1%=1023:x2%=0:y2%=1023:x3%=0:y3%=0:x4%=1279:y4%=0
 5683 WHEN 5:x1%=0:y1%=0:x2%=1279:y2%=0:x3%=1279:y3%=1023:x4%=0:y4%=1023
 5684 ENDCASE
 5685 IF menu_box%<>99 THEN
 5686 PROCdisplay_memory
 5687 tran%!0=x1%*256:tran%!4=y1%*256
 5688 tran%!8=x2%*256:tran%!12=y2%*256
 5689 tran%!16=x3%*256:tran%!20=y3%*256
 5690 tran%!24=x4%*256:tran%!28=y4%*256
 5691 memblock%!0=655420:memblock%!4=0:memblock%!8=16:memblock%!12=16
 5692 SYS sprswi%,256+16,memblock%,"tran",0,0,0,1279,1023
 5693 GCOL 32,32,32:RECTANGLE FILL 0,0,1280,1024
 5694 SYS sprswi%,256+56,memblock%,"tran",1,,0,tran%
 5695 menu_box%=1:PROCupload_memory
 5696 ENDIF
 5697 ENDPROC
 5698
 5699 DEF PROCmerge
 5700 !merge_mem_temp=memblock%+20:!merge_screen_temp=screen%
 5701 CALL merge_code%:PROCupload_memory
 5702 ENDPROC
 5703
 5704 DEF PROCmerge_assemble
 5705 DIM merge_code% 320
 5706 mem_base=1:scrn_base=2:offset=3:data=4:new_word=12
 5707 red1=5:green1=6:blue1=7:red2=8:green2=9:blue2=10:lines=11
 5708 FOR P=0 TO 2 STEP 2
 5709 P%=merge_code%
 5710 [OPT P
 5711 LDR mem_base,merge_mem_temp:LDR scrn_base,merge_screen_temp
 5712 MOV offset,#0:MOV lines,#512
 5713
 5714 .merge_loop
 5715 LDR data,[mem_base,offset]:AND red1,data,#31
 5716 MOV data,data,LSR#5:AND green1,data,#31
 5717 MOV data,data,LSR#5:AND blue1,data,#31
 5718 LDR R0,[scrn_base,offset]:AND red2,R0,#31:MOV red2,red2,LSR#1
 5719 MOV R0,R0,LSR#5:AND green2,R0,#31:MOV green2,green2,LSR#1
 5720 MOV R0,R0,LSR#5:AND blue2,R0,#31:MOV blue2,blue2,LSR#1
 5721 ADD red1,red1,red2:CMP red1,#31:MOVGT red1,#31:MOV new_word,red1
 5722 ADD green1,green1,green2:CMP green1,#31:MOVGT green1,#31
 5723 MOV green1,green1,LSL#5:ADD new_word,new_word,green1
 5724 ADD blue1,blue1,blue2:CMP blue1,#31:MOVGT blue1,#31
 5725 MOV blue1,blue1,LSL#10:ADD new_word,new_word,blue1
 5726
 5727 MOV data,data,LSR#6:AND red1,data,#31
 5728 MOV data,data,LSR#5:AND green1,data,#31
 5729 MOV data,data,LSR#5:AND blue1,data,#31
 5730 MOV R0,R0,LSR#6:AND red2,R0,#31:MOV red2,red2,LSR#1
 5731 MOV R0,R0,LSR#5:AND green2,R0,#31:MOV green2,green2,LSR#1
 5732 MOV R0,R0,LSR#5:AND blue2,R0,#31:MOV blue2,blue2,LSR#1
 5733 ADD red1,red1,red2:CMP red1,#31:MOVGT red1,#31
 5734 MOV red1,red1,LSL#16:ADD new_word,new_word,red1
 5735 ADD green1,green1,green2:CMP green1,#31:MOVGT green1,#31
 5736 MOV green1,green1,LSL#21:ADD new_word,new_word,green1
 5737 ADD blue1,blue1,blue2:CMP blue1,#31:MOVGT blue1,#31
 5738 MOV blue1,blue1,LSL#26:ADD new_word,new_word,blue1
 5739 STR new_word,[scrn_base,offset]
 5740 ADD offset,offset,#4:CMP offset,#1280:BNE merge_loop
 5741 MOV offset,#0:ADD mem_base,mem_base,#1280:ADD scrn_base,scrn_base,#1280
 5742 SUBS lines,lines,#1:BNE merge_loop
 5743 MOV PC,R14
 5744
 5745 .merge_mem_temp    EQUD 0
 5746 .merge_screen_temp EQUD 0
 5747 ]
 5748 NEXT
 5749 ENDPROC
 5750
 5751 DEF FNread_sys_var(sv$)
 5752 SYS "OS_ReadVarVal",sv$,sysvar%,255,0,3 TO,,b%
 5753 V$="":FOR N%=0 TO b%-1:V$=V$+CHR$(sysvar%?N%):NEXT
 5754 =V$
 5755 
 5756 DEF FNfile_len(f$)
 5757 LOCAL r0%,r5%
 5758 SYS "OS_File",17,f$ TO r0%,,,,r5%
 5759 IF r0%=0 THEN
 5760  IF NOT ije_dev% THEN SYS "OS_Byte",229,1,0
 5761  SYS "Wimp_SetMode",modestore%
 5762  ERROR 0,"File "+f$+" not found. This copy of Pscan may be corrupt - please re-install it from the original disk or ZIP file."
 5763 ELSE
 5764  =(r5%+4)
 5765 ENDIF
 5766
 5767 DEF PROCmisc_backgrounds
 5768 menu$(0)="Miscellaneous "
 5769 menu$(1)="Squares"
 5770 menu$(2)="Spheres"
 5771 menu$(3)="Horizontal"
 5772 menu$(4)="Vertical"
 5773 menu$(5)="Diagonal"
 5774 menu$(6)="Spectrum - H"
 5775 menu$(7)="Spectrum - V"
 5776 menu$(8)="*":PROCmenu(0,90,-1)
 5777 CASE menu_box% OF
 5778 WHEN 1:PROCsquares
 5779 WHEN 2:PROCspheres
 5780 WHEN 3:PROChoriz_pipes
 5781 WHEN 4:PROCvert_pipes
 5782 WHEN 5:PROCdiagonal2
 5783 WHEN 6,7:PROCspectrum(menu_box%)
 5784 ENDCASE
 5785 ENDPROC
 5786
 5787 DEF PROChoriz_pipes
 5788 RI=2:GI=6:BI=1:R=242:G=242:B=242
 5789 FOR Y%=0 TO 1024 STEP2:GCOL R,G,B:LINE 0,Y%,1280,Y%
 5790 R+=RI:G+=GI:B+=BI
 5791 IF R>242 OR R<12 THEN RI=-RI
 5792 IF G>242 OR G<12 THEN GI=-GI
 5793 IF B>242 OR B<12 THEN BI=-BI
 5794 NEXT
 5795 IF NOT(merge%) THEN PROCupload_memory
 5796 ENDPROC
 5797
 5798 DEF PROCvert_pipes
 5799 RI=2:GI=6:BI=1:R=242:G=242:B=242
 5800 FOR X%=0 TO 1280 STEP2:GCOL R,G,B:LINE X%,0,X%,1024
 5801 R+=RI:G+=GI:B+=BI
 5802 IF R>242 OR R<12 THEN RI=-RI
 5803 IF G>242 OR G<12 THEN GI=-GI
 5804 IF B>242 OR B<12 THEN BI=-BI
 5805 NEXT
 5806 IF NOT(merge%) THEN PROCupload_memory
 5807 ENDPROC
 5808
 5809 DEF PROCsquares
 5810 CLS:FOR y%=0 TO 1024 STEP 120:FOR x%=0 TO 1280 STEP 128
 5811 X%=x%:Y%=y%:W%=128:H%=128:R%=255:G%=68:B%=0:FOR N%=1 TO 32
 5812 GCOL R%,G%,B%:RECTANGLE FILL X%,Y%,W%,H%
 5813 G%+=6:X%+=2:Y%+=2:W%-=4:H%-=4:NEXT:NEXT:NEXT
 5814 IF NOT(merge%) THEN PROCupload_memory
 5815 ENDPROC
 5816
 5817 DEF PROCspheres
 5818 GCOL 255,68,0:RECTANGLE FILL 0,0,1280,1024:o%=32
 5819 FOR y%=0 TO 1024 STEP 128:FOR x%=0 TO 1280 STEP 128
 5820 X%=x%:Y%=y%:r%=64:R%=255:G%=68:B%=0
 5821 FOR N%=1 TO 32:GCOL R%,G%,B%:CIRCLE FILL X%+o%+32,Y%+64,r%
 5822 G%+=6:r%-=2:NEXT:NEXT:o%=-o%:NEXT
 5823 IF NOT(merge%) THEN PROCupload_memory
 5824 ENDPROC
 5825
 5826 DEF PROCspectrum(t%)
 5827 CLS:ri=0:gi=0:bi=-2:r=255:g=0:b=255
 5828 IF t%=6 THEN
 5829 p1%=254:p2%=508:p3%=762:p4%=1016:pi=2
 5830 ELSE
 5831 p1%=204:p2%=408:p3%=612:p4%=816:pi=2.4
 5832 ENDIF
 5833 FOR X%=0 TO 1272 STEP2
 5834 GCOL r,g,b
 5835 IF t%=6 THEN RECTANGLE FILL X%,0,2,1024 ELSE RECTANGLE FILL 0,X%,1280,2
 5836 r+=ri:g+=gi:b+=bi
 5837 CASE X% OF
 5838 WHEN p1%:ri=0:gi=pi:bi=0:b=0
 5839 WHEN p2%:ri=-pi:gi=0:bi=0
 5840 WHEN p3%:ri=0:gi=0:bi=pi
 5841 WHEN p4%:ri=0:gi=-pi:bi=0
 5842 ENDCASE
 5843 NEXT
 5844 IF t%=6 THEN RECTANGLE FILL X%,0,8,1024
 5845 IF NOT(merge%) THEN PROCupload_memory
 5846 ENDPROC
 5847
 5848 DEF PROCdiagonal2
 5849 R=0:G=255:B=255:RI=16:GI=16:BI=4
 5850 Y=2048:FOR X%=-1280 TO 1280 STEP8
 5851 GCOL R,G,B:MOVE X%,0:MOVE 1280,Y
 5852 PLOT 85,1280,0:R+=RI:G+=GI:B+=BI
 5853 IF R>255 R=255:RI=-RI
 5854 IF G>255 G=255:GI=-GI
 5855 IF B>255 B=255:BI=-BI
 5856 IF R<0 R=0:RI=-RI
 5857 IF G<0 G=0:GI=-GI
 5858 IF B<0 B=0:BI=-BI
 5859 Y-=6.4:NEXT:IF NOT(merge%) THEN PROCupload_memory
 5860 ENDPROC
 5861
 5862 DEF PROCtext_mask_menu
 5863 menu$(0)="Text masks" 
 5864 menu$(1)="Create text mask   "
 5865 IF mask_created% THEN
 5866 menu$(2)="Plot text mask"
 5867 ELSE
 5868 menu$(2)="{no mask created}"
 5869 ENDIF
 5870 menu$(3)="*":PROCmenu(0,90,-1)
 5871 CASE menu_box% OF
 5872 WHEN 1:PROCcreate_text_mask:menu_box%=5
 5873 WHEN 2:PROCplot_text_mask:menu_box%=1
 5874 ENDCASE
 5875 ENDPROC
 5876
 5877 DEF PROCcreate_text_mask
 5878 font$="":first_time%=TRUE:quit%=FALSE
 5879 PROCfont_text(-1):menu_redraw%=TRUE:xps%=xp%:yps%=yp%
 5880
 5881 REPEAT
 5882
 5883 GCOL32 TINT0:RECTANGLE FILL 0,404,1280,620
 5884
 5885 IF font$<>"" THEN
 5886
 5887 IF first_time% THEN
 5888 GCOL 0,0,136:RECTANGLE FILL 0,0,1280,1024
 5889 GCOL 200,200,200:RECTANGLE FILL 0,0,1280,370
 5890 PROCraised_block(784,16,216,342)
 5891 GCOL 255,180,100:RECTANGLE FILL 784,320,212,38
 5892 SYS sprswi%,256+52,spb%,"left",810,220,8,0,translate%
 5893 SYS sprswi%,256+52,spb%,"right",930,220,8,0,translate%
 5894 SYS sprswi%,256+52,spb%,"left",810,100,8,0,translate%
 5895 SYS sprswi%,256+52,spb%,"right",930,100,8,0,translate%
 5896 PROCwrite2("x/y point",812,272,4)
 5897 PROCwrite2("y point",828,152,4)
 5898 PROCraised_block(798,32,80,32)
 5899 PROCraised_block(904,32,80,32)
 5900 PROCwrite2("UNDO",792,32,4)
 5901 PROCwrite2("OK",914,32,4)
 5902 PROCwrite2("  Re-size",800,324,4)
 5903 PROCwrite2("Click OK or press <return> to finish.",120,220,4)
 5904 MOUSE RECTANGLE 784,16,216,338:first_time%=FALSE
 5905 ENDIF
 5906
 5907 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
 5908 PROCmake_text_mask(font$,text1$,text2$,xp%,yp%)
 5909 SYS sprswi%,256+52,spr%,"textmask",32,460,8,0,0
 5910 PROCshow_point_sizes
 5911
 5912 REPEAT:K=INKEY(1):UNTIL K=-1
 5913 point_button$=""
 5914 REPEAT:MOUSE X,Y,B:K=INKEY(5):UNTIL B<>0 OR K=13
 5915
 5916 IF K=13 quit%=TRUE
 5917
 5918 IF B=1 OR B=4 THEN
 5919 IF ABS(X-838)<44 AND ABS(Y-48)<22 xp%=xps%:yp%=yps%
 5920 IF ABS(X-942)<44 AND ABS(Y-48)<22 quit%=TRUE
 5921 IF ABS(X-830)<28 AND ABS(Y-240)<28 point_button$="xm"
 5922 IF ABS(X-942)<28 AND ABS(Y-240)<28 point_button$="xp"
 5923 IF ABS(X-830)<28 AND ABS(Y-120)<28 point_button$="ym"
 5924 IF ABS(X-942)<28 AND ABS(Y-120)<28 point_button$="yp"
 5925 CASE point_button$ OF
 5926 WHEN "xm":IF xp%>10 xp%-=2:yp%-=2
 5927 WHEN "xp":IF xp%<200 xp%+=2:yp%+=2
 5928 WHEN "ym":IF yp%>10 yp%-=2
 5929 WHEN "yp":IF yp%<200 yp%+=2
 5930 ENDCASE
 5931 ENDIF
 5932
 5933 mask_created%=TRUE
 5934 ENDIF
 5935 UNTIL quit% OR font$=""
 5936 PROCdismini
 5937 ENDPROC
 5938
 5939 DEF PROCplot_text_mask
 5940 IF mask_created% THEN
 5941  PROCdisplay_memory:PROCposition_mask
 5942   IF B=4 THEN
 5943   SYS sprswi%,256+40,spr%,"textmask" TO,,,W%,H%:W%=W%*2:H%=H%*2
 5944   SYS sprswi%,256+16,spr%,"textmask",0,X%,Y%,X%+W%,Y%+H%
 5945   SYS sprswi%,256+29,spr%,"textmask"
 5946   SYS sprswi%,256+61,spr%,"textmask",0
 5947   GCOL 0:RECTANGLE FILL 0,0,W%,H%
 5948   IF text2$<>"" THEN
 5949   PROCwrite(font$,text1$,4,YO1%+H2%+yp%/2,xp%,yp%,4)
 5950   PROCwrite(font$,text2$,4,YO%,xp%,yp%,4)
 5951   ELSE
 5952   PROCwrite(font$,text1$,4,YO%,xp%,yp%,4)
 5953   ENDIF
 5954   SYS sprswi%,256+61,spr%,0,0:OFF:WAIT
 5955   overlay%=TRUE:overlay_outline%=TRUE:sprite_name$="textmask":OOC%=1
 5956   mask_created%=FALSE
 5957   ENDIF
 5958 ENDIF
 5959 ENDPROC
 5960
 5961 DEF PROCwrite(F$,text$,x%,y%,xp%,yp%,c)
 5962 IF font%<>-1 SYS "Font_LoseFont",font%
 5963 SYS "Font_FindFont",,F$,xp%*16,yp%*16 TO font%
 5964 t%=&65757254
 5965 CASE c OF
 5966  WHEN 0:SYS "Font_SetPalette",,0,0,0,&FFFFFF00,0,t% :REM Black no anti
 5967  WHEN 1:SYS "Font_SetPalette",,0,0,0,0,&FFFFFF00,t% :REM White no anti
 5968  WHEN 2:SYS "Font_SetPalette",,0,1,14,&FFFFFF00,0,t%:REM Black anti
 5969  WHEN 3:SYS "Font_SetPalette",,0,0,0,0,0,t%
 5970  WHEN 4:SYS "Font_SetFontColours",font%,1,1,0
 5971  WHEN 5:SYS "Font_SetPalette",,0,1,14,&DC000000,&00FFFF00,t%:REM Yellow anti
 5972  WHEN 6:SYS "Font_SetPalette",,0,0,0,0,&00FFFF00,t% :REM Yellow no anti
 5973  WHEN 7:SYS "Font_SetPalette",,0,1,14,&DC000000,&FFFFFF00,t%:REM White anti
 5974 OTHERWISE
 5975  SYS "Font_SetPalette",,0,0,0,0,c,t% : REM RGB - no anti
 5976 ENDCASE
 5977
 5978 SYS "Font_Paint",font%,text$,16,x%,y%
 5979 SYS "Font_LoseFont",font%:OFF:WAIT
 5980 ENDPROC
 5981
 5982 DEF PROCtext_bound_box(font$,text$,xp%,yp%)
 5983 IF font%<>-1 SYS "Font_LoseFont",font%
 5984 SYS "Font_FindFont",,font$,16*xp%,16*yp%,0,0 TO font%
 5985 H%=0:ymin%=0:ymax%=0
 5986 FOR N%=1 TO LEN(text$)
 5987 SYS "Font_CharBBox",font%,ASC(MID$(text$,N%,1)),16 TO,r1%,r2%,r3%,r4%
 5988 IF r2%<ymin% THEN ymin%=r2%
 5989 IF r4%>ymax% THEN ymax%=r4%
 5990 SYS "Font_Converttopoints",,1280,1024 TO ,px%,py%
 5991 SYS "Font_StringWidth",,text$,px%,py%,-1,256 TO,,W%
 5992 SYS "Font_ConverttoOS",,W% TO,W%
 5993 NEXT
 5994 W%+=12:H%=ymax%-ymin%+4:YO%=(-ymin%)+4
 5995 ENDPROC
 5996
 5997 DEF PROCmake_text_mask(font$,text1$,text2$,xp%,yp%)
 5998 PROCtext_bound_box(font$,text1$,xp%,yp%):H1%=H%:W1%=W%:YO1%=YO%
 5999 IF text2$<>"" THEN
 6000 PROCtext_bound_box(font$,text2$,xp%,yp%):H2%=H%:H%=H%+H1%+yp%/2
 6001 IF W1%>W% THEN W%=W1%
 6002 ENDIF
 6003 SYS sprswi%,256+16,spr%,"textmask",0,0,0,W%,H%
 6004 SYS sprswi%,256+29,spr%,"textmask"
 6005 SYS sprswi%,256+60,spr%,"textmask",0
 6006 GCOL 255,255,255:RECTANGLE FILL 0,0,W%,H%
 6007 SYS sprswi%,256+60,spr%,0,0:OFF:WAIT
 6008 SYS sprswi%,256+61,spr%,"textmask",0
 6009 IF text2$<>"" THEN
 6010 PROCwrite(font$,text1$,4,YO1%+H2%+yp%/2,xp%,yp%,3)
 6011 PROCwrite(font$,text2$,4,YO%,xp%,yp%,3)
 6012 ELSE
 6013 PROCwrite(font$,text1$,4,YO%,xp%,yp%,3)
 6014 ENDIF
 6015 SYS sprswi%,256+61,spr%,0,0:OFF:WAIT
 6016 screen_grabbed%=0:overlay%=TRUE:overlay_outline%=0
 6017 sprite_name$="textmask":OOC%=0
 6018 ENDPROC
 6019
 6020 DEF PROCposition_mask
 6021 MOUSE X%,Y%,B%:p%=11
 6022 SYS sprswi%,256+52,spr%,"textmask",X%,Y%,p%,0,0
 6023 REPEAT:REPEAT MOUSE X1%,Y1%,B:UNTIL X1%<>X% OR Y1%<>Y% OR B<>0
 6024 SYS sprswi%,256+52,spr%,"textmask",X%,Y%,p%,0,0
 6025 IF B=2 THEN p%=p% EOR 8:PROCwait_no_button
 6026 SYS sprswi%,256+52,spr%,"textmask",X1%,Y1%,p%,0,0
 6027 X%=X1%:Y%=Y1%
 6028 UNTIL B=1 OR B=4
 6029 IF B=4 THEN SYS sprswi%,256+52,spr%,"textmask",X%,Y%,8,0,0
 6030 ENDPROC
 6031
 6032 DEF PROCsprite_shadow(ssx%,ssy%,s%)
 6033 SYS sprswi%,256+40,spr%,sprite_name$ TO,,,ssw%,ssh%
 6034 SYS sprswi%,256+24,spr%,sprite_name$ TO,,spradd%
 6035 IF s%=1 THEN
 6036 FOR N%=0 TO 31:d%=N%-2:IF d%<0 d%=0
 6037 grndata?N%=d%:NEXT:ssx%=(ssx% DIV 4)*4
 6038 !sprshad_mask=spradd%+(spradd%!36):!sprshad_table=grndata
 6039 !sprshad_bytes=(ssw%DIV4)*8:!sprshad_lines=ssh%
 6040 start%=screen%+(((1024-ssy%)DIV2)-ssh%)*1280+ssx%
 6041 start%+=13*1284:FOR S%=1 TO 16
 6042 IF start%-screen%<1280*4 ERROR 796,"Shadow is too near top of screen"
 6043 !sprshad_screen=start%:CALL sprshad_code%
 6044 start%-=1284:NEXT
 6045 ELSE
 6046 FOR N%=0 TO 31:d%=N%/2:grndata?N%=d%:NEXT:ssx%=(ssx% DIV 4)*4
 6047 !sprshad_mask=spradd%+(spradd%!36):!sprshad_table=grndata
 6048 !sprshad_bytes=(ssw%DIV4)*8:!sprshad_lines=ssh%
 6049 start%=screen%+(((1024-ssy%)DIV2)-ssh%)*1280+ssx%
 6050 IF start%-screen%<1280*4 ERROR 796,"Shadow is too near top of screen"
 6051 IF s%=2 THEN start%+=12*1282 ELSE start%+=20*1282
 6052 !sprshad_screen=start%:CALL sprshad_code%
 6053 ENDIF
 6054 ENDPROC
 6055
 6056 DEF PROCsprite_shadow_assemble
 6057 DIM sprshad_code% 320
 6058 scrn_base=1:mask_base=2:table=3:data1=4:lines=5:maskbits=6
 6059 word=7:Soffset=8:mask=9:Moffset=10:pixel1=11:pixel2=12
 6060 FOR P=0 TO 2 STEP 2
 6061 P%=sprshad_code%
 6062 [OPT P
 6063 LDR scrn_base,sprshad_screen:LDR mask_base,sprshad_mask
 6064 LDR table,sprshad_table:MOV Soffset,#0:MOV Moffset,#0
 6065 LDR lines,sprshad_lines:MOV maskbits,#32
 6066 LDR mask,[mask_base,Moffset]
 6067
 6068 .sprshad_loop
 6069 LDR data1,[scrn_base,Soffset]
 6070 MOV pixel1,data1,LSL#16:MOV pixel1,pixel1,LSR#16
 6071 MOV pixel2,data1,LSR#16 
 6072
 6073 TST mask,#1:BEQ second
 6074
 6075 MOV word,#0
 6076 AND data1,pixel1,#31:LDRB word,[table,data1]
 6077 MOV pixel1,pixel1,LSR#5:AND data1,pixel1,#31
 6078 LDRB R0,[table,data1]:ADD word,word,R0,LSL#5
 6079 MOV pixel1,pixel1,LSR#5:AND data1,pixel1,#31
 6080 LDRB R0,[table,data1]:ADD word,word,R0,LSL#10:MOV pixel1,word
 6081
 6082 .second
 6083 MOV mask,mask,LSR#1:TST mask,#1:BEQ word_ready
 6084
 6085 MOV word,#0
 6086 AND data1,pixel2,#31:LDRB word,[table,data1]
 6087 MOV pixel2,pixel2,LSR#5:AND data1,pixel2,#31
 6088 LDRB R0,[table,data1]:ADD word,word,R0,LSL#5
 6089 MOV pixel2,pixel2,LSR#5:AND data1,pixel2,#31
 6090 LDRB R0,[table,data1]:ADD word,word,R0,LSL#10:MOV pixel2,word
 6091
 6092 .word_ready
 6093 ADD word,pixel1,pixel2,LSL#16:STR word,[scrn_base,Soffset]
 6094 MOV mask,mask,LSR#1:SUBS maskbits,maskbits,#2:BNE more_bits
 6095 MOV maskbits,#32:ADD Moffset,Moffset,#4
 6096 LDR mask,[mask_base,Moffset]
 6097 .more_bits
 6098 ADD Soffset,Soffset,#4:LDR R0,sprshad_bytes
 6099 CMP Soffset,R0:BLT sprshad_loop
 6100 MOV maskbits,#32:ADD Moffset,Moffset,#4
 6101 LDR mask,[mask_base,Moffset]
 6102 MOV Soffset,#0:ADD scrn_base,scrn_base,#1280
 6103 SUBS lines,lines,#1:BNE sprshad_loop
 6104 MOV PC,R14
 6105
 6106 .sprshad_screen EQUD 0
 6107 .sprshad_mask   EQUD 0
 6108 .sprshad_table  EQUD 0
 6109 .sprshad_bytes  EQUD 0
 6110 .sprshad_lines  EQUD 0
 6111 ]
 6112 NEXT
 6113 ENDPROC
 6114
 6115 DEF PROCthumb_cursor(x,y)
 6116 tcx%=(thumb_box% MOD 8)*160+2:tcy%=898-((thumb_box% DIV 8)*128)
 6117 xo%=x-tcx%:yo%=y-tcy%:GCOL 3,63 TINT 192
 6118 RECTANGLE tcx%,tcy%,154,122
 6119 REPEAT
 6120 REPEAT:MOUSE x1,y1,B
 6121 UNTIL x1<>x OR y1<>y OR B=0
 6122 IF B<>0 THEN
 6123 RECTANGLE tcx%,tcy%,154,122:tcx%=x1-xo%:tcy%=y1-yo%
 6124 RECTANGLE tcx%,tcy%,154,122:x=x1:y=y1
 6125 ELSE
 6126 RECTANGLE tcx%,tcy%,154,122
 6127 ENDIF
 6128 UNTIL B=0
 6129 ENDPROC
 6130
 6131 DEF PROCshow_thumbnails
 6132 GCOL 48,48,184:RECTANGLE FILL 0,0,1280,1024 
 6133 FOR M%=1 TO memories%
 6134 !source_address=FNmem_to_block(M%)+20
 6135 !dest_address=screen%+160*(M%-1)+1280*64
 6136 CALL make_thumbnail:NEXT
 6137 FOR N%=1 TO 8:load_list$(N%)="":NEXT
 6138 GCOL 255,255,255:RECTANGLE FILL 30,980,420,8:RECTANGLE FILL 818,980,420,8
 6139 PROCwrite2("Pscan thumbnail display",460,964,0)
 6140 PROCwrite2("Pscan thumbnail display",456,968,1)
 6141 PROCraised_block(32,40,40,40):PROCraised_block(80,40,184,40)
 6142 PROCraised_block(272,40,40,40):PROCwrite2("Bank select",76,44,4)
 6143 PROCwrite2("<",32,44,4):PROCwrite2(">",272,44,4)
 6144 PROCraised_block(340,40,280,40):PROCwrite2("Create new bank",354,44,4)
 6145 PROCraised_block(660,40,280,40):PROCraised_block(970,40,280,40)
 6146 PROCwrite2("Undo last updates",660,44,4)
 6147 PROCwrite2("Close thumbnails",980,44,4)
 6148 SYS sprswi%,256+52,thblock%,"thumbnails",0,128,0,0,0
 6149 thmodify%=FALSE:thumb_load_file%=FALSE:ff%=0:ft%=0
 6150 REPEAT
 6151 GCOL 128,255,255:RECTANGLE 0,766,1276,126:N%=1
 6152 FOR X%=0 TO 1280-160 STEP160
 6153 IF N%=MEM%+1 THEN tc%=0 ELSE tc%=5
 6154 IF tc%=0 THEN GCOL 255,255,255 ELSE GCOL 48,48,184
 6155 RECTANGLE FILL X%,898,160,40:RECTANGLE FILL X%,720,160,40
 6156 IF N%=MEM%+1 THEN PROCwrite2("Current",X%+14,724,0)
 6157 IF N%<=memories% THEN PROCwrite2(STR$(N%),X%+56,900,tc%)
 6158 N%+=1:GCOL 128,255,255:RECTANGLE X%,764,158,130:NEXT
 6159 GCOL 255,255,0:RECTANGLE FILL 0,640,1280,2
 6160 GCOL 128,180,255:RECTANGLE FILL 0,644,380,50
 6161 PROCwrite2("Thumbnail bank "+STR$ thumb_bank%+" of "+STR$ thumb_max%,8,654,0)
 6162 PROCwait_no_button:fstart$="":GCOL 64,255,128
 6163 REPEAT:MOUSE X,Y,B
 6164 PROCcheck_alt_s_save
 6165 thumb_box%=((1024-Y)DIV128)*8+(X DIV160)
 6166 F$=$(thpath%+(thumb_box%-24)*80)
 6167 IF F$<>fstart$ THEN
 6168 RECTANGLE FILL 380,644,900,50
 6169 IF thumb_box%>23 AND thumb_box%<56 PROCwrite2(F$,388,654,0):fstart$=F$
 6170 ENDIF
 6171 UNTIL B=4 OR B=1
 6172
 6173 IF ABS(X-50)<30 AND ABS(Y-64)<30 THEN
 6174 IF thumb_bank%>1 THEN
 6175 IF B=1 THEN thumb_bank%=1 ELSE thumb_bank%-=1
 6176 PROCload_thumbnail_bank(thumb_bank%)
 6177 SYS sprswi%,256+52,thblock%,"thumbnails",0,128,0,0,0
 6178 ENDIF
 6179 ENDIF
 6180
 6181 IF ABS(X-288)<30 AND ABS(Y-64)<30 THEN
 6182 IF thumb_bank%<thumb_max% THEN
 6183 IF B=1 THEN thumb_bank%=thumb_max% ELSE thumb_bank%+=1
 6184 PROCload_thumbnail_bank(thumb_bank%)
 6185 SYS sprswi%,256+52,thblock%,"thumbnails",0,128,0,0,0
 6186 ENDIF
 6187 ENDIF
 6188
 6189 IF thumb_box%>23 AND thumb_box%<56 THEN
 6190 REM Click on thumbnail
 6191 PROCthumb_cursor(X,Y):MOUSE X,Y,B
 6192 thumb_box2%=((1024-Y)DIV128)*8+(X DIV160)
 6193  IF thumb_box2%=thumb_box% THEN
 6194   F$=$(thpath%+(thumb_box%-24)*80)
 6195   IF F$<>"{Empty}" THEN
 6196   SYS "OS_File",20,F$ TO ff%,,,,,,ft%
 6197   thumb_box%=99:thumb_load_file%=TRUE
 6198   ENDIF
 6199  ELSE
 6200   IF thumb_box2%>7 AND thumb_box2%<16 AND thumb_box2%-8<memories% THEN
 6201   L$=$(thpath%+(thumb_box%-24)*80)
 6202   IF L$<>"{Empty}" THEN
 6203   load_list$(thumb_box2%-7)=L$
 6204   sourceX%=(thumb_box% MOD 8)*160+2:sourceY%=1028-(((thumb_box%DIV 8)+1)*128)
 6205   destX%=(thumb_box2% MOD 8)*160+2:destY%=1024-(((thumb_box2%DIV 8)+1)*128)
 6206   MOVE sourceX%,sourceY%:MOVE BY 154,122:PLOT &BE,destX%,destY%
 6207   ENDIF
 6208   ENDIF
 6209  ENDIF
 6210 ENDIF
 6211
 6212 IF thumb_box%>7 AND thumb_box%<16 AND thumb_box%-8<memories% THEN
 6213 REM Click on pic mem - possible drag to thumbnail
 6214 PROCthumb_cursor(X,Y):MOUSE X,Y,B
 6215 thumb_box2%=((1024-Y)DIV128)*8+(X DIV160):M%=thumb_box2%-8
 6216 IF M%<memories% THEN MEM%=M%:memblock%=FNmem_to_block(MEM%+1)
 6217 IF thumb_box2%>23 AND thumb_box2%<56 THEN
 6218 sourceX%=(thumb_box% MOD 8)*160+2:sourceY%=1024-(((thumb_box%DIV 8)+1)*128)
 6219 destX%=(thumb_box2% MOD 8)*160+2:destY%=1028-(((thumb_box2%DIV 8)+1)*128)
 6220 MOVE sourceX%,sourceY%:MOVE BY 154,122:PLOT &BE,destX%,destY%
 6221 PROCupdate_thumb_path(thumb_box2%-24,path$(thumb_box%-7)):thmodify%=TRUE
 6222 ENDIF
 6223 ENDIF
 6224
 6225 IF thumb_box%=58 OR thumb_box%=59 PROCcreate_blank_thumbnail("")
 6226
 6227 UNTIL thumb_box%>59
 6228
 6229 IF thumb_box%=60 OR thumb_box%=61 THEN
 6230 SYS sprswi%,256+10,thblock%,thumbpix$
 6231 OSCLI("LOAD "+thumbpath$+" "+STR$~thpath%)
 6232 thmodify%=FALSE:FOR N%=1 TO 8:load_list$(N%)="":NEXT
 6233 ENDIF
 6234
 6235 IF thmodify% THEN
 6236 SYS sprswi%,256+16,thblock%,"thumbnails",0,0,128,1279,639
 6237 SYS sprswi%,256+12,thblock%,thumbpix$
 6238 SYS "OS_File",10,thumbpath$,&FFD,0,thpath%,thpath%+2560 
 6239 ENDIF
 6240
 6241 IF thumb_load_file% THEN
 6242  IF ff%=0 THEN
 6243  X=(thumb_box2% MOD 8)*160+2:Y=900-((thumb_box2% DIV 8)*128)
 6244  GCOL 48,48,184:RECTANGLE FILL X,Y,154,122
 6245  $(thpath%+(thumb_box2%-24)*80)="{Empty}"
 6246  SYS sprswi%,256+16,thblock%,"thumbnails",0,0,128,1279,639
 6247  SYS sprswi%,256+12,thblock%,thumbpix$
 6248  SYS "OS_File",10,thumbpath$,&FFD,0,thpath%,thpath%+2560
 6249  ERROR 1,"This picture seems to have been deleted, renamed or moved."+CHR$13+CHR$13+"The thumbnail entry has now been emptied."
 6250  ENDIF
 6251 CASE ft% OF
 6252 WHEN &FF9:CLS:PROCload_sprite(F$)
 6253 WHEN &C85:CLS:PROCload_jpeg(F$)
 6254 WHEN &96A:CLS:PROCload_pscan(F$)
 6255 WHEN &69D:CLS:PROCload_targa(F$)
 6256 OTHERWISE
 6257 ERROR 1,F$+" has a filetype of &"+STR$~ft%+". This cannot be loaded by Pscan."
 6258 ENDCASE
 6259 ENDIF
 6260
 6261 FOR NN%=1 TO 8
 6262 IF load_list$(NN%)<>"" AND load_list$(NN%)<>"{Empty}" THEN
 6263 F$=load_list$(NN%):load_list$(NN%)=""
 6264 SYS "OS_File",20,F$ TO ff%,,,,,,ft%
 6265 MEM%=NN%-1:memblock%=FNmem_to_block(NN%)
 6266 CASE ft% OF
 6267 WHEN &FF9:CLS:PROCload_sprite(F$)
 6268 WHEN &C85:CLS:PROCload_jpeg(F$)
 6269 WHEN &96A:CLS:PROCload_pscan(F$)
 6270 WHEN &69D:CLS:PROCload_targa(F$)
 6271 OTHERWISE
 6272 ERROR 1,F$+" has a filetype of &"+STR$~ft%+". This cannot be loaded by Pscan."
 6273 ENDCASE
 6274 ENDIF
 6275 NEXT
 6276
 6277 PROCdismini
 6278 ENDPROC
 6279
 6280 DEF PROCupdate_thumb_path(N%,P$)
 6281 IF P$="X" ERROR 1,"Only pictures loaded from disk can be added to thumbnail bank."+CHR$13+CHR$13+"Modified or received pictures must be saved first."
 6282 IF LEN(P$)>78 ERROR 1,"Path name is too long to store in thumbnail file."
 6283 $(thpath%+N%*80)=P$
 6284 ENDPROC
 6285
 6286 DEF PROCcreate_blank_thumbnail(t$)
 6287 GCOL 48,48,184
 6288 IF t$="new" THEN
 6289 RECTANGLE FILL 0,0,1280,1024
 6290 ELSE
 6291 RECTANGLE FILL 0,128,1280,514
 6292 ENDIF
 6293 GCOL 255,255,0
 6294 RECTANGLE 0,128,1276,514
 6295 FOR Y%=130 TO 642-128 STEP128
 6296 FOR X%=0 TO 1280-160 STEP160
 6297 RECTANGLE X%,Y%,158,126:NEXT:NEXT
 6298 IF t$="new" THEN N%=0 ELSE N%=FNcount_thumbnail_banks
 6299 IF N%>31 ERROR 1,"Maximum number of thumbnail banks (32) has been reached."
 6300 N$=STR$(N%+1):IF (N%+1)<10 THEN N$="0"+N$
 6301 thumbpix$=Thumbdir$+".ThumbPix"+N$
 6302 thumbpath$=Thumbdir$+".ThumPath"+N$
 6303 SYS sprswi%,256+16,thblock%,"thumbnails",0,0,128,1279,639
 6304 SYS sprswi%,256+12,thblock%,thumbpix$
 6305 FOR N%=0 TO 2559:thpath%?N%=32:NEXT
 6306 FOR N%=0 TO 31:$(thpath%+N%*80)="{Empty}":NEXT
 6307 SYS "OS_File",10,thumbpath$,&FFD,0,thpath%,thpath%+&A00
 6308 thumb_max%+=1:thumb_bank%=thumb_max%
 6309 ENDPROC
 6310
 6311 DEF FNcount_thumbnail_banks
 6312 N%=1:REPEAT:IF N%<10 N$="0"+STR$(N%) ELSE N$=STR$(N%)
 6313 F%=OPENIN(Thumbdir$+".ThumPath"+N$):CLOSE#F%:N%+=1:UNTIL F%=0 OR N%>35
 6314 =N%-2
 6315
 6316 DEF PROCload_thumbnail_bank(N%)
 6317 N$=STR$(N%):IF N%<10 N$="0"+N$
 6318 thumbpix$=Thumbdir$+".ThumbPix"+N$
 6319 thumbpath$=Thumbdir$+".ThumPath"+N$
 6320 SYS sprswi%,256+10,thblock%,thumbpix$
 6321 OSCLI("LOAD "+thumbpath$+" "+STR$~thpath%)
 6322 ENDPROC
 6323  
 6324 DEF PROCqwiktext
 6325 PROCdisplay_memory:X=0:ys%=864:Y=ys%:qb%=-1
 6326 GCOL 3,63
 6327 CASE qwiktext_colour% OF
 6328 WHEN 1:col%=&FFFFFF00
 6329 WHEN 2:col%=&00FFFF00
 6330 WHEN 3:col%=&FFFF0000
 6331 WHEN 4:col%=&00FF0000
 6332 WHEN 5:col%=&FF00FF00
 6333 WHEN 6:col%=&0000FF00
 6334 WHEN 7:col%=&FF000000
 6335 WHEN 8:col%=&00000000
 6336 ENDCASE
 6337 CASE qwiktext_block% OF
 6338 WHEN 10:r%=255:g%=255:b%=255
 6339 WHEN 11:r%=255:g%=255:b%=0
 6340 WHEN 12:r%=0:g%=255:b%=255
 6341 WHEN 13:r%=0:g%=255:b%=0
 6342 WHEN 14:r%=255:g%=0:b%=255
 6343 WHEN 15:r%=255:g%=0:b%=0
 6344 WHEN 16:r%=0:g%=0:b%=255
 6345 WHEN 17:r%=0:g%=0:b%=0
 6346 WHEN 18:qb%=0
 6347 ENDCASE
 6348 X1=1280-(LEN call$+3)*80
 6349 IF qb% THEN
 6350  GCOL r%,g%,b%:RECTANGLE FILL X1,0,160,118
 6351  RECTANGLE FILL X1+80*3,0,1280,118
 6352  ENDIF
 6353 GCOL 3,63
 6354 PROCqwrite("DE",col%,X1,24)
 6355 PROCqwrite(call$,col%,X1+80*3,24)
 6356 SYS "OS_Byte",237,0,255 TO,cursor_status%
 6357 SYS "OS_Byte",237,1,0
 6358 REPEAT
 6359 C=0
 6360 REPEAT
 6361 RECTANGLE FILL X,Y-24,80,118:C=NOT(C)
 6362 MOUSE x,y,b:K=INKEY(20)
 6363 UNTIL (NOT K) OR b
 6364 IF C RECTANGLE FILL X,Y-24,80,118
 6365
 6366 IF K>135 AND K<140 THEN
 6367 CASE K OF
 6368 WHEN 136:X-=80:IF X<0 X=1200:Y+=120:IF Y>ys% Y=24
 6369 WHEN 137:X+=80:IF X>1200 X=0:Y-=120:IF Y<0 Y=ys%
 6370 WHEN 138:Y-=120:IF Y<0 Y=ys%
 6371 WHEN 139:Y+=120:IF Y>ys% Y=24
 6372 ENDCASE
 6373 ENDIF
 6374
 6375 IF K=30 THEN X=0:Y=ys%:REM Home
 6376 IF K=135 THEN X=1200:Y=24:REM End/Copy
 6377 IF K=27 THEN b=1:REM Quit on Escape
 6378
 6379 IF K>31 AND K<127 THEN
 6380  IF qb% AND K<>32 THEN
 6381  GCOL r%,g%,b%:RECTANGLE FILL X,Y-24,80,118
 6382  GCOL 3,63
 6383  ENDIF
 6384 k$=CHR$ K
 6385 IF k$="g" OR k$="j" OR k$="p" OR k$="q" OR k$="y" yo%=4 ELSE yo%=0
 6386 PROCqwrite(CHR$ K,col%,X,Y+yo%)
 6387 X+=80
 6388  IF X>1200 THEN
 6389  X=0:Y-=120:IF Y<0 Y=ys%
 6390  ENDIF
 6391 ENDIF
 6392
 6393 IF K=13 X=0:Y-=120:IF Y<0 Y=ys%
 6394
 6395 IF K=8 OR K=127 THEN
 6396 X-=80:IF X<0 X=1200:Y+=120:IF Y>ys% Y=24
 6397 PROCredraw(X,Y-24,84,120)
 6398 ENDIF
 6399
 6400 UNTIL b<>0
 6401 IF b=4 PROCupload_memory
 6402 SYS "OS_Byte",237,cursor_status%,0
 6403 PROCdismini
 6404 ENDPROC
 6405
 6406 DEF PROCqwrite(text$,qtcol%,x%,y%)
 6407 SYS "Font_SetPalette",,0,0,0,0,qtcol%,&65757254
 6408 IF font%<>-1 SYS "Font_LoseFont",font%
 6409 SYS "Font_FindFont",,"Corpus.Bold",52*16,56*16 TO font%
 6410 SYS "Font_Paint",,text$,&14,x%,y%
 6411 SYS "Font_Paint",,text$,&14,x%+4,y%
 6412 SYS "Font_LoseFont",font%
 6413 ENDPROC
 6414
 6415 DEF PROCauto_mode_find
 6416 GCOL 196,196,196:RECTANGLE FILL 390,6,112,46
 6417 PROCraised_block(426,100,434,90)
 6418 PROCwrite2("Searching for SSTV mode ...",440,128,4)
 6419 PROCwait_no_button
 6420 PRINT TAB(0,2);
 6421 auto_code%!12=30000 : REM 30000 x 500 SINS = 15 seconds
 6422 auto_code%!16=serial_base%
 6423 REPEAT
 6424 auto_code%!4=Ioffset% DIV 2
 6425 CALL auto_code%:L%=auto_code%!8
 6426 REM PRINT L%
 6427 PROCmode_from_line_time(L%)
 6428 UNTIL M%<>0 OR L%=1 OR L%=2
 6429 REM L%=1 on mouse abort, L%=2 on timeout
 6430 IF M%<>0 THEN
 6431 mode%=M%
 6432 VDU5:GCOL0 TINT0:MOVE400,36:PRINT mode$(mode%):VDU4:OFF:WAIT
 6433 ENDIF
 6434 ENDPROC
 6435
 6436 DEF PROCmode_from_line_time(L%)
 6437 M%=0
 6438 IF ABS(L%-893)<4  M%=1  :REM M1
 6439 IF ABS(L%-454)<4  M%=2  :REM M2
 6440 IF ABS(L%-856)<4  M%=5  :REM S1
 6441 IF ABS(L%-555)<4  M%=6  :REM S2
 6442 IF ABS(L%-2101)<4 M%=9  :REM S-DX
 6443 IF ABS(L%-1422)<4 M%=11 :REM SC2-180
 6444 IF ABS(L%-819)<4  M%=20 :REM P3
 6445 IF ABS(L%-1228)<4 M%=21 :REM P5
 6446 IF ABS(L%-1638)<4 M%=22 :REM P7
 6447 IF ABS(L%-1406)<3 M%=63 :REM PD-90
 6448 IF ABS(L%-1017)<4 M%=64 :REM PD-120
 6449 IF ABS(L%-1609)<4 M%=62 :REM PD-160
 6450 IF ABS(L%-1508)<4 M%=60 :REM PD-180
 6451 IF ABS(L%-2000)<4 M%=61 :REM PD-240
 6452 IF ABS(L%-776)<4  M%=65 :REM PD-50
 6453 IF ABS(L%-1411)<3 M%=70 :REM HQ-1
 6454 IF ABS(L%-1747)<4 M%=71 :REM HQ-2
 6455 ENDPROC
 6456
 6457 DEF PROCuser_pathname(RETURN start$,ux%,uy%,len%,flag%)
 6458 ORIGIN 0,0:start2$=start$
 6459 IF flag% THEN
 6460 MOUSE RECTANGLE 0,942,1280,60
 6461 GCOL 0,0,0:RECTANGLE ux%+860,uy%,140,40
 6462 PROCwrite2("Cancel",ux%+874,uy%+4,4)
 6463 SYS sprswi%,256+52,spb%,"list",ux%+808,uy%-2,0,0,translate%
 6464 ENDIF
 6465
 6466 GCOL 255,255,255:RECTANGLE FILL ux%,uy%,780,40
 6467 PROCwrite2(start$+"|",ux%+4,uy%+4,100)
 6468 REPEAT
 6469 PROCwait_no_button:REPEAT:K$=INKEY$(1):UNTIL K$=""
 6470 REPEAT:MOUSE X,Y,B:K$=INKEY$(1):UNTIL B=4 OR B=1 OR K$<>""
 6471 IF K$=CHR$8 THEN K$=CHR$127
 6472 IF ASC(K$)=127 AND LEN(start$)>0 THEN
 6473 L%=LEN(start$):start$=LEFT$(start$,L%-1)
 6474 GCOL 255,255,255:RECTANGLE FILL ux%,uy%,780,40
 6475 PROCwrite2(start$+"|",ux%+4,uy%+4,100)
 6476 ENDIF
 6477 IF ASC(K$)=21 THEN
 6478 start$="":GCOL 255,255,255:RECTANGLE FILL ux%,uy%,780,40
 6479 PROCwrite2(start$+"|",ux%+4,uy%+4,100)
 6480 ENDIF
 6481 IF LEN(start$)<len% AND ASC(K$)>32 AND ASC(K$)<127 THEN
 6482 start$+=K$:GCOL 255,255,255:RECTANGLE FILL ux%,uy%,780,40
 6483 PROCwrite2(start$+"|",ux%+4,uy%+4,100)
 6484 ENDIF
 6485 UNTIL K$=CHR$13 OR K$=CHR$9 OR B=4 OR B=1
 6486
 6487 ORIGIN 0,50:GCOL 3,63 TINT192
 6488 MOUSE RECTANGLE 0,-50,1280,926+80
 6489
 6490 IF flag% THEN
 6491 IF (B=4 AND X<1063) OR K$=CHR$9 OR K$=CHR$13 THEN
 6492  IF RIGHT$(start$,1)="." start$=LEFT$(start$,(LEN start$)-1)
 6493  IF LEN(start$)>6 dir$=start$:drv%=20:PROCclick_info
 6494  ELSE
 6495  start$=start2$
 6496 ENDIF
 6497 IF X>1062 AND X<1110 PROClist_Pathnames
 6498 ENDIF
 6499
 6500 IF NOT(flag%) AND B=1 start$=start2$
 6501
 6502 ENDPROC
 6503
 6504 DEF PROClist_Pathnames
 6505 ref%=TRUE
 6506 REPEAT
 6507
 6508 IF ref% THEN
 6509 PROCload_user_paths
 6510 SYS sprswi%,256+52,spb%,"list_on",260+808,898,0,0,translate%
 6511 GCOL 220,220,255:RECTANGLE FILL 256,236,782,642
 6512 GCOL 255,0,0:RECTANGLE 254,234,786,646:N%=1
 6513 FOR y%=890 TO 290 STEP-40
 6514 IF y%=890 PROCwrite2("[ Cancel ]",260,y%,7)
 6515 IF y%=850 PROCwrite2(default_dir$,260,y%,102)
 6516 IF y%<850 PROCwrite2(user_path$(N%),260,y%,100):N%+=1
 6517 NEXT
 6518 MOUSE RECTANGLE 254,234,770,646:PROCwait_no_button
 6519 MOUSE X,Y,B:y%=Y DIV 40:GCOL 3,63 TINT192
 6520 IF y%=22 y%=21
 6521 RECTANGLE FILL 260,y%*40-1,758,38
 6522 ref%=FALSE
 6523 ENDIF
 6524
 6525 REPEAT
 6526
 6527 REPEAT:MOUSE X,Y,B:y2%=Y DIV 40
 6528  IF y2%=22 y2%=21
 6529  IF y2%=5 y2%=6
 6530 UNTIL y2%<>y% OR B<>0
 6531 RECTANGLE FILL 260,y%*40-1,758,38
 6532 RECTANGLE FILL 260,y2%*40-1,758,38
 6533 y%=y2%
 6534
 6535 IF B=1 AND y%<20 THEN
 6536 start$=user_path$(20-y%)
 6537 PROCuser_pathname(start$,256,y%*40+46,46,FALSE)
 6538 IF LEN start$>5 user_path$(20-y%)=start$
 6539 PROCupdate_pathnames_file
 6540 ref%=TRUE:B=1
 6541 ENDIF
 6542
 6543 UNTIL B<>0
 6544
 6545 UNTIL NOT ref%
 6546
 6547 IF y%<20 THEN
 6548  IF LEN(user_path$(20-y%))>5 dir$=user_path$(20-y%)
 6549  drv%=20:PROCclick_info
 6550  ENDIF
 6551 IF y%=20 dir$=default_dir$
 6552 ENDPROC
 6553
 6554 DEF PROCload_user_paths
 6555  F%=OPENIN("<Pscan$Dir>.UserFiles.Pathnames")
 6556  FOR N%=1 TO 14
 6557   user_path$(N%)=GET$#F%
 6558  NEXT
 6559  CLOSE#F%
 6560 ENDPROC
 6561
 6562 DEF PROCupdate_pathnames_file
 6563  F%=OPENUP("<Pscan$Dir>.UserFiles.Pathnames")
 6564  FOR N%=1 TO 14
 6565   BPUT#F%,user_path$(N%)
 6566  NEXT
 6567  CLOSE#F%
 6568 ENDPROC
 6569
 6570 DEF PROCpipe_border_menu(y%)
 6571 menu$(0)="Pipe border options  "
 6572 menu$(1)="White pipe border"
 6573 menu$(2)="Yellow pipe border"
 6574 menu$(3)="Cyan pipe border"
 6575 menu$(4)="Green pipe border"
 6576 menu$(5)="Magenta pipe border"
 6577 menu$(6)="Red pipe border"
 6578 menu$(7)="Blue pipe border"
 6579 menu$(8)="*":PROCmenu(0,90,-1)
 6580 IF menu_box%<>99 PROCpipe_border(menu_box%,y%)
 6581 ENDPROC
 6582
 6583 DEF PROCpipe_border(pipe_col%,y%)
 6584 PROCdisplay_memory
 6585 CASE pipe_col% OF
 6586 WHEN 1:r%=64:g%=64:b%=64:ri%=12:gi%=12:bi%=12
 6587 WHEN 2:r%=64:g%=64:b%=0:ri%=12:gi%=12:bi%=0
 6588 WHEN 3:r%=0:g%=64:b%=64:ri%=0:gi%=12:bi%=12
 6589 WHEN 4:r%=0:g%=64:b%=0:ri%=0:gi%=12:bi%=0
 6590 WHEN 5:r%=64:g%=0:b%=64:ri%=12:gi%=0:bi%=12
 6591 WHEN 6:r%=64:g%=0:b%=0:ri%=12:gi%=0:bi%=0
 6592 WHEN 7:r%=0:g%=0:b%=64:ri%=0:gi%=0:bi%=12
 6593 ENDCASE
 6594 IF y%=9 yy%=1022 ELSE yy%=958
 6595 FOR X%=0 TO 64 STEP2
 6596 GCOL r%,g%,b%
 6597 RECTANGLE X%,X%,1278-X%*2,yy%-X%*2
 6598 r%+=ri%:IF r%>240 ri%=-ri%
 6599 g%+=gi%:IF g%>240 gi%=-gi%
 6600 b%+=bi%:IF b%>240 bi%=-bi%
 6601 NEXT:PROCupmini
 6602 ENDPROC
 6603
 6604 DEF PROCplinth2(x,y,w,h,R1,G1,B1,RI,GI,BI)
 6605 R=R1:G=G1:B=B1
 6606 VDU 24,x;y;x+w;y+h;
 6607 FOR x2=x-w TO x+w STEP8
 6608 GCOL R,G,B:MOVE x2,y:MOVE x2+w,y+h+h
 6609 PLOT 85,x2+w,y:R+=RI:G+=GI:B+=BI
 6610 IF R>255 R=255:RI=-RI
 6611 IF G>255 G=255:GI=-GI
 6612 IF B>255 B=255:BI=-BI
 6613 IF R<0 R=0:RI=-RI
 6614 IF G<0 G=0:GI=-GI
 6615 IF B<0 B=0:BI=-BI
 6616 NEXT:VDU26:WAIT:OFF
 6617 GCOL R1,G1,B1
 6618 LINE x,y,x,y+h:LINE x+2,y+2,x+2,y+h-2:LINE x+4,y+4,x+4,y+h-4
 6619 R2=R1/2:IF R2<0 R2=0
 6620 G2=G1/2:IF G2<0 G2=0
 6621 B2=B1/2:IF B2<0 B2=0
 6622 GCOL R2,G2,B2
 6623 LINE x+w-2,y+2,x+w-2,y+h-2:LINE x+w,y,x+w,y+h:LINE x+w-4,y+4,x+w-4,y+h-4
 6624 GCOL 0,0,0
 6625 LINE x+2,y,x+w-2,y:LINE x+4,y+2,x+w-4,y+2:LINE x+6,y+4,x+w-6,y+4
 6626 R3=R1*2:IF R3>255 R3=255
 6627 G3=G1*2:IF G3>255 G3=255
 6628 B3=B1*2:IF B3>255 B3=255
 6629 GCOL R3,G3,B3
 6630 LINE x+2,y+h,x+w-2,y+h:LINE x+4,y+h-2,x+w-4,y+h-2:LINE x+6,y+h-4,x+w-6,y+h-4
 6631 ENDPROC
 6632
 6633 DEF PROCdisplay_header_text(h$)
 6634 IF h$="NONE" ENDPROC
 6635 h$=LEFT$(h$,28)
 6636 IF mode%<20 OR mode%=63 OR mode%=65 THEN
 6637  PROCwrite("Panel.Fixed",CHR$127+h$,190,956,24,24,6)
 6638 ELSE
 6639  PROCwrite("Panel.Fixed",CHR$127+h$,190,958,12,12,6)
 6640 ENDIF
 6641 PROCupload_memory
 6642 ENDPROC
 6643
 6644 DEF PROCcreate_default_options_file
 6645 REM Used when added parameters cause an EOF error
 6646 REM Only new/missing parameters are added - existing ones retained
 6647 IF choices_list$(1)<>"ok" save_type$="pscan"
 6648 IF choices_list$(2)<>"ok" qwiktext_colour%=2
 6649 IF choices_list$(3)<>"ok" qwiktext_block%=16
 6650 IF choices_list$(4)<>"ok" jpeg_opt%=1
 6651 IF choices_list$(5)<>"ok" plot_shadow%=1
 6652 IF choices_list$(6)<>"ok" plot_border%=-1
 6653 IF choices_list$(7)<>"ok" fax_average%=2
 6654 IF choices_list$(8)<>"ok" red%=40
 6655 IF choices_list$(9)<>"ok" grn%=96
 6656 IF choices_list$(10)<>"ok" blu%=200
 6657 IF choices_list$(11)<>"ok" jpgq%=75
 6658 IF choices_list$(12)<>"ok" Ioffset%=40
 6659 IF choices_list$(13)<>"ok" header_text%=FALSE
 6660 IF choices_list$(14)<>"ok" pd_auto_lines%=8
 6661 IF choices_list$(15)<>"ok" sstv_time%=2
 6662 IF choices_list$(16)<>"ok" outline_width%=2
 6663 IF choices_list$(17)<>"ok" beacon_on%=TRUE
 6664
 6665 F%=OPENOUT("<Pscan$Dir>.UserFiles.Options")
 6666 PRINT#F%,save_type$
 6667 PRINT#F%,qwiktext_colour%
 6668 PRINT#F%,qwiktext_block%
 6669 PRINT#F%,jpeg_opt%
 6670 PRINT#F%,plot_shadow%
 6671 PRINT#F%,plot_border%
 6672 PRINT#F%,fax_average%
 6673 PRINT#F%,red%
 6674 PRINT#F%,grn%
 6675 PRINT#F%,blu%
 6676 PRINT#F%,jpgq%
 6677 PRINT#F%,Ioffset%
 6678 PRINT#F%,header_text%
 6679 PRINT#F%,pd_auto_lines%
 6680 PRINT#F%,sstv_time%
 6681 PRINT#F%,outline_width%
 6682 PRINT#F%,beacon_on%
 6683 CLOSE#F%
 6684
 6685 ENDPROC
 6686
 6687 DEF FNcheck_button(cbx%,cby%,cbw%,cbh%)
 6688 cbx%+=cbw%/2:cby%+=cbh%/2
 6689 MOUSE cbmx%,cbmy%,cbb%
 6690 IF ABS(cbx%-cbmx%)<(cbw%/2)+4 AND ABS(cby%-cbmy%)<(cbh%/2)+4 THEN
 6691  =TRUE
 6692 ELSE
 6693  =FALSE
 6694 ENDIF
 6695
 6696 DEF PROCvis_convert_to_mode(vis%)
 6697 good_vis%=TRUE
 6698 CASE vis% OF
 6699 WHEN 172:mode%=1
 6700 WHEN 40 :mode%=2
 6701 WHEN 60 :mode%=5
 6702 WHEN 184:mode%=6
 6703 WHEN 204:mode%=9
 6704 WHEN 183:IF mode%<>12 THEN mode%=11
 6705 WHEN 96 :mode%=60 : REM PD-180
 6706 WHEN 225:mode%=61 : REM PD-240
 6707 WHEN 226:mode%=62 : REM PD-160
 6708 WHEN 99 :mode%=63 : REM PD-90
 6709 WHEN 95 :mode%=64 : REM PD-120
 6710 WHEN 221:mode%=65 : REM PD-50
 6711 WHEN 113:mode%=20 : REM P3
 6712 WHEN 114:mode%=21 : REM P5
 6713 WHEN 243:mode%=22 : REM P7
 6714 WHEN 169:mode%=70 : REM HQ1
 6715 WHEN 170:mode%=71 : REM HQ2
 6716 OTHERWISE
 6717 good_vis%=FALSE
 6718 ENDCASE
 6719 ENDPROC
 6720
 6721 DEF PROCcw_tx(CW$)
 6722 PROCcw_prepare(CW$):vis_param%!92=cw_data%
 6723 f%=1000 : REM CW tone is 1000 Hz
 6724 IF X4% THEN M%=4 ELSE M%=1
 6725 c%=INT(1/(f%*M%)/2*1000000*2-1+.5)
 6726 vis_param%!56=c% MOD 256:vis_param%!60=c% DIV 256
 6727 vis_param%!80=3
 6728 vis_param%!4=serial_base%
 6729 PROCwait_no_button
 6730 CALL vis_code%+(vis_code%!8)
 6731 PROCwait_no_button
 6732 ENDPROC
 6733
 6734 DEF PROCcw_prepare(CW$)
 6735 RESTORE +0
 6736 FOR N%=0 TO 42:READ cw_table$(N%):NEXT:A%=0
 6737 cw_data%?A%=0:A%+=1
 6738 FOR N%=1 TO LEN CW$
 6739 C%=ASC(MID$(CW$,N%,1))
 6740 IF C%>=ASC"a" AND C%<=ASC"z" C%-=32 : REM Convert lower case to upper
 6741 IF (C%<ASC"/" OR C%>ASC"Z") AND C%<>32 C%=32
 6742 IF C%=32 cw2$="5" ELSE cw2$=cw_table$(C%-47)
 6743 FOR N2%=1 TO LEN(cw2$)
 6744 cw3$=MID$(cw2$,N2%,1)
 6745 PROCcw_ones_and_noughts(cw3$)
 6746 NEXT
 6747 PROCcw_ones_and_noughts("3")
 6748 NEXT
 6749 cw_data%?A%=0:A%+=1:cw_data%?A%=2 : REM End marker
 6750
 6751 DATA "21121" : REM "/"
 6752 DATA "22222" : REM "0"
 6753 DATA "12222"
 6754 DATA "11222"
 6755 DATA "11122"
 6756 DATA "11112"
 6757 DATA "11111"
 6758 DATA "21111"
 6759 DATA "22111"
 6760 DATA "22211"
 6761 DATA "22221" : REM "9"
 6762 DATA "1","1","1","1","1","1","1"
 6763 DATA "12"    : REM "A"
 6764 DATA "2111"
 6765 DATA "2121"
 6766 DATA "211"
 6767 DATA "1"
 6768 DATA "1121"
 6769 DATA "221"
 6770 DATA "1111"
 6771 DATA "11"
 6772 DATA "1222"
 6773 DATA "212"
 6774 DATA "1211"
 6775 DATA "22"
 6776 DATA "21"
 6777 DATA "222"
 6778 DATA "1221"
 6779 DATA "2212"
 6780 DATA "121"
 6781 DATA "111"
 6782 DATA "2"
 6783 DATA "112"
 6784 DATA "1112"
 6785 DATA "122"
 6786 DATA "2112"
 6787 DATA "2122"
 6788 DATA "2211"  : REM "Z"
 6789 ENDPROC
 6790
 6791 DEF PROCcw_ones_and_noughts(C$)
 6792 REM 1=dit 2=dah 3=letter space 5=word space
 6793 FOR n%=1 TO LEN(C$)
 6794 c$=MID$(C$,n%,1)
 6795 CASE c$ OF
 6796 WHEN "1" : cw_data%?A%=1:A%+=1
 6797 WHEN "2" : cw_data%?A%=1:A%+=1
 6798            cw_data%?A%=1:A%+=1
 6799            cw_data%?A%=1:A%+=1
 6800 WHEN "3" : cw_data%?A%=0:A%+=1
 6801 WHEN "5" : REM nothing needed
 6802 ENDCASE
 6803 cw_data%?A%=0:A%+=1
 6804 ENDPROC
 6805
 6806 DEF FNbusy(seconds)
 6807 PROCwait_no_button
 6808 auto_code%!12=2000*seconds
 6809 auto_code%!4=Ioffset% DIV 2
 6810 CALL auto_code%:L1%=auto_code%!8
 6811 auto_code%!12=2000*seconds
 6812 CALL auto_code%:L2%=auto_code%!8
 6813 IF L1%=1 OR L2%=1 rquit%=TRUE
 6814 IF ABS(L2%-L1%)<10 AND L1%>220 AND L2%>220 THEN
 6815 =TRUE
 6816 ELSE
 6817 =FALSE
 6818
 6819 DEF FNtoneburst
 6820 vis_param%!80=2 : REM 2=toneburst, 1=VIS narrow, 0=VIS wide
 6821 vis_param%!4=serial_base%
 6822 FL=1750-toneburst_bandwidth%/2
 6823 FH=1750+toneburst_bandwidth%/2
 6824 C=4096-((1/FL)*1000000):vis_param%!84=C
 6825 C=4096-((1/FH)*1000000):vis_param%!88=C
 6826 CALL vis_code%
 6827 =!vis_param%
 6828
 6829 DEF PROCleds_off
 6830 GCOL 0,32,0
 6831 FOR Y=854 TO 704 STEP -50
 6832 RECTANGLE FILL 884,Y+4,12,12
 6833 NEXT
 6834 ENDPROC
 6835
 6836 DEF PROCrepeater_control
 6837  repeater_timer%=0
 6838  REPEAT
 6839   PROCrepeater
 6840   IF toneburst_result%=256 repeater_timer%+=1
 6841    IF repeater_timer%>17 AND beacon_on% THEN
 6842     IF NOT FNbusy(5) THEN
 6843      PROCrepeater_beacon_text
 6844      temp_mode%=mode%:mode%=1
 6845      PROCtx_frame(TRUE)
 6846      T=TIME:REPEAT UNTIL TIME-T>100
 6847      PROCcw_tx(cw_id$)
 6848      mode%=temp_mode%
 6849      repeater_timer%=0
 6850     ENDIF
 6851    ENDIF
 6852  UNTIL toneburst_result%=320
 6853 ENDPROC
 6854
 6855 DEF PROCrepeater
 6856 rquit%=FALSE:toneburst_result%=0
 6857  REPEAT
 6858   GCOL 64,64,64:RECTANGLE FILL 0,0,1280,1024
 6859   PROCraised_block(200,600,880,380)
 6860   GCOL 220,220,64:RECTANGLE FILL 240,914,788,40
 6861   PROCwrite2("Pscan SSTV repeater status",420,920,4)
 6862   PROCwrite2("1) Searching for 1750 Hz toneburst .....",300,850,0)
 6863   PROCwrite2("2) Checking channel for SSTV activity ..",300,800,0)
 6864   PROCwrite2("3) Sending CW identification text .........",300,750,0)
 6865   PROCwrite2("4) Waiting for a valid VIS code ............",300,700,0)
 6866   PROCwrite2("Click left mouse button at any time to exit repeater",260,630,4)
 6867   FOR Y=854 TO 704 STEP -50
 6868   GCOL 80,80,80
 6869   MOVE 880,Y:MOVE 880,Y+20:PLOT 85,900,Y+20
 6870   GCOL 255,255,255
 6871   MOVE 880,Y:MOVE 900,Y:PLOT 85,900,Y+20
 6872   NEXT
 6873   COLOUR 128 TINT 0
 6874   VDU 28,5,60,74,30:CLS
 6875   COLOUR 128,255,0
 6876   PROCwait_no_button
 6877
 6878     REPEAT
 6879
 6880       REPEAT
 6881
 6882         PROCleds_off
 6883         PRINT''" Searching for toneburst ..."
 6884         GCOL 255,255,0:RECTANGLE FILL 884,858,12,12
 6885
 6886         toneburst_result%=FNtoneburst
 6887         CASE toneburst_result% OF
 6888          WHEN 640 :
 6889           PROCupdate_rtc(FALSE):t$=$(rtc_buffer%+1)
 6890           COLOUR 255,255,255:PRINT'" ";t$;
 6891           COLOUR 0,255,0
 6892           PRINT" Toneburst found - checking for channel activity ..."
 6893           GCOL 0,255,0:RECTANGLE FILL 884,858,12,12
 6894           GCOL 255,255,0:RECTANGLE FILL 884,808,12,12
 6895          WHEN 320 : PROCrend:ENDPROC
 6896          WHEN 256 : ENDPROC
 6897         ENDCASE
 6898
 6899         IF FNbusy(3) THEN
 6900          PRINT'" ***** Channel busy - access denied *****"
 6901          chan_clear%=FALSE
 6902         ELSE
 6903          chan_clear%=TRUE
 6904         ENDIF
 6905
 6906       UNTIL chan_clear% OR rquit%
 6907
 6908       IF rquit% PROCrend:ENDPROC
 6909
 6910       PRINT'" Channel seems clear - sending '";cw_id$;"' on CW ..."
 6911       GCOL 0,255,0:RECTANGLE FILL 884,808,12,12
 6912       GCOL 255,255,0:RECTANGLE FILL 884,758,12,12
 6913       PROCcw_tx(cw_id$)
 6914       ENDIF
 6915
 6916       vis_param%!80=1 : REM Narrow VIS
 6917       vis_param%!4=serial_base%
 6918       r%=255:g%=255:good_vis%=FALSE
 6919       PRINT'" Now waiting up to 15 seconds for a VIS ..."
 6920       GCOL 0,255,0:RECTANGLE FILL 884,758,12,12
 6921       GCOL 255,255,0:RECTANGLE FILL 884,708,12,12
 6922        FOR v%=1 TO 30
 6923        CALL vis_code%
 6924        IF !vis_param%<>256 v%=30
 6925        r%=r%EOR255:g%=g%EOR255:GCOL r%,g%,0:RECTANGLE FILL 884,708,12,12
 6926        NEXT
 6927        IF !vis_param%=320 PROCrend:ENDPROC
 6928        IF !vis_param%<256 THEN
 6929         PROCvis_convert_to_mode(!vis_param%)
 6930        ELSE
 6931         PRINT'" No VIS found - returning to start ..."
 6932        ENDIF
 6933
 6934     UNTIL good_vis%
 6935
 6936       IF mode%=70 OR mode%=71 mode%=1
 6937       VDU26:GCOL 0,0,0:RECTANGLE FILL 0,0,1280,1024
 6938       PROCrx_sstv(TRUE):repeater_timer%=0
 6939       IF rx_param%!64=48 PROCrend:ENDPROC
 6940       T=TIME:REPEAT UNTIL TIME-T>100
 6941       GCOL 32,32,32:RECTANGLE FILL 0,960,1280,64
 6942       COLOUR 255,255,0:COLOUR 128+21 TINT 0
 6943       PRINT TAB(4,1)"Checking channel for SSTV activity before re-transmitting picture ... ";
 6944
 6945      FOR waiting3%=1 TO 36 : REM Wait up to 3 mins for channel to clear
 6946       IF NOT FNbusy(3) THEN
 6947        PROCtopscale2(0)
 6948        PROCtx_frame(TRUE)
 6949        waiting3%=36
 6950       ELSE
 6951       T=TIME:REPEAT UNTIL TIME-T>400
 6952       ENDIF
 6953      NEXT
 6954
 6955  UNTIL 0
 6956
 6957 ENDPROC
 6958 
 6959
 6960 DEF PROCrend
 6961  VDU26:WAIT:OFF:WAIT
 6962  PROCdismini:PROCwait_no_button
 6963  toneburst_result%=320
 6964 ENDPROC
 6965
 6966 DEF PROCrepeater_beacon_text
 6967  !spr%=40000:spr%!4=0:spr%!8=16:spr%!12=16
 6968  SYS sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.T1"
 6969  sprite_name$="t1":PROCtiled_sprite_background 
 6970  PROCtopscale2(2):f$="Homerton.Bold"
 6971  GCOL 0,0,255:RECTANGLE FILL 16,876,1240,8
 6972  GCOL 0,255,0:RECTANGLE FILL 16,886,1240,8
 6973  GCOL 255,0,0:RECTANGLE FILL 16,896,1240,8
 6974  PROCbeacon_text(f$,"PSCAN  REPEATER  INFO",130,848,32,40,6)
 6975  PROCbeacon_text(f$,"1 Transmit a 1750 Hz toneburst",44,720,32,32,&80FF8000)
 6976  PROCbeacon_text(f$,"2 Wait up to 5 secs for CW ID",44,600,32,32,&00FF8000)
 6977  PROCbeacon_text(f$,"3 Send SSTV - with VIS start -",44,480,32,32,&80FF8000)
 6978  PROCbeacon_text(f$,"    within 15 seconds",44,390,32,32,&80FF8000)
 6979  PROCbeacon_text(f$,"4 Picture will be replayed",44,270,32,32,&00FF8000)
 6980  PROCbeacon_text(f$,"    in the same SSTV mode",44,180,32,32,&00FF8000)
 6981  GCOL 255,255,0:RECTANGLE FILL 16,58,1240,8
 6982  GCOL 0,255,255:RECTANGLE FILL 16,68,1240,8
 6983  GCOL 255,0,255:RECTANGLE FILL 16,78,1240,8
 6984  W%=FNtext_width(f$,"DE  "+call$+"  SSTV  REPEATER",28,38):X%=(1280-W%)/2-8
 6985  PROCbeacon_text(f$,"DE  "+call$+"  SSTV  REPEATER",X%,30,28,38,&FFFF8000)
 6986  PROCupmini
 6987 ENDPROC
 6988
 6989 DEF PROCbeacon_text(f$,t$,x%,y%,xp%,yp%,c)
 6990  FOR X%=x% TO x%+16 STEP 8
 6991   FOR Y%=y% TO y%+16 STEP 8
 6992    PROCwrite(f$,t$,X%,Y%,xp%,yp%,0)
 6993   NEXT
 6994  NEXT
 6995  PROCwrite(f$,t$,x%+8,y%+8,xp%,yp%,c)
 6996 ENDPROC
 6997
 6998 DEF PROCset_rts_low_on_atomwide
 6999  DIM c% 64
 7000  FOR P=0 TO 2 STEP2
 7001   P%=c%
 7002   [OPT P
 7003   SWI "OS_EnterOS"
 7004   LDR R1,serial_base:MOV R0,#9:STRB R0,[R1,#&10]
 7005   TEQP PC,#0:MOVNV R0,R0:MOV PC,R14
 7006   .serial_base EQUD 0
 7007   ]
 7008  NEXT
 7009  !serial_base=EVAL(config$(13)):CALL c%
 7010 ENDPROC
 � >Pscan063

< � PD 50 mode added - mode 65, VIS 93/221     - 23.12.97
< � Manual memory area separate from sprities  - 11.12.97
< � Filer changes - new dir & save sprites     - 10.12.97
< � Pathnames file format changed (simplified) - 01.12.97
< � Repeater "beacon" text                     - 30.11.97
< � Serial port address configurable           - 28.11.97
	

2 ije_dev%=� : � Set to TRUE for G4IJE R&D only

< � Configuration now uses Choices window      - 09.11.97

< � Most code blocks moved into Resources dir  - 16.10.97
< � Repeater mode - for FM use only            - 14.10.97
< � Text outline - 2 widths available          - 28.07.97
< � Pic mem change within waveform monitor     - 13.07.97
< � Paint with sprite                          - 22.06.97
< � New borders / plinths for grabbed areas    - 15.06.97
< � JPEG mods / large directories accommodated - 04.05.97
< � PD auto-tune 8, 4 lines or off for FM use  - 15.02.97
< � User entry of pathname + list selector     - 17.02.97
< � Menu cancel moved to last entry            - 06.02.97
< � Auto-mode find - click R icon with adjust  - 27.01.97
< � PD90 save in Pscan format corrected        - 25.01.97
< � Tweaks to "create text" positioning        - 23.01.97
< � Text and mask size adjust                  - 19.01.97
< � New linear tuning indicator                - 28.12.96
< � PD mode RX lookup table 64 - 192           - 23.12.96
< � QwikText captions                          - 12.12.96
< � HQ modes - RX only and not "full spec"     - 25.11.96
< � StrongARM compatible version               - 20.10.96
 
!K � ********************************************************************
"K � * Many thanks to Neil, G4RQN, for help with the icon bar WIMP bits *
#K � ********************************************************************
$
%
&8 � � � �:ș"Hourglass_Smash":�''�$;" at line ";�'':�
'
( � ije_dev% �
)8  *SET Pscan$Dir ADFS::HardDisc4.$.PS_Jan98.AppFiles
*%  *FontInstall <Pscan$Dir>.Fonts.
+ �
,
-1 app_name$="Pscan":ver$="3.10 - January 1998"
. splash2x%=190
/* wimp_sprite$="!pscan":windowhandle%=�
0  font%=-1:just_registered%=�
1
2 � serial_base%=&03010FE0
3
4@ � block% &300,menu% 64,sysvar% 256,err% 256,sprite_name% 32
5; � temp% &300,Wbuffer% &300,qerr% &300:curbuf%=Wbuffer%
6 � choices_window% 32
76  $choices_window%="Obey <Pscan$Dir>.Choices.!Run"
8 � register_window% 40
9@  $register_window%="Obey <Pscan$Dir>.Choices.Register.!Run"
:
; $(menu%+56)="xxxx"
<
= config_entries%=13
> � config$(config_entries%)
?' �read_config_file(config_entries%)
@ memories%=�(config$(4))
A  txtsize%=�(config$(5))*1024
B+ � config$(9)="Y" � thumb%=� � thumb%=�
C9 � �(config$(13))>=&03242000 �set_rts_low_on_atomwide
D
E0 dummy=�file_len("<Pscan$Dir>.Resources.id")
F5 F%=�("<Pscan$Dir>.Resources.id"):�#F%,user$:�#F%
G
H  � ije_dev% � �start_pscan:�
I
J pscan_exit%=�
K �initialise
L �templates
M � � �error
N  �writeicon(28,info%,7,ver$)
O! �writeicon(28,info%,8,user$)
P �
Q
 �poll
R � pscan_exit%=�
S ș"Wimp_CloseDown"
T �
U
V � �initialise
W0 ș"Wimp_Initialise",200,&4b534154,app_name$
X block%!0=windowhandle%
Y block%!4=0:block%!8=0
Z block%!12=68:block%!16=68
[ block%!20=&301A
\! $(block%+24)=wimp_sprite$+�0
]. ș"Wimp_CreateIcon",,block% � iconhandle%
^ �
_
` � �templates
a � �
b& � � � � � ș "Wimp_CloseTemplate"
c4 ș "Wimp_OpenTemplate",,"<Pscan$Dir>.Templates"
d? ș "Wimp_LoadTemplate",,block%,temp%,temp%+512,-1,"Info",0
e+ ș "Wimp_CreateWindow",,block% � info%
f ș "Wimp_CloseTemplate"
g �
h �
i
j
 � �error
k !block%=�
l/ $(block%+4)=�$+" (Error code "+�(�)+")"+�0
m5 ș"Wimp_ReportError",block%,1,app_name$ � reply%
n � reply%=2 � �
o �
p
q � �poll
r$ ș"Wimp_Poll",,block% � reason%
s Ȏ reason% �
t'  � 2    :ș &400C5,,block%,,block%
u%  � 3    :�close_window(block%!0)
vR  � 6    :�checkmouse(!block%,block%!4,block%!8,block%!12,block%!16,block%!20)
w!  � 9    :�menuselect(block%)
x  � 17,18:�Wreceive
y �
z �
{
| � �close_window(whandle%)
} block%!0=whandle%
~" ș "Wimp_CloseWindow",,block%
 �
�
� � �Wreceive
� Ȏ block%!16 �
� � 0:pscan_exit%=�
� �
� �
�
�8 � �checkmouse(mousex%,mousey%,b%,handle%,icon%,ob%)
�
 �(b%�2)�
� Ȏ handle% �
�	 � -2
�J �domenu(101,">Info,Help,Manual,Register...,-Choices...,Quit","Pscan")
� �
� �
�
 �(b%�4)�
� �start_pscan
� �
� �
�
�( � �domenu(handle%,menu$,menutitle$)
� menuhandle%=handle%
� menuptr%=Wbuffer%
�	 i%=0
�  menuptr%!20=40:� block size
� $menuptr%=menutitle$
� menuptr%?12=7
� menuptr%?13=2
� menuptr%?14=7
� menuptr%?15=0
� menuptr%!16=196-24
�# menuptr%!24=4:� Height spacing
� menuptr%+=28
�2 � item$=�par(","):�menuitem(item$):� item$=""
�$ menuptr%!-24=(menuptr%!-24)�&80
�2 ș "Wimp_CreateMenu",,Wbuffer%,mousex%-64,384
� �
�
� � �menuitem(wtext$)
� � wtext$<>"" �
� !menuptr%=0
�7  � �wtext$,1)="-" � menuptr%?0=2:wtext$=�wtext$,2)
�  � �wtext$,1)=">" �
�   menuptr%!4=info%
�2   dummy=�file_len("<Pscan$Dir>.Resources.id")
�7   F%=�("<Pscan$Dir>.Resources.id"):�#F%,user$:�#F%
�"   �writeicon(28,info%,7,ver$)
�#   �writeicon(28,info%,8,user$)
�  �
�   menuptr%!4=�
�  �
� menuptr%!8=&07000021
�I � �wtext$,1)=">" � $(menuptr%+12)=�wtext$,2) � $(menuptr%+12)=wtext$
� menuptr%+=24
� �
� �
�
� � �par(sep$)
�& i1%=i%+1:i%=�menu$+sep$,sep$,i1%)
� =�menu$,i1%,i%-i1%)
�
� � �menuselect(menus%)
�: ș "Wimp_DecodeMenu",,Wbuffer%,menus%,�200," ")�,,,a$
� � a$<>"" �
�  Ȏ menuhandle% �
�   � 101
�   Ȏ a$ �
�&    � "Quit"       : pscan_exit%=�
�5    � "Help"       : *Filer_Run <Pscan$Dir>.!Help
�6    � "Manual"     : *Filer_Run <Pscan$Dir>.Manual
�<    � "Choices..." : ș "Wimp_StartTask",choices_window%
�B    � "Register...": � $(menu%+56)="sstv" � just_registered%=�
�@                        ș "Wimp_StartTask",register_window%
�   �
�  �
� �
� �
�
�* � �writeicon(itw%,whandle%,wic%,wic$)
� !block%=whandle%
�. s%=�readicon(itw%,whandle%,wic%):$s%=wic$
� block%!4=wic%
� block%!8=0:block%!12=0
� ș &400CD,,block%
� �
�
�% � �readicon(itr%,whandle%,which)
�	 � a$
� !block%=whandle%
�% ș "Wimp_GetWindowState",,block%
� block%!4=which
� ș &400CE,,block%
� =block%!itr%
�
�F � ********** MAIN NON-MULTITASKING PROGRAM STARTS HERE **********
�
� � �start_pscan
�
�' �read_config_file(config_entries%)
�$ �set_variables_from_config_file
�
� � just_registered% �
�9  �("LOAD <Pscan$Dir>.Resources.PscanTX "+�~tx_code%)
�  just_registered%=� 
� �
�
� ș "Hourglass_On"
�0 desk_mode%=�:modelen%=24:ptr%=desk_mode%+20
� ȕ !ptr%<>-1
� ptr%+=4:modelen%+=4
� �
� � modestore% modelen%
� � i%=0 � modelen%-4 � 4
�" modestore%!i%=desk_mode%!i%:�
�. �mode("X640 Y512 C32K"):screen_lines%=512
�6 �12,26,20:�:Ȗ:disp_flag%=0:panel$="Panel.Medium"
�< screen%=�screen_address:� 255,255,0:Ȓ 0,1023:Ȓ 2,1023
�
� � !screen%<>&03FF03FF �
�K �mode("X640 Y480 C32K"):screen%=�screen_address:�:Ȗ:screen_lines%=480
�" � 0,0,128:ȓ Ȑ 0,0,1280,1024
�# �raised_block(200,300,850,500)
�' � 255,255,128:ȓ Ȑ 220,732,804,50
�: �write2("Message from Pscan version "+ver$,220,740,4)
�M �write2("Pscan needs to use a 640 x 512 screen mode and this",220,670,4)
�I �write2("does not seem to be available on your computer.",220,630,4)
�P �write2("See the !ReadMe file inside the !Pscan.Extras.Monitors",220,590,4)
�M �write2("directory or contact G4IJE (01279 734482) for help.",220,550,4)
�J �write2("You can run Pscan in a 640 x 480 screen mode but",220,490,4)
@ �write2("some features will not work correctly.",220,450,4)
M �raised_block(240,340,340,40):�write2("Continue in 640 x 480",246,344,4)
G �raised_block(664,340,340,40):�write2("Quit to Desktop",714,344,4)
$ ș "Hourglass_Smash":*POINTER 1
) �wait_no_button:ȗ ȓ 240,336,764,48
? �:ȗ X,Y,B:� B<>0:� X>660 � ș "Wimp_SetMode",modestore%:�
 ȗ ȓ 0,0,1280,1024
 �

	 *FX2,0


 � $(menu%+56)="sstv" �
E disp_flag%=� : � Program has been run at least once so variables

,                   � are not initialised
 �

D � ije_dev% � *SET Pscan$Dir ADFS::HardDisc4.$.PS_Jan98.AppFiles

9 ș "OS_SWINumberFromString",,"OS_SpriteOp" � sprswi%
1 ș "ADFS_Drives" � N%,floppies%,hard_drives%


 � spr% txtsize%:�splash2
 
6 �get_drive_number_from_pathname:default_dir$=dir$
 auto_save%=0:auto_count%=0
# Thumbdir$="<Pscan$Dir>.Thumbs"

 �load_rx_and_tx_code
 �load_on_line_manual
 
 ȗ �:*POINTER 1
 
! mode%=1:MEM%=0:GH%=0:GW%=0
"4 mem3%=0:mem4%=0:mem5%=0:mem6%=0:mem7%=0:mem8%=0
#  � mem1% 655420,mem2% 655420
$# � memories%>2 � � mem3% 655420
%# � memories%>3 � � mem4% 655420
&# � memories%>4 � � mem5% 655420
'# � memories%>5 � � mem6% 655420
(# � memories%>6 � � mem7% 655420
)# � memories%>7 � � mem8% 655420
*
+ memblock%=mem1%
, � thumb% �
-$  � thblock% 328000,thpath% 2560
.5  thumb_max%=�count_thumbnail_banks:thumb_bank%=1
/%  thblock%!0=328000:thblock%!8=16
0  ș sprswi%,256+9,thblock%
11  ș "OS_File",5,Thumbdir$+".ThumbPix01" � a%
21  ș "OS_File",5,Thumbdir$+".ThumPath01" � b%
3   � a%=0 � b%=0 �
4%   �create_blank_thumbnail("new")
5*   thumb_max%=1:thumb_bank%=1:�splash2
6   �
7'  �load_thumbnail_bank(thumb_bank%)
8 �
9
:< � mode$(200):�setup_modes:area_copied%=0:gbpb_len%=3000
;A � cat$(80),ftype$(80),gbpb% gbpb_len%,path$(8),jpegscale% 16
< � N%=1 � 8:path$(N%)="X":�
=' � reddata 32,grndata 32,bludata 32
>2 � menu$(27),fontlist% 40,tran% 32,fontbox% 40
?2 � load_list$(8),rtc_buffer% 10:�check_for_bst
@' � user_path$(14),choices_list$(20)
A7 L%=64+�file_len("<Pscan$Dir>.UserFiles.Pathnames")
B � user_path% L%
C# � cw_data% 512:� cw_table$(50)
D
E; �mem_assemble:�picpro_assemble:�sprite_shadow_assemble
F9 �mysprite_assemble:�manual_assemble:�redraw_assemble
G6 �targa_assemble:�get_area_assemble:�zoom_assemble
HF �rotate_rgb_assemble:�make_small_targa_assemble:�quarter_assemble
I: �waveform_assemble:�reset_t0_assemble:�merge_assemble
J
KI text1$="":text2$="":text$="":TC%=&03FF:TD%=32:TL%=31:text_out_col%=0
L> brush_size%=16:step%=0:grad%=0:shad$="BR":SC%=0:shadow%=0
MA pbr%=255:pbg%=0:pbb%=255:xp%=0:yp%=0:pbri%=8:pbgi%=0:pbbi%=8
N3 text_block_shadow%=0:overlay%=0:font$="{none}"
OK overlay_outline%=0:OOC%=0:hires%=0:transform%=�:solid%=0:jpeg_scale%=0
P, file_open%=0:menu_redraw%=�:col_idec%=0
Q' real_shadow1%=0:entire%=0:qbw$="m"
RL border_width%=2:border_grad%=1:bypass%=0:screen_grabbed%=0:jpeg_info%=0
SH quit_after_error%=�:lastfile$="":merge%=0:grab$="e":mask_created%=0
T8 shown_dir$="-":dir_entries%=0:text%=0:mmm%=1:VIS%=0
U@ cursor_status%=99:auto_find%=�:rquit%=�:toneburst_result%=0
VA start_entry%=0:last_start_entry%=0:big_dir%=0:was_big_dir%=0
W
X' � N%=1 � 20:choices_list$(N%)="":�
Y � �
Z, � � � �#F%:�create_default_options_file
[* F%=�("<Pscan$Dir>.UserFiles.Options")
\* �#F%,save_type$:choices_list$(1)="ok"
]0 �#F%,qwiktext_colour%:choices_list$(2)="ok"
^/ �#F%,qwiktext_block%:choices_list$(3)="ok"
_) �#F%,jpeg_opt%:choices_list$(4)="ok"
`, �#F%,plot_shadow%:choices_list$(5)="ok"
a, �#F%,plot_border%:choices_list$(6)="ok"
b, �#F%,fax_average%:choices_list$(7)="ok"
c$ �#F%,red%:choices_list$(8)="ok"
d$ �#F%,grn%:choices_list$(9)="ok"
e% �#F%,blu%:choices_list$(10)="ok"
f& �#F%,jpgq%:choices_list$(11)="ok"
g) �#F%,Ioffset%:choices_list$(12)="ok"
h- �#F%,header_text%:choices_list$(13)="ok"
i/ �#F%,pd_auto_lines%:choices_list$(14)="ok"
j+ �#F%,sstv_time%:choices_list$(15)="ok"
k/ �#F%,outline_width%:choices_list$(16)="ok"
l+ �#F%,beacon_on%:choices_list$(17)="ok"
m	 �#F%
n � �
o
p Ȏ jpeg_opt% �
q � 0,1:jpeg_scale%=0
r � 2,3:jpeg_scale%=-1
s �
t
u/ � save_type$="overlay" save_type$="sprite"
v
w* � mouse1% 300,mouse2% 300,mouse3% 300
x4 dummy=�file_len("<Pscan$Dir>.Resources.cross1")
y6 �("LOAD <Pscan$Dir>.Resources.cross1 "+�~mouse1%)
z4 dummy=�file_len("<Pscan$Dir>.Resources.cross2")
{6 �("LOAD <Pscan$Dir>.Resources.cross2 "+�~mouse2%)
|4 dummy=�file_len("<Pscan$Dir>.Resources.finger")
}6 �("LOAD <Pscan$Dir>.Resources.finger "+�~mouse3%)
~
D SPM%=28000:� spb% SPM%:!spb%=SPM%:spb%!4=0:spb%!8=16:spb%!12=16
�> ș sprswi%,256+10,spb%,"<Pscan$Dir>.PSsprites.sstv_icons"
�
� � translate% 16
�	 � +0
�( � N%=0 � 15:� D%:translate%?N%=D%:�
�; � 255,253,171,169,87,85,3,0,144,61,49,12,190,36,47,227
�
� � translate256% 256
� � N%=0 � 255
�0 ș "ColourTrans_ColourNumberToGCOL",N% � D%
� translate256%?N%=D%:�
�
� $(menu%+56)="sstv"
� �
�
� ș "OS_Byte",229,0,0
� � �
� � � � �pscan_error_handler
�$ �get_drive_number_from_pathname
� BIGQUIT%=0:himem%=�
�# �mini_pad:ș "Hourglass_Smash"
� �mouse_control
�( � � ije_dev% � ș "OS_Byte",229,1,0
� � �
�! ș "Wimp_SetMode",modestore%
�I �write2("Returning to the desktop - please wait a moment",300,500,0)
�I �write2("Returning to the desktop - please wait a moment",296,504,1)
� �update_rtc(�)
�
�* F%=�("<Pscan$Dir>.UserFiles.Options")
� �#F%,save_type$
� �#F%,qwiktext_colour%
� �#F%,qwiktext_block%
� �#F%,jpeg_opt%
� �#F%,plot_shadow%
� �#F%,plot_border%
� �#F%,fax_average%
� �#F%,red%
� �#F%,grn%
� �#F%,blu%
� �#F%,jpgq%
� �#F%,Ioffset%
� �#F%,header_text%
� �#F%,pd_auto_lines%
� �#F%,sstv_time%
� �#F%,outline_width%
� �#F%,beacon_on%
�	 �#F%
� �
�
�& � �set_variables_from_config_file
�  call$=config$(1)
�  clock_freq%=�(config$(2))
�  dir$=config$(3)
�  user_drive$=config$(6)
�1  � �user_drive$,"::")>0 � �(user_drive$)>6 �
�   ud_path%=�
�  �
�   ud_path%=�
�  �
�  auto_dir$=config$(7)
�&  � config$(8)="Y" � X4%=� � X4%=�
�  header_text$=config$(10)
�  cw_id$=config$(11)
�)  toneburst_bandwidth%=�(config$(12))
�!  serial_base%=�(config$(13))
� �
�
� � �read_config_file(L%)
�(  F%=�("<Pscan$Dir>.Choices.Params")
�   � N%=1 � L%
�    config$(N%)=�#F%
�   �
�
  �#F%
� �
�
� � �pscan_error_handler
� � reset_t0_code%
�; � cursor_status%<>99 ș "OS_Byte",237,cursor_status%,0
� �26,20,4,7:�:Ȗ:*POINTER 1
� �19,1,24,0,0,0
�- X%=280:Y%=304:W%=720:H%=400:auto_save%=0
� ș "Hourglass_Smash"
� � file_open% � �#F%
�( �raised_block(X%+40,Y%,W%-80,H%-30)
�/ � 63 Ȝ 0:ȓ Ȑ X%+64,Y%+100,W%-128,H%-240
�- � 64,64,64:ȓ X%+64,Y%+100,W%-128,H%-240
�1 � 255,255,255:� X%+64,Y%+100,X%+W%-64,Y%+100
�) � X%+W%-64,Y%+100,X%+W%-64,Y%+H%-140
�? ș sprswi%,256+52,spb%,"error",X%+66,Y%+280,8,0,translate%
�@ ș sprswi%,256+52,spb%,"error",X%+570,Y%+280,8,0,translate%
�8 �write2("Error message from Pscan",X%+170,Y%+300,4)
�& �raised_block(X%+70,Y%+32,240,40)
�' �raised_block(X%+410,Y%+32,240,40)
�. �write2("Quit to Desktop",X%+410,Y%+36,4)
�' �write2("Continue",X%+120,Y%+36,4)
� �128+63 Ȝ0:� 0,0,0
�
 R$=�$
�( � �R$,"irectory") dir$=default_dir$
�# � �R$,"isc") dir$=default_dir$
�# � �R$,"ile") dir$=default_dir$
�$ � �R$,"rive") dir$=default_dir$
�% � �R$,"andle") dir$=default_dir$
�% � �R$,"iling") dir$=default_dir$
�' � dir$=default_dir$ shown_dir$="-"
�4 message$=�$+�13+�13+"Internal error code "+�(�)
�l � �=67782 � message$=message$+�13+�13+"You must run Pscan from a hard drive to load or save JPEG files"
�' $err%=message$:err%?(� message$)=0
�> � screen_lines%=512 � � 28,24,37,55,30 � � 28,24,33,55,26
�$ ș "OS_PrettyPrint",err%,0:�:Ȗ
�  ȗ ȓ X%+60,Y%+26,W%-124,54
� � step%<>0 � ȗ � step%
�
�$ �wait_no_button:�:K=�(1):� K=-1
�% �:ȗ X,Y,B:K=�(1):� B<>0 � K<>-1
�) � X>680 � K=13 � quit_after_error%=�
� ȗ ȓ 0,0,1280,1024
�0 � � quit_after_error% � �26:�display_memory
� �
�
� � �mouse_control
� ȗ � 1:T=0
� �
� � � quit_after_error% �
�  �wait_no_button:� � �(1)=-1
�
� �
� ȗ X,Y,B:K$=�(1)
   � K$=�254 �
&   � 0,32 Ȝ0:ȓ Ȑ 20,700,500,300
$   � 255,255,0:ȓ 20,700,500,300
"   � 128+32 Ȝ 0:� 255,255,255
&   � �4,3)"  - Pscan parameters -"
5   � �4,6)"  Memory in use = ";�((�-�)/1024);"k "
'   � �4,8)"  Last VIS code = ";VIS%
,   � �4,10)"  Ioffset%      = ";Ioffset%
  
	   K$=""

   �
  �check_alt_s_save
6  � jpeg_info% � (�-T)>300 � �dismini:jpeg_info%=0

&  � Y<55 � mbox%=X � 64 � mbox%=99
! � B<>0 � K$<>"":jpeg_info%=0

 � K$="" �
$  � B=2 � 128 Ȝ 128:�:�mini_pad
2  � (B=1 � B=4) � Y<55 mbox%=X � 64 � mbox%=99
  � (B=1 � B=4) � Y>54 �
%  �display_memory:�wait_no_button
  �:ȗ x,y,b:� b=4 � b=1
0  � x<10 � x>1270 � y<10 � y>950 � �scroller
  �mini_pad
  �
  �
  � �(K$)>96 K$=�(�(K$)-32)
  X=400

  Ȏ K$ �
-  � "C":� 128 Ȝ 128:�:�mini_pad:mbox%=99
  � "F":mbox%=19
  � "H":mbox%=22
   � "M":mbox%=6
!  � "N":mbox%=18
"  � "R":mbox%=10
#  � "T":mbox%=11
$  � "V":mbox%=8
%  � "Q":mbox%=21
&?  � "1","2","3","4","5","6","7","8":X=(�(K$)-49)*48:mbox%=1
' 
(
 mbox%=99
) �
* �
+
,4 � X<384 � mbox%<>99 � �memory_select(X � 48,-1)
- Ȏ mbox% �
. � 6,7:�mode_menu
/ � 8,9:�vis_start
0+ � 10:� B=1 auto_find%=� � auto_find%=�
1        :�rx_sstv(�)
2 � 11:�tx_frame(�)
3 � 12:�test_patterns
4 � 13:�rgb_processing
5* � 14:�tools:� auto_save% � �auto_save
6 � 15:�background_menu
7 � 16:�grab_menu
8# � 17:�text_sprite_overlay_menu
9 � 18:�show_thumbnails
:2 � 19:�filer_display:� jpeg_info% � �jpeg_info
; � 22:�on_line_manual
< � 21:�qwiktext
= �
> �
?# BIGQUIT%=�:quit_after_error%=�
@ �
A � BIGQUIT%
B �
C
D � �check_alt_s_save
E � �(-3) � �(-82) �
F- �("SCREENSAVE "+dir$+".PSscreen"+� mmm%)
G mmm%+=1
H �
I �
J
K � �jpeg_info
L' �raised_block(400,106,472,100):T=�
M8 �write2("JPEG image "+� xs%+" by "+� ys%,456,160,4)
N1 � jpeg_scale% � sc$="scaled" � sc$="cropped"
O; �write2("Loaded and "+sc$+" in "+T$+" secs",394,120,4)
P �
Q
R  � �memory_select(mem%,dis%)
S � mem%<memories% �
T Ȏ mem% �
U � 0:memblock%=mem1%
V � 1:memblock%=mem2%
W � 2:memblock%=mem3%
X � 3:memblock%=mem4%
Y � 4:memblock%=mem5%
Z � 5:memblock%=mem6%
[ � 6:memblock%=mem7%
\ � 7:memblock%=mem8%
] �
^  MEM%=mem%:� dis% � �dismini
_ �
` � mem%=memories% � �(-3) �
a#  ș "Wimp_SlotSize",-1,-1 � S%
b%  ș "Wimp_SlotSize",S%+660000,-1
c  Ȏ (memories%+1) �
d8  � 3:mem3%=himem%+64:memblock%=mem3%:himem%+=660000
e8  � 4:mem4%=himem%+64:memblock%=mem4%:himem%+=660000
f8  � 5:mem5%=himem%+64:memblock%=mem5%:himem%+=660000
g8  � 6:mem6%=himem%+64:memblock%=mem6%:himem%+=660000
h8  � 7:mem7%=himem%+64:memblock%=mem7%:himem%+=660000
i8  � 8:mem8%=himem%+64:memblock%=mem8%:himem%+=660000
j  �
k:  memories%+=1:MEM%=mem%:temp_mem_increase%=�:�dismini
l  �
m �
n �
o
p& � �get_drive_number_from_pathname
q N%=0:drv%=99:�
r! drv%=�(�dir$,N%,1))-48:N%+=1
s5 � drv%=0 � drv%=1 � drv%=4 � drv%=5 � N%=�(dir$)
t0 � drv%<0 � drv%>5 � drv%=4:dir$="ADFS::4.$"
u �
v
w � �background_menu
x" �3,63 Ȝ192:ȓ Ȑ 964,4,52,50
y �
z menu$(0)="  Backgrounds"
{$ menu$(2)="  Single gradations>"
|$ menu$(3)="  Double gradations>"
}% menu$(4)="  White-blue diagonal"
~$ menu$(5)="  White-red diagonal"
' menu$(6)="  Cyan-magenta diagonal"
�) menu$(7)="  Yellow-magenta diagonal"
�% menu$(8)="  Yellow-red diagonal"
�& menu$(9)="  White-green diagonal"
�' menu$(10)="  Yellow-cyan diagonal"
�$ menu$(11)="  Red-blue diagonal"
�( menu$(12)="  Multi diagonal type 1"
�( menu$(13)="  Multi diagonal type 2"
�# menu$(14)="  Plain background"
�' menu$(15)="  Circular gradations>"
�$ menu$(16)="  Multi gradations>"
�& menu$(17)="  Segment gradations>"
�! menu$(18)="  Miscellaneous>"
� � merge% m$=�128 � m$=" "
�' menu$(19)=m$+" Merge with picture"
�% menu$(20)="  Fade top-to-bottom"
�" menu$(21)="*":�menu(494,90,0)
�5 � menu_box%=19 � merge%=�(merge%):menu_redraw%=�
� Ȏ menu_box% �
� � 1:menu_box%=0
� � 2:�single_grad_options
� � 3:�double_grad_options
�( � 4,5,6,7,8,9,10,11,12,13:�diagonal
� � 14:�plain_background
� � 15:�circular_gradations
� � 16:�multi_grad_menu
� � 17:�segment_menu
� � 18:�misc_backgrounds
� � 20:�screen_fade
� �
�$ � menu_box%<>19 � menu_box%<>99
�. � merge% � menu_box%<>0 � �merge:merge%=0
�
 �dismini
� �
�
� � �double_grad_options
� menu$(0)="Double grad   "
� menu$(1)="Red-black"
� menu$(2)="Green-black"
� menu$(3)="Blue-black"
� menu$(4)="Red-yellow"
� menu$(5)="Red-magenta"
� menu$(6)="Green-cyan"
� menu$(7)="Yellow-blue"
� menu$(8)="Yellow-black"
� menu$(9)="White-black"
�! menu$(10)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�* � 1:�double_grad_back(255,1,1,-1,0,0)
�* � 2:�double_grad_back(1,255,1,0,-1,0)
�* � 3:�double_grad_back(1,1,255,0,0,-1)
�) � 4:�double_grad_back(255,1,1,0,1,0)
�) � 5:�double_grad_back(255,1,1,0,0,1)
�) � 6:�double_grad_back(1,255,1,0,0,1)
�- � 7:�double_grad_back(255,255,1,-1,-1,1)
�- � 8:�double_grad_back(255,255,1,-1,-1,0)
�0 � 9:�double_grad_back(255,255,255,-1,-1,-1)
� �
� �
�
� � �single_grad_options
� menu$(0)="Single grads   "
� menu$(1)="Black-white"
� menu$(2)="Black-yellow"
� menu$(3)="Black-cyan"
� menu$(4)="Black-green"
� menu$(5)="Black-magenta"
� menu$(6)="Black-red"
� menu$(7)="Black-blue"
�  menu$(8)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�' � 1:�single_grad_back(0,0,0,1,1,1)
�' � 2:�single_grad_back(0,0,0,1,1,0)
�' � 3:�single_grad_back(0,0,0,0,1,1)
�' � 4:�single_grad_back(0,0,0,0,1,0)
�' � 5:�single_grad_back(0,0,0,1,0,1)
�' � 6:�single_grad_back(0,0,0,1,0,0)
�' � 7:�single_grad_back(0,0,0,0,0,1)
� �
� �
�
� � �plain_background
�9 �rgb_sliders(0):� red%,grn%,blu%:ȓ Ȑ 0,0,1279,1024
�! � �(merge%) � �upload_memory
� �
�
� � �border_menu
�' � menu_box%=6 � bh%=1022 � bh%=958
� �
�& menu$(0)="  Border options      "
�  menu$(1)="  White gradated"
�! menu$(2)="  Yellow gradated"
� menu$(3)="  Cyan gradated"
�  menu$(4)="  Green gradated"
�" menu$(5)="  Magenta gradated"
� menu$(6)="  Red gradated"
� menu$(7)="  Blue gradated"
�! menu$(8)="  Colour selector"
�! menu$(9)="  ---------------"
�) � border_width%=1 � m$=�128 � m$=" "
�" menu$(10)=m$+" Narrow border"
�) � border_width%=2 � m$=�128 � m$=" "
�" menu$(11)=m$+" Medium border"
�) � border_width%=3 � m$=�128 � m$=" "
�  menu$(12)=m$+" Wide border"
�( � border_grad%=1 � m$=�128 � m$=" "
�% menu$(13)=m$+" Gradate to white"
�( � border_grad%=2 � m$=�128 � m$=" "
�& menu$(14)=m$+" Gradate to yellow"
�( � border_grad%=3 � m$=�128 � m$=" "
�$ menu$(15)=m$+" Gradate to cyan"
�( � border_grad%=4 � m$=�128 � m$=" "
�% menu$(16)=m$+" Gradate to green"
�( � border_grad%=5 � m$=�128 � m$=" "
�' menu$(17)=m$+" Gradate to magenta"
�( � border_grad%=6 � m$=�128 � m$=" "
�# menu$(18)=m$+" Gradate to red"
�( � border_grad%=7 � m$=�128 � m$=" "
�$ menu$(19)=m$+" Gradate to blue"
�( � border_grad%=8 � m$=�128 � m$=" "
�% menu$(20)=m$+" Gradate to black"
�! menu$(21)="*":�menu(0,90,-1)
� Ȏ menu_box% �
� � 10:border_width%=1
� � 11:border_width%=2
� � 12:border_width%=3
� � 13:border_grad%=1
� � 14:border_grad%=2
� � 15:border_grad%=3
 � 16:border_grad%=4
 � 17:border_grad%=5
 � 18:border_grad%=6
 � 19:border_grad%=7
 � 20:border_grad%=8
 �
! � menu_box%<9 � menu_box%=99
 Ȏ menu_box% �
 � 1:r%=255:g%=255:b%=255
	 � 2:r%=255:g%=255:b%=0

 � 3:r%=0:g%=255:b%=255
 � 4:r%=0:g%=255:b%=0
 � 5:r%=255:g%=0:b%=255

 � 6:r%=255:g%=0:b%=0
 � 7:r%=0:g%=0:b%=255
0 � 8:�rgb_sliders(0):r%=red%:g%=grn%:b%=blu%
 �
( � menu_box%<>99 � �border(r%,g%,b%)
 �

 � �mode_menu
# �3,63 Ȝ192:ȓ Ȑ 388,4,116,50
 �
" menu$(0)="SSTV mode select  "
 menu$(2)="Martin 1"
 menu$(3)="Martin 2"
 menu$(4)="Scottie 1"
 menu$(5)="Scottie 2"
 menu$(6)="Scottie DX"
 menu$(7)="SC2 180 seconds"
 menu$(8)="WR180 - JVFAX"
  menu$(9)="PD 50  (320x256)"
 ! menu$(10)="PD 90  (320x256)"
!! menu$(11)="PD 120 (640x496)"
"! menu$(12)="PD 160 (512x384)"
#! menu$(13)="PD 180 (640x496)"
$! menu$(14)="PD 240 (640x496)"
%% menu$(15)="P3 (Pasokon 640x496)"
&% menu$(16)="P5 (Pasokon 640x496)"
'' menu$(17)="P7 (Pasokon 640x496)  "
( menu$(18)="HQ-1 (RX only)"
) menu$(19)="HQ-2 (RX only)"
*) menu$(20)="Select Martin 1 timings>"
+  menu$(21)="Mono FAX modes>"
," menu$(22)="Colour FAX modes>"
-& menu$(23)="PD auto-tune control>"
." menu$(24)="*":�menu(282,90,0)
/ Ȏ menu_box% �
0 � 2:mode%=1
1 � 3:mode%=2
2 � 4:mode%=5
3 � 5:mode%=6
4 � 6:mode%=9
5 � 7:mode%=11
6 � 8:mode%=12
7 � 9:mode%=65
8 � 10:mode%=63
9 � 11:mode%=64
: � 12:mode%=62
; � 13:mode%=60
< � 14:mode%=61
= � 15:mode%=20
> � 16:mode%=21
? � 17:mode%=22
@ � 18:mode%=70
A � 19:mode%=71
B! � 20:�select_martin1_timings
C � 21:�fax_mode_menu
D � 22:�colour_fax_menu
E � 23:�pd_auto_tune_control
F �
G � menu_box%<>99
H
 �dismini
I �
J
K � �select_martin1_timings
L �
M) menu$(0)="  Select Martin 1 timings"
N+ � sstv_time%=1 � m$=�128+" " � m$="  "
O% menu$(1)=m$+"Robot or Superscan"
P+ � sstv_time%=2 � m$=�128+" " � m$="  "
Q- menu$(2)=m$+"WinPix Pro or GSH (DL4SAW)"
R+ � sstv_time%=3 � m$=�128+" " � m$="  "
S menu$(3)=m$+"JVFAX"
T  menu$(4)="*":�menu(0,90,-1)
U Ȏ menu_box% �
V � 1:sstv_time%=1:mode%=1
W � 2:sstv_time%=2:mode%=1
X � 3:sstv_time%=3:mode%=1
Y �
Z � menu_box%=99
[ �
\
] � �pd_auto_tune_control
^ �
_& menu$(0)="  PD auto-tune control"
`/ � pd_auto_lines%=8 � m$=�128+" " � m$="  "
a" menu$(1)=m$+"Average 8 lines"
b/ � pd_auto_lines%=4 � m$=�128+" " � m$="  "
c" menu$(2)=m$+"Average 4 lines"
d/ � pd_auto_lines%=0 � m$=�128+" " � m$="  "
e) menu$(3)=m$+"Auto-tune off (FM use)"
f  menu$(4)="*":�menu(0,90,-1)
g Ȏ menu_box% �
h � 1:pd_auto_lines%=8
i � 2:pd_auto_lines%=4
j � 3:pd_auto_lines%=0
k �
l � menu_box%=99
m �
n
o � �fax_mode_menu
p �
q menu$(0)="  Mono FAX  "
r menu$(1)="   60 LPM"
s menu$(2)="   90 LPM"
t menu$(3)="  120 LPM"
u menu$(4)="  180 LPM"
v menu$(5)="  240 LPM"
w menu$(6)="  360 LPM"
x menu$(7)="  480 LPM"
y- � fax_average%=1 � m$=�128+" " � m$="  "
z" menu$(8)=m$+"Show every line"
{- � fax_average%=2 � m$=�128+" " � m$="  "
|# menu$(9)=m$+"Average 2 lines "
}- � fax_average%=3 � m$=�128+" " � m$="  "
~# menu$(10)=m$+"Average 3 lines"
! menu$(11)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�& � 8:fax_average%=1:menu_redraw%=�
�& � 9:fax_average%=2:menu_redraw%=�
�' � 10:fax_average%=3:menu_redraw%=�
� �
�! � menu_box%<8 � menu_box%=99
�) � menu_box%<>99 � mode%=menu_box%+99
� �
�
� � �colour_fax_menu
� menu$(0)="Colour FAX "
� menu$(1)=" 60 LPM"
� menu$(2)=" 90 LPM"
� menu$(3)="120 LPM"
� menu$(4)="180 LPM"
� menu$(5)="240 LPM"
� menu$(6)="360 LPM"
� menu$(7)="480 LPM"
�  menu$(8)="*":�menu(0,90,-1)
�* � menu_box%<>99 � mode%=menu_box%+119
� �
�
� � �wait_no_button
�$ � x%,y%,b%:�:ȗ x%,y%,b%:� b%=0
� �
�
� � �screen_address
� � IB%(),OB%()
� � IB% 20,OB% 20
�  !IB%=148:IB%!4=150:IB%!8=-1
�% ș "OS_ReadVduVariables",IB%,OB%
�
 =!OB%
�
� � �mini_pad
�. � disp_flag% �display_memory:disp_flag%=0
�$ � 128,180,180:ȓ Ȑ 0,0,1280,60
� �240,240,240:�0,60,1280,60
� � X%=4 � 340 �48
�8 ș sprswi%,256+52,spb%,"button",X%,4,0,0,translate%
� �
�! �raised_block(522,10,106,38)
� �large_buttons(384,2,-1)
�+ � X%=768 � 1152 �64:�buttons(X%,2,0):�
�" � 23,17,7,6,8;8;0;:�32 Ȝ0:�5
� � �(auto_save%) �
�C � mode%<99 �write2("VIS",530,12,4) � �write2("Phase",512,12,4)
� �
� �write2("AUTO",516,12,4)
� �
� � 0,0,0
� � mode%<120 �
� � 400,36:� mode$(mode%)
� �
�  � 400,44:� �mode$(mode%),6)
�  � 392,24:� �mode$(mode%),7)
� �
�6 ș sprswi%,256+52,spb%,"rgb",838,6,0,0,translate%
�8 ș sprswi%,256+52,spb%,"brush",902,6,0,0,translate%
�8 ș sprswi%,256+52,spb%,"text",1094,6,0,0,translate%
�5 ș sprswi%,256+52,spb%,"tp",774,6,0,0,translate%
�: ș sprswi%,256+52,spb%,"camera",1030,6,0,0,translate%
�9 ș sprswi%,256+52,spb%,"roller",966,6,0,0,translate%
�5 ș sprswi%,256+52,spb%,"rx",646,4,0,0,translate%
�5 ș sprswi%,256+52,spb%,"tx",710,4,0,0,translate%
�9 ș sprswi%,256+52,spb%,"thumb",1158,6,0,0,translate%
�9 ș sprswi%,256+52,spb%,"filer",1216,4,8,0,translate%
� XM%=(memories%-1)*48+4
� M%=1:� X%=4 � XM% �48
�" �write2(� M%,X%,12,4):M%+=1:�
�  � 0,64,0:ȓ Ȑ 612,24,10,10
� �4:�:Ȗ:menu_redraw%=�
�+ �3,255,255,255:ȓ Ȑ MEM%*48+6,8,38,44
� �128:�23,17,7,6,8;8;0;
� �
�
� � �buttons(X,Y,F)
� �63 Ȝ192
�, � X+4,Y+4,X+4,Y+50:� X+4,Y+52,X+56,Y+52
� �0 Ȝ0
�, � X+4,Y+2,X+56,Y+2:� X+56,Y+2,X+56,Y+50
�) �(F) � �42 Ȝ192:ȓ Ȑ X+8,Y+8,44,56
� �
�
� � �large_buttons(X,Y,F)
� �63 Ȝ192
�- � X+4,Y+4,X+4,Y+50:� X+4,Y+52,X+120,Y+52
� �0 Ȝ0
�/ � X+4,Y+2,X+120,Y+2:� X+120,Y+2,X+120,Y+50
�+ �(F) � �255,190,0:ȓ Ȑ X+6,Y+4,112,46
� �
�
� � �mem_assemble
� � mem_code% 64
� � P=0 � 2 �2
� P%=mem_code%
� [OPT P
� .mem_transfer
� MOV R12,#16384
� .mts_loop
�0 LDMIA R0!,{R1,R3-R11}:STMIA R2!,{R1,R3-R11}
�! SUBS R12,R12,#1:BNE mts_loop
� MOV PC,R14
� ]:�
� �
�
� � �display_memory
�. A%=memblock%+20:C%=screen%:� mem_transfer
� �
�
� � �upload_memory
�. C%=memblock%+20:A%=screen%:� mem_transfer
� path$(MEM%+1)="X"
� �
�
� � �scroller
�  �19,1,24,255,0,255:ȗ X,Y,B
�1 mid%=!screen%:� �high_res_mode xy%=2 � xy%=4
� �
�* � Y>950 � ȓ Ȑ 0,0,1280,1024 � 0,xy%
�* � Y<10 � ȓ Ȑ 0,0,1280,1024 � 0,-xy%
�+ � X>1270 � ȓ Ȑ 0,0,1280,1024 � xy%,0
�* � X<10 � ȓ Ȑ 0,0,1280,1024 � -xy%,0
� K%=�(5)
� �:ȗ X,Y,B:� B=4
�) � (Y>100 � Y<923) � (X>100 � X<1179)
�! �19,1,24,0,0,0:!screen%=mid%
� �upload_memory
� �

 � �high_res_mode
 � result%
 Ȏ mode% �
*  � 1,2,5,6,9,11,12,63,70,71:result%=�
 
  result%=�
 �

 =result%
	

 � �setup_modes
	 � +0
 � N%=1 � 12:� mode$(N%):�

F � " M-1 "," M-2 "," M-3 "," M-4 "," S-1 "," S-2 "," S-3 "," S-4 "
) � " S-DX","SC-120","SC-180","WR-180"
! � N%=100 � 107:� mode$(N%):�
3 � "FAX 60","FAX 90","FAX120","FAX180","FAX240"
! � "FAX360","FAX480","QST480"
! � N%=120 � 126:� mode$(N%):�
* mode$(60)="PD-180":mode$(61)="PD-240"
) mode$(62)="PD-160":mode$(63)="PD-90"
) mode$(64)="PD-120":mode$(65)="PD-50"
( mode$(70)=" HQ-1":mode$(71)=" HQ-2"
7 mode$(20)=" P-3":mode$(21)=" P-5":mode$(22)=" P-7"
& � "HamCol60 /204","HamCol90 /204"
6 � "HamCol120/204","HamCol180/204","HamCol240/204"
& � "HamCol360/204","HamCol480/204"
 �

 � �font_list_select
 �
 �print_font_list
  ȗ ȓ 26,0,1204,888
!" D%=400:W%=380:�wait_no_button
"- �:ȗ X,Y,B:MX%=(X-32)� D%:MY%=(956-Y)�32
# box%=(MX%+1)+(MY%-2)*3
$ � box%<=N% � box%=78 �
%2 � 3,63 Ȝ192:ȓ Ȑ MX%*D%+32,922-MY%*32,W%,32
&/ �:ȗ X,Y,B:MX2%=(X-32)� D%:MY2%=(956-Y)�32
'" � MX2%<>MX% � MY2%<>MY% � B=4
(% ȓ Ȑ MX%*D%+32,922-MY%*32,W%,32
) �
*
 � B=4
+) � box%<78:ȗ ȓ 0,0,1280,1024:ȑ 0,0
, �
-
. � �print_font_list
/ ȑ 0,32
01 �128+32 Ȝ0:�:�255,255,255:ȓ 20,52,1236,892
18 � 422,52,422,896:� 822,52,822,896:� 20,896,1256,896
25 � 255,255,255:� �3,4)"Font list: Last used was "
3( � 255,255,0:� �28,4)�font$,31);" ";
4 � 255,255,255:�"at ";
5! � 255,255,0:�;xp%;" / ";yp%;
6 � 255,255,255:�" points"
7. � 128,255,255:ȓ Ȑ 320,12,600,32:� 0,0,0
8? �5:� 342,36:�"Click on an empty position to abort":�4:�:Ȗ
9& � 255,255,0:�128+32 Ȝ0:X%=3:Y%=7
:0 � J%=0�77:cat$(J%)="":�:N%=0:shown_dir$="-"
; �
<2 ș "Font_ListFonts",0,fontlist%,F%,-1 �,,end%
= � � end% �
>/ cat$(N%)=$fontlist%:� �X%,Y%)�cat$(N%),23)
?, F%+=1:N%+=1:X%+=25:� X%>54 � X%=3:Y%+=2
@ �
A � N%=77 � end%=�
B< � � end% � � 255,255,255:� �54,57)"[ NEXT FONT PAGE  ]"
C �
D
E  � �text_sprite_overlay_menu
F# �3,63 Ȝ192:ȓ Ȑ 1092,4,52,50
G �
H& menu$(0)="Text & sprite overlays"
I! menu$(2)="QwikText options>"
J  menu$(3)="QwikText display"
K" menu$(4)="------------------"
L# menu$(5)="Select text colour>"
M$ menu$(6)="Select text outline>"
N# menu$(7)="Select text shadow>"
O# menu$(8)="Create text overlay"
P# menu$(9)="Grab screen ellipse"
Q& menu$(10)="Grab screen rectangle"
R# menu$(11)="Text mask options>"
S( menu$(12)="Sprite overlay outline>"
T# menu$(13)="------------------"
UW � text% � menu$(16)="Display '"+�text1$,12)+"'" � menu$(16)="{no text or overlay}"
V8 � overlay% � menu$(16)="Display '"+sprite_name$+"'"
W � overlay% �
X)  menu$(14)="Tile '"+sprite_name$+"'"
Y*  menu$(15)="Save '"+sprite_name$+"'>"
Z �
[$  menu$(14)="{no sprite loaded}"
\$  menu$(15)="{no sprite loaded}"
] �
^" menu$(17)="*":�menu(494,90,0)
_ Ȏ menu_box% �
` � 2:�qwiktext_menu
a � 3:�qwiktext
b � 5:�text_colour_menu
c' � 6:�text_outline_menu:menu_box%=6
d � 7:�text_shadow_menu
e" � 8:�font_text(0):menu_box%=8
f) � 9:�grab_screen_ellipse:menu_box%=1
g, � 10:�grab_screen_rectangle:menu_box%=1
h � 11:�text_mask_menu
i& � 12:�overlay_outline:menu_box%=8
j/ � 14:� overlay% � �tiled_sprite_background
k. � 16:� (text% � overlay%) � �display_text
l � 15:� overlay% �
m2          st2$=save_type$:save_type$="overlay"
n,          �filer_display:save_type$=st2$
o         �
p �
q@ � menu_box%=1 � menu_box%=3 � (menu_box%>13 � menu_box%<17)
r � menu_box%<>15 �dismini
s �
t
u � �qwiktext_menu
v �
w  menu$(0)="QwikText options"
x menu$(1)="White text"
y menu$(2)="Yellow text"
z menu$(3)="Cyan text"
{ menu$(4)="Green text"
| menu$(5)="Magenta text"
} menu$(6)="Red text"
~ menu$(7)="Blue text"
 menu$(8)="Black text"
� menu$(9)="  -----------"
� menu$(10)="White block"
� menu$(11)="Yellow block"
� menu$(12)="Cyan block"
� menu$(13)="Green block"
� menu$(14)="Magenta block"
� menu$(15)="Red block"
� menu$(16)="Blue block"
� menu$(17)="Black block"
� menu$(18)="Transparent"
� � N%=1 � 8
�+ � N%=qwiktext_colour% m$=�128 � m$=" "
�! menu$(N%)=m$+" "+menu$(N%):�
� � N%=10 � 18
�* � N%=qwiktext_block% m$=�128 � m$=" "
�! menu$(N%)=m$+" "+menu$(N%):�
�! menu$(19)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�1 � 1,2,3,4,5,6,7,8:qwiktext_colour%=menu_box%
�; � 10,11,12,13,14,15,16,17,18:qwiktext_block%=menu_box%
� �
� � menu_box%=99
� �
�
� � �overlay_outline
�' menu$(0)="Overlay outline       " 
� menu$(1)="White outline"
� menu$(2)="Yellow outline"
� menu$(3)="Cyan outline"
� menu$(4)="Green outline"
� menu$(5)="Magenta outline"
� menu$(6)="Red outline"
� menu$(7)="Blue outline"
� menu$(8)="Black outline"
� menu$(9)="Colour selector"
�% menu$(10)="Soft multiple shadow"
�& menu$(11)="Single shadow - close"
�% menu$(12)="Single shadow - wide"
�% menu$(13)="No outline or shadow"
�! menu$(14)="*":�menu(0,90,-1)
� overlay_outline%=�
� Ȏ menu_box% �
� � 1:OOC%=&7FFF
� � 2:OOC%=&03FF
� � 3:OOC%=&7FE0
� � 4:OOC%=&03E0
� � 5:OOC%=&7C1F
� � 6:OOC%=&001F
� � 7:OOC%=&7C00
� � 8:OOC%=&0000
�" � 9:�rgb_sliders(0):OOC%=RGB%
� � 10:OOC%=1
� � 11:OOC%=2
� � 12:OOC%=3
� � 13:overlay_outline%=0
� �
� �
�
� � �text_shadow_menu
�& menu$(0)="Text shadow           "
�! menu$(1)="Solid drop shadow"
� menu$(2)="Gradated shadow"
�$ menu$(3)="Soft multiple shadow"
�% menu$(4)="Single shadow - close"
�$ menu$(5)="Single shadow - wide"
�! menu$(6)="Grey block shadow"
�# menu$(7)="Yellow block shadow"
�! menu$(8)="Cyan block shadow"
�" menu$(9)="Green block shadow"
�% menu$(10)="Magenta block shadow"
�! menu$(11)="Red block shadow"
�" menu$(12)="Blue block shadow"
�$ menu$(13)="Solid letter effect"
� menu$(14)="No shadow"
�! menu$(15)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�# � 1,2:�rgb_sliders(0):SC%=RGB%
�7 � 3:real_shadow1%=1:shadow%=0:text_block_shadow%=0
�7 � 4:real_shadow1%=2:shadow%=0:text_block_shadow%=0
�7 � 5:real_shadow1%=3:shadow%=0:text_block_shadow%=0
�E � 6:!shadow_flag=0:!clear_mask=%01000010000100000100001000010000
�E � 7:!shadow_flag=1:!clear_mask=%01111100000000000111110000000000
�E � 8:!shadow_flag=1:!clear_mask=%00000000000111110000000000011111
�E � 9:!shadow_flag=1:!clear_mask=%01111100000111110111110000011111
�F � 10:!shadow_flag=1:!clear_mask=%00000011111000000000001111100000
�F � 11:!shadow_flag=1:!clear_mask=%01111111111000000111111111100000
�F � 12:!shadow_flag=1:!clear_mask=%00000011111111110000001111111111
�> � 13:SC%=0:text_block_shadow%=0:shadow%=0:real_shadow1%=0
�> � 14:SC%=0:text_block_shadow%=0:shadow%=0:real_shadow1%=0
� �
�C � menu_box%<3 � shadow%=�:text_block_shadow%=0:real_shadow1%=0
�c � menu_box%>5 � menu_box%<13 � text_block_shadow%=�:outline_width%=0:shadow%=0:real_shadow1%=0
�& � menu_box%=2 � grad%=� � grad%=0
�) � menu_box%=13 � solid%=� � solid%=0
� menu_box%=99
� �
�
� � �text_colour_menu
�& menu$(0)="Text colour           "
�  menu$(1)="Plain WHITE text"
�! menu$(2)="Plain YELLOW text"
� menu$(3)="Plain CYAN text"
�  menu$(4)="Plain GREEN text"
�" menu$(5)="Plain MAGENTA text"
� menu$(6)="Plain RED text"
� menu$(7)="Plain BLUE text"
�  menu$(8)="Plain BLACK text"
�" menu$(9)="Grad YELLOW to RED"
�% menu$(10)="Grad YELLOW to GREEN"
�# menu$(11)="Grad CYAN to GREEN"
�" menu$(12)="Grad CYAN to BLUE"
�$ menu$(13)="Grad MAGENTA to RED"
�% menu$(14)="Grad MAGENTA to BLUE"
�& menu$(15)="Grad WHITE to MAGENTA"
�" menu$(16)="Grad WHITE to RED"
�# menu$(17)="Grad WHITE to BLUE"
�" menu$(18)="Grad RED to WHITE"
�$ menu$(19)="Grad GREEN to WHITE"
�# menu$(20)="Grad BLUE to WHITE"
�  menu$(21)="Colour selector"
�! menu$(22)="*":�menu(0,90,-1)
� Ȏ menu_box% �
� � 1:TC%=&7FFF:TD%=0:TL%=0
� � 2:TC%=&03FF:TD%=0:TL%=0
� � 3:TC%=&7FE0:TD%=0:TL%=0
� � 4:TC%=&03E0:TD%=0:TL%=0
� � 5:TC%=&7C1F:TD%=0:TL%=0
� � 6:TC%=&001F:TD%=0:TL%=0
 � 7:TC%=&7C00:TD%=0:TL%=0
 � 8:TC%=&0000:TD%=0:TL%=0
  � 9:TC%=&03FF:TD%=32:TL%=31
! � 10:TC%=&03FF:TD%=1:TL%=992
$ � 11:TC%=&7FE0:TD%=1024:TL%=992
$ � 12:TC%=&7FE0:TD%=32:TL%=31744
# � 13:TC%=&7C1F:TD%=1024:TL%=31
# � 14:TC%=&7C1F:TD%=1:TL%=31744
$ � 15:TC%=&7FFF:TD%=32:TL%=31775
	# � 16:TC%=&7FFF:TD%=1056:TL%=31

$ � 17:TC%=&7FFF:TD%=33:TL%=31744
A � 18:TC%=31:TD%=1056:TL%=&7FFF:� First incremented gradation
& � 19:TC%=&03E0:TD%=&401:TL%=&7FFF

$ � 20:TC%=&7C00:TD%=33:TL%=&7FFF
. � 21:�rgb_sliders(0):TC%=RGB%:TD%=0:TL%=0
 �
3 � menu_box%<18 � menu_box%=21 � menu_box%=99 �
  col_idec%=0
 �
  col_idec%=1
 �
 menu_box%=99
 �

 � �text_outline_menu
 �
" menu$(0)="  Text outline    "
C � text_out_col%=&7FFF � outline_width%>0 m$=�128+" " � m$="  "
  menu$(1)=m$+"White outline"
C � text_out_col%=&03FF � outline_width%>0 m$=�128+" " � m$="  "
! menu$(2)=m$+"Yellow outline"
C � text_out_col%=&7FE0 � outline_width%>0 m$=�128+" " � m$="  "
  menu$(3)=m$+"Cyan outline"
!C � text_out_col%=&03E0 � outline_width%>0 m$=�128+" " � m$="  "
"  menu$(4)=m$+"Green outline"
#C � text_out_col%=&7C1F � outline_width%>0 m$=�128+" " � m$="  "
$" menu$(5)=m$+"Magenta outline"
%C � text_out_col%=&001F � outline_width%>0 m$=�128+" " � m$="  "
& menu$(6)=m$+"Red outline"
'C � text_out_col%=&7C00 � outline_width%>0 m$=�128+" " � m$="  "
( menu$(7)=m$+"Blue outline"
)C � text_out_col%=&0000 � outline_width%>0 m$=�128+" " � m$="  "
*  menu$(8)=m$+"Black outline"
+! menu$(9)="  Colour selector"
,# menu$(10)="  ----------------"
-- � outline_width%=1 m$=�128+" " � m$="  "
." menu$(11)=m$+"Narrow outline"
/- � outline_width%=2 m$=�128+" " � m$="  "
0  menu$(12)=m$+"Wide outline"
1- � outline_width%=3 m$=�128+" " � m$="  "
2" menu$(13)=m$+"Relief outline"
3- � outline_width%=0 m$=�128+" " � m$="  "
4 menu$(14)=m$+"No outline"
5! menu$(15)="*":�menu(0,90,-1)
6 Ȏ menu_box% �
7 � 1:text_out_col%=&7FFF
8 � 2:text_out_col%=&03FF
9 � 3:text_out_col%=&7FE0
: � 4:text_out_col%=&03E0
; � 5:text_out_col%=&7C1F
< � 6:text_out_col%=&001F
= � 7:text_out_col%=&7C00
> � 8:text_out_col%=&0000
?+ � 9:�rgb_sliders(0):text_out_col%=RGB%
@ � 11:outline_width%=1
A � 12:outline_width%=2
B � 13:outline_width%=3
C � 14:outline_width%=0
D �
E! � menu_box%=9 � menu_box%=99
F �
G
H � �font_text(mask_flag%)
I	 F%=0
J+ �:�font_list_select:� box%<78 � end%=�
K font$=cat$(box%-1)
L � font$<>"" �
M/ �:�255,255,255:� 0,400,1280,400:overlay%=0
N8 �:�255,255,0:� �1,40)"Font chosen is       : "font$
O7 �255,255,255:� �''" Enter caption line 1 : "text1$
P/ � text1$="" � text1$=call$:� �24,43)text1$
Q) � �'" Enter caption line 2 : "text2$
R% �''" Enter X point size   : "xp%
S3 � xp%<10 � xp%>200 � xp%=64:� �24,48);xp%;"  "
T% �''" Enter Y point size   : "yp%
U4 � yp%<10 � yp%>400 � yp%=xp%:� �24,51);yp%;"  "
V � � mask_flag% �
W% �''" Horiz or Vert (H/V)  : "hv$
X! �:�:Ȗ:transform%=�:hv2$=hv$
Y � hv$="V" � hv$="v" �
Z3 �vertical_write(font$,text1$,16,840,xp%,yp%,1)
[ hv$="V":transform%=0
\ �
] �plot_text
^ �
_	 �:Ȗ
`. �grab_text:� transform% � �transform_text
a
 �dismini
b �
c �:�:Ȗ
d3 � font$="" � � mask_flag% � �dismini � text%=�
e �
f
g � �plot_text
h � text2$="" �
i* �write(font$,text1$,16,556,xp%,yp%,1)
j �
k) � font%<>-1 ș "Font_LoseFont",font%
l4 ș "Font_FindFont",,font$,xp%*16,yp%*16 � font%
m1 ș "Font_CharBBox",font%,�"A",16 �,,,r3%,r4%
n* �write(font$,text1$,16,650,xp%,yp%,1)
o1 �write(font$,text2$,16,650-r4%-32,xp%,yp%,1)
p Ymax%=r4%+24:hv$="V"
q �
r �
s
t � �transform_text
uI mul=65536:a=1:b=0:c=0:d=1:e=0:f=0:try%=0:xp_start%=xp%:yp_start%=yp%
v) ȑ 0,0:� 0,0,136:ȓ Ȑ 0,0,1280,1024
w �
x0 � try% ȑ 0,0:� 0,0,136:ȓ Ȑ 0,0,1280,1024
y �plot_text:�grab_text
z# Y1%=1040-((S%-screen%)/1280)*2
{# Y2%=1000-((E%-screen%)/1280)*2
|1 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
}1 ș sprswi%,256+16,spr%,"t",0,0,Y2%,W%+12,Y1%
~+ �:ȑ 0,0:� 0,0,136:ȓ Ȑ 0,0,1280,1024
% � 200,200,200:ȓ Ȑ 0,0,1280,370
�" �raised_block(784,16,448,342)
�' � 255,180,100:ȓ Ȑ 784,320,444,38
�: ș sprswi%,256+52,spb%,"sh_l",1020,260,8,0,translate%
�: ș sprswi%,256+52,spb%,"sh_r",1130,260,8,0,translate%
�: ș sprswi%,256+52,spb%,"sh_u",1020,200,8,0,translate%
�: ș sprswi%,256+52,spb%,"sh_d",1130,200,8,0,translate%
�9 ș sprswi%,256+52,spb%,"up2",1084,156,8,0,translate%
�: ș sprswi%,256+52,spb%,"left",1040,120,8,0,translate%
�; ș sprswi%,256+52,spb%,"right",1130,120,8,0,translate%
�9 ș sprswi%,256+52,spb%,"down",1084,82,8,0,translate%
�9 ș sprswi%,256+52,spb%,"left",810,220,8,0,translate%
�: ș sprswi%,256+52,spb%,"right",930,220,8,0,translate%
�9 ș sprswi%,256+52,spb%,"left",810,100,8,0,translate%
�: ș sprswi%,256+52,spb%,"right",930,100,8,0,translate%
� �show_point_sizes
�# �write2("x/y point",812,272,4)
�! �write2("y point",828,152,4)
�! �raised_block(808,32,120,32)
�! �raised_block(948,32,120,32)
�" �raised_block(1088,32,120,32)
� �write2("UNDO",822,32,4)
� �write2("TRY",970,32,4)
� �write2("OK",1116,32,4)
�4 �write2("  Re-size        Transform",800,324,4)
�D �write2("Do not allow transformation process to move",50,324,4)
�5 �write2("caption into this grey area.",50,284,4)
�= �write2("Click adjust on the 'compass points'",50,220,4)
�= �write2("to re-position caption if necessary.",50,180,4)
�> �write2("Click OK or press <return> to finish.",50,120,4)
�
� � 0,0,0:� 988,86,988,294
�# � 255,255,255:� 992,86,992,294
� ȗ ȓ 784,16,448,338
�% ȑ 0,500:quit%=0:reset%=0:try%=0
� �
�  tran%!0=a*mul:tran%!4=b*mul
�! tran%!8=c*mul:tran%!12=d*mul
�" tran%!16=e*mul:tran%!20=f*mul
�1 ș sprswi%,256+56,spr%,"t",%00,,8,tran%:�:Ȗ
�$ �:ȗ X,Y,B:K=�(5):� B<>0 � K=13
� point_button$=""
�
� � B=4 � B=1 �
�
�4 � �(X-830)<28 � �(Y--260)<28 point_button$="xm"
�4 � �(X-942)<28 � �(Y--260)<28 point_button$="xp"
�4 � �(X-830)<28 � �(Y--380)<28 point_button$="ym"
�4 � �(X-942)<28 � �(Y--380)<28 point_button$="yp"
�
�, � �(X-868)<60 � �(Y--450)<24 � reset%=�
�+ � �(X-1008)<60 � �(Y--450)<24 � try%=�
�, � �(X-1148)<60 � �(Y--450)<24 � quit%=�
�, � �(X-1044)<28 � �(Y--218)<28 � c-=0.01
�, � �(X-1044)<28 � �(Y--278)<28 � b+=0.01
�, � �(X-1156)<28 � �(Y--218)<28 � c+=0.01
�, � �(X-1156)<28 � �(Y--278)<28 � b-=0.01
� �
�
�# � point_button$<>"" � reset% �
� Ȏ point_button$ �
�" � "xm":� xp%>10 xp%-=2:yp%-=2
�# � "xp":� xp%<200 xp%+=2:yp%+=2
� � "ym":� yp%>10 yp%-=2
� � "yp":� yp%<200 yp%+=2
� �
�) � reset% xp%=xp_start%:yp%=yp_start%
� ȑ 0,0
�" � 32 Ȝ0:ȓ Ȑ 0,372,1280,660
� �plot_text:�grab_text
�# Y1%=1040-((S%-screen%)/1280)*2
�# Y2%=1000-((E%-screen%)/1280)*2
�1 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
�1 ș sprswi%,256+16,spr%,"t",0,0,Y2%,W%+12,Y1%
� ȓ Ȑ 0,372,1280,660
� �show_point_sizes
�
 ȑ 0,500
� �
�
�$ � �(X-1100)<20 � �(Y--330)<20 �
� � B=1 � f+=0.02 � d+=0.02
� �
�$ � �(X-1100)<20 � �(Y--394)<20 �
� � B=1 � f-=0.02 � d-=0.02
� �
�$ � �(X-1056)<20 � �(Y--362)<20 �
� � B=1 � e-=0.02 � a-=0.02
� �
�$ � �(X-1140)<20 � �(Y--362)<20 �
� � B=1 � e+=0.02 � a+=0.02
� �
�
� � K=13 � quit%=�
� K=�(1):Ȗ
�H � reset% � �wait_no_button:mul=65536:a=1:b=0:c=0:d=1:e=0:f=0:try%=0
� � quit% � reset% � try%
� � quit% � try%
�$ � b<0 � shad$="BL" � shad$="BR"
� ȑ 0,0
� �grab_text
� � try% � �display_text
� � B=4 � try%=0:menu_box%=1
�
 � � try%
� ȑ 0,0:ȗ ȓ 0,0,1280,1024
� �
�
� � �show_point_sizes
� � 255,255,255
�+ ȓ Ȑ 856,218,68,40:ȓ Ȑ 856,98,68,40
� xp$=� xp%:yp$=� yp%
� � � xp$<3 xp$=" "+xp$
� � � yp$<3 yp$=" "+yp$
�2 �write2(xp$,854,222,0):�write2(yp$,854,102,0)
� �
�
� � �greyscale32
�& g%=0:� X%=0 � 1240 �40:� g%,g%,g%
� ȓ Ȑ X%,0,40,1024:g%+=8:�
� �upmini
� �
�
� � �topscale(s%)
� � s%<>2 � �display_memory
� � s%=1 � Y%=0 � Y%=960
�- ȑ 0,0:g%=0:� X%=0 � 1200 �80:� g%,g%,g%
�! ȓ Ȑ X%,Y%,80,1024:g%+=16:�
� � s%<>2 � �upmini
� �
�
 � �topscale2(s%)
 � s%<>2 � �display_memory
# � 48,48,184:ȓ Ȑ 0,988,200,44
 � s%<>1 �
% � 255,255,255:ȓ Ȑ 0,960,200,26
  � 255,0,0:ȓ Ȑ 8,964,60,18
! � 0,255,0:ȓ Ȑ 68,964,62,18
" � 0,0,255:ȓ Ȑ 128,964,62,18
 �
	 � s%=1 � Y%=988 � Y%=960

2 ȑ 0,0:g%=0:� X=200 � 1212.5 �67.5:� g%,g%,g%
 ȓ Ȑ X,Y%,68,64:g%+=16:�
 � s%<>2 � �upmini

 �


 � �tools
" �3,63 Ȝ192:ȓ Ȑ 900,4,52,50
 �
% menu$(0)="  Tools and utilities"
 menu$(2)="  Repair QRM"
 menu$(3)="  Flood fill"
 menu$(4)="  Paintbrush"
# menu$(5)="  Paint with sprite"
 menu$(6)="  Cloning brush"
% menu$(7)="  Grad border - full>"
$ menu$(8)="  Grad border - 480>"
% menu$(9)="  Pipe border - full>"
% menu$(10)="  Pipe border - 480>"
! menu$(11)="  TX test tones>"
) � auto_save% � m$=�128+" " � m$="  "
" menu$(12)=m$+"Auto save mode"
" � X4% � m$=�128+" " � m$="  "
 # menu$(13)=m$+"TX tone X4 mode"
!& � bypass% � m$=�128+" " � m$="  "
"% menu$(14)=m$+"Bypass save check"
#! menu$(15)="  On-line manual"
$  menu$(16)="  Repeater mode"
%) � beacon_on% � m$=�128+" " � m$="  "
&# menu$(17)=m$+"Repeater beacon"
'& � call$="G3SID" � call$="G0WYR" �
(/  � call$="G3SID" � c$="G0WYR" � c$="G3SID"
)(   menu$(18)="  Set callsign to "+c$
*   menu$(19)="*"
+  �
,   menu$(18)="*"
-  �
. �menu(494,90,0)
/ Ȏ menu_box% �
0 � 1:�dismini
1 � 2:�repairQRM
2 � 3:�flood_fill
3 � 4:�paintbrush
4 � 5:�paint_with_sprite
5 � 6:�cloning_brush(16)
6 � 7,8:�border_menu
7( � 9,10:�pipe_border_menu(menu_box%)
8) � 11:�tx_test_tone_menu:menu_box%=11
91 � 12:auto_save%=�(auto_save%):menu_redraw%=�
:4 � 13:X4%=�(X4%):�tx_params_setup:menu_redraw%=�
;+ � 14:bypass%=�(bypass%):menu_redraw%=�
< � 15:�on_line_manual
= � 16:�repeater_control
>1 � 17:beacon_on%=�(beacon_on%):menu_redraw%=�
?9 � 18:� call$="G3SID" � call$="G0WYR" � call$="G3SID"
@         � call$="G0WYR" �
AG          �("LOAD <Pscan$Dir>.Resources.G0WYR.PscanTX "+�~tx_code%)
B         �
CA          �("LOAD <Pscan$Dir>.Resources.PscanTX "+�~tx_code%)
D         �
E         �dismini
F �
GD � (menu_box%<11 � menu_box%>14) � menu_box%<>17 � menu_box%<>99
H �
I
J � �tx_test_tone_menu
K �
L menu$(0)="TX test tones"
M7 N=1:� F=1000 � 1700 �100:menu$(N)=� F+" Hz":N+=1:�
N menu$(9)="1750 Hz"
O8 N=10:� F=1800 � 2400 �100:menu$(N)=� F+" Hz":N+=1:�
P! menu$(17)="*":�menu(0,90,-1)
Q Ȏ menu_box% �
R7 � 1,2,3,4,5,6,7,8:�tx_test_tone(900+menu_box%*100)
S � 9:�tx_test_tone(1750)
TB � 10,11,12,13,14,15,16:�tx_test_tone(1800+(menu_box%-10)*100)
U �
V � menu_box%=99
W �
X
Y � �grab_menu
Z# �3,63 Ȝ192:ȓ Ȑ 1028,4,52,50
[ �
\" menu$(0)="  Grab screen area"
]" menu$(2)="  Grab screen area"
^$ menu$(3)="  Grab entire screen"
_+ � plot_border%=1 t$=�128+" " � t$="  "
`" menu$(4)=t$+"Plinth options>"
a+ � plot_border%=2 t$=�128+" " � t$="  "
b" menu$(5)=t$+"Border options>"
c) � plot_shadow% t$=�128+" " � t$="  "
d" menu$(6)=t$+"Shadow options>"
e menu$(7)="  Quad display"
f menu$(8)="  Quad border>"
g$ menu$(9)="  Plot entire screen"
h& menu$(10)="  Plot area - flipped"
i% menu$(11)="  Plot area - normal"
j" menu$(12)="*":�menu(494,90,0)
k Ȏ menu_box% �
l � 1:�dismini
m � 2:�grab_rectangle(0)
n& � 3:�grab_rectangle(-1):entire%=�
o5 � 4:�plot_border_menu:menu_box%=4:menu_redraw%=�
p7 � 5:�plot_border97_menu:menu_box%=5:menu_redraw%=�
q5 � 6:�plot_shadow_menu:menu_box%=6:menu_redraw%=�
r � 7:�quad_display
s � 8:�quad_border_menu
t �
u � menu_box%=9 �
v4 � entire% � �plot_grabbed_area(1) � menu_box%=4
w �
x, � menu_box%=10 � �plot_grabbed_area(-1)
y+ � menu_box%=11 � �plot_grabbed_area(0)
zA � menu_box%<>4 � menu_box%<>5 � menu_box%<>6 � menu_box%<>99
{ � menu_box%=3 � entire%=�
| � menu_box%=2 � entire%=0
} �
~
 � �plot_shadow_menu
�$ menu$(0)="Plot shadow options" 
�" menu$(1)="Real shadow effect"
� menu$(2)="No shadow"
�  menu$(3)="*":�menu(0,90,-1)
�# � menu_box%=1 � plot_shadow%=1
�# � menu_box%=2 � plot_shadow%=0
� �
�
� � �plot_border97_menu
�  menu$(0)="Border options  "
� menu$(1)="White"
� menu$(2)="Yellow"
� menu$(3)="Cyan"
� menu$(4)="Green"
� menu$(5)="Magenta"
� menu$(6)="Red"
� menu$(7)="Blue"
� menu$(8)="Purple-red"
� menu$(9)="Magenta-green"
� menu$(10)="Green-gold"
� menu$(11)="Multi-colour 1"
� menu$(12)="Multi-colour 2"
� menu$(13)="Multi-colour 3"
� menu$(14)="Multi-colour 4"
� menu$(15)="No border"
�! menu$(16)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�; � 1:pbr%=128:pbg%=128:pbb%=128:pbri%=8:pbgi%=8:pbbi%=8
�9 � 2:pbr%=128:pbg%=128:pbb%=0:pbri%=8:pbgi%=8:pbbi%=0
�9 � 3:pbr%=0:pbg%=128:pbb%=128:pbri%=0:pbgi%=8:pbbi%=8
�7 � 4:pbr%=0:pbg%=128:pbb%=0:pbri%=0:pbgi%=8:pbbi%=0
�9 � 5:pbr%=128:pbg%=0:pbb%=128:pbri%=8:pbgi%=0:pbbi%=8
�7 � 6:pbr%=128:pbg%=0:pbb%=0:pbri%=8:pbgi%=0:pbbi%=0
�7 � 7:pbr%=0:pbg%=0:pbb%=128:pbri%=0:pbgi%=0:pbbi%=8
�8 � 8:pbr%=128:pbg%=0:pbb%=64:pbri%=8:pbgi%=0:pbbi%=8
�9 � 9:pbr%=64:pbg%=128:pbb%=64:pbri%=8:pbgi%=8:pbbi%=8
�: � 10:pbr%=128:pbg%=80:pbb%=32:pbri%=8:pbgi%=8:pbbi%=0
�9 � 11:pbr%=64:pbg%=32:pbb%=64:pbri%=4:pbgi%=4:pbbi%=8
�: � 12:pbr%=0:pbg%=128:pbb%=64:pbri%=4:pbgi%=8:pbbi%=12
�< � 13:pbr%=128:pbg%=128:pbb%=64:pbri%=4:pbgi%=8:pbbi%=12
�; � 14:pbr%=128:pbg%=128:pbb%=64:pbri%=4:pbgi%=8:pbbi%=8
� � 15:plot_border%=0
� �
�2 � menu_box%>0 � menu_box%<15 � plot_border%=2
� �
�
� � �plot_border_menu
�  menu$(0)="Plinth options  "
� menu$(1)="White"
� menu$(2)="Yellow"
� menu$(3)="Cyan"
� menu$(4)="Green"
� menu$(5)="Magenta"
� menu$(6)="Red"
� menu$(7)="Blue"
� menu$(8)="Black"
� menu$(9)="Colour selector"
� menu$(10)="No plinth"
�! menu$(11)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�# � 1:pbr%=255:pbg%=255:pbb%=255
�! � 2:pbr%=255:pbg%=255:pbb%=0
�! � 3:pbr%=0:pbg%=255:pbb%=255
� � 4:pbr%=0:pbg%=255:pbb%=0
�! � 5:pbr%=255:pbg%=0:pbb%=255
� � 6:pbr%=255:pbg%=0:pbb%=0
� � 7:pbr%=0:pbg%=0:pbb%=255
� � 8:pbr%=0:pbg%=0:pbb%=0
�6 � 9:�rgb_sliders(0):pbr%=red%:pbg%=grn%:pbb%=blu%
� � 10:plot_border%=0
� �
�2 � menu_box%>0 � menu_box%<10 � plot_border%=1
� �
�
� � �paintbrush
�$ �display_memory:�wait_no_button
� �
� �:ȗ X,Y,B:� B<>0
� � Y>8 �
�3 � B=4 � � red%,grn%,blu%:ȏ Ȑ X,Y,brush_size%
�< � B=2 � �upload_memory:�rgb_sliders(-1):�display_memory
� � B=1 �
�  RGB%=�X,Y):red%=(RGB%�31)*8
�1 grn%=((RGB%>>5)�31)*8:blu%=((RGB%>>10)�31)*8
� �
� �
�
 � Y<9
� �upmini:�wait_no_button
� �
�
� � �test_patterns
�" �3,63 Ȝ192:ȓ Ȑ 772,4,52,50
� �
� menu$(0)="  Test patterns"
�# menu$(2)="  32 step greyscale"
�# menu$(3)="  16 step greyscale"
� menu$(4)="  Test Card"
� menu$(5)="  Colour Bars"
�( menu$(6)="  TOP greyscale - type 1"
�) menu$(7)="  TOP greyscale - type 2 "
�' menu$(8)="  TOP greyscale - short"
�) � header_text% m$=�128+" " � m$="  "
�% menu$(9)=m$+"Header text on/off"
�& menu$(10)="  Hamcolor FAX header"
�( menu$(11)="  Monochrome FAX header"
�  menu$(12)="  Chequer board"
� menu$(13)="  Star field"
�! menu$(14)="  Opening screen"
�' menu$(15)="  Repeater beacon page"
�" menu$(16)="*":�menu(494,90,0)
� Ȏ menu_box% �
� � 1:�dismini
� � 2:�greyscale32
� � 3:�topscale(1)
� � 4:�test_card
� � 5:�colour_bars
� � 6:�topscale(0)
� � 7:�topscale2(0)
� � 8:�topscale2(1)
�4 � 9:header_text%=�(header_text%):menu_redraw%=�
� � 10:�fax_header(0)
� � 11:�fax_header(-1)
� � 12:�chequer
� � 13:�star_field:�upmini
� � 14:�splash2:�upmini
� � 15:�repeater_beacon_text
� �
� � menu_box%<>9
 �

 � �colour_bars
	 � +0
" � X%=0 � 1120 �160:� r%,g%,b%
% � r%,g%,b%:ȓ Ȑ X%,0,160,1024:�
8 � 255,255,255,255,255,0,0,255,255,0,255,0,255,0,255
 � 255,0,0,0,0,255,0,0,0
 �upmini
	 �


 � �chequer
  � 0,0,0:ȓ Ȑ 0,0,1280,1024

 � 255,255,255
 � X%=0 � 1280 �320
 ȓ Ȑ X%,0,160,1024:�
 � 3,255,255,255
 � Y%=0 � 1024 �320
 ȓ Ȑ 0,Y%,1280,160
# �:�upload_memory:�topscale2(0)
 �

 � �upmini
 �upload_memory:�mini_pad
 �

 � �dismini
 �display_memory:�mini_pad
 �

 � �mouse_cross1
* mouse1%?&01=2:mouse1%!&06=mouse1%+&0A
  ș "OS_Word",&15,mouse1%
! �
" � �mouse_cross2
#* mouse2%?&01=2:mouse2%!&06=mouse2%+&0A
$ ș "OS_Word",&15,mouse2%
% �
& � �mouse3
'* mouse3%?&01=2:mouse3%!&06=mouse3%+&0A
( ș "OS_Word",&15,mouse3%
)- ȗ � 2:ȗ � 1,0,255,255:ȗ � 3,48,48,184
* �
+
, � �repairQRM
- � �(�high_res_mode) �
. H%=2:�mouse_cross2
/ �
0 H%=1:�mouse_cross1
1 �
2& ȗ � 2:MC%=255:ȗ � 1,MC%,MC%,MC%
3* ș "OS_Byte",161,194 �,,step%:ȗ � H%
4& �display_memory:�:�wait_no_button
5 �:ȗ X,Y,B:� B<>0
6
 � H%=2 �
7 X=(X � 4)*4:Y=(Y � 4)*4
8 �
9 X=(X � 2)*2:Y=(Y � 2)*2
: �
;! �wait_no_button:� 3,63 Ȝ192
<- � B=2 � MC%=MC% � 255:ȗ � 1,MC%,MC%,MC%
= � B=4 �
>  SX%=X:SY%=Y:� SX%,SY%,X,SY%
?! � H%=2 � � SX%,SY%+2,X,SY%+2
@ �
A �:ȗ X1,Y,B
B
 � H%=2 �
C X1=(X1 � 4)*4:Y=(Y � 4)*4
D �
E X1=(X1 � 2)*2:Y=(Y � 2)*2
F �
G � X1<>X � B<>0
H% � SX%,SY%,X,SY%:� SX%,SY%,X1,SY%
I6 � H%=2 � � SX%,SY%+2,X,SY%+2:� SX%,SY%+2,X1,SY%+2
J X=X1:� B<>0
K � SX%,SY%,X1,SY%
L" � H%=2 � � SX%,SY%+2,X1,SY%+2
M � B=4 � X1>SX% �
N" � H%=2 � Y<=SY% � Yoffset%=-2
O  � H%=2 � Y>SY% � Yoffset%=5
P" � H%=1 � Y<=SY% � Yoffset%=-1
Q  � H%=1 � Y>SY% � Yoffset%=2
R, � SX%,SY%+Yoffset%:� BY X1-SX%,Yoffset%
S �&BF,SX%,SY%
T �
U �
V � B=1:�upmini
W' ȗ � 1:ȗ � 1,0,255,255:ȗ � step%
X �
Y
Z � �display_text
[A �display_memory:�wait_no_button:!colour_inc_or_dec=col_idec%
\ � overlay% �
] �plot_overlay_sprite
^ �
_. !colour_store=0:ȗ ȓ -300,-300,1600,1400
`I � hv$="V"�hv$="v"� !vertical_start=(Ymax%+4)/2 � !vertical_start=500
a
b �
c  ȗ X,Y,B
d0  a%=(960-Y)�2*1280+X-20:a%=(a%�4)*4+screen%
e)  !colour_store=TC%:!colour_limit=TL%
f,  !colour_decrement=TD%:!colour_height=2
g!  !opstart=a%:� output_sprite
h  �
i   ȗ x,y,B
j  � x<>X � y<>Y � B<>0
k  �display_memory
l � B<>0
m !colour_inc_or_dec=0
n
o � B=4 �
p
q � text_block_shadow% �
r5  !shadow_start=a%-7680:!num_lines=text_lines%+12
s(  !num_bytes=text_width%+16:� shadow
tE  sy%=a%-7680-screen%:sy%=1024-(sy%�1280)*2:sx%=(a%-screen%)�1280
u:  � 208,208,208:ȓ Ȑ sx%,sy%,text_width%+14,2:� 0,0,0
v=  ȓ Ȑ sx%,(sy%-((text_lines%+12)*2))-2,text_width%+14,2
w  � 180,180,180
xE  ȓ Ȑ sx%-2,(sy%-((text_lines%+12)*2))-2,2,(text_lines%+12)*2+4
y  � 32,32,32
zR  ȓ Ȑ sx%+text_width%+14,(sy%-((text_lines%+12)*2))-2,2,(text_lines%+12)*2+2
{  �
|
}0 � real_shadow1%=1 � �real_shadow1(10,shad$)
~G � real_shadow1%=2 � real_shadow1%=3 � �real_shadow2(real_shadow1%)
& � shadow% � �shadow_text(5,shad$)
�, � solid% � �solid_text:outline_width%=0
�
�, � outline_width%=1 � outline_width%=2 �
�)  !colour_decrement=0:!colour_limit=0
�1  w%=2560*outline_width%:w2%=4*outline_width%
�  � J%=a%-w% � a%+w% �1280
�   � N%=J%-w2% � J%+w2% �4
�?    !opstart=N%:!colour_store=text_out_col%:� output_sprite
�   �
�  �
� �
�
� � outline_width%=3 �
�9  � new relief effect - outline on top and left edges
�)  !colour_decrement=0:!colour_limit=0
�4  !opstart=a%-2560-4:!colour_store=text_out_col%
�  � output_sprite
�4  !opstart=a%-5120-8:!colour_store=text_out_col%
�  � output_sprite
� �
�
�4 !opstart=a%:!colour_store=TC%:!colour_limit=TL%
�7 !colour_decrement=TD%:!colour_inc_or_dec=col_idec%
�
� � hv$="V"�hv$="v" �
�!  !vertical_start=(Ymax%+4)/2
�  !colour_height=2
� �
�  !vertical_start=500
�*  !colour_height=1+(�(text_lines%/40))
� �
�
�# � output_sprite:�upload_memory
�
� � �display_memory
�
� �
� �
� ȗ ȓ 0,0,1280,1024
� �
�
�  � �shadow_text(size%,shad$)
�" � outline_width%>0 � size%+=2
�; !colour_decrement=0:!colour_limit=0:x%=size%*4:sc%=SC%
�' � shad$="BL" � shad$="TL" � x%=-x%
�% � J%=a%+(size%*2560) � a% �-2560
�; N%=J%+x%:!opstart=N%:!colour_store=sc%:� output_sprite
� � grad% �
�- r%=sc%�31:g%=(sc%>>5)�31:b%=(sc%>>10)�31
� � r%>1 � r%-=2
� � g%>1 � g%-=2
� � b%>1 � b%-=2
� sc%=(b%<<10)+(g%<<5)+r%
� �
�. � shad$="BL" � shad$="TL" � x%+=4 � x%-=4
� �
� �
�
� � �solid_text
�7 !colour_decrement=0:!colour_limit=0:x%=-24:sc%=TC%
�0 str=sc%�31:stg=(sc%>>5)�31:stb=(sc%>>10)�31
� stri=(str-str/3)/8
� stgi=(stg-stg/3)/8
� stbi=(stb-stb/3)/8
�" str=str/3:stg=stg/3:stb=stb/3
�! � J%=a%-(6*2560) � a% � 2560
� sc%=(stb<<10)+(stg<<5)+str
�; N%=J%+x%:!opstart=N%:!colour_store=sc%:� output_sprite
�+ str=str+stri:stg=stg+stgi:stb=stb+stbi
�
 x%+=4
� �
� �
�
�! � �real_shadow1(size%,shad$)
� � N%=0 � 31
�3 grndata?N%=N%-2:� grndata?N%>31 � grndata?N%=0
� �
�; !colour_decrement=0:!colour_limit=0:x%=size%*4:sc%=SC%
�2 !shadow_table_address=grndata:!colour_store=1
�' � shad$="BL" � shad$="TL" � x%=-x%
�, � J%=a%+(size%*2560) � a%-2560*0 �-2560
�) N%=J%+x%:!opstart=N%:� output_sprite
�. � shad$="BL" � shad$="TL" � x%+=4 � x%-=4
� �
�? � N%=0 � 31:grndata?N%=N%-4:� grndata?N%>31 � grndata?N%=0
� �
�+ N%=a%-2564:!opstart=N%:� output_sprite
�+ N%=a%-5128:!opstart=N%:� output_sprite
�+ N%=a%-2560:!opstart=N%:� output_sprite
�+ N%=a%-5120:!opstart=N%:� output_sprite
�+ N%=a%-2556:!opstart=N%:� output_sprite
�+ N%=a%-5116:!opstart=N%:� output_sprite
� �
�
� � �real_shadow2(s%)
�" � N%=0 � 31:grndata?N%=N%/2:�
�( !colour_decrement=0:!colour_limit=0
�2 !shadow_table_address=grndata:!colour_store=1
�5 � s%=2 !opstart=a%+12*1282 � !opstart=a%+20*1282
� � output_sprite
� �
�
� � �grab_text
� � hv2$="V" � hv2$="v" �
� !ft_bottom=screen%+&9FB00
� �
� !ft_bottom=screen%+&65E00
� �
� !ft_screen=screen%
� S%=�(find_top)
� E%=�(find_bottom)
�) !ft_right=S%:!frlines=(E%-S%)�1280+1
� W%=�(find_right)
�6 text_width%=W%:!getwidth=text_width%:!getstart=S%
�/ !getstore=spr%+16:!getlines=(E%-S%)�1280+1
� text_lines%=!getlines
�# !spr%=W%:spr%!4=(E%-S%)�1280+1
� spr%!8=&4400
�) � (!getlines)*(!getwidth)>txtsize% �
�2  text1$="":overlay%=0:mask_created%=0:text%=0
�>  � 1997,"Caption is too large for available overlay area"
� �
� � get_screen
� �
�
� � �mysprite_assemble
� � mysprite% 960
�
8 � Registers used in "find" routines and .get_screen
3 base2=2:base=3:offset=4:data=5:lines=6:white=7

' � Registers used in .output_sprite
5 colour=1:base2=2:table=3:data3=4:data1=5:lines=6
8 mask2=7:mask1=8:data2=9:scrn1=10:scrn2=11:result=12
 � P=0 � 2 �2
 P%=mysprite%
 [OPT P
	 .ft_screen EQUD 0

 .ft_white  EQUD &7FFF7FFF
 .ft_bottom EQUD 0
 .ft_right  EQUD 0

 .frlines   EQUD 0
 .getwidth  EQUD 0
 .getstart  EQUD 0
 .getstore  EQUD 0
 .getlines  EQUD 0
 .opstart   EQUD 0

 .find_top
G MOV offset,#0:LDR base,ft_screen:LDR white,ft_white:MOV lines,#640
? .top_loop LDR data,[base,offset]:CMP data,white:BEQ ftexit
7 ADD offset,offset,#4:CMP offset,#1280:BNE top_loop
G ADD base,base,#1280:MOV offset,#0:SUBS lines,lines,#1:BNE top_loop
# .ftexit MOV R0,base:MOV PC,R14

 .find_bottom
G MOV offset,#0:LDR base,ft_bottom:LDR white,ft_white:MOV lines,#640
? .bot_loop LDR data,[base,offset]:CMP data,white:BEQ fbexit
7 ADD offset,offset,#4:CMP offset,#1280:BNE bot_loop
G SUB base,base,#1280:MOV offset,#0:SUBS lines,lines,#1:BNE bot_loop
 # .fbexit MOV R0,base:MOV PC,R14
!
" .find_right
#L MOV offset,#1264:LDR base,ft_right:LDR white,ft_white:LDR lines,frlines
$A .right_loop LDR data,[base,offset]:CMP data,white:BEQ frexit
%; ADD base,base,#1280:SUBS lines,lines,#1:BNE right_loop
&M LDR base,ft_right:LDR lines,frlines:SUBS offset,offset,#4:BNE right_loop
'( .frexit ADD R0,offset,#8:MOV PC,R14
(
) .get_screen
** LDR offset,getwidth:LDR base,getstart
+* LDR base2,getstore:LDR lines,getlines
,= .get_loop LDR data,[base,offset]:STR data,[base2,offset]
-' SUBS offset,offset,#4:BPL get_loop
., LDR offset,getwidth:ADD base,base,#1280
/ ADD base2,base2,offset
0% SUBS lines,lines,#1:BNE get_loop
1 MOV PC,R14
2
3 ; - - - - - - -
4
5 .output_sprite
6, STR R13,r13_temp:LDR R13,vertical_start
7, LDR R0,colour_store:STR R0,colour_start
8- LDR R0,colour_height:STR R0,colour_lines
99 LDR base,opstart:LDR base2,getstore:SUB R0,base2,#16
:; LDR offset,[R0,#0]:LDR lines,[R0,#4]:LDR mask1,[R0,#8]
; MOV mask2,mask1,ASL#16
<
= .oploop
> LDR data2,[base2,offset]
?2 MOV data1,data2,ASL#16:MOV data1,data1,LSR#16
@2 MOV data2,data2,LSR#16:MOV data2,data2,ASL#16
A LDR scrn2,[base,offset]
B2 MOV scrn1,scrn2,ASL#16:MOV scrn1,scrn1,LSR#16
C2 MOV scrn2,scrn2,LSR#16:MOV scrn2,scrn2,ASL#16
D
E9 LDR colour,colour_store:CMP colour,#1:BNE not_shadow
F
G6 STR R0,r0_temp:ADR R0,reg_store:STMIA R0,{R1-R11}
H1 LDR table,shadow_table_address:MOV result,#0
I2 CMP data1,mask1:�Q result,scrn1:BEQ next_half
J* � R2,scrn1,#31:LDRB result,[table,R2]
K9 MOV R2,scrn1,LSR#5:� R2,R2,#31:LDRB data3,[table,R2]
L2 MOV data3,data3,LSL#5:ADD result,result,data3
M: MOV R2,scrn1,LSR#10:� R2,R2,#31:LDRB data3,[table,R2]
N3 MOV data3,data3,LSL#10:ADD result,result,data3
O
PJ .next_half CMP data2,mask2:ADDEQ result,result,scrn2:BEQ store_result
Q: MOV R2,scrn2,LSR#16:� R2,R2,#31:LDRB data3,[table,R2]
R3 MOV data3,data3,LSL#16:ADD result,result,data3
S: MOV R2,scrn2,LSR#21:� R2,R2,#31:LDRB data3,[table,R2]
T3 MOV data3,data3,LSL#21:ADD result,result,data3
U: MOV R2,scrn2,LSR#26:� R2,R2,#31:LDRB data3,[table,R2]
V3 MOV data3,data3,LSL#26:ADD result,result,data3
W5 .store_result ADR R0,reg_store:LDMIA R0,{R1-R11}
X: LDR R0,r0_temp:STR result,[base,offset]:B shadow_jump
Y
Z .not_shadow
[& CMP colour,#2:BNE not_filter_text
\6 STR R0,r0_temp:ADR R0,reg_store:STMIA R0,{R1-R12}
] LDR R1,colour_filter_mask
^$ CMP data1,mask1:�Q result,scrn1
_ BICNE result,scrn1,R1
`. CMP data2,mask2:ADDEQ result,result,scrn2
a MOVNE scrn2,scrn2,LSR#16
b4 BICNE R8,scrn2,R1:ADDNE result,result,R8,LSL#16
c STR result,[base,offset]
d6 ADR R0,reg_store:LDMIA R0,{R1-R12}:LDR R0,r0_temp
e B shadow_jump
f
g .not_filter_text
h8 CMP data1,mask1:MOVNE result,colour:�Q result,scrn1
i6 CMP data2,mask2:ADDNE result,result,colour,ASL#16
j7 ADDEQ result,result,scrn2:STR result,[base,offset]
k
l2 .shadow_jump SUBS offset,offset,#4:BPL oploop
m+ LDR offset,[R0,#0]:ADD base,base,#1280
n- LDR data1,getwidth:ADD base2,base2,data1
o  CMP colour,#0:BEQ next_line
p  CMP colour,#2:BEQ next_line
q
r& ADR R9,reg_store:STMIA R9,{R0-R7}
sI LDR R0,colour_lines:SUBS R0,R0,#1:STR R0,colour_lines:BNE wrcol_exit
t- LDR R0,colour_height:STR R0,colour_lines
u3 LDR R0,colour_inc_or_dec:CMP R0,#1:BEQ col_inc
vN .col_dec LDR R7,colour_decrement:SUB colour,colour,R7:LDR R7,colour_limit
wG CMP colour,R7:MOVLT colour,R7:STR colour,colour_store:B wrcol_exit
xN .col_inc LDR R7,colour_decrement:ADD colour,colour,R7:LDR R7,colour_limit
y: CMP colour,R7:MOVGT colour,R7:STR colour,colour_store
z2 .wrcol_exit ADR R9,reg_store:LDMIA R9,{R0-R7}
{
| .next_line
}G SUBS R13,R13,#1:LDREQ colour,colour_start:LDREQ R13,vertical_start
~ STREQ colour,colour_store
# SUBS lines,lines,#1:BNE oploop
�  LDR R13,r13_temp:MOV PC,R14
�
� .vertical_start EQUD 0
� .colour_start EQUD 0
� .colour_store EQUD 0
� .colour_limit EQUD 0
� .colour_decrement EQUD 0
� .colour_height EQUD 0
� .colour_lines EQUD 0
�/ .colour_filter_mask EQUD %0111111111100000
� .colour_inc_or_dec EQUD 0
� .r13_temp EQUD 0
� .r0_temp  EQUD 0
�@ .reg_store EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
�@            EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
�! .shadow_table_address EQUD 0
� ]
� �
�1 � P%-mysprite%>960 � � 0,"Code too long ..."
� �
�
� � �save_targa(st$)
� �display_memory
�- !targa_base=memblock%+20:� targa_convert
� A%=memblock%+2:� +0
�" � N%=A% � A%+17:� D%:?N%=D%:�
� end%=(memblock%+20)+655360
�= !end%=0:end%!4=0:$(end%+8)="TRUEVISION-TARGA.":end%?25=0
�/ � 0,0,2,0,0,0,0,0,0,0,0,0,128,2,0,2,16,&20
�4 ș "OS_File",10,st$,&69D,0,A%,A%+&A002C:� *SAVE
� �upload_memory
� �
�
� � �targa_assemble
� � targa_code1% 240
�K base=0:offset=1:data=2:red1=3:red2=4:green1=5:green2=6:blue1=7:blue2=8
� result=9:words=10
� � P=0 � 2 �2
� P%=targa_code1%
� [OPT P
� .targa_base EQUD 0
�
� .targa_convert
�8 LDR base,targa_base:MOV offset,#0:MOV words,#163840
� .targa_loop MOV result,#0
�@ LDR data,[base,offset]:� red1,data,#31:MOV red1,red1,LSL#10
�> MOV red2,data,LSR#16:� red2,red2,#31:MOV red2,red2,LSL#26
� � green1,data,#992
�I MOV green2,data,LSR#16:� green2,green2,#992:MOV green2,green2,LSL#16
�, MOV blue1,data,LSR#10:� blue1,blue1,#31
�C MOV blue2,data,LSR#26:� blue2,blue2,#31:MOV blue2,blue2,LSL#16
�
�3 ADD result,red1,green1:ADD result,result,blue1
�L ADD result,result,red2:ADD result,result,green2:ADD result,result,blue2
�2 STR result,[base,offset]:ADD offset,offset,#4
�' SUBS words,words,#1:BNE targa_loop
� MOV PC,R14
�
� ]
� �
� �
�
� � �filer_display
�
� �
�.  filer_info%=0:box%=0:refresh%=�:right%=0
�)  � 216,216,216:ȓ Ȑ 0,-50,1280,1074
�
  ȑ 0,50
�  �click_info
�  �
�   right%=0
�   � refresh% �
�    �panelled_background
�    �path_block
�    �show_file_list
�    �make_mini_pic
�   �
�   refresh%=�
�
�   ȗ ȓ 0,-50,1280,926+80
�"   x1%=0:y1%=0:quit%=0:exit%=0
�   �wait_no_button
�3   �3,63 Ȝ192:ȓ Ȑ x1%*256+54,y1%*40-2,198,38
�
�   �
�
�	    �
�-     ȗ X,Y,B:x2%=(X-32) � 256:y2%=Y � 40
�     �check_alt_s_save
�$    � x1%<>x2% � y1%<>y2% � B<>0
�
�    � B=1 � B=4:right%=�
�
�%    � B=2 � ftype$(box%)<>"dir" �
�4     �filer_info:B=2:� 216,216,216:quit%=�:y2%=0
�)     ȓ Ȑ 0,-40,1280,268:�click_info
�#     �3,63:ȗ ȓ 0,-50,1280,926
�	    �
�
�(    ȓ Ȑ x1%*256+54,y1%*40-2,198,38
�(    ȓ Ȑ x2%*256+54,y2%*40-2,198,38
�    x1%=x2%:y1%=y2%
�7    � y2%>5 � y2%<22 box%=(21-y1%)+x1%*16 � box%=79
�
�    � cat$(box%)="" �
�)     ȓ Ȑ x2%*256+54,y2%*40-2,198,38
�
�
     �
�.      ȗ X,Y,B:x1%=(X-32) � 256:y1%=Y � 40
�;      � y1%>5 � y1%<22 � box%=(21-y1%)+x1%*16 � box%=79
�      � B=1 � B=4:right%=�
�     � cat$(box%)<>"" � (B=4 � Y<228) � filer_info%                                � (B=4 � Y>900) � (B=4 � �(X-1142)<140 � �(Y-282)<40)
�
�!     � B=4 � Y>900 � X<1063 �
�E      big_dir%=0:�user_pathname(dir$,260,950,46,�):refresh%=�:B=4
�
     �
�
�*     � B=4 � Y>900 � X>1062 � X<1110 �
�3      big_dir%=0:�list_Pathnames:refresh%=�:B=4
�
     �
�
�A     � �(X-520)<24 � Y>-30 � Y<170 � �jpeg_buttons:refresh%=0
�<     � cat$(box%)<>"" � ȓ Ȑ x1%*256+54,y1%*40-2,198,38
�?     � B=4 � �(X-1012)<22 � �(Y-76)<22 � �drive0:big_dir%=0
�?     � B=4 � �(X-1066)<22 � �(Y-76)<22 � �drive1:big_dir%=0
�?     � B=4 � �(X-1120)<22 � �(Y-76)<22 � �drive4:big_dir%=0
�?     � B=4 � �(X-1174)<22 � �(Y-76)<22 � �drive5:big_dir%=0
�C     � B=4 � �(X-1228)<22 � �(Y-76)<22 � �drive_user:big_dir%=0
	8     � B=4 � �(X-404)<22 � �(Y-94)<132 � �mem_select
	
	8     � B=4 � �(X-1226)<43 � �(Y-266)<34 � big_dir% �
	?      shown_dir$="":start_entry%=last_start_entry%+77:c%=-1
	
     �
	(      start_entry%=last_start_entry%
	
     �
	
	<     � B=4 � �(X-1184)<86 � �(Y-266)<34 � was_big_dir% �
		I      start_entry%=0:last_start_entry%=0:shown_dir$="":was_big_dir%=0
	

     �
	
	8     � B=4 � �(X-1142)<43 � �(Y-266)<34 � big_dir% �
	
I      start_entry%=0:last_start_entry%=0:shown_dir$="":was_big_dir%=0
	
     �
	
		    �
	
	   � B=4 � filer_info%
	
	B   � cat$(box%)<>"" � ftype$(box%)<>"dir" lastfile$=cat$(box%)
	
	%   � �cat$(box%),9)="SSTVfonts" �
	1    �("Fontinstall "+dir$+"."+cat$(box%)+".")
	    quit%=�
	   �
	
	0   � cat$(box%)<>"" � ftype$(box%)="pscan" �
	(    �load_pscan(dir$+"."+cat$(box%))
	   �
	0   � cat$(box%)<>"" � ftype$(box%)="targa" �
	(    �load_targa(dir$+"."+cat$(box%))
	    �
	!1   � cat$(box%)<>"" � ftype$(box%)="sprite" �
	")    �load_sprite(dir$+"."+cat$(box%))
	#   �
	$/   � cat$(box%)<>"" � ftype$(box%)="jpeg" �
	%'    �load_jpeg(dir$+"."+cat$(box%))
	&   �
	'0   � cat$(box%)<>"" � ftype$(box%)="photo" �
	(D    � 1997,"PhotoCD images cannot currently be loaded by Pscan."
	)   �
	*
	+%   � X>920 � X<1260 � Y<2 exit%=�
	,?   � ftype$(box%)="dir" � �(quit%) dir$=dir$+"."+cat$(box%)
	-+   � �(X-1184)<80 � �(Y-140)<24 quit%=�
	.?   � X>1140 � X<1266 � Y>178 � Y<220 �up_one_dir:big_dir%=0
	/*   � X>1054 � X<1126 � Y>174 � Y<224 �
	0*    �216,216,216:ȓ Ȑ 440,-48,900,280
	1+    �rename(�):big_dir%=0:shown_dir$=""
	25    �216,216,216:ȓ Ȑ 0,-44,1280,272:�click_info
	3   �
	4<   � X>916 � X<1046 � Y>178 � Y<220 �root_dir:big_dir%=0
	5
	6)   � X>920 � X<1080 � Y>120 � Y<160 �
	7    �save_options
	8@    � �(quit%) �216,216,216:ȓ Ȑ 0,-52,1280,288:�click_info
	9   �
	:
	;I   � right% � big_dir% start_entry%=last_start_entry%:shown_dir$=dir$
	<
	=  � quit% � exit%
	>
	? � � filer_info% � � right%
	@
	A' � quit% � big_dir% shown_dir$=dir$
	B
	C ȑ 0,0:ȗ ȓ 0,0,1280,1024
	D$ � exit% � BIGQUIT%=� � �dismini
	E
	F �
	G
	H
	I � �drive0
	J( dir$="ADFS::0.$":drv%=0:�click_info
	K �
	L
	M � �drive1
	N8 � floppies%>1 � dir$="ADFS::1.$":drv%=1:�click_info
	O �
	P
	Q � �drive4
	R( dir$="ADFS::4.$":drv%=4:�click_info
	S �
	T
	U � �drive5
	V; � hard_drives%>1 � dir$="ADFS::5.$":drv%=5:�click_info
	W �
	X
	Y � �drive_user
	Z5 � ud_path% � dir$=user_drive$:drv%=6:�click_info
	[ �
	\
	] � �mem_select
	^ � �(Y-212)<16 � ms%=0
	_ � �(Y-178)<16 � ms%=1
	` � �(Y-144)<16 � ms%=2
	a � �(Y-110)<16 � ms%=3
	b � �(Y-76)<16 � ms%=4
	c � �(Y-42)<16 � ms%=5
	d � �(Y-8)<16 � ms%=6
	e � �(Y--26)<16 � ms%=7
	f � ms%<memories% �
	g
 MEM%=ms%
	h Ȏ MEM% �
	i � 0:memblock%=mem1%
	j � 1:memblock%=mem2%
	k � 2:memblock%=mem3%
	l � 3:memblock%=mem4%
	m � 4:memblock%=mem5%
	n � 5:memblock%=mem6%
	o � 6:memblock%=mem7%
	p � 7:memblock%=mem8%
	q �
	r �
	s �make_mini_pic:refresh%=0
	t �
	u
	v � �are_you_sure
	w# �raised_block(754,-16,508,236)
	x$ � 200,0,0:ȓ Ȑ 754,-16,508,236
	y3 �write2("Delete file : "+cat$(box%),830,212,1)
	z( �write2("Are you sure ?",884,146,1)
	{  �raised_block(832,8,140,50)
	|! �raised_block(1034,8,140,50)
	} �write2("YES",862,68,4)
	~ �write2("NO",1074,68,4)
	 ȗ ȓ 754,-16,508,236
	�+ �wait_no_button:�:ȗ X,Y,B:� B=4 � B=1
	�3 � �(X-904)<74 � �(Y-34)<30 � sure%=� � sure%=0
	� �
	�
	� � �rename(flag%)
	�D � If flag%=TRUE then rename, if FALSE then create new directory
	�# �raised_block(754,-16,512,236)
	� rename_quit%=0
	�& � 200,100,0:ȓ Ȑ 754,-16,508,236
	�& � 255,255,255:ȓ Ȑ 872,96,240,40
	�  � flag%=� �
	�  rename$=cat$(box%)
	�0  �write2("Enter new filename :-",834,212,1)
	� �
	�  rename$="newdir"
	�5  �write2("Enter new directory name:-",810,212,1)
	� �
	�# �write2(rename$+"|",880,150,0)
	�  �raised_block(832,8,140,50)
	�! �raised_block(1034,8,140,50)
	� �write2("CANCEL",844,68,4)
	� �write2("OK",1074,68,4)
	� ȗ ȓ 754,-16,508,236
	�  �wait_no_button:� � �(1)=""
	� �
	�  �
	�   ȗ X,Y,B:K$=�(1)
	�  � B=4 � B=1 � K$<>""
	�  � B=1 � B=4
	�  � K$=�8 � K$=�127
	�"  � �(K$)=127 � �(rename$)>0 �
	�+   L%=�(rename$):rename$=�rename$,L%-1)
	�(   � 255,255,255:ȓ Ȑ 872,96,240,40
	�%   �write2(rename$+"|",880,150,0)
	�  �
	�  � �(K$)=21 �
	�3   rename$="":� 255,255,255:ȓ Ȑ 872,96,240,40
	�%   �write2(rename$+"|",880,150,0)
	�  �
	�.  � �(rename$)<10 � �(K$)>31 � �(K$)<123 �
	�4   rename$+=K$:� 255,255,255:ȓ Ȑ 872,96,240,40
	�%   �write2(rename$+"|",880,150,0)
	�  �
	� � B=4 � K$=�13
	�5 � (B=4 � (�(X-1104)<74 � �(Y-34)<30)) � K$=�13 �
	�  � �(rename$)>0 �
	�   � flag%=� �
	�L    �("RENAME "+dir$+"."+cat$(box%)+" "+dir$+"."+rename$):shown_dir$="-"
	�   �
	�9    �("CDIR "+dir$+"."+rename$):dir$=dir$+"."+rename$
	�   �
	�  �
	� �
	� �
	�
	� � �filer_info
	�' � 216,216,216:ȓ Ȑ 0,-50,1280,282
	� � 240,240,240
	�> X%=4:Y%=53:C$="":�31,X%,Y%:�("INFO "+dir$+"."+cat$(box%))
	� �:�31,X%,Y%
	�3 ș "OS_Byte",135 �,SV%:� SV%>31 � C$=C$+�(SV%)
	�' X%+=1:� X%=70:ȓ Ȑ 0,-50,1280,282
	�" �raised_block(16,-16,720,236)
	�' � 160,200,255:ȓ Ȑ 16,-16,720,236
	�& � 255,255,255:ȓ Ȑ 32,160,400,40
	�3 �write2("Info on file : "+cat$(box%),46,212,0)
	� �write2(�C$,22),44,146,0)
	� �raised_block(52,8,172,50)
	�  �raised_block(290,8,172,50)
	�  �raised_block(528,8,172,50)
	� �write2("DELETE",78,68,4)
	� �write2("CANCEL",558,68,4)
	� �write2("RENAME",314,68,4)
	� ȗ ȓ 16,-16,720,236
	�$ delete%=0:cancel%=0:rename%=0:�
	� �:ȗ X,Y,B:� B=4 � B=1
	�+ � �(X-139)<90 � �(Y-34)<30 � delete%=�
	�6 � �(X-376)<90 � �(Y-34)<30 � �rename(�):cancel%=�
	�+ � �(X-614)<90 � �(Y-34)<30 � cancel%=�
	� � cancel% � delete%
	� � delete% �
	� �are_you_sure
	�> � sure% � �("DELETE "+dir$+"."+cat$(box%)):shown_dir$="-"
	� �:filer_info%=�
	� ȗ ȓ 0,0,1280,1024
	� �wait_no_button
	� �
	�
	� � �panelled_background
	�' � 216,216,216:ȓ Ȑ 0,234,1280,878
	�4 � Y%=238 � 878 �40:� 200,200,200:� 0,Y%,1280,Y%
	�' � 232,232,232:� 0,Y%-2,1280,Y%-2:�
	�7 � X%=256 � 1024 �256:� 232,232,232:� X%,238,X%,878
	�( � 200,200,200:� X%-2,238,X%-2,878:�
	�( � 216,216,216:ȓ Ȑ 1026,234,260,60
	�
	� �
	� 
	� � �write2(text$,x%,y%,fc%)
	� � �panel$,5)="Panel" �
	�  � fc%>99 �
	�#  panel$="Panel.Fixed":fc%-=100
	�  �
	�  panel$="Panel.Medium"
	�  �
	� �
	�4 ș "Font_FindFont",,panel$,12*16,12*16 � font2%
	�
 Ȏ fc% �
	�G � 0    :ș "Font_SetPalette",,0,0,0,&FFFFFF00,0,&65757254 :� Black
	�G � 1,4,6:ș "Font_SetPalette",,0,0,0,0,&FFFFFF00,&65757254 :� White
	�F � 2    :ș "Font_SetPalette",,0,0,0,0,&C8400000,&65757254 :� Blue
	�G � 3    :ș "Font_SetPalette",,0,0,0,0,&80404000,&65757254 :� Blue2
	�G � 5    :ș "Font_SetPalette",,0,0,0,0,&FF808000,&65757254 :� Blue3
	�E � 7    :ș "Font_SetPalette",,0,0,0,0,&00008000,&65757254 :� Red
	� �
	� px%=0:py%=0
	�$ � fc%=4 � fc%=6 � px%+=2:py%-=2
	�; ș "Font_Paint",font2%,�127+text$,256+16,x%+px%,y%+py%
	� � fc%=4 �
	�6 ș "Font_SetPalette",,0,0,0,&FFFFFF00,0,&65757254
	�? ș "Font_Paint",font2%,�127+text$,256+16,x%+px%-2,y%+py%+2
	� �
	� � fc%=6 �
	�6 ș "Font_SetPalette",,0,0,0,0,&A0A0A000,&65757254
	�? ș "Font_Paint",font2%,�127+text$,256+16,x%+px%-2,y%+py%+2
	� �
	� ș "Font_LoseFont",font2%
	� �

 � �path_block
' � 255,255,255:ȓ Ȑ 12,896,1250,54
' � 160,160,160:ȓ Ȑ 18,892,1250,54
' � 200,200,255:ȓ Ȑ 16,896,1248,50
9 ș sprswi%,256+52,spb%,"acorn",16,884,8,0,translate%
# �write2("Pathname :",92,954,4)
 �write2(dir$,264,954,100)
= ș sprswi%,256+52,spb%,"list",260+808,898,0,0,translate%
	" � 0,0,0:ȓ 260+860,900,140,40

 �

 � �jpeg_buttons

 � Y%=120 � -30 �-50
9 ș sprswi%,256+52,spb%,"off",500,Y%,8,0,translate%:�
 � Y>110 � jpeg_opt%=0
! � Y>60 � Y<111 � jpeg_opt%=1
  � Y>10 � Y<61 � jpeg_opt%=2
 � Y<11 � jpeg_opt%=3
 Y%=120-50*jpeg_opt%
6 ș sprswi%,256+52,spb%,"on",500,Y%,8,0,translate%
 Ȏ jpeg_opt% �
 � 0,1:jpeg_scale%=0
 � 2,3:jpeg_scale%=-1
 �
 �

 � �click_info
$  �raised_block(464,-36,410,256)
1  �write2("JPEG loading options:-",498,232,4)
  Y%=120:� y%=0 � 3
  � y%=jpeg_opt% �
 8   ș sprswi%,256+52,spb%,"on",500,Y%,8,0,translate%
!  �
"9   ș sprswi%,256+52,spb%,"off",500,Y%,8,0,translate%
#  �
$  Y%-=50:�
%-  �write2("Crop to  640 x 480",544,176,4)
&-  �write2("Crop to  640 x 512",544,126,4)
',  �write2("Scale to 640 x 480",544,76,4)
(,  �write2("Scale to 640 x 512",544,26,4)
)
*= �raised_block(920,180,120,40) :�write2("ROOT",934,234,4)
+< �raised_block(1144,180,120,40):�write2("UP",1150,234,4)
," �raised_block(920,120,160,40)
-# �raised_block(1104,120,160,40)
." �raised_block(920,-40,344,40)
/! �raised_block(920,20,344,80)
0" � 96,96,96:� 1204,20,1204,104
1% � 255,255,255:� 1208,20,1208,104
2 � drv%=0 �
36 ș sprswi%,256+52,spb%,"on",992,54,8,0,translate%
4 �
57 ș sprswi%,256+52,spb%,"off",992,54,8,0,translate%
6 �
7 � drv%=1 �
87 ș sprswi%,256+52,spb%,"on",1046,54,8,0,translate%
9 �
: � floppies%>1 �
;8 ș sprswi%,256+52,spb%,"off",1046,54,8,0,translate%
< �
== ș sprswi%,256+52,spb%,"off_grey",1046,54,8,0,translate%
> �
? �
@ � drv%=4 �
A7 ș sprswi%,256+52,spb%,"on",1100,54,8,0,translate%
B �
C8 ș sprswi%,256+52,spb%,"off",1100,54,8,0,translate%
D �
E � drv%=5 �
F7 ș sprswi%,256+52,spb%,"on",1154,54,8,0,translate%
G �
H � hard_drives%>1 �
I8 ș sprswi%,256+52,spb%,"off",1154,54,8,0,translate%
J �
K= ș sprswi%,256+52,spb%,"off_grey",1154,54,8,0,translate%
L �
M �
N � drv%=6 �
O7 ș sprswi%,256+52,spb%,"on",1214,54,8,0,translate%
P �
Q � ud_path% �
R8 ș sprswi%,256+52,spb%,"off",1214,54,8,0,translate%
S �
T= ș sprswi%,256+52,spb%,"off_grey",1214,54,8,0,translate%
U �
V �
W �write2("ADFS",912,110,4)
X �write2("Drive",912,70,4)
Y �write2("0",994,70,4)
Z �write2("1",1048,70,4)
[ �write2("4",1102,70,4)
\ �write2("5",1156,70,4)
] �write2("UD",1210,70,4)
^ �write2("SAVE",952,174,4)
_! �write2("CANCEL",1124,174,4)
`( �write2("QUIT to DESKTOP",972,14,4)
a8 ș sprswi%,256+52,spb%,"up",1220,186,8,0,translate%
b? ș sprswi%,256+52,spb%,"newdir",1058,176,8,0,translate256%
c �
d
e � �save_options
f old_save_type$=save_type$
g ȗ ȓ 0,-48,1280,280
h' � 216,216,216:ȓ Ȑ 600,-50,680,44
i> �raised_block(444,-44,820,272):save_name$="":save_quit%=0
j Ȏ save_type$ �
k! � "sprite" :�save_buttons(1)
l! � "targa1" :�save_buttons(2)
m! � "pscan"  :�save_buttons(3)
n! � "jpeg1"  :�save_buttons(4)
o! � "jpeg2"  :�save_buttons(5)
p, � "overlay":� overlay% �save_buttons(6)
q �
r+ �write2("Sprite  640 x 512",510,234,4)
s+ �write2("Targa   640 x 512",510,190,4)
t �write2("Pscan",510,146,4)
u# �write2("320 x 256",620,146,4)
v+ �write2("JPEG    640 x 512",510,102,4)
w* �write2("JPEG    320 x 256",510,58,4)
x, �write2("Save sprite overlay",510,14,4)
y* �write2("Enter filename :",920,224,0)
z' � 255,255,255:ȓ Ȑ 920,120,240,40
{ �write2("|",928,174,0)
|! �raised_block(864,40,160,40)
}" �raised_block(1064,40,160,40)
~ �write2("SAVE",898,94,4)
  �write2("CANCEL",1084,94,4)
�* � �save_type$,4)="jpeg" � �jpeg_panel
� �
�& �wait_no_button:�:K$=�(1):� K$=""
�, �:ȗ X,Y,B:K$=�(1):� B=4 � B=1 � K$<>""
� � B=1 � B=4
� � K$=�8 � K$=�127
�$ � �(K$)=127 � �(save_name$)>0 �
�2 L%=�(save_name$):save_name$=�save_name$,L%-1)
�' � 255,255,255:ȓ Ȑ 920,120,240,40
�& �write2(save_name$+"|",928,174,0)
� �
� � �(K$)=21 �
�5 save_name$="":� 255,255,255:ȓ Ȑ 920,120,240,40
�& �write2(save_name$+"|",928,174,0)
� �
�: � �(save_name$)<10 � �(K$)>32 � �(K$)<127 � K$<>"." �
�6 save_name$+=K$:� 255,255,255:ȓ Ȑ 920,120,240,40
�& �write2(save_name$+"|",928,174,0)
� �
� � B=4 �
�3 � �(480-X)<22 � �(200-Y)<22 � �save_buttons(1)
�3 � �(480-X)<22 � �(156-Y)<22 � �save_buttons(2)
�3 � �(480-X)<22 � �(112-Y)<22 � �save_buttons(3)
�3 � �(480-X)<22 � �(68-Y)<22  � �save_buttons(4)
�3 � �(480-X)<22 � �(24-Y)<22  � �save_buttons(5)
�< � �(480-X)<22 � �(-20-Y)<22 � overlay% �save_buttons(6)
�/ � �(1142-X)<80 � �(64-Y)<26 � save_quit%=�
�9 � �(X-398)<22 � �(Y-94)<132 � �mem_select:refresh%=�
�V � �(X-964)<22 � �(Y)<18 � �save_type$,4)="jpeg" � jpgq%>30 � jpgq%-=5:�jpeg_panel
�W � �(X-1122)<22 � �(Y)<18 � �save_type$,4)="jpeg" � jpgq%<95 � jpgq%+=5:�jpeg_panel
� �
�4 � (B=4 � (�(948-X)<80 � �(64-Y)<26)) � K$=�13 �
�%  �3,63 Ȝ192:ȓ Ȑ 860,36,168,48
�  � �(save_name$)>0 �
�   �save_picture
�  �
�"   K=�(25):ȓ Ȑ 860,36,168,48
�  �
� �
�> � �save_type$,4)="jpeg" � �jpeg_panel � �blank_jpeg_panel
� � save_quit%
�5 � save_type$="overlay" save_type$=old_save_type$
� �
�
� � �blank_jpeg_panel
�' � 208,208,216:ȓ Ȑ 892,-20,304,40
� �
�
� � �jpeg_panel
�' � 255,255,255:ȓ Ȑ 992,-20,104,40
�, Q$="Q = "+�(jpgq%):�write2(Q$,988,32,0)
�9 ș sprswi%,256+52,spb%,"left",942,-18,8,0,translate%
�; ș sprswi%,256+52,spb%,"right",1108,-18,8,0,translate%
� �
�
� � �save_picture
� �display_memory
� � �save_ok �
� Ȏ save_type$ �
�4 � "sprite":�("SCREENSAVE "+dir$+"."+save_name$)
�1 � "targa1" :�save_targa(dir$+"."+save_name$)
�1 � "pscan"  :�save_pscan(dir$+"."+save_name$)
�0 � "jpeg1"  :�save_jpeg(dir$+"."+save_name$)
�0 � "jpeg2"  :�save_jpeg(dir$+"."+save_name$)
�; � "overlay":ș sprswi%,256+12,spr%,dir$+"."+save_name$
� �
�5 shown_dir$="-":path$(MEM%+1)=dir$+"."+save_name$
� �
�g � 1997,"There is already a directory called "+save_name$+" - try again using a different filename"
� �
� save_quit%=�:quit%=�
� �
�
� � �save_ok
� sok%=�
� � N%=0 � num%-1
�  c1$="":� J%=1 � �(cat$(N%))
�& c1$+=�(�(�cat$(N%),J%,1)) � 32):�
�" c2$="":� J%=1 � �(save_name$)
�( c2$+=�(�(�save_name$,J%,1)) � 32):�
�* � c1$=c2$ � ftype$(N%)="dir" � sok%=�
� �
�
 =sok%
�
� � �save_buttons(b%)
�9  ș sprswi%,256+52,spb%,"off",460,180,8,0,translate%
�9  ș sprswi%,256+52,spb%,"off",460,136,8,0,translate%
�8  ș sprswi%,256+52,spb%,"off",460,92,8,0,translate%
�8  ș sprswi%,256+52,spb%,"off",460,48,8,0,translate%
�7  ș sprswi%,256+52,spb%,"off",460,4,8,0,translate%
�  � overlay% �
�:   ș sprswi%,256+52,spb%,"off",460,-40,8,0,translate%
�  �
�?   ș sprswi%,256+52,spb%,"off_grey",460,-40,8,0,translate%
�  �
�
  Ȏ b% �
�?   � 1 : ș sprswi%,256+52,spb%,"on",460,180,8,0,translate%
�#            save_type$="sprite"
�?   � 2 : ș sprswi%,256+52,spb%,"on",460,136,8,0,translate%
�#            save_type$="targa1"
�>   � 3 : ș sprswi%,256+52,spb%,"on",460,92,8,0,translate%
�"            save_type$="pscan"
�>   � 4 : ș sprswi%,256+52,spb%,"on",460,48,8,0,translate%
�"            save_type$="jpeg1"
�=   � 5 : ș sprswi%,256+52,spb%,"on",460,4,8,0,translate%
�"            save_type$="jpeg2"
�?   � 6 : ș sprswi%,256+52,spb%,"on",460,-40,8,0,translate%
�$            save_type$="overlay"
�  �
� �
�  
� � �show_file_list
� � dir$=shown_dir$ �
�  �show_last_file_list
� �
�" � � big_dir% � start_entry%=0
�# last_start_entry%=start_entry%
�* � N%=0�80:cat$(N%)="":ftype$(N%)="":�
�G ș "OS_GBPB",10,dir$,gbpb%,77,start_entry%,gbpb_len%,0 �,,,num%,o%
� � o%=-1 �
�!  � big_dir% � was_big_dir%=�
�  big_dir%=�
�  �
�  big_dir%=�
�  start_entry%+=num%
�  shown_dir$=""
�  �
�' A%=gbpb%:ns%=0:C%=0:PX%=54:PY%=844
 � num%>0 �
 �
 ft$=�~!A%:ft$=�ft$,4,3)
 A%=A%+20:f$=""
! �:f$+=�(?A%):A%=A%+1:� ?A%=0
D � ft$="FFD" � ș "OS_File",15,dir$+"."+f$ � d%:� d%=2 ft$="dir"
 � ft$<>"" �
 type$="no_use"
  � ft$="BE8" � type$="photo"
	! � ft$="FF9" � type$="sprite"

  � ft$="69D" � type$="targa"
  � ft$="96A" � type$="pscan"
L � ft$="C85" � �f$,4)="/JPG" � �f$,3)="/JP" � �f$,2)="/J" � type$="jpeg"

 � ft$="dir" � type$="dir"
# ftype$(ns%)=type$:cat$(ns%)=f$
# c$=cat$(ns%):dos_ext%=�c$,"/")
$ � dos_ext%>0 c$=�c$,dos_ext%-1)
6 � cat$(ns%)=lastfile$ c$=c$+" "+�128 � c$=c$+"  "
 �write2(c$,PX%,PY%+46,0)
 Ȏ type$ �
 � "sprite":icon$="sm_ff9"
 � "targa" :icon$="sm_69d"
 � "pscan" :icon$="sm_96a"
 � "jpeg"  :icon$="sm_c85"
 � "photo" :icon$="sm_be8"
 � "dir"   :icon$="dir"
 � "no_use":icon$="no_use"
 �
= ș sprswi%,256+52,spb%,icon$,PX%-40,PY%-4,0,0,translate%
0 ns%+=1:PY%-=40:� PY%<244 � PX%+=256:PY%=844
 �
& C%+=1:A%+=1:ȕ A%/4<>A%�4 A%+=1:�
  � C%=num%
! �
"0 �write2("Total files = "+� num%,1026,370,4)
## � � big_dir% � shown_dir$=dir$
$ dir_entries%=num%
% �
&" �raised_block(1104,240,70,40)
'" �raised_block(1192,240,70,40)
( � big_dir% c%=4 � c%=6
) �write2("<<",1108,294,c%)
* �write2(">>",1200,294,c%)
+ �
,
- � �show_last_file_list
. � dir_entries%>0 �
/  C%=0:PX%=54:PY%=844
0  �
1$   c$=cat$(C%):dos_ext%=�c$,"/")
2&   � dos_ext%>0 c$=�c$,dos_ext%-1)
37   � cat$(C%)=lastfile$ c$=c$+" "+�128 � c$=c$+"  "
4   �write2(c$,PX%,PY%+46,0)
5   type$=ftype$(C%)
6   Ȏ type$ �
7!    � "sprite":icon$="sm_ff9"
8!    � "targa" :icon$="sm_69d"
9!    � "pscan" :icon$="sm_96a"
:!    � "jpeg"  :icon$="sm_c85"
;!    � "photo" :icon$="sm_be8"
<    � "dir"   :icon$="dir"
=!    � "no_use":icon$="no_use"
>   �
??   ș sprswi%,256+52,spb%,icon$,PX%-40,PY%-4,0,0,translate%
@+   PY%-=40:� PY%<244 � PX%+=256:PY%=844
A   C%+=1
B  � C%=dir_entries%
C �
D8 �write2("Total files = "+� dir_entries%,1026,370,4)
E �
F
G � �up_one_dir
H � �dir$,1)<>"$" �
I) N%=�(dir$):�:N%-=1:� �dir$,N%,1)="."
J dir$=�dir$,N%-1)
K �
L �
M
N � �root_dir
O# ȕ �dir$,1)<>"$" �up_one_dir:�
P �
Q
R  � �display_separation(rgb$)
S+ �display_memory:!start_address=screen%
T Ȏ rgb$ �
U  � "R":� display_red_as_mono
V" � "G":� display_green_as_mono
W! � "B":� display_blue_as_mono
X �
Y �wait_no_button
Z �:ȗ X,Y,B:� B<>0
[ �display_memory
\ �
]
^ � �rgb_processing
_" �3,63 Ȝ192:ȓ Ȑ 836,4,52,50
` �
a) menu$(0)="RGB processing and misc." 
b% menu$(2)="Rotate R-G-B sequence"
c# menu$(3)="Show RED separation"
d% menu$(4)="Show GREEN separation"
e$ menu$(5)="Show BLUE separation"
f menu$(6)="Invert RED"
g menu$(7)="Invert GREEN"
h menu$(8)="Invert BLUE"
i" menu$(9)="Picture processing"
j" menu$(10)="Scale picture 2:1"
k" menu$(11)="Scale picture 1:2"
l" menu$(12)="320 x 256 preview"
m) menu$(13)="Tile perspective effect>"
n  menu$(14)="Rotate or flip>"
o# menu$(15)="Fade top-to-bottom"
p& menu$(16)="Show pixel RGB values"
q! menu$(17)="Waveform monitor"
r" menu$(18)="*":�menu(494,90,0)
s menu_redraw%=�
t Ȏ menu_box% �
u � 1:�display_memory
v8 � 2:�display_memory:� rgb_correction:�upload_memory
w! � 3:�display_separation("R")
x! � 4:�display_separation("G")
y! � 5:�display_separation("B")
z � 9:�picpro_panel(420,100)
{& � 6,7,8:�invert_colour(menu_box%)
| � 10:�zoom_pic
} � 11:�quarter
~ � 12:�undo_dither
 � 13:�perp_menu
� � 14:�tran_menu
� � 15:�screen_fade
� � 16:�pixel_rgb
� � 17:�waveform_monitor
� �
� � menu_box%=1
� �mini_pad
� �
�
� � �invert_colour(c%)
� � N%=0 � 31
�. � c%=6 � reddata?N%=31-N% � reddata?N%=N%
�. � c%=7 � grndata?N%=31-N% � grndata?N%=N%
�. � c%=8 � bludata?N%=31-N% � bludata?N%=N%
� �:�display_memory
�@ !start_address=screen%:!picpro_bytes=1280:!picpro_lines=512
�F !red_address=reddata:!green_address=grndata:!blue_address=bludata
�% � picture_process:�upload_memory
� �
�
� � �rotate_rgb_assemble
�2 base=3:offset=4:data=5:blue_mask=6:rgb_mask=7
� mask1=8:mask2=9
� � rgb_code 200
� � P=0 � 2 �2
� P%=rgb_code
� [OPT P
� .rgb_scrn_address EQUD 0
�9 .rgb_blu_mask EQUD %01111100000000000111110000000000
�9 .rgb_rgb_mask EQUD %10000000000111111000000000011111
�9 .corr_mask1   EQUD %11111100000000001111110000000000
�9 .corr_mask2   EQUD %00000011111111110000001111111111
�
� .rotate_rgb_code
�, LDR base,rgb_scrn_address:MOV offset,#0
�9 LDR blue_mask,rgb_blu_mask:LDR rgb_mask,rgb_rgb_mask
�
� .rgb_loop
�@ LDR data,[base,offset]:� R0,data,blue_mask:MOV R0,R0,LSR#10
�/ MOV data,data,LSL#5:BIC data,data,rgb_mask
� ADD data,data,R0
�0 STR data,[base,offset]:ADD offset,offset,#4
�$ CMP offset,#655360:BNE rgb_loop
� MOV PC,R14
�
� .rgb_correction
�, LDR base,rgb_scrn_address:MOV offset,#0
�. LDR mask1,corr_mask1:LDR mask2,corr_mask2
� .rgb_corr_loop
�C LDR data,[base,offset]:MOV data,data,LSR#5:BIC data,data,mask1
�A ADD base,base,#1280:LDR R0,[base,offset]:SUB base,base,#1280
�% MOV R0,R0,LSL#10:BIC R0,R0,mask2
�A ADD data,data,R0:STR data,[base,offset]:ADD offset,offset,#4
�) CMP offset,#655360:BNE rgb_corr_loop
� MOV PC,R14
� ]
�  �:!rgb_scrn_address=screen%
� �
�
� � �save_jpeg(dest$)
�; �("Create <Pscan$Dir>.JPEG.JPEGscrap.scrapfile F0000")
� ș "Hourglass_On"
�3 source$="<Pscan$Dir>.JPEG.JPEGscrap.scrapfile"
� � save_type$="jpeg1" �
� �save_targa(source$)
� �
� �small_targa(source$)
� �
� q$="-Q "+� jpgq%+" "
�J ș "Wimp_StartTask","<Pscan$Dir>.JPEG.cjpeg -T "+q$+source$+" "+dest$
�  �("SETTYPE "+dest$+" JPEG")
� �("DELETE "+source$)
� ș "OS_Byte",229,0,0:�26
� ș "Hourglass_Off"
� �
�
� � �load_jpeg(source$)
�# ș "Hourglass_On":ȑ 0,0:�:T=�
�! jpeg_len%=�file_len(source$)
�@ � jpeg_len%>655360 � � 1997,"File too long - limit is 640k"
�, �("LOAD "+source$+" "+�~(memblock%+20))
�4 ș "JPEG_Info",,memblock%+20,655360 � ,,xs%,ys%
�, jpegscale%!0=100000:jpegscale%!4=100000
�7 jpegscale%!8=100000:jpegscale%!12=100000:x%=0:y%=0
� � jpeg_scale% �
�$ � jpeg_opt%=2 � W%=480 � W%=512
�, � xs%<640 � jpegscale%!0=640/xs%*100000
�, � xs%>640 � jpegscale%!8=xs%/640*100000
�* � ys%<W% � jpegscale%!4=W%/ys%*100000
�+ � ys%>W% � jpegscale%!12=ys%/W%*100000
� �
�$ � jpeg_opt%=0 � W%=480 � W%=512
� x%=640-xs%:y%=W%-ys%
� �
�C ș "JPEG_PlotScaled",memblock%+20,x%,y%,jpegscale%,jpeg_len%,1
�1 T$=��((�-T)/100),4):� W%=480 � �topscale2(2)
�> �upload_memory:quit%=�:jpeg_info%=�:path$(MEM%+1)=source$
� ș "Hourglass_Off"
� �
�
� � �load_pscan(source$)
� a%=memblock%+20
�  �("LOAD "+source$+" "+�~a%)
�5 !targa_screen=screen%:!targa_memory=memblock%+20
�. � decode_pscan_96a:�upload_memory:quit%=�
� path$(MEM%+1)=source$
� �
�
� � �load_sprite(source$)
� ȗ mx%,my%,d%
� ch%=�(source$)
�+ � N%=28 � 35:�#ch%=N%:gbpb%?N%=�#ch%:�
� �#ch%=55:M%=�#ch%:�#ch%
� ȑ 0,0:loaded%=0
�( � (gbpb%!32)=511 � (gbpb%!28)=319 �
� �("SCREENLOAD "+source$)
�" �:Ȗ:�upload_memory:loaded%=�
� �
�( � (gbpb%!32)=479 � (gbpb%!28)=319 �
�- � screen_lines%=512 � N%=40904 � N%=1224
�* �("LOAD "+source$+" "+�~(screen%+N%))
�+ �upload_memory:�topscale2(0):loaded%=�
� �
�( � �(loaded%) � �load_overlay_sprite
�& � loaded% � path$(MEM%+1)=source$
� quit%=�:*POINTER 1
� ȗ � mx%,my%+50
� �

 � �load_targa(source$)
 a%=memblock%+2
  �("LOAD "+source$+" "+�~a%)
5 !targa_base=memblock%+20:� targa_convert:quit%=�
 � a%?13=1 �
4 !targa_screen=screen%:!targa_memory=!targa_base
( � decode_small_targa:�upload_memory
 �
	 path$(MEM%+1)=source$

 �

 � �save_pscan(st$)

 � � bypass% �
� � !screen%<>&80008000 � � 1996,"This picture was not received in a 320 x 256 SSTV mode so it cannot be saved in Pscan format"+�13+�13
 �
5 !targa_screen=screen%:!targa_memory=memblock%+20
5 �display_memory:!pscan_temp=1:� make_small_targa
 A%=memblock%+20
4 ș "OS_File",10,st$,&96A,0,A%,A%+&28000:� *SAVE
 �upload_memory
 �

 � �small_targa(st$)
5 !targa_screen=screen%:!targa_memory=memblock%+20
5 �display_memory:!pscan_temp=0:� make_small_targa
- !targa_base=memblock%+20:� targa_convert
 A%=memblock%+2
	 � +0
" � N%=A% � A%+17:� D%:?N%=D%:�
 end%=(memblock%+20)+163840
= !end%=0:end%!4=0:$(end%+8)="TRUEVISION-TARGA.":end%?25=0
 . � 0,0,2,0,0,0,0,0,0,0,0,0,64,1,0,1,16,&20
!4 ș "OS_File",10,st$,&69D,0,A%,A%+&2802C:� *SAVE
" �upload_memory
# �
$ 
%! � �make_small_targa_assemble
&8 base1=3:base2=4:offset1=5:offset2=6:data1=7:data2=8
'+ mask=9:mask2=10:lines=11:pscan_flag=12
( � targa_code2% 640
) � P=0 � 2 �2
* P%=targa_code2%
+ [OPT P
,9 .targa_mask   EQUD %00000000000000001111111111111111
-9 .targa_mask2  EQUD %11111111111111110000000000000000
. .pscan_temp   EQUD 0
/ .targa_screen EQUD 0
0 .targa_memory EQUD 0
19 .green_mask   EQUD %11111111111111111000001111100000
2
3 .make_small_targa
4L LDR base1,targa_screen:LDR base2,targa_memory:LDR pscan_flag,pscan_temp
5E LDR mask,targa_mask:MOV offset1,#0:MOV offset2,#0:MOV lines,#256
6
7 .make_targa_loop
8B LDR R1,[base1,offset1]:� data1,R1,mask:ADD offset1,offset1,#4
9+ LDR R2,[base1,offset1]:� data2,R2,mask
:. MOV data2,data2,LSL#16:ADD R0,data1,data2
;% CMP pscan_flag,#0:BEQ just_targa
<
=) MOV data1,R1,LSR#5:� data1,data1,#31
>* MOV data2,R1,LSR#21:� data2,data2,#31
?B CMP data1,data2:�RNE R0,R0,#%00000000000000001000000000000000
@) MOV data1,R2,LSR#5:� data1,data1,#31
A* MOV data2,R2,LSR#21:� data2,data2,#31
BB CMP data1,data2:�RNE R0,R0,#%10000000000000000000000000000000
C
D .just_targa
EI STR R0,[base2,offset2]:ADD offset2,offset2,#4:ADD offset1,offset1,#4
F) CMP offset2,#640:BNE make_targa_loop
G/ ADD base1,base1,#2560:ADD base2,base2,#640
HJ MOV offset1,#0:MOV offset2,#0:SUBS lines,lines,#1:BNE make_targa_loop
I MOV PC,R14
J
K2 ; -------------------------------------------
L
M .decode_small_targa
N2 LDR base1,targa_screen:LDR base2,targa_memory
O. LDR mask,targa_mask:LDR mask2,targa_mask2
P1 MOV offset1,#0:MOV offset2,#0:MOV lines,#256
Q
R .decode_targa_loop
SB LDR R0,[base2,offset2]:� data1,R0,mask:MOV data2,data1,LSL#16
TJ ADD data2,data2,data1:STR data2,[base1,offset1]:ADD base1,base1,#1280
UK STR data2,[base1,offset1]:SUB base1,base1,#1280:ADD offset1,offset1,#4
V
WC LDR R0,[base2,offset2]:� data1,R0,mask2:MOV data2,data1,LSR#16
XJ ADD data2,data2,data1:STR data2,[base1,offset1]:ADD base1,base1,#1280
YK STR data2,[base1,offset1]:SUB base1,base1,#1280:ADD offset1,offset1,#4
ZB ADD offset2,offset2,#4:CMP offset2,#640:BNE decode_targa_loop
[
\/ ADD base2,base2,#640:ADD base1,base1,#2560
]L MOV offset1,#0:MOV offset2,#0:SUBS lines,lines,#1:BNE decode_targa_loop
^ MOV PC,R14
_
`2 ; -------------------------------------------
a
b .decode_pscan_96a
c
d2 LDR base1,targa_screen:LDR base2,targa_memory
e. LDR mask,targa_mask:LDR mask2,targa_mask2
f1 MOV offset1,#0:MOV offset2,#0:MOV lines,#256
g
h .decode_pscan_loop
i+ LDR R0,[base2,offset2]:� data1,R0,mask
j0 TST data1,#%1000000000000000:BEQ no_dither1
k@ MOV R0,data1,LSR#5:� R0,R0,#31:SUB R0,R0,#1:MOV R0,R0,LSL#5
lD LDR R1,green_mask:BIC R1,data1,R1:ADD R0,R0,R1:MOV R0,R0,LSL#16
m# ADD R0,data1,R0:B store_words1
n .no_dither1
o. MOV data2,data1,LSL#16:ADD R0,data1,data2
p .store_words1
q, STR R0,[base1,offset1]:MOV R0,R0,ROR#16
r1 ADD base1,base1,#1280:STR R0,[base1,offset1]
s1 SUB base1,base1,#1280:ADD offset1,offset1,#4
t
uC LDR R0,[base2,offset2]:� data1,R0,mask2:MOV data1,data1,LSR#16
v0 TST data1,#%1000000000000000:BEQ no_dither2
w@ MOV R0,data1,LSR#5:� R0,R0,#31:SUB R0,R0,#1:MOV R0,R0,LSL#5
xD LDR R1,green_mask:BIC R1,data1,R1:ADD R0,R0,R1:MOV R0,R0,LSL#16
y# ADD R0,data1,R0:B store_words2
z .no_dither2
{. MOV data2,data1,LSL#16:ADD R0,data1,data2
| .store_words2
}, STR R0,[base1,offset1]:MOV R0,R0,ROR#16
~1 ADD base1,base1,#1280:STR R0,[base1,offset1]
1 SUB base1,base1,#1280:ADD offset1,offset1,#4
�B ADD offset2,offset2,#4:CMP offset2,#640:BNE decode_pscan_loop
�
�/ ADD base2,base2,#640:ADD base1,base1,#2560
�L MOV offset1,#0:MOV offset2,#0:SUBS lines,lines,#1:BNE decode_pscan_loop
� MOV PC,R14
� ]:�
� �
�
� � �test_card
�3 �0,0,0:ȓ Ȑ 0,0,1279,1024:� X%=40 � 1200 �160
�& � 255,255,255:ȓ Ȑ X%,0,78,960:�
� � Y%=32 � 900 �138
� ȓ Ȑ 0,Y%,1280,64:�
�' � 128,128,128:ȓ Ȑ 48,40,1182,876
�& � 255,255,255:� X%=116 � 1162 �80
� ȓ Ȑ X%,40,6,880:�
�+ � Y%=94 � 860 �69:ȓ Ȑ 40,Y%,1198,6:�
�	 � +0
�$ � X%=124 � 1022 �128:� r%,g%,b%
�& � r%,g%,b%:ȓ Ȑ X%,446,134,198:�
�$ � 255,255,255:� 124,448,124,644
�( g%=6:� X%=126 � 1140 �32:� g%,g%,g%
�4 ȓ Ȑ X%,654,36,128:g%+=8:�:� 1152,656,1152,790
� � 0,0,0:� 124,656,124,782
� r%=80:g%=0:b%=156
�1 � Y%=792 � 854 �2:� r%,g%,b%:� 364,Y%,914,Y%
� r%+=3:g%+=3:b%+=3:�
�1 � Y%=856 � 916 �2:� r%,g%,b%:� 364,Y%,914,Y%
� r%-=3:g%-=3:b%-=3:�
�B W%=�text_width("Homerton.Bold",call$,54,46):X%=364+(548-W%)/2
�4 �write("Homerton.Bold",call$,X%+10,808,54,46,0)
�1 �write("Homerton.Bold",call$,X%,818,54,46,1)
�1 � 0,0,0:ȓ Ȑ 124,240,1030,128:� 255,255,255
�- � X%=152 � 500 �64:ȓ Ȑ X%,240,30,128:�
�- � X%=524 � 844 �32:ȓ Ȑ X%,240,14,128:�
�- � X%=868 � 1150 �16:ȓ Ȑ X%,240,6,128:�
�* g%=254:� X%=124 � 1140 �32:� g%,g%,g%
�  ȓ Ȑ X%,102,38,128:g%-=8:�
�! � 0,0,0:ȓ Ȑ 1150,104,2,126
�! �upload_memory:�topscale2(0)
�8 � 255,255,255,255,255,0,0,255,255,0,255,0,255,0,255
� � 255,0,0,0,0,255,0,0,0
� �
�
� � �fax_header(bw%)
�( �display_memory:�23,17,7,6,16;16;0;
�& � 255,255,255:ȓ Ȑ 0,960,1280,64
� � � bw% �
�! � 255,0,0:ȓ Ȑ 64,968,64,48
�" � 0,255,0:ȓ Ȑ 128,968,64,48
�" � 0,0,255:ȓ Ȑ 192,968,64,48
� � 0,0,0:�5:� 80,1004:�"R"
� � 144,1004:�"G"
� � 208,1004:�"B"
�@ �write("Homerton.Bold",call$+" colour FAX",570,976,16,20,2)
� �
�> �write("Homerton.Bold",call$+" mono FAX",570,976,16,20,2)
� � 0,0,0:� X%=64 � 252 � 16
� ȓ Ȑ X%,968,6,48:�
� ȓ 64,968,182,48
� �
�C �write("Homerton.Bold",��$,5,6)+"'"+��$,14,2),970,976,16,20,2)
�< ș sprswi%,256+52,spb%,"acorn2",1196,960,8,0,translate%
� �4:�:Ȗ:g%=0
� � X%=280 � 528 �8
�! � g%,g%,g%:ȓ Ȑ X%,968,8,48
� g%+=8:�
�0 � 0,0,0:ȓ 278,966,258,52:ȓ 276,964,262,56
� �23,17,7,6,8;8;0;
� �upmini
� �
�
� � �grab_rectangle(all%)
�$ �display_memory:�wait_no_button
�
 � all% �
�: X=1280:Y=0:X1=0:Y1=1024:plot_border%=0:plot_shadow%=0
� �
� �grab_rectangle_cursor
� �
� GW%=X-X1:GH%=Y1-Y
� A%=((1024-Y1)�2)*1280+X1
� A%=A%-A% �4
� A%=A%+(memblock%+20)
� GL%=(Y1-Y)�2:GB%=X-X1
�7 !source_start=A%:!num_lines=GL%+4:!num_bytes=GB%+8
�
 �dismini
� �
�
� � �grab_rectangle_cursor
�  �:ȗ X,Y,B:� B<>0:X1=X:Y1=Y
� � B=4 �
� �wait_no_button
� �3,63 Ȝ0:�:ȗ X,Y,B
� ȓ X1,Y1,X-X1,Y-Y1
�# �:ȗ x,y,b:� x<>X � y<>Y � b=4
� ȓ X1,Y1,X-X1,Y-Y1
� � B=4 � b=4
� ȓ X1,Y1,X-X1,Y-Y1
� � X<X1 � Ȕ X,X1
� � Y1<Y � Ȕ Y1,Y
� �
� �
�
� � �grab_quarter_area
� X1=320:Y1=766:X=960:Y=288
�/ GW%=X-X1:GH%=Y1-Y:A%=((1024-Y1)�2)*1280+X1
�% A%=A%-A% �4:A%=A%+(memblock%+20)
� GL%=(Y1-Y)�2:GB%=X-X1
�7 !source_start=A%:!num_lines=GL%+4:!num_bytes=GB%+8
�" plot_border%=0:plot_shadow%=0
� �
�
�! � �plot_grabbed_area(flipx%)
� � flipx%=1 �
�C  !num_lines=512:!num_bytes=1280:!dest_start=screen%:� get_area
�  �
�  � GW%=0 � GH%=0 �
�   �display_memory
�   �
�/   �display_memory:�wait_no_button:ȗ X,Y,B
�   � 3,63:ȓ X,Y,GW%,GH%:�
�*   �:ȗ X1,Y1,B:� X<>X1 � Y<>Y1 � B<>0
�&   ȓ X,Y,GW%,GH%:ȓ X1,Y1,GW%,GH%
�   X=X1:Y=Y1:� B<>0
�   � B<>4 �
�    �display_memory
�	    �
�    �display_memory

    ȕ X/4<>X � 4:X+=1:�

&    Y=Y+GH%:A%=((1024-Y)�2)*1280+X

)    � plot_shadow%=1 �gradated_shadow

M    � plot_border%=1 �plinth(X1-20,Y1-20,GW%+44,GH%+40,32,pbr%,pbg%,pbb%)

]    � plot_border%=2 �plinth2(X1-30,Y1-30,GW%+64,GH%+60,pbr%,pbg%,pbb%,pbri%,pbgi%,pbbi%)

	    �

<    !num_lines=GL%:!num_bytes=GB%:!dest_start=screen%+A%

0    � flipx% � � get_area_flipx � � get_area

   �

	  �

 �

 �upmini

 �




 � �gradated_shadow

F !red_address=reddata:!green_address=grndata:!blue_address=bludata

. !picpro_lines=GL%+20:!picpro_bytes=GB%+24

) !start_address=screen%+A%+28+1280*12

 � N%=0 � 31

3 reddata?N%=N%-2:� reddata?N%>31 � reddata?N%=0

3 grndata?N%=N%-2:� grndata?N%>31 � grndata?N%=0

3 bludata?N%=N%-2:� bludata?N%>31 � bludata?N%=0

 �

" � N%=1 � 10:� picture_process

+ !start_address=(!start_address)-2564:�

 �



 � �screen_fade

 �display_memory

F !red_address=reddata:!green_address=grndata:!blue_address=bludata

B � N%=1 � 31:reddata?N%=N%-1:grndata?N%=N%-1:bludata?N%=N%-1:�

( reddata?0=0:grndata?0=0:bludata?0=0

 # L%=512:!picpro_bytes=1280:O%=0

! � N%=1 � 16

"A !picpro_lines=L%:!start_address=screen%+O%:� picture_process

# L%-=32:O%+=40960:�

$ �upload_memory:�

%

& � �get_area_assemble

' � get_code 320

(I base1=4:base2=5:offset=6:lines=7:bytes=8:data=9:clear=10:shadtype=11

) offset2=12

* � P=0 � 2 �2

+ P%=get_code

, [OPT P

- .source_start EQUD 0

. .dest_start EQUD 0

/ .num_bytes EQUD 0

0 .num_lines EQUD 0

1 .shadow_start EQUD 0

2 .shadow_flag EQUD 0

3 .clear_mask EQUD 0

4

5 .get_area

60 LDR base1,source_start:LDR base2,dest_start

7: LDR bytes,num_bytes:MOV offset,#0:LDR lines,num_lines

8 .get_area_loop

94 LDR data,[base1,offset]:STR data,[base2,offset]

:< ADD offset,offset,#4:CMP offset,bytes:BLT get_area_loop

;> ADD base1,base1,#1280:ADD base2,base2,#1280:MOV offset,#0

<* SUBS lines,lines,#1:BNE get_area_loop

= MOV PC,R14

>

? .get_area_flipx

@0 LDR base1,source_start:LDR base2,dest_start

AL LDR bytes,num_bytes:MOV offset,#0:MOV offset2,bytes:LDR lines,num_lines

B .get_area_flipx_loop

CJ LDR data,[base1,offset]:MOV data,data,ROR#16:STR data,[base2,offset2]

D0 SUB offset2,offset2,#4:ADD offset,offset,#4

E- CMP offset,bytes:BLT get_area_flipx_loop

F0 ADD base1,base1,#1280:ADD base2,base2,#1280

G$ MOV offset,#0:MOV offset2,bytes

H0 SUBS lines,lines,#1:BNE get_area_flipx_loop

I MOV PC,R14

J

K .shadow

L> LDR base1,shadow_start:MOV offset,#0:LDR clear,clear_mask

M LDR shadtype,shadow_flag

N, LDR bytes,num_bytes:LDR lines,num_lines

O) .shadow_loop LDR data,[base1,offset]

P' CMP shadtype,#0:�Q data,data,LSR#1

Q0 BIC data,data,clear:STR data,[base1,offset]

R: ADD offset,offset,#4:CMP offset,bytes:BLT shadow_loop

S( ADD base1,base1,#1280:MOV offset,#0

T( SUBS lines,lines,#1:BNE shadow_loop

U MOV PC,R14

V ]

W �

X �

Y

Z( � �double_grad_back(R,G,B,RI,GI,BI)

[ r=R:g=G:b=B

\ � Y%=0 � 508 �2

] � r,g,b:ȓ Ȑ 0,Y%,1279,2

^ r+=RI:g+=GI:b+=BI:�

_ � r=-1 � r=1

` � g=-1 � g=1

a � b=-1 � b=1

b � r=256 � r=254

c � g=256 � g=254

d � b=256 � b=254

e � Y%=510 � 1018 �2

f � r,g,b:ȓ Ȑ 0,Y%,1279,4

g r-=RI:g-=GI:b-=BI:�

h! � �(merge%) � �upload_memory

i �

j

k( � �single_grad_back(R,G,B,RI,GI,BI)

l � Y=1020 � 0 �-4

m � R,G,B:ȓ Ȑ 0,Y,1280,4

n R+=RI:G+=GI:B+=BI:�

o! � �(merge%) � �upload_memory

p �

q

r' � �text_width(font$,text$,xp%,yp%)

s) � font%<>-1 ș "Font_LoseFont",font%

t4 ș "Font_FindFont",,font$,16*xp%,16*yp% � font%

u3 ș "Font_Converttopoints",,1280,1024 �,xp%,yp%

v; ș "Font_StringWidth",,text$,xp%,yp%,-1,100 �,,x2%,y2%

w- ș "Font_ConverttoOS",,x2%,y2% �,x2%,y2%

x	 =x2%

y

z � �rgb_sliders(flag%)

{  X%=380:Y%=304:W%=460:H%=240

| red1%=0:grn1%=0:blu1%=0

} � flag% � Y2%=140 � Y2%=0

~' �raised_block(X%,Y%-Y2%,W%,H%+Y2%)

 � YY%=Y%+56 � Y%+148 �44

� �boxes(X%+16,YY%,262,32,0)

�  �:ȗ ȓ X%,Y%-Y2%,W%,H%+Y2%

�& �raised_block(X%+346,Y%+56,88,44)

�# �boxes(X%+340,Y%+120,100,56,0)

�7 �write2("Pscan 32K colour selector",X%+8,Y%+200,4)

�9 �write2("Drag sliders to define colour",X%+8,Y%+8,4)

�! �write2("OK",X%+362,Y%+62,4)

� � flag% �

�< �write2("Click on required brush size",X%+8,Y%+8-Y2%,4)

�	 R%=4

�  � XX%=X%+16 � X%+322 � 76.5

�0 � 128,0,0:ȏ Ȑ XX%+48,Y%-Y2%+92,R%:R%=R%+4

�( �boxes(XX%+16,Y%-Y2%+60,64,64,-1):�

� �

�) � 255,0,0:ȓ Ȑ X%+20,Y%+148,red%,24

�) � 0,255,0:ȓ Ȑ X%+20,Y%+104,grn%,24

�( � 0,0,255:ȓ Ȑ X%+20,Y%+60,blu%,24

� �wait_no_button

� �

�/ � red%,grn%,blu%:ȓ Ȑ X%+344,Y%+124,92,48

� � red%<>red1% �

�, � 208,208,216:ȓ Ȑ X%+286,Y%+144,40,30

�. red$=�(red%/8):� � red$<2 � red$="0"+red$

�- �write2(red$,X%+278,Y%+142,4):red1%=red%

� �

� � grn%<>grn1% �

�, � 208,208,216:ȓ Ȑ X%+286,Y%+100,40,30

�. grn$=�(grn%/8):� � grn$<2 � grn$="0"+grn$

�, �write2(grn$,X%+278,Y%+98,4):grn1%=grn%

� �

� � blu%<>blu1% �

�+ � 208,208,216:ȓ Ȑ X%+286,Y%+56,40,30

�. blu$=�(blu%/8):� � blu$<2 � blu$="0"+blu$

�, �write2(blu$,X%+280,Y%+54,4):blu1%=blu%

� �

�2 �:ȗ X,Y,B:� B<>4 � ȗ ȓ X%,Y%-Y2%,W%,H%+Y2%

�
 � B=4

� � flag% � �(Y-256)<28 �

�" � �(X-444)<28 � brush_size%=4

�" � �(X-520)<28 � brush_size%=8

�# � �(X-596)<28 � brush_size%=12

�# � �(X-674)<28 � brush_size%=16

�# � �(X-748)<28 � brush_size%=20

� �

�B � X>X%+18 � X<X%+19+256 � Y>Y%+60 � Y<Y%+60+26 � �blue_slider

�E � X>X%+18 � X<X%+19+256 � Y>Y%+104 � Y<Y%+104+26 � �green_slider

�C � X>X%+18 � X<X%+19+256 � Y>Y%+148 � Y<Y%+148+26 � �red_slider

�: red%=(red% � 8)*8:grn%=(grn% � 8)*8:blu%=(blu% � 8)*8

�  � �(X-768)<47 � �(Y-386)<33

�( RGB%=�X%+350,Y%+128):menu_redraw%=�

�( �wait_no_button:ȗ ȓ 0,0,1280,1024

� �

�

� � �blue_slider

� blu%=X-19-X%

�* � 0,0,255:ȓ Ȑ X%+20,Y%+60,blu%-2,24

�5 � 216,216,216:ȓ Ȑ X%+blu%+22,Y%+60,252-blu%,24

� ȗ ȓ X%+19,Y,255,0

� �

�

� � �green_slider

� grn%=X-19-X%

�+ � 0,255,0:ȓ Ȑ X%+20,Y%+104,grn%-2,24

�6 � 216,216,216:ȓ Ȑ X%+grn%+22,Y%+104,252-grn%,24

� ȗ ȓ X%+19,Y,255,0

� �

�

� � �red_slider

� red%=X-19-X%

�+ � 255,0,0:ȓ Ȑ X%+20,Y%+148,red%-2,24

�6 � 216,216,216:ȓ Ȑ X%+red%+22,Y%+148,252-red%,24

� ȗ ȓ X%+19,Y,255,0

� �

�

�" � �boxes(x%,y%,w%,h%,raised%)

�+ � raised% � � 96,96,96 � � 255,255,255

�* ȓ x%,y%,w%,h%:ȓ x%+2,y%+2,w%-4,h%-4

�+ � raised% � � 255,255,255 � � 96,96,96

�, � x%,y%,x%,y%+h%:� x%,y%+h%,x%+w%,y%+h%

�< � x%+2,y%+2,x%+2,y%+h%-2:� x%+2,y%+h%-2,x%+w%-2,y%+h%-2

� �

�

� � �flood_fill

� �display_memory:quit%=0

� �wait_no_button:�

� �:ȗ X,Y,B:� B<>0

� � Y>9 �

� � B=4 �

�! RGB%=�X,Y):Bred%=(RGB%�31)*8

�3 Bgrn%=((RGB%>>5)�31)*8:Bblu%=((RGB%>>10)�31)*8

�1 � � (Bred%=red% � Bgrn%=grn% � Bblu%=blu%) �

�, rgb%=(Bblu%<<24)+(Bgrn%<<16)+(Bred%<<8)

� � red%,grn%,blu%

�3 ș "ColourTrans_SetGCOL",rgb%,0,0,128,0:Ȑ X,Y

�	 � �7

� �

� �

� � B=1 �

�  RGB%=�X,Y):red%=(RGB%�31)*8

�1 grn%=((RGB%>>5)�31)*8:blu%=((RGB%>>10)�31)*8

� �

�; � B=2 � �upload_memory:�rgb_sliders(0):�display_memory

� �

�# �wait_no_button:� Y<10 � quit%

� �upmini

� �

�

�1 � �vertical_write(F$,text$,x%,y%,xp%,yp%,c%)

�) � font%<>-1 ș "Font_LoseFont",font%

�1 ș "Font_FindFont",,F$,xp%*16,yp%*16 � font%

� Ymax%=0:Xmax%=0

� � V%=1 � �(text$)

�: ș "Font_CharBBox",font%,�(�text$,V%)),16 �,,,r3%,r4%

� � r3%>Xmax% � Xmax%=r3%

� � r4%>Ymax% � Ymax%=r4%

� �:Ymax%+=16

� � V%=1 � �(text$)

�? CH$=�text$,V%,1):ș "Font_CharBBox",font%,�(CH$),16 �,,,w%

� px%=x%+(Xmax%-w%)/2

�% �write(F$,CH$,px%,y%,xp%,yp%,c%)

� y%=y%-Ymax%-4:�

� �

�

� � �cloning_brush(s%)

�$ �display_memory:�wait_no_button

� �:ȗ X,Y,B

�) � 3,63 Ȝ 192:ȓ X-s%/2,Y-s%/2,s%,s%

�( �:ȗ X1,Y1,B:� X1<>X � Y1<>Y � B<>0
+ ȓ X-s%/2,Y-s%/2,s%,s%:X=X1:Y=Y1:� B=4
) SX=X1:SY=Y1:ȓ SX-s%/2,SY-s%/2,s%,s%
& �wait_no_button:�:ȗ X,Y,B:� B<>0
5 ȓ SX-s%/2,SY-s%/2,s%,s%:Xdiff%=X-SX:Ydiff%=Y-SY
 X=(X � 2)*2:Y=(Y � 2)*2:�
) ȓ X-Xdiff%-s%/2,Y-Ydiff%-s%/2,s%,s%
- �:ȗ X1,Y1,B:X1=(X1 � 2)*2:Y1=(Y1 � 2)*2
 � X1<>X � Y1<>Y � B<>0
) ȓ X-Xdiff%-s%/2,Y-Ydiff%-s%/2,s%,s%
	 � B=2 �

 s%+=8:� s%>48 � s%=8
 �wait_no_button
 �

 � B=4 �
" � X-Xdiff%-s%/2,Y-Ydiff%-s%/2
% � BY s%,s%:� &BF,X1-s%/2,Y1-s%/2
 �
 X=X1:Y=Y1:� B=1:�upmini
 �

 � �diagonal
 Ȏ menu_box% �
- � 4:R=255:G=255:B=255:RI=-.8:GI=-.8:BI=0
- � 5:R=255:G=255:B=255:RI=0:GI=-.8:BI=-.8
* � 6:R=0:G=255:B=255:RI=.8:GI=-.8:BI=0
* � 7:R=255:G=255:B=0:RI=0:GI=-.8:BI=.8
) � 8:R=255:G=255:B=0:RI=0:GI=-.8:BI=0
- � 9:R=255:G=255:B=255:RI=-.8:GI=0:BI=-.8
, � 10:R=255:G=255:B=0:RI=-.8:GI=0:BI=+.8
* � 11:R=255:G=0:B=0:RI=-.8:GI=0:BI=+.8
- � 12:R=255:G=0:B=0:RI=-1.6:GI=-.8:BI=1.6
1 � 13:R=255:G=255:B=128:RI=1.6:GI=4.8:BI=-3.2
  �
!  Y=2048:� X%=-1280 � 1280 �8
" � R,G,B
# � X%,0:� 1280,Y
$ � 85,1280,0
%! R+=RI:� R>255 � R=255:RI=-RI
& � R<0 � R=0:RI=-RI
'! G+=GI:� G>255 � G=255:GI=-GI
( � G<0 � G=0:GI=-GI
)! B+=BI:� B>255 � B=255:BI=-BI
* � B<0 � B=0:BI=-BI
+
 Y-=6.4:�
,! � �(merge%) � �upload_memory
- �
.
/ � �border(r%,g%,b%)
0 �display_memory
1' W%=1278:Y%=0:inc%=16/border_width%
2 Ȏ border_grad% �
3# � 1:ri%=inc%:gi%=inc%:bi%=inc%
4$ � 2:ri%=inc%:gi%=inc%:bi%=-inc%
5$ � 3:ri%=-inc%:gi%=inc%:bi%=inc%
6% � 4:ri%=-inc%:gi%=inc%:bi%=-inc%
7$ � 5:ri%=inc%:gi%=-inc%:bi%=inc%
8% � 6:ri%=inc%:gi%=-inc%:bi%=-inc%
9% � 7:ri%=-inc%:gi%=-inc%:bi%=inc%
:& � 8:ri%=-inc%:gi%=-inc%:bi%=-inc%
; �
<! � X%=0 � 31*border_width% �2
= � r%,g%,b%:ȓ X%,Y%,W%,bh%
> Y%+=2:W%-=4:bh%-=4
? r%+=ri%:� r%>255 � r%=255
@ � r%<0 � r%=0
A g%+=gi%:� g%>255 � g%=255
B � g%<0 � g%=0
C b%+=bi%:� b%>255 � b%=255
D � b%<0 � b%=0
E �
F �upmini
G �
H
I � �load_overlay_sprite
J1 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
K/ ș sprswi%,256+10,spr%,dir$+"."+cat$(box%)
L4 ș sprswi%,256+13,spr%,sprite_name%,32,1 �,,,L%
M5 ?(sprite_name%+L%)=13:sprite_name$=$sprite_name%
ND overlay%=�:overlay_outline%=0:screen_grabbed%=0:mask_created%=0
O4 � �dir$,7)="PStiles" � �tiled_sprite_background
P �
Q
R � �grab_screen_ellipse
S$ �display_memory:�wait_no_button
T1 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
U8 ȗ X%,Y%,B%:R1%=200:R2%=200:� 3,63:ȝ X%,Y%,R1%,R2%
V2 �:�:ȗ X2%,Y2%,B%:� X2%<>X% � Y2%<>Y% � B%<>0
W# ȝ X%,Y%,R1%,R2%:X%=X2%:Y%=Y2%
X � B%=2 � R1%>8 � R2%>8 �
Y � �(-5) � R1%-=1
Z � �(-6) � R2%-=1
[& � �(�-5) � �(�-6) � R1%-=1:R2%-=1
\ K%=�(2)
] �
^@ � B%=1 � ((R1%+1)*(R2%+1)*2)+((R1%+1)*(R2%+1)/8)<txtsize% �
_ � �(-5) � R1%+=1
` � �(-6) � R2%+=1
a& � �(�-5) � �(�-6) � R1%+=1:R2%+=1
b K%=�(2)
c �
d ȝ X2%,Y2%,R1%,R2%
e' � B%=4:R1%=(R1%�4)*4:R2%=(R2%�4)*4
f � 0,0:�display_memory
gG ș sprswi%,256+16,spr%,"ellipse",0,X2%-R1%,Y2%-R2%,X2%+R1%,Y2%+R2%
h% ș sprswi%,256+29,spr%,"ellipse"
i% ș sprswi%,256+61,spr%,"ellipse"
j �0:ȓ Ȑ 0,0,R1%*2,R2%*2
k �1:ȝ Ȑ R1%,R2%,R1%,R2%
l> ș sprswi%,256+61,spr%,0:�:Ȗ:screen_grabbed%=�:grab$="e"
m@ grabsize1%=X2%:grabsize2%=Y2%:grabsize3%=R1%:grabsize4%=R2%
nC overlay%=�:overlay_outline%=�:sprite_name$="ellipse":OOC%=1023
o mask_created%=0
p �
q
r � �grab_screen_rectangle
s$ �display_memory:�wait_no_button
t1 �grab_rectangle_cursor:� 0,0:�display_memory
u1 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
v3 ș sprswi%,256+16,spr%,"rectangle",0,X1,Y1,X,Y
wL screen_grabbed%=�:grabsize1%=X1:grabsize2%=Y1:grabsize3%=X:grabsize4%=Y
xO overlay%=�:overlay_outline%=0:sprite_name$="rectangle":OOC%=1023:grab$="r"
y mask_created%=0
z �
{
| � �which_translate
} Ȏ (spr%!56)�255 �
~= � 9,12,14,16,17,20,22,27,31,35,39,43,46,48:t%=translate%
8 � 10,13,15,21,24,28,32,36,40,47,49:t%=translate256%
�  t%=0
� �
� =t%
�
� � �plot_overlay_sprite
� t%=�which_translate
�& ȗ ȓ -640,-512,1280+640,1024+512
�$ �display_memory:�wait_no_button
�# � 255,255,255:ȓ 0,0,1278,1022
�
 ȗ X,Y,B
�4 ș sprswi%,256+52,spr%,sprite_name$,X,Y,11,0,t%
� �
�) �:ȗ x,y,b:� x<>X � Y<>y � b=1 � b=4
�4 ș sprswi%,256+52,spr%,sprite_name$,X,Y,11,0,t%
�4 ș sprswi%,256+52,spr%,sprite_name$,x,y,11,0,t%
� X=x:Y=y
� � b=1 � b=4
� �display_memory
�  � b=1 ȗ ȓ 0,0,1280,1024:�
�4 ș sprswi%,256+52,spr%,sprite_name$,x,y,11,0,t%
�1 � b=4 � overlay_outline% � OOC%>0 � OOC%<4 �
�  �sprite_shadow(x,y,OOC%)
�  �
�   � b=4 � overlay_outline% �
�>   r%=(OOC%�31)*8:g%=((OOC%>>5)�31)*8:b%=((OOC%>>10)�31)*8
�   � screen_grabbed% �
�    � r%,g%,b%
�    � grab$="e" �
�B     ȝ Ȑ grabsize3%+x,grabsize4%+y,grabsize3%+8,grabsize4%+8
�	    �
�@     w%=grabsize3%-grabsize1%+16:h%=grabsize2%-grabsize4%+16
�     ȓ Ȑ x-8,y-8,w%,h%
�	    �
�   �
�6    overlay_outline_RGB%=(b%<<24)+(g%<<16)+(r%<<8)
�?    ș "ColourTrans_SetGCOL",overlay_outline_RGB%,0,0,128,0
�+    � Y%=y-8 � y+8 �4:� X%=x-8 � x+8 �4
�5    ș sprswi%,256+49,spr%,sprite_name$,X%,Y%:�:�
�   �
�  �
� �
�; � b=4 � ș sprswi%,256+52,spr%,sprite_name$,x,y,8,0,t%
� ȗ ȓ 0,0,1280,1024
� �upload_memory
� �
�
� � �paint_with_sprite
�\ � � overlay% � 1997,"No sprite is available ..."+�13+"Load or create one and try again"
� t%=�which_translate
�& ȗ ȓ -640,-512,1280+640,1024+512
�$ �display_memory:�wait_no_button
�
 ȗ X,Y,B
� �
� �
�4 ș sprswi%,256+52,spr%,sprite_name$,X,Y,11,0,t%
�! �:ȗ X1,Y1,B:� X<>X1 � Y<>Y1
�4 ș sprswi%,256+52,spr%,sprite_name$,X,Y,11,0,t%
� X=X1:Y=Y1
� � B<>0
�9 � B=4 ș sprswi%,256+52,spr%,sprite_name$,X,Y,8,0,t%
�
 � B=1
� �upmini
� ȗ ȓ 0,0,1280,1024
� �
�
� � �tiled_sprite_background
�( �display_memory:t%=�which_translate
�2 ș sprswi%,256+40,spr%,sprite_name$ �,,,w%,h%
�. � Y%=0 � 1600 � h%*2:� X%=0 � 1800 � w%*2
�5 ș sprswi%,256+52,spr%,sprite_name$,X%,Y%,8,0,t%
� �:�:�upload_memory
� �
�
�- � �star_field:B=180:� Y%=0�1023�4:�0,0,B
�' ȓ Ȑ0,Y%,1280,4:B-=.8:� B<0 � B=0
�< �:� N%=1�400:X%=�(1280):Y%=�(1024):R%=51+Y%/5:b%=�(255)
�% � R%,R%,b%:Ȓ X%,Y%:Ȓ X%+2,Y%:�
� �
�
� � �splash2
�; B=255:BI=-1:� Y=1020 � 0 �-4:� 64,0,B:ȓ Ȑ 0,Y,1280,4
�. B+=BI:�:B=0:BI=1:� Y=1020 � 0 �-4:� 0,0,B
� ȓ Ȑ 100,Y,1078,4:B+=BI:�
�1 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
�; ș sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.pscan96"
�3 ș sprswi%,256+52,spr%,"pscan96",350,800,8,0,0
�9 ș sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.acorn"
�1 ș sprswi%,256+52,spr%,"acorn",510,340,8,0,0
�: ș sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.vmess1"
�1 ș sprswi%,256+52,spr%,"vmess1",20,140,8,0,0
�: ș sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.vmess2"
�3 ș sprswi%,256+52,spr%,"vmess2",1200,156,8,0,0
� text%=0
�B �write("Homerton.Bold","Version "+ver$,splash2x%,208,28,28,0)
�E �write("Homerton.Bold","Version "+ver$,splash2x%-10,216,28,28,7)
�C �write("Homerton.Bold","- Press H for help -",364,106,24,24,5)
� �
�
�) � �raised_block(rbx%,rby%,rbw%,rbh%)
�0 � 0,0,0:ȓ Ȑ rbx%-6,rby%-6,rbw%+10,rbh%+12
�4 � 255,255,255:ȓ Ȑ rbx%-4,rby%-4,rbw%+6,rbh%+8
�/ � 96,96,96:ȓ Ȑ rbx%,rby%-4,rbw%+2,rbh%+4
�. � 208,208,216:ȓ Ȑ rbx%,rby%,rbw%-2,rbh%
� � 96,96,96:� rbx%-4,rby%-4
�& � rbx%-2,rby%-4:�85,rbx%-2,rby%-2
�' � 96,96,96:� rbx%+rbw%,rby%+rbh%+2
�: � rbx%+rbw%+2,rby%+rbh%+2:�85,rbx%+rbw%+2,rby%+rbh%+4
� �
�
� � �circular_gradations
�" menu$(0)="Circular grads    "
� menu$(1)="Red to yellow"
� menu$(2)="Red to white"
� menu$(3)="Red to black"
� menu$(4)="Red to blue"
� menu$(5)="Blue to white"
� menu$(6)="Blue to cyan"
� menu$(7)="Blue to black"
� menu$(8)="Orange to black"
� menu$(9)="Green to white"
� menu$(10)="Green to black"
�! menu$(11)="Magenta to white"
�" menu$(12)="Magenta to yellow"
�! menu$(13)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�$ � 1:�grad_circle(255,0,0,0,1,0)
�$ � 2:�grad_circle(255,0,0,0,1,1)
�% � 3:�grad_circle(255,0,0,-1,0,0)
% � 4:�grad_circle(255,0,0,-1,0,1)
$ � 5:�grad_circle(0,0,255,1,1,0)
$ � 6:�grad_circle(0,0,255,0,1,0)
% � 7:�grad_circle(0,0,255,0,0,-1)
) � 8:�grad_circle(255,128,0,-1,-.5,0)
$ � 9:�grad_circle(0,255,0,1,0,1)
& � 10:�grad_circle(0,255,0,0,-1,0)
' � 11:�grad_circle(255,0,255,0,1,0)
( � 12:�grad_circle(255,0,255,0,1,-1)
	 �

 �

# � �grad_circle(R,G,B,RI,GI,BI)

! � R,G,B:ȓ Ȑ 0,900,1280,124
 � D%=812 � 50 �-3
 � R,G,B:ȏ Ȑ 640,480,D%
 R+=RI:G+=GI:B+=BI:�
! � �(merge%) � �upload_memory
 �

 � �quarter
' !source_address=memblock%+20+40960
! !dest_address=screen%+164160
% �128,128,128:ȓ Ȑ 0,0,1280,1024
& !quarter_lines=240:� make_quarter
$ � �undo("Zoom 1:2 - options") �

 �dismini
 �
& �128,128,128:ȓ Ȑ 480,80,340,160
 �grab_quarter_area:�upmini
 �
 �
 
! � �quarter_assemble
"H data1=3:data2=4:source=5:dest=6:offset1=7:offset2=8:lines=9:mask=10
# � quarter_code% 320
$ � P=0 � 2 �2
% P%=quarter_code%
& [OPT P
' .make_quarter
(L LDR source,source_address:LDR dest,dest_address:LDR lines,quarter_lines
)6 LDR mask,mask_store:MOV offset1,#0:MOV offset2,#0
* .quarter_loop
+I LDR data1,[source,offset1]:� data1,data1,mask:ADD offset1,offset1,#4
,I LDR data2,[source,offset1]:� data2,data2,mask:MOV data2,data2,LSL#16
-J ADD data2,data2,data1:STR data2,[dest,offset2]:ADD offset2,offset2,#4
.> ADD offset1,offset1,#4:CMP offset1,#1280:BLT quarter_loop
/" MOV offset1,#0:MOV offset2,#0
00 ADD source,source,#2560:ADD dest,dest,#1280
1) SUBS lines,lines,#1:BNE quarter_loop
2 .quarter_exit MOV PC,R14
3
4 .make_mini
54 LDR source,source_address:LDR dest,dest_address
66 LDR mask,mask_store:MOV offset1,#0:MOV offset2,#0
7 LDR lines,mini_lines
8 .make_mini_loop
9I LDR data1,[source,offset1]:� data1,data1,mask:ADD offset1,offset1,#8
:I LDR data2,[source,offset1]:� data2,data2,mask:MOV data2,data2,LSL#16
;J ADD data2,data2,data1:STR data2,[dest,offset2]:ADD offset2,offset2,#4
<@ ADD offset1,offset1,#8:CMP offset1,#1280:BLT make_mini_loop
=" MOV offset1,#0:MOV offset2,#0
>0 ADD source,source,#5120:ADD dest,dest,#1280
?+ SUBS lines,lines,#1:BNE make_mini_loop
@ MOV PC,R14
A
B .make_thumbnail
C4 LDR source,source_address:LDR dest,dest_address
DD LDR mask,mask_store:MOV offset1,#0:MOV offset2,#0:MOV lines,#64
E .make_thumbnail_loop
FJ LDR data1,[source,offset1]:� data1,data1,mask:ADD offset1,offset1,#16
GI LDR data2,[source,offset1]:� data2,data2,mask:MOV data2,data2,LSL#16
HJ ADD data2,data2,data1:STR data2,[dest,offset2]:ADD offset2,offset2,#4
IF ADD offset1,offset1,#16:CMP offset1,#1280:BLT make_thumbnail_loop
J" MOV offset1,#0:MOV offset2,#0
K1 ADD source,source,#10240:ADD dest,dest,#1280
L0 SUBS lines,lines,#1:BNE make_thumbnail_loop
M MOV PC,R14
N
O .source_address EQUD 0
P .dest_address   EQUD 0
Q .quarter_lines  EQUD 240
R .mini_lines     EQUD 128
S+ .mask_store     EQUD %1111111111111111
T
U ]:�
V �
W
X � �make_mini_pic
Y" �raised_block(38,-34,322,254)
Z5 � y%=-36 � 202 �34:�raised_block(378,y%,40,20):�
[ m%=1:� y%=246 � 8 �-34
\- � m%<=memories% � �write2(� m%,378,y%,0)
] m%+=1:�:�3,63 Ȝ192
^ Ȏ MEM% �
_ � 0:ȓ Ȑ 374,200,46,26
` � 1:ȓ Ȑ 374,166,46,26
a � 2:ȓ Ȑ 374,132,46,26
b � 3:ȓ Ȑ 374,98,46,26
c � 4:ȓ Ȑ 374,64,46,26
d � 5:ȓ Ȑ 374,30,46,26
e � 6:ȓ Ȑ 374,-4,46,26
f � 7:ȓ Ȑ 374,-38,46,26
g �
h! !source_address=memblock%+20
i � screen_lines%=512 �
j& !dest_address=screen%+1280*376+40
k �
l& !dest_address=screen%+1280*344+40
m �
n  !mini_lines=128:� make_mini
o �
p
q � �multi_grad_menu
r menu$(0)="Multi grads" 
s menu$(1)="Type 1"
t menu$(2)="Type 2"
u menu$(3)="Type 3"
v menu$(4)="Type 4"
w menu$(5)="Type 5"
x menu$(6)="Type 6"
y menu$(7)="-------"
z menu$(8)="Type 7"
{ menu$(9)="Type 8"
| menu$(10)="Type 9"
} menu$(11)="Type 10"
~ menu$(12)="Type 11"
 menu$(13)="Type 12"
�! menu$(14)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�) � 1,2,3,4,5,6:�multi_grad(menu_box%)
�/ � 8,9,10,11,12,13:�multi_grad(menu_box%-1)
� �
� �
�
� � �multi_grad(type%)
�  � 0,0,0:ȓ Ȑ 0,0,1280,1024
� Ȏ type% �
�& � 1:�left_right_grad(0,0,0,0,1,0)
�% �bottom_top_grad(255,0,0,-1,0,1)
�& � 2:�left_right_grad(0,0,0,0,0,1)
�% �bottom_top_grad(0,255,0,1,-1,0)
�& � 3:�left_right_grad(0,0,0,1,0,0)
�% �bottom_top_grad(0,255,0,0,-1,1)
�& � 4:�left_right_grad(0,0,0,0,0,1)
�% �bottom_top_grad(255,0,0,-1,0,0)
�& � 5:�left_right_grad(0,0,0,0,0,1)
�( �bottom_top_grad(255,255,0,-1,-1,0)
�) � 6:�left_right_grad(0,255,0,0,-1,0)
�" �bottom_top_grad(0,0,0,0,0,1)
�& � 7:�left_right_grad(0,0,0,0,8,0)
�% �bottom_top_grad(248,0,0,-8,0,8)
�& � 8:�left_right_grad(0,0,0,0,0,8)
�% �bottom_top_grad(0,248,0,8,-8,0)
�& � 9:�left_right_grad(0,0,0,8,0,0)
�% �bottom_top_grad(0,248,0,0,-8,8)
�' � 10:�left_right_grad(0,0,0,0,0,8)
�% �bottom_top_grad(248,0,0,-8,0,0)
�' � 11:�left_right_grad(0,0,0,0,0,8)
�( �bottom_top_grad(248,248,0,-8,-8,0)
�* � 12:�left_right_grad(0,248,0,0,-8,0)
�" �bottom_top_grad(0,0,0,0,0,8)
�* � 13:�left_right_grad(0,248,0,0,-8,0)
�" �bottom_top_grad(0,0,0,0,0,8)
� �
�! � �(merge%) � �upload_memory
� �
�
�- � �left_right_grad(r%,g%,b%,ri%,gi%,bi%)
�" � x%=0 � 1280 �6:� 1,r%,g%,b%
� ȓ Ȑ x%,0,4,1024
� r%+=ri%:g%+=gi%:b%+=bi%
� � r%>248 � r%=248:ri%=-ri%
� � g%>248 � g%=248:gi%=-gi%
� � b%>248 � b%=248:bi%=-bi%
� � r%<0 � r%=0:ri%=-ri%
� � g%<0 � g%=0:gi%=-gi%
� � b%<0 � b%=0:bi%=-bi%
� �
� �
�
�- � �bottom_top_grad(r%,g%,b%,ri%,gi%,bi%)
�" � y%=0 � 1020 �4:� 1,r%,g%,b%
� ȓ Ȑ 0,y%,1280,2
� r%+=ri%:g%+=gi%:b%+=bi%
� � r%>248 � r%=248:ri%=-ri%
� � g%>248 � g%=248:gi%=-gi%
� � b%>248 � b%=248:bi%=-bi%
� � r%<0 � r%=0:ri%=-ri%
� � g%<0 � g%=0:gi%=-gi%
� � b%<0 � b%=0:bi%=-bi%
� �
� �
�
�' � �plinth(x%,y%,w%,h%,t%,r%,g%,b%)
�+ � r%,g%,b%:� x%,y%+h%:� x%+t%,y%+h%-t%
�* �85,x%+w%,y%+h%:�85,x%+w%-t%,y%+h%-t%
�" r2%=r%-40:g2%=g%-40:b2%=b%-40
� � r2%<0 � r2%=0
� � g2%<0 � g2%=0
� � b2%<0 � b2%=0
� � r2%,g2%,b2%
�  � x%,y%+h%:� x%+t%,y%+h%-t%
� �85,x%,y%:�85,x%+t%,y%+t%
�% r2%=r%-100:g2%=g%-100:b2%=b%-100
� � r2%<0 � r2%=0
� � g2%<0 � g2%=0
� � b2%<0 � b2%=0
� � r2%,g2%,b2%
�& � x%+w%,y%+h%:� x%+w%-t%,y%+h%-t%
�$ �85,x%+w%,y%:�85,x%+w%-t%,y%+t%
�% r2%=r%-160:g2%=g%-160:b2%=b%-160
� � r2%<0 � r2%=0
� � g2%<0 � g2%=0
� � b2%<0 � b2%=0
� � r2%,g2%,b2%
� � x%,y%:� x%+t%,y%+t%
�$ �85,x%+w%,y%:�85,x%+w%-t%,y%+t%
�
� � w%>300 �
� r2=r%:g2=g%:b2=b%
� ri=(255-r2)/64
� gi=(255-g2)/64
� bi=(255-b2)/64
� xx%=x%+w%/2-t%/2-128
� � xs%=xx% � xx%+258 �2
�+ � r2,g2,b2:� xs%,y%+h%-t%,xs%+t%,y%+h%
� r2+=ri:g2+=gi:b2+=bi
� � r2>255 � r2=255:ri=-ri
� � g2>255 � g2=255:gi=-gi
� � b2>255 � b2=255:bi=-bi
� �
� �
�
� � h%>260 �
� r2=r%-40:g2=g%-40:b2=b%-40
� � r2<0 � r2=0
� � g2<0 � g2=0
� � b2<0 � b2=0
� ri=(215-r2)/54
� gi=(215-g2)/54
� bi=(215-b2)/54
� yy%=y%+h%/2-t%/2-114
� � ys%=yy% � yy%+212 �2
�% � r2,g2,b2:� x%,ys%,x%+t%,ys%+t%
� r2+=ri:g2+=gi:b2+=bi
� � r2>215 � r2=210:ri=-ri
� � g2>215 � g2=210:gi=-gi
� � b2>215 � b2=210:bi=-bi
� �
� �
� �
�
� � �picpro_panel(x%,y%)
� xstart%=x%:ystart%=y%
�# �display_memory:r%=0:g%=0:b%=0
 exit%=0:�:reset%=0:ȑ 0,0
! �raised_block(x%,y%,456,280)

 ȑ x%,y%
  �raised_block(32,32,108,40)
! �raised_block(172,32,108,40)
! �raised_block(312,32,108,40)
# �write2("RESET",x%+34,y%+36,4)
" �write2("TRY",x%+192,y%+36,4)
! �write2("OK",x%+338,y%+36,4)
	# � 255,0,0:ȓ Ȑ 162,216,126,52

# � 0,200,0:ȓ Ȑ 162,156,126,52
" � 0,0,255:ȓ Ȑ 162,96,126,52
% � 255,255,255:� Y%=100 � 220 �60

: ș sprswi%,256+52,spb%,"left",108,Y%+4,8,0,translate%
; ș sprswi%,256+52,spb%,"right",304,Y%+4,8,0,translate%
 ȓ Ȑ 166,Y%,118,44:�
 ȗ ȓ 0,0,456,280
" � 255,255,255:�wait_no_button
 �
, � r%>-1 � r$="+"+� r%+"%" � r$=� r%+"%"
, � g%>-1 � g$="+"+� g%+"%" � g$=� g%+"%"
, � b%>-1 � b$="+"+� b%+"%" � b$=� b%+"%"
  �write2(r$,x%+180,y%+226,0)
  �write2(g$,x%+180,y%+166,0)
  �write2(b$,x%+180,y%+106,0)
 K=�(20)
 �:ȗ X,Y,B:� B=4
- � �(X-132)<24 � �(Y-242)<24 � �red_minus
, � �(X-318)<24 � �(Y-242)<24 � �red_plus
/ � �(X-132)<24 � �(Y-182)<24 � �green_minus
. � �(X-318)<24 � �(Y-182)<24 � �green_plus
. � �(X-132)<24 � �(Y-122)<24 � �blue_minus
 - � �(X-318)<24 � �(Y-122)<24 � �blue_plus
!! � �(X-366)<60 � �(Y-56)<30 �
", �process_picture:�upload_memory:exit%=�
# �
$; � �(X-224)<60 � �(Y-56)<30 � �process_picture:reset%=�
%  � �(X-84)<60 � �(Y-56)<30 �
&, r%=0:g%=0:b%=0:�display_memory:reset%=�
' �
( � exit% � reset%
) � � reset%
*/ ȑ 0,0:�display_memory:ȗ ȓ 0,0,1280,1024
+ �
,
- � �red_minus
.* � r%>-50 � r%-=5:ȓ Ȑ 168,222,112,40
/ �
0 � �red_plus
1) � r%<50 � r%+=5:ȓ Ȑ 168,222,112,40
2 �
3 � �green_minus
4* � g%>-50 � g%-=5:ȓ Ȑ 168,162,112,40
5 �
6 � �green_plus
7) � g%<50 � g%+=5:ȓ Ȑ 168,162,112,40
8 �
9 � �blue_minus
:* � b%>-50 � b%-=5:ȓ Ȑ 168,102,112,40
; �
< � �blue_plus
=) � b%<50 � b%+=5:ȓ Ȑ 168,102,112,40
> �
?
@ � �process_picture
A# �picpro_tables:�display_memory
B@ !start_address=screen%:!picpro_bytes=1280:!picpro_lines=512
CF !red_address=reddata:!green_address=grndata:!blue_address=bludata
D � picture_process
E �
F
G � �picpro_assemble
H. redtable=3:greentable=4:bluetable=5:new=6
I- base=7:offset=8:bytes=9:lines=10:data=11
J& new1=3:new2=4:result1=6:result2=9
K � picpro_code% 800
L � P=0 � 2 �2
M P%=picpro_code%
N [OPT P
O .picture_process
P) LDR base,start_address:MOV offset,#0
Q2 LDR bytes,picpro_bytes:LDR lines,picpro_lines
R: LDR redtable,red_address:LDR greentable,green_address
S LDR bluetable,blue_address
T .picpro_loop
U$ MOV new,#0:LDR R0,[base,offset]
V' � R2,R0,#31:LDRB new,[redtable,R2]
W: MOV R2,R0,LSR#5:� R2,R2,#31:LDRB data,[greentable,R2]
X) MOV data,data,LSL#5:ADD new,new,data
Y: MOV R2,R0,LSR#10:� R2,R2,#31:LDRB data,[bluetable,R2]
Z* MOV data,data,LSL#10:ADD new,new,data
[9 MOV R2,R0,LSR#16:� R2,R2,#31:LDRB data,[redtable,R2]
\* MOV data,data,LSL#16:ADD new,new,data
]; MOV R2,R0,LSR#21:� R2,R2,#31:LDRB data,[greentable,R2]
^* MOV data,data,LSL#21:ADD new,new,data
_: MOV R2,R0,LSR#26:� R2,R2,#31:LDRB data,[bluetable,R2]
`* MOV data,data,LSL#26:ADD new,new,data
a/ STR new,[base,offset]:ADD offset,offset,#4
b% CMP offset,bytes:BLT picpro_loop
c& ADD base,base,#1280:MOV offset,#0
d( SUBS lines,lines,#1:BNE picpro_loop
e MOV PC,R14
f
g .display_red_as_mono
h8 LDR base,start_address:MOV offset,#0:MOV lines,#512
i .red_mono_loop
j' LDR R0,[base,offset]:� data,R0,#31
k- MOV new1,data,LSL#5:MOV new2,data,LSL#10
l3 ADD result1,new2,new1:ADD result1,result1,data
m# MOV R0,R0,LSR#16:� data,R0,#31
n- MOV new1,data,LSL#5:MOV new2,data,LSL#10
o3 ADD result2,new2,new1:ADD result2,result2,data
p; MOV result2,result2,LSL#16:ADD result1,result1,result2
q3 STR result1,[base,offset]:ADD offset,offset,#4
r' CMP offset,#1280:BNE red_mono_loop
s& MOV offset,#0:ADD base,base,#1280
t* SUBS lines,lines,#1:BNE red_mono_loop
u MOV PC,R14
v
w .display_green_as_mono
x8 LDR base,start_address:MOV offset,#0:MOV lines,#512
y .green_mono_loop
z; LDR R0,[base,offset]:MOV data,R0,LSR#5:� data,data,#31
{- MOV new1,data,LSL#5:MOV new2,data,LSL#10
|3 ADD result1,new2,new1:ADD result1,result1,data
}# MOV R0,R0,LSR#21:� data,R0,#31
~- MOV new1,data,LSL#5:MOV new2,data,LSL#10
3 ADD result2,new2,new1:ADD result2,result2,data
�; MOV result2,result2,LSL#16:ADD result1,result1,result2
�3 STR result1,[base,offset]:ADD offset,offset,#4
�) CMP offset,#1280:BNE green_mono_loop
�& MOV offset,#0:ADD base,base,#1280
�, SUBS lines,lines,#1:BNE green_mono_loop
� MOV PC,R14
�
� .display_blue_as_mono
�8 LDR base,start_address:MOV offset,#0:MOV lines,#512
� .blue_mono_loop
�< LDR R0,[base,offset]:MOV data,R0,LSR#10:� data,data,#31
�- MOV new1,data,LSL#5:MOV new2,data,LSL#10
�3 ADD result1,new2,new1:ADD result1,result1,data
�# MOV R0,R0,LSR#26:� data,R0,#31
�- MOV new1,data,LSL#5:MOV new2,data,LSL#10
�3 ADD result2,new2,new1:ADD result2,result2,data
�; MOV result2,result2,LSL#16:ADD result1,result1,result2
�3 STR result1,[base,offset]:ADD offset,offset,#4
�( CMP offset,#1280:BNE blue_mono_loop
�& MOV offset,#0:ADD base,base,#1280
�+ SUBS lines,lines,#1:BNE blue_mono_loop
� MOV PC,R14
�
� .red_address   EQUD 0
� .green_address EQUD 0
� .blue_address  EQUD 0
� .start_address EQUD 0
� .picpro_bytes  EQUD 0
� .picpro_lines  EQUD 0
� ]
� �
� �
�
� � �picpro_tables
�= red=1+(�(r%))/100:green=1+(�(g%))/100:blue=1+(�(b%))/100
� � N%=0 � 31
�% � r%>-1 � R=N%*red:� R>31 � R=31
�/ � r%<0 � R=31-�(((31-N%)*red)):� R<0 � R=0
�' � g%>-1 � G=N%*green:� G>31 � G=31
�1 � g%<0 � G=31-�(((31-N%)*green)):� G<0 � G=0
�& � b%>-1 � B=N%*blue:� B>31 � B=31
�0 � b%<0 � B=31-�(((31-N%)*blue)):� B<0 � B=0
�+ reddata?N%=R:grndata?N%=G:bludata?N%=B
� �
� �
�
� � �zoom_pic
� ȗ ȓ 0,0,640,512
�- �display_memory:�wait_no_button:ȗ X,Y,B
� � 3,63:ȓ X,Y,640,512:�
�( �:ȗ X1,Y1,B:� X<>X1 � Y<>Y1 � B<>0
�$ ȓ X,Y,640,512:ȓ X1,Y1,640,512
� X=X1:Y=Y1:� B<>0
� � B=4 �
�1 Y+=512:y%=(1024-Y)/2:x%=X:offset%=y%*1280+x%
� ȕ offset%/4<>offset%�4
� offset%-=1:�
�. !zoom_source_address=memblock%+20+offset%
� !zoom_dest_address=screen%
� � zoom_code%
�$ � �undo("Zoom 2:1 - options") �
� �display_memory
� �
�  � zoom_code%:�upload_memory
� �
� �
� ȓ X1,Y1,640,512
� �
� ȗ ȓ 0,0,1280,1024
� �
�
� � �undo(title$)
�* �wait_no_button:ȗ ȓ 490,100,300,120
�A �raised_block(490,100,300,120):�raised_block(510,120,108,40)
�" �raised_block(660,120,108,40)
� �write2(title$,494,180,0)
� �write2("RESET",512,124,4)
� �write2("OK",684,124,4)
� �:ȗ X,Y,B:� B=4
� ȗ ȓ 0,0,1280,1024
�0 � �(X-712)<52 � �(Y-142)<22 � un%=0 � un%=�
�	 =un%
�
� � �undo_dither
�$ �display_memory:�wait_no_button
�& !zoom_source_address=memblock%+20
�0 !zoom_dest_address=screen%:� preview320x256
�" � �undo(" Preview options") �
� �display_memory
� �
�$ � preview320x256:�upload_memory
� �
� �
�
� � �zoom_assemble
� � zoom_code% 360
� red=1:green=2:blue=11
�< source_base=3:dest_base=4:source_offset=5:dest_offset=6
�. data1=7:data2=8:lines=9:mask1=10:offset=5
� � P=0 � 2 �2
� P%=zoom_code%
� [OPT P
�
� .zoom_pic
�H LDR source_base,zoom_source_address:LDR dest_base,zoom_dest_address
�; MOV source_offset,#0:MOV dest_offset,#0:MOV lines,#256
� LDR mask1,mask_bits
� .zoom_loop
�* LDR data1,[source_base,source_offset]
� � data1,data1,mask1
�1 MOV data2,data1,LSL#16:ADD data2,data2,data1
�D STR data2,[dest_base,dest_offset]:ADD dest_base,dest_base,#1280
�D STR data2,[dest_base,dest_offset]:SUB dest_base,dest_base,#1280
�# ADD dest_offset,dest_offset,#4
�* LDR data1,[source_base,source_offset]
�/ MOV data1,data1,LSR#16:� data1,data1,mask1
�1 MOV data2,data1,LSL#16:ADD data2,data2,data1
�D STR data2,[dest_base,dest_offset]:ADD dest_base,dest_base,#1280
�D STR data2,[dest_base,dest_offset]:SUB dest_base,dest_base,#1280
�# ADD dest_offset,dest_offset,#4
�' ADD source_offset,source_offset,#4
�) CMP source_offset,#640:BLT zoom_loop
�, MOV source_offset,#0:MOV dest_offset,#0
�& ADD source_base,source_base,#1280
�" ADD dest_base,dest_base,#2560
�& SUBS lines,lines,#1:BNE zoom_loop
� MOV PC,R14
�
 .preview320x256
H LDR source_base,zoom_source_address:LDR dest_base,zoom_dest_address
! MOV offset,#0:MOV lines,#256
 .preview_loop
3 LDR data1,[source_base,offset]:� red,data1,#31
C MOV R0,data1,LSR#16:� R0,R0,#31:ADD R0,R0,red:MOV red,R0,LSR#1
, MOV green,data1,LSR#5:� green,green,#31
G MOV R0,data1,LSR#21:� R0,R0,#31:ADD R0,R0,green:MOV green,R0,LSR#1
* MOV blue,data1,LSR#10:� blue,blue,#31
	E MOV R0,data1,LSR#26:� R0,R0,#31:ADD R0,R0,blue:MOV blue,R0,LSR#1

/ MOV green,green,LSL#5:MOV blue,blue,LSL#10
- ADD data1,red,green:ADD data1,data1,blue
1 MOV data2,data1,LSL#16:ADD data2,data2,data1

? STR data2,[dest_base,offset]:ADD dest_base,dest_base,#1280
? STR data2,[dest_base,offset]:SUB dest_base,dest_base,#1280
; ADD offset,offset,#4:CMP offset,#1280:BNE preview_loop
& ADD source_base,source_base,#2560
0 ADD dest_base,dest_base,#2560:MOV offset,#0
) SUBS lines,lines,#1:BNE preview_loop
 MOV PC,R14

  .zoom_source_address EQUD 0
  .zoom_dest_address   EQUD 0
6 .mask_bits EQUD %00000000000000001111111111111111
 ]
 �
 �

 � �menu(mmx%,mmy%,sub%)
' ȗ � 1:N%=0:W%=0:ȕ menu$(N%)<>"*"
$ L%=�(menu$(N%)):� L%>W% � W%=L%
 N%+=1:�
  � � sub% �
!  � �menu$(0),2)="  " �
":  menu$(N%)="  [Close menu]":menu$(1)="  [Close menu]"
#  �
$6  menu$(N%)="[Close menu]":menu$(1)="[Close menu]"
%  �
& � N%-=1
' �
(+ � sub% � mmx%=main_mmx%+main_width%+12
) � menu_redraw% � sub% �
*> �raised_block(mmx%,mmy%,W%*16,N%*36+64):�128+63 Ȝ0:M%=N%
+- � Y%=mmy% � (mmy%+(N%-1)*36) �36:� 0,0,0
,) � �menu$(M%),">")<>0 � fc%=2 � fc%=0
-% � (M%=N% � M%=1) � �(sub%) fc%=7
.# � �menu$(M%),"---")<>0 � fc%=3
/- m$=menu$(M%):� �m$,1)=">" m$=�m$,� m$-1)
0 �write2(m$,mmx%,Y%+16,fc%)
1 � �menu$(M%),1)=">" �
2D ș sprswi%,256+52,spb%,"sub",mmx%+W%*16-24,Y%+22,8,0,translate%
3 �:M%-=1:�:menu_redraw%=0
4% � sub% � � 128,64,0 � � 0,64,128
5+ ȓ Ȑ mmx%+4,mmy%+N%*36+20,W%*16-10,40
6- �write2(menu$(0),mmx%+4,mmy%+N%*36+20,0)
7+ �write2(menu$(0),mmx%,mmy%+N%*36+24,1)
8 �
9 � 3,255,255,255
:% ȓ Ȑ main_x%,main_y%,main_w%,36
; �
<* ȗ ȓ mmx%-4,mmy%+12,W%*16-64,N%*36+4
=) ȗ ȓ mmx%-4,mmy%+12,W%*16+8,N%*36+4
>4 � sub% � ȗ ȓ mmx%-32,mmy%+12,W%*16+32,N%*36+4
? effect%=3:�wait_no_button
@' BX%=mmx%+4:BY%=mmy%+8:BW%=W%*16-32
A) T%=mmy%+N%*36+10:subx%=mmx%+W%*16-24
B �
C � effect%,255,255,255
D! ȗ X,Y,B:menu_box%=(T%-Y)�36
E( ȓ Ȑ BX%,T%-32-menu_box%*36,BW%,36
F$ �:ȗ x,y,B:menu_box2%=(T%-y)�36
G � x<mmx%-24 � sub% � B=99
H8 m$=menu$(menu_box2%+1):� x>subx% � �m$,1)=">" � B=8
I �check_alt_s_save
J# � menu_box2%<>menu_box% � B<>0
K( ȓ Ȑ BX%,T%-32-menu_box%*36,BW%,36
L< � �menu$((T%-y)�36+1),"---")<>0 � effect%=5 � effect%=3
M � B<>0
N � B<8 �
O � F%=1 � 5
P1 ȓ Ȑ BX%,T%-32-menu_box2%*36,BW%,36:Ȗ:Ȗ:�
Q �
R) ȓ Ȑ BX%,T%-32-menu_box2%*36,BW%,36
S �
T � �(sub%) �
U% main_mmx%=mmx%:main_width%=W%*16
V8 main_x%=BX%:main_y%=T%-32-menu_box2%*36:main_w%=BW%
W �
X menu_box%=(T%-y)�36+1
YB � menu_box%=N% � �(sub%) menu_box%=1 : � 1 = main menu cancel
ZC � B=99 � menu_box%=99                 : � 99 = sub-menu cancel
[2 � sub% � �redraw(mmx%-6,82,W%*16+16,N%*36+80)
\ ȗ ȓ 0,0,1280,1024
] �
^
_ � �redraw(rx%,ry%,rw%,rh%)
`C tl%=ry%+rh%:A%=((screen_lines%*2-tl%)�2)*1280+rx%:A%=A%-(A%�4)
a= !redraw_source=A%+memblock%+20:!redraw_screen=screen%+A%
b9 !redraw_bytes=rw%:!redraw_lines=rh%/2:� redraw_code%
c �
d
e � �redraw_assemble
f � redraw_code% 128
g � P=0 � 2 � 2
h P%=redraw_code%
i [OPT P
j. LDR R2,redraw_source:LDR R3,redraw_screen
k6 LDR R4,redraw_bytes:LDR R5,redraw_lines:MOV R1,#0
l .redraw_loop
m" LDR R0,[R2,R1]:STR R0,[R3,R1]
n+ ADD R1,R1,#4:CMP R1,R4:BLT redraw_loop
o. ADD R2,R2,#1280:ADD R3,R3,#1280:MOV R1,#0
p" SUBS R5,R5,#1:BNE redraw_loop
q MOV PC,R14
r .redraw_source EQUD 0
s .redraw_screen EQUD 0
t .redraw_bytes  EQUD 0
u .redraw_lines  EQUD 0
v ]
w �
x �
y
z � �perp_menu
{ menu$(0)="Tile colours" 
| menu$(1)="White"
} menu$(2)="Yellow"
~ menu$(3)="Cyan"
 menu$(4)="Green"
� menu$(5)="Magenta"
� menu$(6)="Red"
� menu$(7)="Blue"
� menu$(8)="Orange"
� menu$(9)="Sky blue"
� menu$(10)="Pink"
� menu$(11)="Crimson"
� menu$(12)="Purple"
�! menu$(13)="*":�menu(0,90,-1)
� pr=255:pg=255:pb=255
� Ȏ menu_box% �
� � 1:pr=255:pg=255:pb=255
� � 2:pr=255:pg=255:pb=0
� � 3:pr=0:pg=255:pb=255
� � 4:pr=0:pg=255:pb=0
� � 5:pr=255:pg=0:pb=255
� � 6:pr=255:pg=0:pb=0
� � 7:pr=0:pg=0:pb=255
� � 8:pr=255:pg=128:pb=0
� � 9:pr=0:pg=128:pb=255
� � 10:pr=255:pg=128:pb=255
� � 11:pr=255:pg=0:pb=128
� � 12:pr=128:pg=0:pb=255
� �
� Ȏ pr �
� � 255:pri=.6
� � 128:pri=.3
� � 0  :pri=0
� �
� Ȏ pg �
� � 255:pgi=.6
� � 128:pgi=.3
� � 0  :pgi=0
� �
� Ȏ pb �
� � 255:pbi=.6
� � 128:pbi=.3
� � 0  :pbi=0
� �
�! � menu_box%<>99 � �make_perp
� �
�
� � �make_perp
�0 pm%=MEM%:MEM%+=1:� MEM%>=memories% � MEM%=0
�+ �memory_select(MEM%,0):�display_memory
�$ MEM%=pm%:�memory_select(MEM%,0)
� X=50:W=1180
� r=pr-56:� r<0 � r=0
� g=pg-56:� g<0 � g=0
� b=pb-56:� b<0 � b=0
� R=r:G=g:B=b
� � R=0 � ri=2.3 � ri=.5
� � G=0 � gi=2.3 � gi=.5
� � B=0 � bi=2.3 � bi=.5
�+ � Y%=164 � 204:� R,G,B:� 50,Y%,1230,Y%
� R+=ri:G+=gi:B+=bi:�
�+ � Y%=204 � 244:� R,G,B:� 50,Y%,1230,Y%
� R-=ri:G-=gi:B-=bi:�
� � Y%=242 � 764 �2
�( � pr,pg,pb:� X,Y%,X+W,Y%:X+=.5:W-=1
� pr=pr-pri:� pr<0 � pr=0
� pg=pg-pgi:� pg<0 � pg=0
� pb=pb-pbi:� pb<0 � pb=0
� �
�/ A%=memblock%+20+40960:W%=880:SX=200:Y%=140
�� � N%=A%�A%+611840�2560:X=SX:XI=W%/640:� J%=N%�N%+1278�2:S%=(1280*Y%+� X+screen%)�2*2:?S%=?J%:?(S%+1)=?(J%+1):X=X+XI:�:SX-=.5:W%+=1:Y%+=1
�! �:menu_box%=1:�upload_memory
� �
�
� � �load_rx_and_tx_code
�: � rx_code% �file_len("<Pscan$Dir>.Resources.PscanRX")
�8 �("LOAD <Pscan$Dir>.Resources.PscanRX "+�~rx_code%)
�$ rx_param%=rx_code%+(rx_code%!4)
� rx_parameters%=rx_param%
�
�: � hq_rx_code% �file_len("<Pscan$Dir>.Resources.HQRX")
�8 �("LOAD <Pscan$Dir>.Resources.HQRX "+�~hq_rx_code%)
�- hq_rx_param%=hq_rx_code%+(hq_rx_code%!4)
�  hq_parameters%=hq_rx_param%
�
�< � rx_table% �file_len("<Pscan$Dir>.Resources.RX_table")
�: �("LOAD <Pscan$Dir>.Resources.RX_table "+�~rx_table%)
�
�A � pd_rx_table% 4096 : � This table converts counts to 64-192
� � C%=0 � 4095
� F=(1/(4096-C%))*1000000
� D=(F-1500)/3.125/2+64
� � D<0 D=0
� � D>255 D=255
� pd_rx_table%?C%=D:�
�
�I � pd_auto_table% 3400 : � Convert measured sync frequency to offset.
�3 � C%=3096 � 3382     : � 1000 to 1400 Hz only.
� F=(1/(4096-C%))*1000000
� D=(F-1000)/3.125/2+32
� pd_auto_table%?C%=D:�
�
�G � tuning_indicator_table% 4096 : � Convert counts to screen offset
� � C%=0 � 4095
� F=(1/(4096-C%))*1000000
� D=(F-1000)/5
�# tuning_indicator_table%?C%=D:�
�
� � green_store% 12800*4
�$ green_store2%=green_store%+2560
�$ blue_store%=green_store%+2560*2
�% blue_store2%=green_store%+2560*3
�# red_store%=green_store%+2560*4
� �create_ry_tables
� �set_rx_parameters
�
�: � tx_code% �file_len("<Pscan$Dir>.Resources.PscanTX")
�8 �("LOAD <Pscan$Dir>.Resources.PscanTX "+�~tx_code%)
�# tx_param%=tx_code%+(!tx_code%)
� �tx_params_setup
�
�< � vis_code% �file_len("<Pscan$Dir>.Resources.PscanVIS")
�: �("LOAD <Pscan$Dir>.Resources.PscanVIS "+�~vis_code%)
�' vis_param%=vis_code%+(vis_code%!4)
�
�? � offset_code% �file_len("<Pscan$Dir>.Resources.PscanOFF")
�= �("LOAD <Pscan$Dir>.Resources.PscanOFF "+�~offset_code%)
�1 offset_result%=offset_code%+(offset_code%!4)
�
�= � auto_code% �file_len("<Pscan$Dir>.Resources.AutoMode")
�; �("LOAD <Pscan$Dir>.Resources.AutoMode "+�~auto_code%)
�
� � vis_table% 2360:N=0
 � C=3392 � 3100 �-1
- F=(1/(4096-C))*1000000:F2=F-180:F3=F+180
4 C2%=4096-(1/F2*1000000):C3%=4096-(1/F3*1000000)
5 !(vis_table%+N)=C2%:!(vis_table%+N+4)=C3%:N+=8:�
 vis_param%!24=vis_table%

 �

 � �create_ry_tables
	I � tab_ry1% 1024,tab_by1% 1024,tab_y1% 1024,tab_r1% 1024,tab_b1% 1024

 A%=0:� N%=-129 � 126
4 tab_ry1%!A%=�(N%*1.408):tab_by1%!A%=�(N%*1.786)
 A%+=4:�

 � N%=0 � 255
6 tab_y1%?N%=�((N%/2)*1.695):tab_r1%?N%=�(N%*0.508)
 tab_b1%?N%=�(N%*0.186):�
 �

 � �set_rx_parameters
; rx_param%!40=green_store%:hq_rx_param%!40=green_store%
= rx_param%!44=green_store2%:hq_rx_param%!44=green_store2%
9 rx_param%!48=blue_store%:hq_rx_param%!48=blue_store%
; rx_param%!52=blue_store2%:hq_rx_param%!52=blue_store2%
7 rx_param%!56=red_store%:hq_rx_param%!56=red_store%
 � screen_lines%=512 �
? rx_param%!76=screen%+558560:hq_rx_param%!76=screen%+558560
 �
? rx_param%!76=screen%+517600:hq_rx_param%!76=screen%+517600
 �
? rx_param%!80=screen%+632932:hq_rx_param%!80=screen%+632932
5 rx_param%!32=rx_table%:hq_rx_param%!32=rx_table%
1 rx_param%!36=screen%:hq_rx_param%!36=screen%
 = rx_param%!116=pd_rx_table%:hq_rx_param%!116=pd_rx_table%
!5 rx_param%!124=tab_ry1%:hq_rx_param%!124=tab_ry1%
"5 rx_param%!128=tab_by1%:hq_rx_param%!128=tab_by1%
#3 rx_param%!132=tab_y1%:hq_rx_param%!132=tab_y1%
$3 rx_param%!136=tab_r1%:hq_rx_param%!136=tab_r1%
%3 rx_param%!140=tab_b1%:hq_rx_param%!140=tab_b1%
& �
'
( � �tx_table_62
) G%=0:� X4% � M%=4 � M%=1
*& � F=1500*M% � 2301*M% � 800/31*M%
+ C=�(1/F/2*1000000*2-1+.5)
, tx_table%!G%=C:G%+=4:�
- �
.
/ � �tx_table_248
0 G%=0:� X4% � M%=4 � M%=1
1' � F=1500*M% � 2301*M% � 800/248*M%
2 C=�(1/F/2*1000000*2-1+.5)
3 tx_table%!G%=C:G%+=4:�
4 �
5
6 � �set_fax_tx_tones
7 � X4% �
8& tx_param%!104=108:tx_param%!108=0
9% tx_param%!72=108 :tx_param%!76=0
: �
;& tx_param%!104=178:tx_param%!108=1
<% tx_param%!72=64  :tx_param%!76=3
= �
> �
?
@ � �set_sstv_tx_tones
A � X4% �
B& tx_param%!104=166:tx_param%!108=0
C$ tx_param%!72=207:tx_param%!76=0
D �
E& tx_param%!104=154:tx_param%!108=2
F% tx_param%!72=64  :tx_param%!76=3
G �
H �
I
J � �tx_params_setup
K � tx_table% 1024
L � X4% �
M% tx_param%!64=226 :tx_param%!68=0
N% tx_param%!72=207 :tx_param%!76=0
O% tx_param%!80=191 :tx_param%!84=0
P% tx_param%!88=166 :tx_param%!92=0
Q& tx_param%!96=131 :tx_param%!100=0
R& tx_param%!104=108:tx_param%!108=0
S �
T% tx_param%!64=140 :tx_param%!68=3
U% tx_param%!72=64  :tx_param%!76=3
V% tx_param%!80=0   :tx_param%!84=3
W% tx_param%!88=154 :tx_param%!92=2
X& tx_param%!96=13  :tx_param%!100=2
Y& tx_param%!104=178:tx_param%!108=1
Z �
[ � pd_tx_buffer% 2592
\  tx_param%!112=pd_tx_buffer%
]; � red30% 250,grn59% 250,blu11% 250,ry71% 250,by56% 256
^ � N%=0 � 250
_ red30%?N%=�(N%*0.3+.5)
` grn59%?N%=�(N%*0.59+.4)
a blu11%?N%=�(N%*.11+.5)
b ry71%?N%=�(N%*.71+.5)
c by56%?N%=�(N%*.56+.5)
d �
e. tx_param%!120=red30%:tx_param%!124=grn59%
fA tx_param%!128=blu11%:tx_param%!132=ry71%:tx_param%!136=by56%
g �
h
i � �tx_frame(rflag%)
j �display_memory
k � 63 Ȝ 192
l N%=tx_code%+(!tx_code%)
mB � mode%>69 � mode%<80 � � 1997,"TX not available in HQ modes"
n' � mode%>59 � mode%<68 � �cal_pd_97
o � mode%<20 � �cal_sstv_new
p- � mode%>19 � mode%<23 � �cal_pasokon_new
q � mode%>99 � �cal_fax_new
r( N%!12=long% � 256:N%!16=long% � 256
s* N%!20=short% � 256:N%!24=short% � 256
t( N%!4=pixel% � 256:N%!8=pixel% � 256
u' � mode%>99 � N%!40=512 � N%!40=256
v8 � mode%>19 � mode%<23 � N%!40=496 : � Pasokon modes
w9 � mode%>59 � mode%<68 � �tx_table_248 � �tx_table_62
x. N%!36=tx_table% : � pass tx table address
y9 � mode%=62 � pd_offset%=�pd160_cursor � pd_offset%=0
zB � (mode%>19 � mode%<23) � (mode%>59 � mode%<66 � mode%<>62) �
{5  pd_offset%=20480:� 32,32,32:ȓ Ȑ 0,992,1280,40
|+  �pd_mode_header(0,960):�upload_memory
}  �
~, � mode%=63 � mode%=65 � pd_offset%=1280
C N%!0=screen%+pd_offset%   : � pass screen memory start address
�" N%!28=memblock%+20+pd_offset%
�; � mode%>99 � N%!52=TXphase% � 256:N%!56=TXphase% � 256
�B � N%=0 � 2592 �4:pd_tx_buffer%!N%=&7F7F7F7F:�:�wait_no_button
�
�; � rflag% �display_header_text(call$+" Pscan repeater")
�
�, � header_text% � mode%<100 � � rflag% �
�(  �display_header_text(header_text$)
� �
�
� tx_param%!148=serial_base%
�
�F � pd_offset%<>1 � E%=mode%:�(tx_code%+8):� 1 = PD160 cursor abort
� �display_memory:�mini_pad
� �
�
� � �cal_hq
� Ȏ mode% �
�F � 70:L=705410:P=534:pixel%=266:rx_param%!60=254:rx_param%!120=320
�H         rx_param%!36=screen%+5120:rx_param%!144=132:rx_param%!148=0
�-         rx_param%!168=30:rx_param%!172=2
�>         rx_param%!176=68:rx_param%!180=1:rx_param%!184=96
�5         corr=(L/1000000/2)*(clock_freq%-2000000)
�%         long%=(21680+corr)*2-0.5
�F � 71:L=873610:P=664:pixel%=331:rx_param%!60=254:rx_param%!120=320
�H         rx_param%!36=screen%+5120:rx_param%!144=165:rx_param%!148=0
�-         rx_param%!168=60:rx_param%!172=3
�?         rx_param%!176=165:rx_param%!180=0:rx_param%!184=80
�5         corr=(L/1000000/2)*(clock_freq%-2000000)
�-         long%=(21690+corr)*2-0.5        
� �
�# short%=pixel%:rx_param%!100=10
� �
�
� � �cal_pd_97
� Ȏ mode% �
�H � 60:L=754240 :P=286:pixel%=142:rx_param%!60=494:rx_param%!120=640:
�L � screen_lines%=512 � rx_param%!36=screen%+23040 � rx_param%!36=screen%
�H � 61:L=1000000:P=382:pixel%=190:rx_param%!60=494:rx_param%!120=640:
�L � screen_lines%=512 � rx_param%!36=screen%+23040 � rx_param%!36=screen%
�G � 62:L=804416 :P=382:pixel%=190:rx_param%!60=398:rx_param%!120=512
�-        :rx_param%!36=screen%+56*1280+128
�G � 63:L=703040 :P=532:pixel%=265:rx_param%!60=254:rx_param%!120=320
�K � screen_lines%=512 � rx_param%!36=screen%+3840 � rx_param%!36=screen%
�G � 64:L=508480 :P=190:pixel%=94:rx_param%!60=494:rx_param%!120=640:
�L � screen_lines%=512 � rx_param%!36=screen%+23040 � rx_param%!36=screen%
�G � 65:L=388160 :P=286:pixel%=142:rx_param%!60=254:rx_param%!120=320
�K � screen_lines%=512 � rx_param%!36=screen%+3840 � rx_param%!36=screen%
� �
� Ȏ mode% �
� � 60,61,64:tp%=2560
� � 62      :tp%=2048
� � 63,65   :tp%=1280
� �
�% TS=L-(tp%*P*2000000/clock_freq%)
� T1=TS*clock_freq%/2000000
�# long%=�(T1*2-.5):short%=pixel%
�2 rx_param%!100=16:rx_param%!144=pd_auto_table%
�! rx_param%!192=pd_auto_lines%
� �set_sstv_tx_tones
� �
�
� � �cal_pasokon_new
� Ȏ mode% �
�8 � 20:long=7453:short=1203:pixel=52:line_time=409375
�:        :pp1%=6976.5-4*208:pp2%=5*208:rx_param%!100=7 
�? � 21:long=11179.5:short=1804.5:pixel=78:line_time=614062.5
�<        :pp1%=10625-4*312.5:pp2%=5*312.5:rx_param%!100=9
�: � 22:long=14906:short=2406:pixel=104:line_time=818750
�?        :pp1%=14543.5-4*416.5:pp2%=5*416.5:rx_param%!100=11
� �
�E line_total=(pixel*2561*3+long+short+short)*(clock_freq%/2000000)
�: line_error=line_total-line_time:long=long+line_error 
� rx_param%!60=495  :� lines
�$ rx_param%!72=2560 :� 640 pixels
�L � screen_lines%=512 � rx_param%!36=screen%+21760 � rx_param%!36=screen%
� �set_sstv_tx_tones
�7 long%=long*2-.5:short%=short*2-.5:pixel%=pixel*2-1
�6 tx_param%!140=pp1% � 128:tx_param%!144=pp2% � 128
� �
�
� � �cal_fax_new
� Ȏ mode% �
�1 � 100,120:pixel=388.5:l%=1000000:phase%=7999
�1 � 101,121:pixel=258.5:l%=666667 :phase%=5333
�1 � 102,122:pixel=193.5:l%=500000 :phase%=3999
�1 � 103,123:pixel=128.5:l%=333333 :phase%=2665
�1 � 104,124:pixel=95.5 :l%=250000 :phase%=1999
�1 � 105,125:pixel=63.0 :l%=166667 :phase%=1333
�0 � 106,126:pixel=47.0 :l%=125000 :phase%=999
� �
�3 TXphase%=�(((l%/20)*clock_freq%/2000000)*2)-.5
�@ tv%=pixel*4*640:cst=l%-(tv%*2000000/clock_freq%):cst-=pixel
�4 long%=�(cst*2-.5):short%=long%:pixel%=pixel*2-1
�7 � mode%>119 � rx_param%!60=550 � rx_param%!60=1020
�' rx_param%!72=2560    :� 640 pixels
�2 rx_param%!36=screen% :� Start at top of frame
�8 rx_param%!84=phase% � 256:rx_param%!88=phase% � 256
�< rx_param%!156=&03000000:rx_param%!160=0:rx_param%!164=0
�? � mode%>119 � rx_param%!152=0 � rx_param%!152=fax_average%
� �set_fax_tx_tones
� �
�
� � �cal_sstv_new
� Ȏ mode% �
� � 1
�  Ȏ sstv_time% �
�!  � 1:long=5763.5:short=329.5
�!  � 2:long=5623.5:short=399.5
�!  � 3:long=5843.5:short=289.5
�  �
�"  pixel=114.5:line_time=446446
�6 � 2:long=6205:short=771:pixel=57:line_time=226798
�9 � 5:long=10392:short=1392:pixel=108:line_time=428220
�8 � 6:long=10175:short=1175:pixel=69:line_time=277692
�: � 9:long=10230:short=1230:pixel=270:line_time=1050300
�8 � 11:long=6710:short=533:pixel=183:line_time=711045
�8 � 12:long=5828:short=974:pixel=183:line_time=711045
� �
�E line_total=(1281*pixel*3+long+short+short)*(clock_freq%/2000000)
�9 line_error=line_total-line_time:long=long+line_error
� rx_param%!60=255  :� lines
�@ rx_param%!72=1280 :� 1280 "samples", each 1 is average of 4
�K � screen_lines%=512 � rx_param%!36=screen%+2560 � rx_param%!36=screen%
� rx_param%!100=6
�7 long%=long*2-.5:short%=short*2-.5:pixel%=pixel*2-1
� �
�

 � �rx_sstv(rflag%)

 � � rflag% �
) �3,255,255,255:ȓ Ȑ 10*64+8,6,48,46
 �

	 L%=0

	 � auto_find% �

  �auto_mode_find
  auto_find%=�
 �


/ � L%=1 � L%=2 � �dismini:�wait_no_button:�
1 � Auto-mode aborted (L%=1) or timeout (L%=2)

N � mode%=70 � mode%=71 rx_param%=hq_parameters% � rx_param%=rx_parameters%
' �set_rx_parameters:rx_param%!152=0
- � N%=0 � 12796 �4:green_store%!N%=3440:�

2 � mode%=60 � mode%=61 � mode%=62 � mode%=64 �
  � 32,32,32
   � mode%=62 �
    ȓ Ȑ 0,0,1280,1024
   �
    ȓ Ȑ 0,988,1280,64
   �
 �
!  � 0,0,0:ȓ Ȑ 0,1020,1280,4
 �

  � mode%<20 � �cal_sstv_new
!- � mode%>19 � mode%<23 � �cal_pasokon_new
" � mode%>99 � �cal_fax_new
#' � mode%>59 � mode%<67 � �cal_pd_97
$$ � mode%>69 � mode%<80 � �cal_hq
%A short2%=short%+pixel%:lines%=rx_param%!60:rx_param%!68=mode%
&6 rx_param%!0=pixel% � 256:rx_param%!4=pixel% � 256
'7 rx_param%!8=pixel% � 256:rx_param%!12=pixel% � 256
(: rx_param%!16=short2% � 256:rx_param%!20=short2% � 256
)6 rx_param%!24=long% � 256:rx_param%!28=long% � 256
*" � mode%<100 �tuning_indicator
+< � mode%>99 � mbox%=10 � rx_param%!92=1 � rx_param%!92=0
, rx_param%!196=serial_base%
- �
. �wait_no_button:K=�(1)
/1 �interface_offset:rx_param%!112=Ioffset% � 2
0* rx_param%!188=tuning_indicator_table%
1 rx_param%!64=0
25 � mode%=70 � mode%=71 � hq_rx_code% � � rx_code%
3 � rx_param%!64=96 �
4  � 96 = re-sync
5!  � mode%>99 � rx_param%!92=1
6  � mode%>59 � mode%<80 �
7#  rx_param%!60=(rx_param%!60)-2
8  �
9#  rx_param%!60=(rx_param%!60)-1
: �
; �
< � rx_param%!64<>96
=
>! � lines%-(rx_param%!60)>12 �
?D   N%=screen_lines%*2-1-(((rx_param%!36)-screen%)�640):�32,32,32
@    � N%>0 �
A(     � Y%=0 � N% �2:� 0,Y%,1280,Y%:�
B	    �
CP   � mode%<20 � mode%=70 � mode%=71 � mode%=63 � mode%=65 !screen%=&80008000
D �
E   �display_memory
F �
G
H% � rx_param%!164>511 � mode%>99 �
I@ S%=screen%:SL%=(rx_param%!164)-511:screen%=screen%+1280*SL%
J; �upload_memory:screen%=S%:sb%=rx_param%+156:sb2%=sb%+4
KA !sb%=&03000000:!sb2%=0:ș "OS_Word",22,sb%+3:�display_memory
L �
M
N& � rflag% �upload_memory � �upmini
O �7:� reset_t0_code%
P �wait_no_button
Q �
R
S � �tuning_indicator
T" �raised_block(426,100,434,90)
U � 0,0,0
V+ � N%=480 � 800 �40:ȓ Ȑ N%,108,2,54:�
W" � 0,64,32:ȓ Ȑ 636,108,10,56
X# � 0,40,96:ȓ Ȑ 466,116,350,38
Y �write2("Lo",416,118,4)
Z �write2("Hi",812,118,4)
[= ș sprswi%,256+52,spb%,"ti_scale",458,170,8,0,translate%
\ �
]
^ � �interface_offset
_# offset_result%!16=serial_base%
` � offset_code%
a- t1=(offset_result%!0)/(offset_result%!4)
b. t2=(offset_result%!8)/(offset_result%!12)
c N%=t2-t1+1
d+ � �(N%)<100 � Ioffset%=(Ioffset%+N%)/2
e � call$="G4IJE" �
fA �63:� �23,58);"Last value:";N%;"  Running average:";Ioffset%
g �
h �
i
j � �vis_start
k) �3,255,255,255:ȓ Ȑ 8*64+6,8,112,44
l r%=64:g%=255:b%=64
m" � r%,g%,b%:ȓ Ȑ 612,24,10,10
n � mode%>99 �
o �rx_sstv(�)
p �
q% � 196,196,196:ȓ Ȑ 390,6,112,46
r vis_quit%=0
s0 vis_param%!80=0 : � Normal (wide) bandwidth
t vis_param%!4=serial_base%
u �
v �wait_no_button
w �:� vis_code%
x, g%=g%�255:� r%,g%,b%:ȓ Ȑ 612,24,10,10
y � !vis_param%<>256
z VIS%=!vis_param%
{ �vis_convert_to_mode(VIS%)
| � good_vis% �
}" � 255,64,0:ȓ Ȑ 612,24,10,10
~- �5:�0 Ȝ0:�400,36:� mode$(mode%):�4:�:Ȗ
 �rx_sstv(�):vis_quit%=�
� �
�4 � VIS%=320 � auto_save%=0:�mini_pad:vis_quit%=�
� � vis_quit%
� �
� �
�
� � �tx_test_tone(f%)
� � X4% � M%=4 � M%=1
�% c%=�(1/(f%*M%)/2*1000000*2-1+.5)
�2 vis_param%!56=c% � 256:vis_param%!60=c% � 256
�0 vis_param%!80=0 : � normal VIS / test tones
� vis_param%!4=serial_base%
�2 �wait_no_button:�raised_block(842,90,208,640)
�% � 255,255,0:ȓ Ȑ 850,550,186,94
�! �write2("Sending",874,600,4)
�" �write2(� f%+" Hz",874,560,4)
�" �raised_block(870,200,150,40)
�  �write2("Cancel",884,204,4)
� ȗ � 990,216:Ȗ
� � vis_code%+(vis_code%!8)
�# �wait_no_button:menu_redraw%=�
� �
�
� � �update_rtc(upd%)
� ?rtc_buffer%=1
�' ș "IIC_Control",&A0,rtc_buffer%,1
�' ș "IIC_Control",&A1,rtc_buffer%,6
�  S$=�~rtc_buffer%?1:s%=�(S$)
� � s%<30 � s%+=1:S$=�(s%)
� � � S$<2 � S$="0"+S$
�, M$=�~rtc_buffer%?2:� � M$<2 � M$="0"+M$
�8 h%=rtc_buffer%?3:� bst_flag% � h%+=1:� h%=24 � h%=0
�! H$=�~h%:� � H$<2 � H$="0"+H$
� � H$>=��$,17,2) �
�5 ?rtc_buffer%=8:$(rtc_buffer%+1)=H$+":"+M$+":"+S$
�' � upd% ș "OS_Word",15,rtc_buffer%
� �
� �
�
� � �check_for_bst
� ?rtc_buffer%=1
�' ș "IIC_Control",&A0,rtc_buffer%,1
�' ș "IIC_Control",&A1,rtc_buffer%,6
�, H$=�~rtc_buffer%?3:� � H$<2 � H$="0"+H$
�6 T$=��$,17,2):� H$<>T$ � bst_flag%=� � bst_flag%=0
� �
�
� � �auto_save
� �
�( � 128+21 Ȝ0:�:�mini_pad:�vis_start
� � VIS%<>320 �
� ?rtc_buffer%=1
�' ș "IIC_Control",&A0,rtc_buffer%,1
�' ș "IIC_Control",&A1,rtc_buffer%,6
�, M$=�~rtc_buffer%?2:� � M$<2 � M$="0"+M$
�, H$=�~rtc_buffer%?3:� � H$<2 � H$="0"+H$
�# F$=��$,8,3)+��$,5,2)+"-"+H$+M$
�4 save_type$="jpeg1":�save_jpeg(auto_dir$+"."+F$)
� auto_count%+=1:MEM%=MEM%+1
� � MEM%=memories% � MEM%=0
� �
� � VIS%=320
� �
�
� � �waveform_assemble
� � waveform_code% 400
� � P=0 � 2 �2
� P%=waveform_code%
�' base1=3:data=4:offset1=5:offset2=6
�% increment=7:lines=8:wave_limit=9
� base2=10:rgb=11
� [OPT P
�; LDR base1,waveform_source:LDR base2,waveform_plot_base
�A LDR increment,waveform_increment:MOV R1,#1280:MOV lines,#256
�@ MOV offset1,#0:MOV offset2,#0:LDR wave_limit,waveform_limit
� LDR rgb,waveform_rgb
� .wave_loop
�! LDR base2,waveform_plot_base
� LDR data,[base1,offset1]
�" CMP rgb,#2:�Q data,data,LSR#5
�# CMP rgb,#3:�Q data,data,LSR#10
� � R0,data,#31
�) MOV data,data,LSR#16:� data,data,#31
�# ADD R0,data,R0:MOV R0,R0,LSL#1
� MUL data,R0,R1
� SUB data,base2,data
� LDR R0,[data,offset2]
� CMP R0,wave_limit
�0 ADDNE R0,R0,increment:STR R0,[data,offset2]
�. ADD data,data,#1280:STR R0,[data,offset2]
�3 ADD offset1,offset1,#16:ADD offset2,offset2,#4
�# CMP offset2,#320:BNE wave_loop
�" MOV offset1,#0:MOV offset2,#0
�< ADD base1,base1,#2560:SUBS lines,lines,#1:BNE wave_loop
�
� .wave_exit
� MOV PC,R14
�
� .waveform_source    EQUD 0
� .waveform_plot_base EQUD 0
�' .waveform_increment EQUD &00200020
�' .waveform_limit     EQUD &03E003E0
� .waveform_rgb       EQUD 0
�
� ]
� �
� �
�
� � �waveform_monitor
� exit%=0
� �
� �display_memory
�" � 64,64,64:ȓ Ȑ 0,0,1280,320
�# � 128,128,128:� 0,320,1280,320
� � 0,0,0
� ȓ Ȑ 20,14,318,254
� ȓ Ȑ 348,14,318,254
� ȓ Ȑ 676,14,318,254
�, �raised_block(1060,20,160,50) :� Cancel
�, �raised_block(1060,100,160,50):� Upload
�  �write2("Cancel",1080,28,4)
�! �write2("Upload",1080,108,4)
� �write2("RED",144,274,1)
� �write2("GREEN",458,274,1)
� �write2("BLUE",794,274,1)
�
�	 m%=1
� � X%=1030 � 1210 � 60
9 �raised_block(X%,250,40,40):�write2(� m%,X%-2,254,4)
< �raised_block(X%,190,40,40):�write2(�(m%+4),X%-2,194,4)
 m%+=1:�

 � 3,63 Ȝ192
 Ȏ MEM% �
 � 0:ȓ Ȑ 1026,246,46,48
 � 1:ȓ Ȑ 1086,246,46,48
 � 2:ȓ Ȑ 1146,246,46,48
	 � 3:ȓ Ȑ 1206,246,46,48

 � 4:ȓ Ȑ 1026,186,46,48
 � 5:ȓ Ȑ 1086,186,46,48
 � 6:ȓ Ȑ 1146,186,46,48

 � 7:ȓ Ȑ 1206,186,46,48
 �

< !waveform_increment=&00400040:!waveform_limit=&03C003C0
 !waveform_rgb=1 : � RED
" !waveform_source=memblock%+20
' !waveform_plot_base=screen%+642580
 � waveform_code%
 !waveform_rgb=2 : � GREEN
+ !waveform_plot_base=screen%+642600+310
 � waveform_code%
 !waveform_rgb=3 : � BLUE
+ !waveform_plot_base=screen%+642600+636
 � waveform_code%

 � 50 Ȝ 192
/ � Y=39.4 � 242.6 �25.4:� 18,Y:� 17,978,0:�
) � X=18 � 980 �82:� X,16:� 17,0,252:�

  �wait_no_button
!& �:ȗ X,Y,B:K$=�(1):� B=4 � K$<>""
" � K$<>"" �
#  X=0:m%=�(K$)-49
$A  � m%>-1 � m%<memories% �memory_select(m%,0):�display_memory
%  �
&
' � B=4 �
(
)  m%=99
**  � �check_button(1030,250,40,40) m%=0
+*  � �check_button(1090,250,40,40) m%=1
,*  � �check_button(1150,250,40,40) m%=2
-*  � �check_button(1210,250,40,40) m%=3
.*  � �check_button(1030,190,40,40) m%=4
/*  � �check_button(1090,190,40,40) m%=5
0*  � �check_button(1150,190,40,40) m%=6
1*  � �check_button(1210,190,40,40) m%=7
29  � m%<memories% �memory_select(m%,0):�display_memory
3
4(  � �check_button(1060,100,160,50) �
5  �upload_memory:exit%=�
6  �
7
8'  � �check_button(1060,20,160,50) �
9  �display_memory:exit%=�
:  �
;
< �
=
> � exit%
? �
@
A � �segment_menu
B menu$(0)="Segment grads  "
C menu$(1)="Preset type 1"
D menu$(2)="Preset type 2"
E menu$(3)="Preset type 3"
F menu$(4)="Preset type 4"
G menu$(5)="User defined"
H  menu$(6)="*":�menu(0,90,-1)
I Ȏ menu_box% �
J � 1:R=255:G=0:B=0
K � 2:R=128:G=128:B=128
L � 3:R=128:G=128:B=255
M � 4:R=0:G=255:B=128
N- � 5:�rgb_sliders(0):R=red%:G=grn%:B=blu%
O �
P* � menu_box%<>99 � �segment_background
Q �
R
S � �segment_background
T �wait_no_button
U# � 64,64,64:ȓ Ȑ 0,0,1280,1024
V# �raised_block(310,184,600,100)
W> �write2("Move mouse pointer to desired centre",320,240,4)
XC �write2("then click select - click adjust to abort",320,200,4)
Y �:ȗ x,y,b:� b<>0:� b=4 �
Z ȑ x,y:� x,y:� x,y
[! RI=2:GI=1:BI=3:hi%=255:lo%=0
\ step=(2*�)/512
] � A=0 � 2*�+step � step
^" � R,G,B:X=1640*� A:Y=1640*� A
_( X2=1640*�(A+step):Y2=1640*�(A+step)
` � &B5,X2,Y2:� 0,0,X,Y
a
 R+=RI
b � R>hi% � R=hi%:RI=-RI
c � R<lo% � R=lo%:RI=-RI
d
 G+=GI
e � G>hi% � G=hi%:GI=-GI
f � G<lo% � G=lo%:GI=-GI
g
 B+=BI
h � B>hi% � B=hi%:BI=-BI
i � B<lo% � B=lo%:BI=-BI
j
 �:ȑ 0,0
k! � �(merge%) � �upload_memory
l �
m �
n
o � �pixel_rgb
p x%=0:y%=0
q �
r$ �display_memory:�wait_no_button
s' �raised_block(550+x%,8+y%,160,108)
t, � 220,220,120:ȓ Ȑ 550+x%,84+y%,158,30
u) �write2("RGB values",544+x%,84+y%,4)
v( �write2("R   G   B",556+x%,44+y%,4)
w ȗ X1,Y1,B
x �
y& �:ȗ X,Y,B:� X<>X1 � Y<>Y1 � B<>0
z rgb%=�X,Y):X1=X:Y1=Y
{0 r%=rgb%�31:g%=(rgb%>>5)�31:b%=(rgb%>>10)�31
|# r$=�(r%):� �(r$)<2 � r$="0"+r$
}# g$=�(g%):� �(g$)<2 � g$="0"+g$
~# b$=�(b%):� �(b$)<2 � b$="0"+b$
, � 208,208,216:ȓ Ȑ 560+x%,14+y%,140,28
� �write2(r$,550+x%,10+y%,4)
� �write2(g$,600+x%,10+y%,4)
� �write2(b$,650+x%,10+y%,4)
� � B<>0
� � B=4 � y%=y% � 894
� � B=1:�display_memory
� �
�
� � �mode(mode$)
� � c$,ex,ey,mode,end
�" � mode 64:end=mode+20:!mode=1
� mode!4=� �_m(mode$,"X","")
� mode!8=� �_m(mode$,"Y","")
� c$=�_m(mode$,"C","*")
� � c$="*" �
� c$=�_m(mode$,"G","")
�) � c$="256" � !end=3:end!4=255:end+=8
� �
� mode!12=�_bpp(c$)
�" mode!16=� �_m(mode$,"F","-1")
� ex=� �_m(mode$,"EX","-1")
�& � ex<>-1 � !end=4:end!4=ex:end+=8
� ey=� �_m(mode$,"EY","-1")
�& � ey<>-1 � !end=5:end!4=ey:end+=8
� !end=-1
� � �
� � � � �
� � mode
� � �
� �
�
� � �_m(s$,p$,d$)
� � i,j:i=�s$,p$)
�( � i<1 � d$="" � � 490,"Missing "+p$
� j=�s$+" "," ",i+1)
�* � i<1 � fnm$=d$ � fnm$=�s$,i+1,j-i-1)
�
 =fnm$
�
� � �_bpp(n$)
� Ȏ n$ �
� � "2":bpp%=0
� � "4":bpp%=1
� � "16":bpp%=2
� � "256":bpp%=3
�% � "32T","32t","32K","32k":bpp%=4
� � "16M","16m":bpp%=5
�' :bpp%=0:� 490,"Bad parameter "+n$
� �
�
 =bpp%
�
� � �mem_to_block(m%)
� Ȏ m% �
� � 1:mb%=mem1%
� � 2:mb%=mem2%
� � 3:mb%=mem3%
� � 4:mb%=mem4%
� � 5:mb%=mem5%
� � 6:mb%=mem6%
� � 7:mb%=mem7%
� � 8:mb%=mem8%
� �
�	 =mb%
�
� � �quad_display
�4 tl%=9:tr%=9:bl%=9:br%=9:quad_quit%=0:quad_ok%=0
�" � 0,32,64:ȓ Ȑ 0,0,1280,1024
�- !source_address=�mem_to_block(MEM%+1)+20
�C !dest_address=screen%+164160:!quarter_lines=256:� make_quarter
�
� M%=1:� QB%=4 � 7 �3
� � M%<=memories% �
�:  !dest_address=screen%+(QB% � 4)*163840+(QB% � 4)*320
�F  !source_address=�mem_to_block(M%)+20:!mini_lines=128:� make_mini
�
  M%+=7:�
� �
�
� M%=3:� QB%=12 � 15
� � M%<=memories% �
�:  !dest_address=screen%+(QB% � 4)*163840+(QB% � 4)*320
�F  !source_address=�mem_to_block(M%)+20:!mini_lines=128:� make_mini
�
  M%+=1:�
� �
�
� M%=2:� QB%=8 � 11 �3
� � M%<=memories% �
�:  !dest_address=screen%+(QB% � 4)*163840+(QB% � 4)*320
�F  !source_address=�mem_to_block(M%)+20:!mini_lines=128:� make_mini
�
  M%+=5:�
� �
� 
�0 � QB%=12 � 15:�quad_border(QB%,255,255,0):�
�1 � QB%=4 � 7 �3:�quad_border(QB%,255,255,0):�
�2 � QB%=8 � 11 �3:�quad_border(QB%,255,255,0):�
� �quad_border2
�# �raised_block(460,800,360,120)
�" �raised_block(490,820,120,40)
�" �raised_block(668,820,120,40)
�  �write2("CANCEL",492,824,4)
� �write2("OK",700,824,4)
�, �write2("Pscan Quad Display",494,880,4)
� �
� �:ȗ X,Y,B:� B<>0
�/ � �(X-550)<62 � �(Y-844)<22 � quad_quit%=�
�- � �(X-728)<62 � �(Y-844)<22 � quad_ok%=�
�$ � �(quad_quit%) � �(quad_ok%) �
�/ MB1%=(X � 321)+((1024-Y)� 257)*4:x1=X:y1=Y
�N � MB1%=4 � MB1%=7 � MB1%=8 � (MB1%>10 � MB1%<16) � �quad_cursor(MB1%,X,Y)
�' MB2%=(x1 � 321)+((1024-y1)� 257)*4
�7 � MB1%=4 � MB1%=7 � MB1%=8 � (MB1%>10 � MB1%<16) �
�6 � MB2%=5 � MB2%=6 � MB2%=9 � MB2%=10 � �quad_move
� �
� �
� � quad_quit% � quad_ok%
� � quad_ok% �
� �display_memory
� � tl%<>9 �
�0 !source_address=�mem_to_block(tl%)+20+40960
�B !dest_address=screen%+40960:!quarter_lines=240:� make_quarter
� �
� � tr%<>9 �
�0 !source_address=�mem_to_block(tr%)+20+40960
�B !dest_address=screen%+41600:!quarter_lines=240:� make_quarter
� �
� � bl%<>9 �
�0 !source_address=�mem_to_block(bl%)+20+40960
�C !dest_address=screen%+348160:!quarter_lines=240:� make_quarter
� �
� � br%<>9 �
0 !source_address=�mem_to_block(br%)+20+40960
C !dest_address=screen%+348800:!quarter_lines=240:� make_quarter
 �
! �upload_memory:�topscale2(0)
 �

 �dismini
 �
 �

	! � �quad_border(qb%,r%,g%,b%)

 � r%,g%,b%
, y%=768-((qb% � 4)*256):x%=(qb% � 4)*320
 ȓ x%,y%,318,254

 ȓ x%+2,y%+2,314,250
 ȓ x%+4,y%+4,310,246
 �

 � �quad_border2
4 � 255,0,0:ȓ 320,256,318,238:ȓ 640,256,318,238
* ȓ 320,496,318,238:ȓ 640,496,318,238
 �

 � �quad_move
 Ȏ MB1% �

 � 4:M%=1

 � 7:M%=8

 � 8:M%=2
 � 11:M%=7
 � 12,13,14,15:M%=MB1%-9
 �
 � M%<=memories% �
# � MB2%=5 � MB2%=6 o%=16 � o%=8
 C !dest_address=screen%+(MB2% � 4)*163840+(MB2% � 4)*320+1280*o%
!M !source_address=�mem_to_block(M%)+20+1280*32:!mini_lines=120:� make_mini
" �quad_border2
# Ȏ MB2% �
$ � 5:tl%=M%
% � 6:tr%=M%
& � 9:bl%=M%
' � 10:br%=M%
( �
) �
* �
+
,  � �quad_cursor(source%,x,y)
-8 qcx%=(source% � 4)*320:qcy%=768-((source% � 4)*256)
.( xo%=x-qcx%:yo%=y-qcy%:� 3,63 Ȝ 192
/ ȓ qcx%,qcy%,318,238
0 �
1 �:ȗ x1,y1,B
2 � x1<>x � y1<>y � B=0
3
 � B<>0 �
4 ȓ qcx%,qcy%,318,238
5 qcx%=x1-xo%:qcy%=y1-yo%
6 ȓ qcx%,qcy%,318,238
7 x=x1:y=y1
8 �
9 ȓ qcx%,qcy%,318,238
: �
;
 � B=0
< �
= 
>* � �quad_display_border(r%,g%,b%,qbw$)
? �display_memory
@ Ȏ qbw$ �
A � "n":qw%=10
B � "m":qw%=20
C � "w":qw%=30
D �
E � r%,g%,b%:�display_memory
F ȓ Ȑ 0,0,qw%,960
G ȓ Ȑ 0,960-qw%,1280,qw%
H ȓ Ȑ 1279-qw%,0,qw%,960
I ȓ Ȑ 0,0,1280,qw%
J ȓ Ȑ 640-qw%/2,0,qw%,960
K ȓ Ȑ 0,480-qw%/2,1280,qw%
L �upmini
M �
N 
O � �quad_border_menu
P �
Q" menu$(0)="  Quad borders    "
R? � qbw$="n" � menu$(1)=�128+" Narrow" � menu$(1)="  Narrow"
S? � qbw$="m" � menu$(2)=�128+" Medium" � menu$(2)="  Medium"
T; � qbw$="w" � menu$(3)=�128+" Wide" � menu$(3)="  Wide"
U! menu$(4)="  Colour selector"
V  menu$(5)="*":�menu(0,90,-1)
W Ȏ menu_box% �
X � 1:qbw$="n"
Y � 2:qbw$="m"
Z � 3:qbw$="w"
[ � 4:�rgb_sliders(0)
\ �
]! � menu_box%=4 � menu_box%=99
^J � menu_box%=4 � �quad_display_border(red%,grn%,blu%,qbw$):menu_box%=1
_ �
` 
a � �reset_t0_assemble
b � reset_t0_code% 64
c � P=0 � 2 �2
d P%=reset_t0_code%
e [OPT P
f SWI "OS_EnterOS"
g MOV R2,#&03200000
h! MOV R0,#31:STRB R0,[R2,#&40]
i! MOV R0,#78:STRB R0,[R2,#&44]
j$ TEQP PC,#0:MOV R0,R0:MOV PC,R14
k ]:�
l �
m 
n � �pd160_cursor
o& �wait_no_button:ȗ ȓ 0,0,254,222
p$ ȗ X,Y,B:� 3,63:ȓ X,Y,1024,768
q �
r �:ȗ X1,Y1,B
s � X1<>X � Y1<>Y � B<>0
t ȓ X,Y,1024,768
u ȓ X1,Y1,1024,768
v X=X1:Y=Y1:� B<>0
w ȓ X1,Y1,1024,768
x X%=(X � 4)*4:Y%=(Y � 2)*2
y ȗ ȓ 0,0,1280,1024
z � B=4 �
{ � 32,32,32
| ȓ Ȑ 0,0,1280,Y%-2
} ȓ Ȑ 0,0,X%-2,1024
~ ȓ Ȑ 1024+X%,0,256,1024
 ȓ Ȑ 0,Y%+768,1280,280
� �pd_mode_header(X%,Y%+768)
� �upload_memory
� pdr%=((224-Y%)/2)*1280+X%
� �
� pdr%=1
� �
�
 =pdr%
�
� � �pd_mode_header(X%,Y%)
�! � mode%=62 � W%=624 � W%=880
�* � mode%=63 � mode%=65 � H%=64 � H%=32
� � 48,48,184
� ȓ Ȑ X%,Y%,200,H%
� ȓ Ȑ X%+W%+198,Y%,204,H%
�% ȓ Ȑ X%,Y%,204,H%:� 255,255,255
�
� Ȏ mode% �
� � 20:pd$=" P-3"
� � 21:pd$=" P-5"
� � 22:pd$=" P-7"
� � 60:pd$="PD180"
� � 61:pd$="PD240"
� � 62:pd$="PD160"
� � 63:pd$="PD 90"
� � 64:pd$="PD120"
� � 65:pd$="PD 50"
� �
� �5
� � mode%=63 � mode%=65 �
� �23,17,7,6,16;32;0;
�
 h%=54
� �
� �23,17,7,6,16;16;0;
�
 h%=28
� �
� � X%+W%+220,Y%+h%:� pd$
�  � �(call$)>5 � x%=4 � x%=16
� � X%+x%,Y%+h%:� call$
� �23,17,7,6,8;8;0;:�4:�:Ȗ
� G%=6:w=W%/31
� � x%=X%+200 � x%+W%-w � w
�" � G%,G%,G%:ȓ Ȑ x%,Y%,w+8,H%
� G%+=8:�
� �
�
� � �load_on_line_manual
�>  mantile_size%=�file_len("<Pscan$Dir>.PSsprites.Mantile")
�2  manual_size%=�file_len("<Pscan$Dir>.Manual")
�1  � spr_manual% mantile_size%+manual_size%+32
�"  !spr_manual%=mantile_size%+4
�8  spr_manual%!4=0:spr_manual%!8=16:spr_manual%!12=16
�C  ș sprswi%,256+10,spr_manual%,"<Pscan$Dir>.PSsprites.Mantile"
�D  �("LOAD <Pscan$Dir>.Manual "+�~(spr_manual%+mantile_size%+16))
� �
�
� � �on_line_manual
�$ T%=spr_manual%+mantile_size%+16
�D ch%=0:!man_block_temp=T%:!man_len_temp=manual_size%:� man_code%
�# � 80,80,80:ȓ Ȑ 0,0,1280,1024
�% � 255,255,255:� 8,1008,1266,1008
�. � 8,1010,1266,1010:� 0,0,0:� 8,78,1266,78
�2 � 8,76,1266,76:� 16,16,16:� 1268,76,1268,1010
�1 � 1270,76,1270,1010:�5,26:�23,17,7,6,8;16;0;
�- CR%=0:N%=0:manquit%=�:newpara%=�:page%=0
�( �manual_buttons:man_box%=99:�mouse3
�
� �:�manual_background
�= � newpara% � � 0,64,160:ȓ Ȑ 16,954,1240,48:� 255,255,0
�' � 24,992:!(page_store%+page%*4)=N%
�
�% �:K%=?(T%+N%):� K%=�"�" � CR%=26
� � K%=10 �
�& � 13,10:CR%+=1:� BY 24,-4:� 0,0,0
�( � ?(T%+N%+3)=41 � CR%=25:newpara%=�
� � newpara%=�
� �
� � K%>30 � � K%
� N%+=1:� CR%>24
�
�
 page%+=1
� � newpara% � page%>1 �
�0 � BY 0,32:� 64,0,196:� "� End of chapter �"
� �
�  � page%>1 � �manual_control
�! CR%=0:� BY 24,-16:� manquit%
� �4:�:Ȗ:�dismini
� *POINTER 1
� �
�
� � �manual_control
�! � 80,80,80:ȓ Ȑ 0,16,800,54
�" � 128,0,255:ȓ Ȑ 8,22,750,48
� � page%=2 �
�K  �write2("Click on a line in the index to go to that chapter",24,30,1)
� �
�K  �write2("Click anywhere on this page to return to the index",24,30,1)
� �
�" �wait_no_button:� 3,63 Ȝ 192
� Ȏ man_box% �
� � 8:ȓ Ȑ 924,22,110,48
� � 9:ȓ Ȑ 1038,22,110,46
� �
�' � : � page%=2 when index displayed
� �:ȗ X,Y,B
�. � Y>200 � Y<860 � �(X-640)>32 � page%=2 �
�
  �mouse3
� �
�  *POINTER 1
� �
�% index%=(((1024-Y+8) � 36)-5)*2+1
� � X>640 � index%+=1
� � B<>0
�) � (index%>0 � index%<36) � page%=2 �
�5 N%=man_chapter%!(index%*4):man_box%=2:newpara%=�
� �
�7 � Y>18 � Y<72 � man_box%=(X-10) � 114 � man_box%=0
� �
� Ȏ man_box% �
� � 0:N%=0:page%=0
� � 8:�man_page_back
�C � 9:� CR%<>26 � ȓ Ȑ 1038,22,110,48 � N%=0:page%=0:man_box%=0
� � 10:manquit%=�
� �
�9 � man_box%=0 � man_box%=2 � man_box%>7 � man_box%<11
� � 0,0,0
� �
�
� � �man_page_back
 � page%>0 � page%<200 �
! N%=page_store%!((page%-2)*4)
! ȓ Ȑ 924,22,110,48:page%-=2
. � ?(T%+N%+2)=41 � newpara%=� � newpara%=�
 �
 �

 � �manual_background
+ � X%=8 � 848 � 420:� Y%=80 � 696 � 308
	H ș sprswi%,256+52,spr_manual%,"mantile",X%,Y%,0,0,translate256%:�:�

 �

 � �manual_buttons

8 � X%=814 � 1156 � 114:�raised_block(X%,26,102,40):�
< �write2("next >",1036,30,4):�write2("Cancel",1150,30,4)
: �write2("< back",920,30,4):�write2("Search",806,30,6)
 �

 � �manual_assemble
 � man_code% 256
 � P=0 � 2 �2
 P%=man_code%
 [OPT P
. LDR R3,man_block_temp:LDR R4,man_len_temp
- LDR R5,man_chap_temp:MOV R2,#0:MOV R6,#0
3 .man_loop LDRB R0,[R3,R2]:CMP R0,#10:BNE no_lf
, ADD R2,R2,#3:LDRB R0,[R3,R2]:CMP R0,#41
@ SUB R2,R2,#2:STREQ R2,[R5,R6]:ADDEQ R6,R6,#4:SUBEQ R2,R2,#1
/ .no_lf ADD R2,R2,#1:CMP R2,R4:BLT man_loop
 MOV R0,R6:MOV PC,R14
 .man_block_temp EQUD 0
 .man_len_temp   EQUD 0
  .man_chap_temp  EQUD 0
! ]
" �
#F � page_store% 200*4,man_chapter% 50*4:!man_chap_temp=man_chapter%
$ �
%
& � �tran_menu
'  menu$(0)="Rotate or flip  "
( menu$(1)="Rotate left 90"
) menu$(2)="Rotate right 90"
* menu$(3)="Rotate 180"
+ menu$(4)="Flip left-right"
, menu$(5)="Flip top-bottom"
-  menu$(6)="*":�menu(0,90,-1)
. Ȏ menu_box% �
/N � 1:x1%=128:y1%=-128:x2%=128:y2%=1151:x3%=1151:y3%=1151:x4%=1151:y4%=-128
0N � 2:x1%=1151:y1%=1151:x2%=1151:y2%=-128:x3%=128:y3%=-128:x4%=128:y4%=1151
1D � 3:x1%=1279:y1%=0:x2%=0:y2%=0:x3%=0:y3%=1023:x4%=1279:y4%=1023
2D � 4:x1%=1279:y1%=1023:x2%=0:y2%=1023:x3%=0:y3%=0:x4%=1279:y4%=0
3D � 5:x1%=0:y1%=0:x2%=1279:y2%=0:x3%=1279:y3%=1023:x4%=0:y4%=1023
4 �
5 � menu_box%<>99 �
6 �display_memory
7$ tran%!0=x1%*256:tran%!4=y1%*256
8% tran%!8=x2%*256:tran%!12=y2%*256
9& tran%!16=x3%*256:tran%!20=y3%*256
:& tran%!24=x4%*256:tran%!28=y4%*256
;D memblock%!0=655420:memblock%!4=0:memblock%!8=16:memblock%!12=16
<7 ș sprswi%,256+16,memblock%,"tran",0,0,0,1279,1023
=# � 32,32,32:ȓ Ȑ 0,0,1280,1024
>2 ș sprswi%,256+56,memblock%,"tran",1,,0,tran%
? menu_box%=1:�upload_memory
@ �
A �
B
C
 � �merge
D< !merge_mem_temp=memblock%+20:!merge_screen_temp=screen%
E! � merge_code%:�upload_memory
F �
G
H � �merge_assemble
I � merge_code% 320
J7 mem_base=1:scrn_base=2:offset=3:data=4:new_word=12
K> red1=5:green1=6:blue1=7:red2=8:green2=9:blue2=10:lines=11
L � P=0 � 2 � 2
M P%=merge_code%
N [OPT P
O@ LDR mem_base,merge_mem_temp:LDR scrn_base,merge_screen_temp
P! MOV offset,#0:MOV lines,#512
Q
R .merge_loop
S/ LDR data,[mem_base,offset]:� red1,data,#31
T* MOV data,data,LSR#5:� green1,data,#31
U) MOV data,data,LSR#5:� blue1,data,#31
V@ LDR R0,[scrn_base,offset]:� red2,R0,#31:MOV red2,red2,LSR#1
W< MOV R0,R0,LSR#5:� green2,R0,#31:MOV green2,green2,LSR#1
X9 MOV R0,R0,LSR#5:� blue2,R0,#31:MOV blue2,blue2,LSR#1
YE ADD red1,red1,red2:CMP red1,#31:MOVGT red1,#31:MOV new_word,red1
Z= ADD green1,green1,green2:CMP green1,#31:MOVGT green1,#31
[9 MOV green1,green1,LSL#5:ADD new_word,new_word,green1
\8 ADD blue1,blue1,blue2:CMP blue1,#31:MOVGT blue1,#31
]7 MOV blue1,blue1,LSL#10:ADD new_word,new_word,blue1
^
_( MOV data,data,LSR#6:� red1,data,#31
`* MOV data,data,LSR#5:� green1,data,#31
a) MOV data,data,LSR#5:� blue1,data,#31
b6 MOV R0,R0,LSR#6:� red2,R0,#31:MOV red2,red2,LSR#1
c< MOV R0,R0,LSR#5:� green2,R0,#31:MOV green2,green2,LSR#1
d9 MOV R0,R0,LSR#5:� blue2,R0,#31:MOV blue2,blue2,LSR#1
e3 ADD red1,red1,red2:CMP red1,#31:MOVGT red1,#31
f4 MOV red1,red1,LSL#16:ADD new_word,new_word,red1
g= ADD green1,green1,green2:CMP green1,#31:MOVGT green1,#31
h: MOV green1,green1,LSL#21:ADD new_word,new_word,green1
i8 ADD blue1,blue1,blue2:CMP blue1,#31:MOVGT blue1,#31
j7 MOV blue1,blue1,LSL#26:ADD new_word,new_word,blue1
k$ STR new_word,[scrn_base,offset]
l9 ADD offset,offset,#4:CMP offset,#1280:BNE merge_loop
mL MOV offset,#0:ADD mem_base,mem_base,#1280:ADD scrn_base,scrn_base,#1280
n' SUBS lines,lines,#1:BNE merge_loop
o MOV PC,R14
p
q .merge_mem_temp    EQUD 0
r .merge_screen_temp EQUD 0
s ]
t �
u �
v
w � �read_sys_var(sv$)
x1 ș "OS_ReadVarVal",sv$,sysvar%,255,0,3 �,,b%
y. V$="":� N%=0 � b%-1:V$=V$+�(sysvar%?N%):�
z =V$
{ 
| � �file_len(f$)
} � r0%,r5%
~$ ș "OS_File",17,f$ � r0%,,,,r5%
 � r0%=0 �
�)  � � ije_dev% � ș "OS_Byte",229,1,0
�"  ș "Wimp_SetMode",modestore%
�  � 0,"File "+f$+" not found. This copy of Pscan may be corrupt - please re-install it from the original disk or ZIP file."
� �
�  =(r5%+4)
� �
�
� � �misc_backgrounds
� menu$(0)="Miscellaneous "
� menu$(1)="Squares"
� menu$(2)="Spheres"
� menu$(3)="Horizontal"
� menu$(4)="Vertical"
� menu$(5)="Diagonal"
� menu$(6)="Spectrum - H"
� menu$(7)="Spectrum - V"
�  menu$(8)="*":�menu(0,90,-1)
� Ȏ menu_box% �
� � 1:�squares
� � 2:�spheres
� � 3:�horiz_pipes
� � 4:�vert_pipes
� � 5:�diagonal2
� � 6,7:�spectrum(menu_box%)
� �
� �
�
� � �horiz_pipes
�% RI=2:GI=6:BI=1:R=242:G=242:B=242
�, � Y%=0 � 1024 �2:� R,G,B:� 0,Y%,1280,Y%
� R+=RI:G+=GI:B+=BI
� � R>242 � R<12 � RI=-RI
� � G>242 � G<12 � GI=-GI
� � B>242 � B<12 � BI=-BI
� �
�! � �(merge%) � �upload_memory
� �
�
� � �vert_pipes
�% RI=2:GI=6:BI=1:R=242:G=242:B=242
�, � X%=0 � 1280 �2:� R,G,B:� X%,0,X%,1024
� R+=RI:G+=GI:B+=BI
� � R>242 � R<12 � RI=-RI
� � G>242 � G<12 � GI=-GI
� � B>242 � B<12 � BI=-BI
� �
�! � �(merge%) � �upload_memory
� �
�
� � �squares
�. �:� y%=0 � 1024 � 120:� x%=0 � 1280 � 128
�< X%=x%:Y%=y%:W%=128:H%=128:R%=255:G%=68:B%=0:� N%=1 � 32
�! � R%,G%,B%:ȓ Ȑ X%,Y%,W%,H%
�( G%+=6:X%+=2:Y%+=2:W%-=4:H%-=4:�:�:�
�! � �(merge%) � �upload_memory
� �
�
� � �spheres
�) � 255,68,0:ȓ Ȑ 0,0,1280,1024:o%=32
�, � y%=0 � 1024 � 128:� x%=0 � 1280 � 128
�( X%=x%:Y%=y%:r%=64:R%=255:G%=68:B%=0
�3 � N%=1 � 32:� R%,G%,B%:ȏ Ȑ X%+o%+32,Y%+64,r%
� G%+=6:r%-=2:�:�:o%=-o%:�
�! � �(merge%) � �upload_memory
� �
�
� � �spectrum(t%)
�& �:ri=0:gi=0:bi=-2:r=255:g=0:b=255
�
 � t%=6 �
�* p1%=254:p2%=508:p3%=762:p4%=1016:pi=2
� �
�+ p1%=204:p2%=408:p3%=612:p4%=816:pi=2.4
� �
� � X%=0 � 1272 �2
� � r,g,b
�3 � t%=6 � ȓ Ȑ X%,0,2,1024 � ȓ Ȑ 0,X%,1280,2
� r+=ri:g+=gi:b+=bi
� Ȏ X% �
� � p1%:ri=0:gi=pi:bi=0:b=0
� � p2%:ri=-pi:gi=0:bi=0
� � p3%:ri=0:gi=0:bi=pi
� � p4%:ri=0:gi=-pi:bi=0
� �
� �
� � t%=6 � ȓ Ȑ X%,0,8,1024
�! � �(merge%) � �upload_memory
� �
�
� � �diagonal2
�% R=0:G=255:B=255:RI=16:GI=16:BI=4
�  Y=2048:� X%=-1280 � 1280 �8
� � R,G,B:� X%,0:� 1280,Y
�" � 85,1280,0:R+=RI:G+=GI:B+=BI
� � R>255 R=255:RI=-RI
� � G>255 G=255:GI=-GI
� � B>255 B=255:BI=-BI
� � R<0 R=0:RI=-RI
� � G<0 G=0:GI=-GI
� � B<0 B=0:BI=-BI
�* Y-=6.4:�:� �(merge%) � �upload_memory
� �
�
� � �text_mask_menu
� menu$(0)="Text masks" 
�# menu$(1)="Create text mask   "
� � mask_created% �
� menu$(2)="Plot text mask"
� �
�! menu$(2)="{no mask created}"
� �
�  menu$(3)="*":�menu(0,90,-1)
� Ȏ menu_box% �
�& � 1:�create_text_mask:menu_box%=5
�$ � 2:�plot_text_mask:menu_box%=1
� �
� �
�
� � �create_text_mask
�# font$="":first_time%=�:quit%=�
�4 �font_text(-1):menu_redraw%=�:xps%=xp%:yps%=yp%
�
� �
�
�! �32 Ȝ0:ȓ Ȑ 0,404,1280,620
�
� � font$<>"" �
�
� � first_time% �
" � 0,0,136:ȓ Ȑ 0,0,1280,1024
% � 200,200,200:ȓ Ȑ 0,0,1280,370
" �raised_block(784,16,216,342)
' � 255,180,100:ȓ Ȑ 784,320,212,38
9 ș sprswi%,256+52,spb%,"left",810,220,8,0,translate%
: ș sprswi%,256+52,spb%,"right",930,220,8,0,translate%
9 ș sprswi%,256+52,spb%,"left",810,100,8,0,translate%
: ș sprswi%,256+52,spb%,"right",930,100,8,0,translate%
# �write2("x/y point",812,272,4)
	! �write2("y point",828,152,4)

  �raised_block(798,32,80,32)
  �raised_block(904,32,80,32)
 �write2("UNDO",792,32,4)

 �write2("OK",914,32,4)
# �write2("  Re-size",800,324,4)
? �write2("Click OK or press <return> to finish.",120,220,4)
' ȗ ȓ 784,16,216,338:first_time%=�
 �

1 !spr%=txtsize%:spr%!4=0:spr%!8=16:spr%!12=16
1 �make_text_mask(font$,text1$,text2$,xp%,yp%)
3 ș sprswi%,256+52,spr%,"textmask",32,460,8,0,0
 �show_point_sizes

 �:K=�(1):� K=-1
 point_button$=""
$ �:ȗ X,Y,B:K=�(5):� B<>0 � K=13

 � K=13 quit%=�

 � B=1 � B=4 �
1 � �(X-838)<44 � �(Y-48)<22 xp%=xps%:yp%=yps%
 ' � �(X-942)<44 � �(Y-48)<22 quit%=�
!3 � �(X-830)<28 � �(Y-240)<28 point_button$="xm"
"3 � �(X-942)<28 � �(Y-240)<28 point_button$="xp"
#3 � �(X-830)<28 � �(Y-120)<28 point_button$="ym"
$3 � �(X-942)<28 � �(Y-120)<28 point_button$="yp"
% Ȏ point_button$ �
&" � "xm":� xp%>10 xp%-=2:yp%-=2
'# � "xp":� xp%<200 xp%+=2:yp%+=2
( � "ym":� yp%>10 yp%-=2
) � "yp":� yp%<200 yp%+=2
* �
+ �
,
- mask_created%=�
. �
/ � quit% � font$=""
0
 �dismini
1 �
2
3 � �plot_text_mask
4 � mask_created% �
5$  �display_memory:�position_mask
6   � B=4 �
7B   ș sprswi%,256+40,spr%,"textmask" �,,,W%,H%:W%=W%*2:H%=H%*2
8<   ș sprswi%,256+16,spr%,"textmask",0,X%,Y%,X%+W%,Y%+H%
9(   ș sprswi%,256+29,spr%,"textmask"
:*   ș sprswi%,256+61,spr%,"textmask",0
;   � 0:ȓ Ȑ 0,0,W%,H%
<   � text2$<>"" �
=6   �write(font$,text1$,4,YO1%+H2%+yp%/2,xp%,yp%,4)
>+   �write(font$,text2$,4,YO%,xp%,yp%,4)
?   �
@+   �write(font$,text1$,4,YO%,xp%,yp%,4)
A   �
B&   ș sprswi%,256+61,spr%,0,0:�:Ȗ
CC   overlay%=�:overlay_outline%=�:sprite_name$="textmask":OOC%=1
D   mask_created%=�
E   �
F �
G �
H
I' � �write(F$,text$,x%,y%,xp%,yp%,c)
J) � font%<>-1 ș "Font_LoseFont",font%
K1 ș "Font_FindFont",,F$,xp%*16,yp%*16 � font%
L t%=&65757254
M Ȏ c �
NE  � 0:ș "Font_SetPalette",,0,0,0,&FFFFFF00,0,t% :� Black no anti
OE  � 1:ș "Font_SetPalette",,0,0,0,0,&FFFFFF00,t% :� White no anti
PB  � 2:ș "Font_SetPalette",,0,1,14,&FFFFFF00,0,t%:� Black anti
Q,  � 3:ș "Font_SetPalette",,0,0,0,0,0,t%
R.  � 4:ș "Font_SetFontColours",font%,1,1,0
SK  � 5:ș "Font_SetPalette",,0,1,14,&DC000000,&00FFFF00,t%:� Yellow anti
TF  � 6:ș "Font_SetPalette",,0,0,0,0,&00FFFF00,t% :� Yellow no anti
UJ  � 7:ș "Font_SetPalette",,0,1,14,&DC000000,&FFFFFF00,t%:� White anti
V 
W:  ș "Font_SetPalette",,0,0,0,0,c,t% : � RGB - no anti
X �
Y
Z) ș "Font_Paint",font%,text$,16,x%,y%
[" ș "Font_LoseFont",font%:�:Ȗ
\ �
]
^+ � �text_bound_box(font$,text$,xp%,yp%)
_) � font%<>-1 ș "Font_LoseFont",font%
`8 ș "Font_FindFont",,font$,16*xp%,16*yp%,0,0 � font%
a H%=0:ymin%=0:ymax%=0
b � N%=1 � �(text$)
cB ș "Font_CharBBox",font%,�(�text$,N%,1)),16 �,r1%,r2%,r3%,r4%
d � r2%<ymin% � ymin%=r2%
e � r4%>ymax% � ymax%=r4%
f4 ș "Font_Converttopoints",,1280,1024 � ,px%,py%
g6 ș "Font_StringWidth",,text$,px%,py%,-1,256 �,,W%
h# ș "Font_ConverttoOS",,W% �,W%
i �
j+ W%+=12:H%=ymax%-ymin%+4:YO%=(-ymin%)+4
k �
l
m3 � �make_text_mask(font$,text1$,text2$,xp%,yp%)
nA �text_bound_box(font$,text1$,xp%,yp%):H1%=H%:W1%=W%:YO1%=YO%
o � text2$<>"" �
pA �text_bound_box(font$,text2$,xp%,yp%):H2%=H%:H%=H%+H1%+yp%/2
q � W1%>W% � W%=W1%
r �
s2 ș sprswi%,256+16,spr%,"textmask",0,0,0,W%,H%
t& ș sprswi%,256+29,spr%,"textmask"
u( ș sprswi%,256+60,spr%,"textmask",0
v" � 255,255,255:ȓ Ȑ 0,0,W%,H%
w$ ș sprswi%,256+60,spr%,0,0:�:Ȗ
x( ș sprswi%,256+61,spr%,"textmask",0
y � text2$<>"" �
z4 �write(font$,text1$,4,YO1%+H2%+yp%/2,xp%,yp%,3)
{) �write(font$,text2$,4,YO%,xp%,yp%,3)
| �
}) �write(font$,text1$,4,YO%,xp%,yp%,3)
~ �
$ ș sprswi%,256+61,spr%,0,0:�:Ȗ
�4 screen_grabbed%=0:overlay%=�:overlay_outline%=0
�# sprite_name$="textmask":OOC%=0
� �
�
� � �position_mask
� ȗ X%,Y%,B%:p%=11
�3 ș sprswi%,256+52,spr%,"textmask",X%,Y%,p%,0,0
�0 �:� ȗ X1%,Y1%,B:� X1%<>X% � Y1%<>Y% � B<>0
�3 ș sprswi%,256+52,spr%,"textmask",X%,Y%,p%,0,0
�& � B=2 � p%=p% � 8:�wait_no_button
�5 ș sprswi%,256+52,spr%,"textmask",X1%,Y1%,p%,0,0
� X%=X1%:Y%=Y1%
� � B=1 � B=4
�: � B=4 � ș sprswi%,256+52,spr%,"textmask",X%,Y%,8,0,0
� �
�
�# � �sprite_shadow(ssx%,ssy%,s%)
�6 ș sprswi%,256+40,spr%,sprite_name$ �,,,ssw%,ssh%
�3 ș sprswi%,256+24,spr%,sprite_name$ �,,spradd%
�
 � s%=1 �
�$ � N%=0 � 31:d%=N%-2:� d%<0 d%=0
�& grndata?N%=d%:�:ssx%=(ssx% � 4)*4
�> !sprshad_mask=spradd%+(spradd%!36):!sprshad_table=grndata
�2 !sprshad_bytes=(ssw%�4)*8:!sprshad_lines=ssh%
�4 start%=screen%+(((1024-ssy%)�2)-ssh%)*1280+ssx%
�  start%+=13*1284:� S%=1 � 16
�E � start%-screen%<1280*4 � 796,"Shadow is too near top of screen"
�+ !sprshad_screen=start%:� sprshad_code%
� start%-=1284:�
� �
�: � N%=0 � 31:d%=N%/2:grndata?N%=d%:�:ssx%=(ssx% � 4)*4
�> !sprshad_mask=spradd%+(spradd%!36):!sprshad_table=grndata
�2 !sprshad_bytes=(ssw%�4)*8:!sprshad_lines=ssh%
�4 start%=screen%+(((1024-ssy%)�2)-ssh%)*1280+ssx%
�E � start%-screen%<1280*4 � 796,"Shadow is too near top of screen"
�/ � s%=2 � start%+=12*1282 � start%+=20*1282
�+ !sprshad_screen=start%:� sprshad_code%
� �
� �
�
� � �sprite_shadow_assemble
� � sprshad_code% 320
�? scrn_base=1:mask_base=2:table=3:data1=4:lines=5:maskbits=6
�; word=7:Soffset=8:mask=9:Moffset=10:pixel1=11:pixel2=12
� � P=0 � 2 � 2
� P%=sprshad_code%
� [OPT P
�< LDR scrn_base,sprshad_screen:LDR mask_base,sprshad_mask
�: LDR table,sprshad_table:MOV Soffset,#0:MOV Moffset,#0
�- LDR lines,sprshad_lines:MOV maskbits,#32
�! LDR mask,[mask_base,Moffset]
�
� .sprshad_loop
�" LDR data1,[scrn_base,Soffset]
�5 MOV pixel1,data1,LSL#16:MOV pixel1,pixel1,LSR#16
� MOV pixel2,data1,LSR#16 
�
� TST mask,#1:BEQ second
�
� MOV word,#0
�/ � data1,pixel1,#31:LDRB word,[table,data1]
�/ MOV pixel1,pixel1,LSR#5:� data1,pixel1,#31
�1 LDRB R0,[table,data1]:ADD word,word,R0,LSL#5
�/ MOV pixel1,pixel1,LSR#5:� data1,pixel1,#31
�B LDRB R0,[table,data1]:ADD word,word,R0,LSL#10:MOV pixel1,word
�
� .second
�3 MOV mask,mask,LSR#1:TST mask,#1:BEQ word_ready
�
� MOV word,#0
�/ � data1,pixel2,#31:LDRB word,[table,data1]
�/ MOV pixel2,pixel2,LSR#5:� data1,pixel2,#31
�1 LDRB R0,[table,data1]:ADD word,word,R0,LSL#5
�/ MOV pixel2,pixel2,LSR#5:� data1,pixel2,#31
�B LDRB R0,[table,data1]:ADD word,word,R0,LSL#10:MOV pixel2,word
�
� .word_ready
�? ADD word,pixel1,pixel2,LSL#16:STR word,[scrn_base,Soffset]
�@ MOV mask,mask,LSR#1:SUBS maskbits,maskbits,#2:BNE more_bits
�, MOV maskbits,#32:ADD Moffset,Moffset,#4
�! LDR mask,[mask_base,Moffset]
� .more_bits
�0 ADD Soffset,Soffset,#4:LDR R0,sprshad_bytes
�$ CMP Soffset,R0:BLT sprshad_loop
�, MOV maskbits,#32:ADD Moffset,Moffset,#4
�! LDR mask,[mask_base,Moffset]
�1 MOV Soffset,#0:ADD scrn_base,scrn_base,#1280
�) SUBS lines,lines,#1:BNE sprshad_loop
� MOV PC,R14
�
� .sprshad_screen EQUD 0
� .sprshad_mask   EQUD 0
� .sprshad_table  EQUD 0
� .sprshad_bytes  EQUD 0
� .sprshad_lines  EQUD 0
� ]
� �
� �
�
� � �thumb_cursor(x,y)
�@ tcx%=(thumb_box% � 8)*160+2:tcy%=898-((thumb_box% � 8)*128)
�( xo%=x-tcx%:yo%=y-tcy%:� 3,63 Ȝ 192
� ȓ tcx%,tcy%,154,122
� �
� �:ȗ x1,y1,B
� � x1<>x � y1<>y � B=0
�
 � B<>0 �
�1 ȓ tcx%,tcy%,154,122:tcx%=x1-xo%:tcy%=y1-yo%
�# ȓ tcx%,tcy%,154,122:x=x1:y=y1
� �
� ȓ tcx%,tcy%,154,122
� �
�
 � B=0
� �
�
� � �show_thumbnails
�% � 48,48,184:ȓ Ȑ 0,0,1280,1024 
� � M%=1 � memories%
�) !source_address=�mem_to_block(M%)+20
�- !dest_address=screen%+160*(M%-1)+1280*64
� � make_thumbnail:�
�# � N%=1 � 8:load_list$(N%)="":�
�9 � 255,255,255:ȓ Ȑ 30,980,420,8:ȓ Ȑ 818,980,420,8
�1 �write2("Pscan thumbnail display",460,964,0)
�1 �write2("Pscan thumbnail display",456,968,1)
�; �raised_block(32,40,40,40):�raised_block(80,40,184,40)
�? �raised_block(272,40,40,40):�write2("Bank select",76,44,4)
�/ �write2("<",32,44,4):�write2(">",272,44,4)
E �raised_block(340,40,280,40):�write2("Create new bank",354,44,4)
> �raised_block(660,40,280,40):�raised_block(970,40,280,40)
* �write2("Undo last updates",660,44,4)
) �write2("Close thumbnails",980,44,4)
8 ș sprswi%,256+52,thblock%,"thumbnails",0,128,0,0,0
/ thmodify%=�:thumb_load_file%=�:ff%=0:ft%=0
 �
) � 128,255,255:ȓ 0,766,1276,126:N%=1
 � X%=0 � 1280-160 �160
	  � N%=MEM%+1 � tc%=0 � tc%=5

* � tc%=0 � � 255,255,255 � � 48,48,184
, ȓ Ȑ X%,898,160,40:ȓ Ȑ X%,720,160,40
1 � N%=MEM%+1 � �write2("Current",X%+14,724,0)

3 � N%<=memories% � �write2(�(N%),X%+56,900,tc%)
, N%+=1:� 128,255,255:ȓ X%,764,158,130:�
# � 255,255,0:ȓ Ȑ 0,640,1280,2
% � 128,180,255:ȓ Ȑ 0,644,380,50
I �write2("Thumbnail bank "+� thumb_bank%+" of "+� thumb_max%,8,654,0)
, �wait_no_button:fstart$="":� 64,255,128
 �:ȗ X,Y,B
 �check_alt_s_save
) thumb_box%=((1024-Y)�128)*8+(X �160)
% F$=$(thpath%+(thumb_box%-24)*80)
 � F$<>fstart$ �
 ȓ Ȑ 380,644,900,50
E � thumb_box%>23 � thumb_box%<56 �write2(F$,388,654,0):fstart$=F$
 �
 � B=4 � B=1

  � �(X-50)<30 � �(Y-64)<30 �
 � thumb_bank%>1 �
+ � B=1 � thumb_bank%=1 � thumb_bank%-=1
 & �load_thumbnail_bank(thumb_bank%)
!8 ș sprswi%,256+52,thblock%,"thumbnails",0,128,0,0,0
" �
# �
$
%! � �(X-288)<30 � �(Y-64)<30 �
& � thumb_bank%<thumb_max% �
'4 � B=1 � thumb_bank%=thumb_max% � thumb_bank%+=1
(& �load_thumbnail_bank(thumb_bank%)
)8 ș sprswi%,256+52,thblock%,"thumbnails",0,128,0,0,0
* �
+ �
,
-& � thumb_box%>23 � thumb_box%<56 �
. � Click on thumbnail
/  �thumb_cursor(X,Y):ȗ X,Y,B
0* thumb_box2%=((1024-Y)�128)*8+(X �160)
1   � thumb_box2%=thumb_box% �
2'   F$=$(thpath%+(thumb_box%-24)*80)
3   � F$<>"{Empty}" �
4(   ș "OS_File",20,F$ � ff%,,,,,,ft%
5'   thumb_box%=99:thumb_load_file%=�
6   �
7  �
8C   � thumb_box2%>7 � thumb_box2%<16 � thumb_box2%-8<memories% �
9'   L$=$(thpath%+(thumb_box%-24)*80)
:   � L$<>"{Empty}" �
;#   load_list$(thumb_box2%-7)=L$
<N   sourceX%=(thumb_box% � 8)*160+2:sourceY%=1028-(((thumb_box%� 8)+1)*128)
=L   destX%=(thumb_box2% � 8)*160+2:destY%=1024-(((thumb_box2%� 8)+1)*128)
>;   � sourceX%,sourceY%:� BY 154,122:� &BE,destX%,destY%
?   �
@   �
A  �
B �
C
D> � thumb_box%>7 � thumb_box%<16 � thumb_box%-8<memories% �
E4 � Click on pic mem - possible drag to thumbnail
F  �thumb_cursor(X,Y):ȗ X,Y,B
G; thumb_box2%=((1024-Y)�128)*8+(X �160):M%=thumb_box2%-8
H= � M%<memories% � MEM%=M%:memblock%=�mem_to_block(MEM%+1)
I( � thumb_box2%>23 � thumb_box2%<56 �
JL sourceX%=(thumb_box% � 8)*160+2:sourceY%=1024-(((thumb_box%� 8)+1)*128)
KJ destX%=(thumb_box2% � 8)*160+2:destY%=1028-(((thumb_box2%� 8)+1)*128)
L9 � sourceX%,sourceY%:� BY 154,122:� &BE,destX%,destY%
MG �update_thumb_path(thumb_box2%-24,path$(thumb_box%-7)):thmodify%=�
N �
O �
P
Q@ � thumb_box%=58 � thumb_box%=59 �create_blank_thumbnail("")
R
S � thumb_box%>59
T
U& � thumb_box%=60 � thumb_box%=61 �
V) ș sprswi%,256+10,thblock%,thumbpix$
W( �("LOAD "+thumbpath$+" "+�~thpath%)
X/ thmodify%=�:� N%=1 � 8:load_list$(N%)="":�
Y �
Z
[ � thmodify% �
\= ș sprswi%,256+16,thblock%,"thumbnails",0,0,128,1279,639
]) ș sprswi%,256+12,thblock%,thumbpix$
^< ș "OS_File",10,thumbpath$,&FFD,0,thpath%,thpath%+2560 
_ �
`
a � thumb_load_file% �
b  � ff%=0 �
c=  X=(thumb_box2% � 8)*160+2:Y=900-((thumb_box2% � 8)*128)
d#  � 48,48,184:ȓ Ȑ X,Y,154,122
e.  $(thpath%+(thumb_box2%-24)*80)="{Empty}"
f>  ș sprswi%,256+16,thblock%,"thumbnails",0,0,128,1279,639
g*  ș sprswi%,256+12,thblock%,thumbpix$
h<  ș "OS_File",10,thumbpath$,&FFD,0,thpath%,thpath%+2560
iz  � 1,"This picture seems to have been deleted, renamed or moved."+�13+�13+"The thumbnail entry has now been emptied."
j  �
k
 Ȏ ft% �
l � &FF9:�:�load_sprite(F$)
m � &C85:�:�load_jpeg(F$)
n � &96A:�:�load_pscan(F$)
o � &69D:�:�load_targa(F$)
p 
qL � 1,F$+" has a filetype of &"+�~ft%+". This cannot be loaded by Pscan."
r �
s �
t
u � NN%=1 � 8
v9 � load_list$(NN%)<>"" � load_list$(NN%)<>"{Empty}" �
w* F$=load_list$(NN%):load_list$(NN%)=""
x& ș "OS_File",20,F$ � ff%,,,,,,ft%
y, MEM%=NN%-1:memblock%=�mem_to_block(NN%)
z
 Ȏ ft% �
{ � &FF9:�:�load_sprite(F$)
| � &C85:�:�load_jpeg(F$)
} � &96A:�:�load_pscan(F$)
~ � &69D:�:�load_targa(F$)
 
�L � 1,F$+" has a filetype of &"+�~ft%+". This cannot be loaded by Pscan."
� �
� �
� �
�
�
 �dismini
� �
�
�  � �update_thumb_path(N%,P$)
�� � P$="X" � 1,"Only pictures loaded from disk can be added to thumbnail bank."+�13+�13+"Modified or received pictures must be saved first."
�G � �(P$)>78 � 1,"Path name is too long to store in thumbnail file."
� $(thpath%+N%*80)=P$
� �
�
�" � �create_blank_thumbnail(t$)
� � 48,48,184
� � t$="new" �
� ȓ Ȑ 0,0,1280,1024
� �
� ȓ Ȑ 0,128,1280,514
� �
� � 255,255,0
� ȓ 0,128,1276,514
� � Y%=130 � 642-128 �128
� � X%=0 � 1280-160 �160
� ȓ X%,Y%,158,126:�:�
�2 � t$="new" � N%=0 � N%=�count_thumbnail_banks
�K � N%>31 � 1,"Maximum number of thumbnail banks (32) has been reached."
�' N$=�(N%+1):� (N%+1)<10 � N$="0"+N$
�' thumbpix$=Thumbdir$+".ThumbPix"+N$
�( thumbpath$=Thumbdir$+".ThumPath"+N$
�= ș sprswi%,256+16,thblock%,"thumbnails",0,0,128,1279,639
�) ș sprswi%,256+12,thblock%,thumbpix$
�" � N%=0 � 2559:thpath%?N%=32:�
�- � N%=0 � 31:$(thpath%+N%*80)="{Empty}":�
�; ș "OS_File",10,thumbpath$,&FFD,0,thpath%,thpath%+&A00
�) thumb_max%+=1:thumb_bank%=thumb_max%
� �
�
� � �count_thumbnail_banks
�+ N%=1:�:� N%<10 N$="0"+�(N%) � N$=�(N%)
�= F%=�(Thumbdir$+".ThumPath"+N$):�#F%:N%+=1:� F%=0 � N%>35
�
 =N%-2
�
� � �load_thumbnail_bank(N%)
� N$=�(N%):� N%<10 N$="0"+N$
�' thumbpix$=Thumbdir$+".ThumbPix"+N$
�( thumbpath$=Thumbdir$+".ThumPath"+N$
�) ș sprswi%,256+10,thblock%,thumbpix$
�( �("LOAD "+thumbpath$+" "+�~thpath%)
� �
�  
� � �qwiktext
�- �display_memory:X=0:ys%=864:Y=ys%:qb%=-1
� � 3,63
� Ȏ qwiktext_colour% �
� � 1:col%=&FFFFFF00
� � 2:col%=&00FFFF00
� � 3:col%=&FFFF0000
� � 4:col%=&00FF0000
� � 5:col%=&FF00FF00
� � 6:col%=&0000FF00
� � 7:col%=&FF000000
� � 8:col%=&00000000
� �
� Ȏ qwiktext_block% �
� � 10:r%=255:g%=255:b%=255
� � 11:r%=255:g%=255:b%=0
� � 12:r%=0:g%=255:b%=255
� � 13:r%=0:g%=255:b%=0
� � 14:r%=255:g%=0:b%=255
� � 15:r%=255:g%=0:b%=0
� � 16:r%=0:g%=0:b%=255
� � 17:r%=0:g%=0:b%=0
� � 18:qb%=0
� �
� X1=1280-(� call$+3)*80
� � qb% �
�#  � r%,g%,b%:ȓ Ȑ X1,0,160,118
�  ȓ Ȑ X1+80*3,0,1280,118
�  �
� � 3,63
� �qwrite("DE",col%,X1,24)
�# �qwrite(call$,col%,X1+80*3,24)
�, ș "OS_Byte",237,0,255 �,cursor_status%
� ș "OS_Byte",237,1,0
� �
� C=0
� �
� ȓ Ȑ X,Y-24,80,118:C=�(C)
� ȗ x,y,b:K=�(20)
� � (� K) � b
� � C ȓ Ȑ X,Y-24,80,118
�
� � K>135 � K<140 �
� Ȏ K �
�1 � 136:X-=80:� X<0 X=1200:Y+=120:� Y>ys% Y=24
�0 � 137:X+=80:� X>1200 X=0:Y-=120:� Y<0 Y=ys%
� � 138:Y-=120:� Y<0 Y=ys%
� � 139:Y+=120:� Y>ys% Y=24
� �
� �
�
� � K=30 � X=0:Y=ys%:� Home
�% � K=135 � X=1200:Y=24:� End/Copy
�" � K=27 � b=1:� Quit on Escape
�
� � K>31 � K<127 �
�  � qb% � K<>32 �
�$  � r%,g%,b%:ȓ Ȑ X,Y-24,80,118
�  � 3,63
�  �
� k$=� K
�? � k$="g" � k$="j" � k$="p" � k$="q" � k$="y" yo%=4 � yo%=0
� �qwrite(� K,col%,X,Y+yo%)
�
 X+=80
�  � X>1200 �
�  X=0:Y-=120:� Y<0 Y=ys%
�  �
� �
�
�" � K=13 X=0:Y-=120:� Y<0 Y=ys%
�
� � K=8 � K=127 �
�+ X-=80:� X<0 X=1200:Y+=120:� Y>ys% Y=24
� �redraw(X,Y-24,84,120)
� �
�
 � b<>0
 � b=4 �upload_memory
& ș "OS_Byte",237,cursor_status%,0

 �dismini
 �

" � �qwrite(text$,qtcol%,x%,y%)
3 ș "Font_SetPalette",,0,0,0,0,qtcol%,&65757254
) � font%<>-1 ș "Font_LoseFont",font%
	: ș "Font_FindFont",,"Corpus.Bold",52*16,56*16 � font%

% ș "Font_Paint",,text$,&14,x%,y%
' ș "Font_Paint",,text$,&14,x%+4,y%
 ș "Font_LoseFont",font%

 �

 � �auto_mode_find
% � 196,196,196:ȓ Ȑ 390,6,112,46
" �raised_block(426,100,434,90)
5 �write2("Searching for SSTV mode ...",440,128,4)
 �wait_no_button

 � �0,2);
8 auto_code%!12=30000 : � 30000 x 500 �S = 15 seconds
 auto_code%!16=serial_base%
 �
 auto_code%!4=Ioffset% � 2
! � auto_code%:L%=auto_code%!8
 � PRINT L%
 �mode_from_line_time(L%)
 � M%<>0 � L%=1 � L%=2
+ � L%=1 on mouse abort, L%=2 on timeout
 � M%<>0 �

 mode%=M%
 - �5:�0 Ȝ0:�400,36:� mode$(mode%):�4:�:Ȗ
! �
" �
#
$ � �mode_from_line_time(L%)
%	 M%=0
& � �(L%-893)<4  M%=1  :� M1
' � �(L%-454)<4  M%=2  :� M2
( � �(L%-856)<4  M%=5  :� S1
) � �(L%-555)<4  M%=6  :� S2
*! � �(L%-2101)<4 M%=9  :� S-DX
+$ � �(L%-1422)<4 M%=11 :� SC2-180
, � �(L%-819)<4  M%=20 :� P3
- � �(L%-1228)<4 M%=21 :� P5
. � �(L%-1638)<4 M%=22 :� P7
/" � �(L%-1406)<3 M%=63 :� PD-90
0# � �(L%-1017)<4 M%=64 :� PD-120
1# � �(L%-1609)<4 M%=62 :� PD-160
2# � �(L%-1508)<4 M%=60 :� PD-180
3# � �(L%-2000)<4 M%=61 :� PD-240
4" � �(L%-776)<4  M%=65 :� PD-50
5! � �(L%-1411)<3 M%=70 :� HQ-1
6! � �(L%-1747)<4 M%=71 :� HQ-2
7 �
8
92 � �user_pathname(� start$,ux%,uy%,len%,flag%)
: ȑ 0,0:start2$=start$
; � flag% �
< ȗ ȓ 0,942,1280,60
=" � 0,0,0:ȓ ux%+860,uy%,140,40
>& �write2("Cancel",ux%+874,uy%+4,4)
?? ș sprswi%,256+52,spb%,"list",ux%+808,uy%-2,0,0,translate%
@ �
A
B' � 255,255,255:ȓ Ȑ ux%,uy%,780,40
C( �write2(start$+"|",ux%+4,uy%+4,100)
D �
E& �wait_no_button:�:K$=�(1):� K$=""
F, �:ȗ X,Y,B:K$=�(1):� B=4 � B=1 � K$<>""
G � K$=�8 � K$=�127
H  � �(K$)=127 � �(start$)>0 �
I& L%=�(start$):start$=�start$,L%-1)
J' � 255,255,255:ȓ Ȑ ux%,uy%,780,40
K( �write2(start$+"|",ux%+4,uy%+4,100)
L �
M � �(K$)=21 �
N1 start$="":� 255,255,255:ȓ Ȑ ux%,uy%,780,40
O( �write2(start$+"|",ux%+4,uy%+4,100)
P �
Q. � �(start$)<len% � �(K$)>32 � �(K$)<127 �
R2 start$+=K$:� 255,255,255:ȓ Ȑ ux%,uy%,780,40
S( �write2(start$+"|",ux%+4,uy%+4,100)
T �
U! � K$=�13 � K$=�9 � B=4 � B=1
V
W ȑ 0,50:� 3,63 Ȝ192
X ȗ ȓ 0,-50,1280,926+80
Y
Z � flag% �
[( � (B=4 � X<1063) � K$=�9 � K$=�13 �
\3  � �start$,1)="." start$=�start$,(� start$)-1)
]3  � �(start$)>6 dir$=start$:drv%=20:�click_info
^  �
_  start$=start2$
` �
a& � X>1062 � X<1110 �list_Pathnames
b �
c
d$ � �(flag%) � B=1 start$=start2$
e
f �
g
h � �list_Pathnames
i ref%=�
j �
k
l
 � ref% �
m �load_user_paths
n@ ș sprswi%,256+52,spb%,"list_on",260+808,898,0,0,translate%
o( � 220,220,255:ȓ Ȑ 256,236,782,642
p& � 255,0,0:ȓ 254,234,786,646:N%=1
q � y%=890 � 290 �-40
r, � y%=890 �write2("[ Cancel ]",260,y%,7)
s. � y%=850 �write2(default_dir$,260,y%,102)
t6 � y%<850 �write2(user_path$(N%),260,y%,100):N%+=1
u �
v* ȗ ȓ 254,234,770,646:�wait_no_button
w$ ȗ X,Y,B:y%=Y � 40:� 3,63 Ȝ192
x � y%=22 y%=21
y ȓ Ȑ 260,y%*40-1,758,38
z ref%=�
{ �
|
} �
~
 �:ȗ X,Y,B:y2%=Y � 40
�  � y2%=22 y2%=21
�  � y2%=5 y2%=6
� � y2%<>y% � B<>0
� ȓ Ȑ 260,y%*40-1,758,38
� ȓ Ȑ 260,y2%*40-1,758,38
� y%=y2%
�
� � B=1 � y%<20 �
� start$=user_path$(20-y%)
�- �user_pathname(start$,256,y%*40+46,46,�)
�* � � start$>5 user_path$(20-y%)=start$
� �update_pathnames_file
� ref%=�:B=1
� �
�
� � B<>0
�
�
 � � ref%
�
� � y%<20 �
�5  � �(user_path$(20-y%))>5 dir$=user_path$(20-y%)
�  drv%=20:�click_info
�  �
� � y%=20 dir$=default_dir$
� �
�
� � �load_user_paths
�-  F%=�("<Pscan$Dir>.UserFiles.Pathnames")
�  � N%=1 � 14
�   user_path$(N%)=�#F%
�  �
�
  �#F%
� �
�
� � �update_pathnames_file
�-  F%=�("<Pscan$Dir>.UserFiles.Pathnames")
�  � N%=1 � 14
�   �#F%,user_path$(N%)
�  �
�
  �#F%
� �
�
� � �pipe_border_menu(y%)
�% menu$(0)="Pipe border options  "
�! menu$(1)="White pipe border"
�" menu$(2)="Yellow pipe border"
�  menu$(3)="Cyan pipe border"
�! menu$(4)="Green pipe border"
�# menu$(5)="Magenta pipe border"
� menu$(6)="Red pipe border"
�  menu$(7)="Blue pipe border"
�  menu$(8)="*":�menu(0,90,-1)
�/ � menu_box%<>99 �pipe_border(menu_box%,y%)
� �
�
�! � �pipe_border(pipe_col%,y%)
� �display_memory
� Ȏ pipe_col% �
�/ � 1:r%=64:g%=64:b%=64:ri%=12:gi%=12:bi%=12
�- � 2:r%=64:g%=64:b%=0:ri%=12:gi%=12:bi%=0
�- � 3:r%=0:g%=64:b%=64:ri%=0:gi%=12:bi%=12
�+ � 4:r%=0:g%=64:b%=0:ri%=0:gi%=12:bi%=0
�- � 5:r%=64:g%=0:b%=64:ri%=12:gi%=0:bi%=12
�+ � 6:r%=64:g%=0:b%=0:ri%=12:gi%=0:bi%=0
�+ � 7:r%=0:g%=0:b%=64:ri%=0:gi%=0:bi%=12
� �
� � y%=9 yy%=1022 � yy%=958
� � X%=0 � 64 �2
� � r%,g%,b%
�  ȓ X%,X%,1278-X%*2,yy%-X%*2
� r%+=ri%:� r%>240 ri%=-ri%
� g%+=gi%:� g%>240 gi%=-gi%
� b%+=bi%:� b%>240 bi%=-bi%
� �:�upmini
� �
�
�* � �plinth2(x,y,w,h,R1,G1,B1,RI,GI,BI)
� R=R1:G=G1:B=B1
� � 24,x;y;x+w;y+h;
� � x2=x-w � x+w �8
�  � R,G,B:� x2,y:� x2+w,y+h+h
�" � 85,x2+w,y:R+=RI:G+=GI:B+=BI
� � R>255 R=255:RI=-RI
� � G>255 G=255:GI=-GI
� � B>255 B=255:BI=-BI
� � R<0 R=0:RI=-RI
� � G<0 G=0:GI=-GI
� � B<0 B=0:BI=-BI
� �:�26:Ȗ:�
� � R1,G1,B1
�8 � x,y,x,y+h:� x+2,y+2,x+2,y+h-2:� x+4,y+4,x+4,y+h-4
� R2=R1/2:� R2<0 R2=0
� G2=G1/2:� G2<0 G2=0
� B2=B1/2:� B2<0 B2=0
� � R2,G2,B2
�D � x+w-2,y+2,x+w-2,y+h-2:� x+w,y,x+w,y+h:� x+w-4,y+4,x+w-4,y+h-4
� � 0,0,0
�< � x+2,y,x+w-2,y:� x+4,y+2,x+w-4,y+2:� x+6,y+4,x+w-6,y+4
� R3=R1*2:� R3>255 R3=255
� G3=G1*2:� G3>255 G3=255
� B3=B1*2:� B3>255 B3=255
� � R3,G3,B3
�H � x+2,y+h,x+w-2,y+h:� x+4,y+h-2,x+w-4,y+h-2:� x+6,y+h-4,x+w-6,y+h-4
� �
�
� � �display_header_text(h$)
� � h$="NONE" �
� h$=�h$,28)
�' � mode%<20 � mode%=63 � mode%=65 �
�3  �write("Panel.Fixed",�127+h$,190,956,24,24,6)
� �
�3  �write("Panel.Fixed",�127+h$,190,958,12,12,6)
� �
� �upload_memory
� �
�
�# � �create_default_options_file
�4 � Used when added parameters cause an EOF error
�E � Only new/missing parameters are added - existing ones retained
�0 � choices_list$(1)<>"ok" save_type$="pscan"
�0 � choices_list$(2)<>"ok" qwiktext_colour%=2
�0 � choices_list$(3)<>"ok" qwiktext_block%=16
�) � choices_list$(4)<>"ok" jpeg_opt%=1
�, � choices_list$(5)<>"ok" plot_shadow%=1
�- � choices_list$(6)<>"ok" plot_border%=-1
�, � choices_list$(7)<>"ok" fax_average%=2
�% � choices_list$(8)<>"ok" red%=40
�% � choices_list$(9)<>"ok" grn%=96
' � choices_list$(10)<>"ok" blu%=200
' � choices_list$(11)<>"ok" jpgq%=75
* � choices_list$(12)<>"ok" Ioffset%=40
- � choices_list$(13)<>"ok" header_text%=�
/ � choices_list$(14)<>"ok" pd_auto_lines%=8
+ � choices_list$(15)<>"ok" sstv_time%=2
/ � choices_list$(16)<>"ok" outline_width%=2
+ � choices_list$(17)<>"ok" beacon_on%=�

	* F%=�("<Pscan$Dir>.UserFiles.Options")

 �#F%,save_type$
 �#F%,qwiktext_colour%
 �#F%,qwiktext_block%

 �#F%,jpeg_opt%
 �#F%,plot_shadow%
 �#F%,plot_border%
 �#F%,fax_average%
 �#F%,red%
 �#F%,grn%
 �#F%,blu%
 �#F%,jpgq%
 �#F%,Ioffset%
 �#F%,header_text%
 �#F%,pd_auto_lines%
 �#F%,sstv_time%
 �#F%,outline_width%
 �#F%,beacon_on%
	 �#F%

 �

) � �check_button(cbx%,cby%,cbw%,cbh%)
  cbx%+=cbw%/2:cby%+=cbh%/2
! ȗ cbmx%,cbmy%,cbb%
"< � �(cbx%-cbmx%)<(cbw%/2)+4 � �(cby%-cbmy%)<(cbh%/2)+4 �
#  =�
$ �
%  =�
& �
'
(! � �vis_convert_to_mode(vis%)
) good_vis%=�
* Ȏ vis% �
+ � 172:mode%=1
, � 40 :mode%=2
- � 60 :mode%=5
. � 184:mode%=6
/ � 204:mode%=9
0! � 183:� mode%<>12 � mode%=11
1 � 96 :mode%=60 : � PD-180
2 � 225:mode%=61 : � PD-240
3 � 226:mode%=62 : � PD-160
4 � 99 :mode%=63 : � PD-90
5 � 95 :mode%=64 : � PD-120
6 � 221:mode%=65 : � PD-50
7 � 113:mode%=20 : � P3
8 � 114:mode%=21 : � P5
9 � 243:mode%=22 : � P7
: � 169:mode%=70 : � HQ1
; � 170:mode%=71 : � HQ2
< 
= good_vis%=�
> �
? �
@
A � �cw_tx(CW$)
B, �cw_prepare(CW$):vis_param%!92=cw_data%
C# f%=1000 : � CW tone is 1000 Hz
D � X4% � M%=4 � M%=1
E% c%=�(1/(f%*M%)/2*1000000*2-1+.5)
F2 vis_param%!56=c% � 256:vis_param%!60=c% � 256
G vis_param%!80=3
H vis_param%!4=serial_base%
I �wait_no_button
J � vis_code%+(vis_code%!8)
K �wait_no_button
L �
M
N � �cw_prepare(CW$)
O	 � +0
P' � N%=0 � 42:� cw_table$(N%):�:A%=0
Q cw_data%?A%=0:A%+=1
R � N%=1 � � CW$
S C%=�(�CW$,N%,1))
TA � C%>=�"a" � C%<=�"z" C%-=32 : � Convert lower case to upper
U) � (C%<�"/" � C%>�"Z") � C%<>32 C%=32
V- � C%=32 cw2$="5" � cw2$=cw_table$(C%-47)
W � N2%=1 � �(cw2$)
X cw3$=�cw2$,N2%,1)
Y �cw_ones_and_noughts(cw3$)
Z �
[ �cw_ones_and_noughts("3")
\ �
]5 cw_data%?A%=0:A%+=1:cw_data%?A%=2 : � End marker
^
_ � "21121" : REM "/"
` � "22222" : REM "0"
a � "12222"
b � "11222"
c � "11122"
d � "11112"
e � "11111"
f � "21111"
g � "22111"
h � "22211"
i � "22221" : REM "9"
j" � "1","1","1","1","1","1","1"
k � "12"    : REM "A"
l
 � "2111"
m
 � "2121"
n � "211"
o
 � "1"
p
 � "1121"
q � "221"
r
 � "1111"
s � "11"
t
 � "1222"
u � "212"
v
 � "1211"
w � "22"
x � "21"
y � "222"
z
 � "1221"
{
 � "2212"
| � "121"
} � "111"
~
 � "2"
 � "112"
�
 � "1112"
� � "122"
�
 � "2112"
�
 � "2122"
� � "2211"  : REM "Z"
� �
�
� � �cw_ones_and_noughts(C$)
�. � 1=dit 2=dah 3=letter space 5=word space
� � n%=1 � �(C$)
� c$=�C$,n%,1)
� Ȏ c$ �
�  � "1" : cw_data%?A%=1:A%+=1
�  � "2" : cw_data%?A%=1:A%+=1
�#            cw_data%?A%=1:A%+=1
�#            cw_data%?A%=1:A%+=1
�  � "3" : cw_data%?A%=0:A%+=1
� � "5" : � nothing needed
� �
� cw_data%?A%=0:A%+=1
� �
�
� � �busy(seconds)
� �wait_no_button
� auto_code%!12=2000*seconds
� auto_code%!4=Ioffset% � 2
�" � auto_code%:L1%=auto_code%!8
� auto_code%!12=2000*seconds
�" � auto_code%:L2%=auto_code%!8
� � L1%=1 � L2%=1 rquit%=�
�* � �(L2%-L1%)<10 � L1%>220 � L2%>220 �
� =�
� �
� =�
�
� � �toneburst
�> vis_param%!80=2 : � 2=toneburst, 1=VIS narrow, 0=VIS wide
� vis_param%!4=serial_base%
�# FL=1750-toneburst_bandwidth%/2
�# FH=1750+toneburst_bandwidth%/2
�, C=4096-((1/FL)*1000000):vis_param%!84=C
�, C=4096-((1/FH)*1000000):vis_param%!88=C
� � vis_code%
� =!vis_param%
�
� � �leds_off
�
 � 0,32,0
� � Y=854 � 704 � -50
� ȓ Ȑ 884,Y+4,12,12
� �
� �
�
� � �repeater_control
�  repeater_timer%=0
�  �
�   �repeater
�1   � toneburst_result%=256 repeater_timer%+=1
�+    � repeater_timer%>17 � beacon_on% �
�     � � �busy(5) �
�      �repeater_beacon_text
�"      temp_mode%=mode%:mode%=1
�      �tx_frame(�)
�      T=�:� � �-T>100
�      �cw_tx(cw_id$)
�      mode%=temp_mode%
�      repeater_timer%=0
�
     �
�	    �
�  � toneburst_result%=320
� �
�
� � �repeater
�! rquit%=�:toneburst_result%=0
�  �
�%   � 64,64,64:ȓ Ȑ 0,0,1280,1024
�%   �raised_block(200,600,880,380)
�(   � 220,220,64:ȓ Ȑ 240,914,788,40
�6   �write2("Pscan SSTV repeater status",420,920,4)
�D   �write2("1) Searching for 1750 Hz toneburst .....",300,850,0)
�D   �write2("2) Checking channel for SSTV activity ..",300,800,0)
�G   �write2("3) Sending CW identification text .........",300,750,0)
�H   �write2("4) Waiting for a valid VIS code ............",300,700,0)
�P   �write2("Click left mouse button at any time to exit repeater",260,630,4)
�   � Y=854 � 704 � -50
�   � 80,80,80
�'   � 880,Y:� 880,Y+20:� 85,900,Y+20
�   � 255,255,255
�$   � 880,Y:� 900,Y:� 85,900,Y+20
�   �
�   � 128 Ȝ 0
�   � 28,5,60,74,30:�
�   � 128,255,0
�   �wait_no_button
�
�
     �
�
�       �
�
�         �leds_off
�.         �''" Searching for toneburst ..."
�,         � 255,255,0:ȓ Ȑ 884,858,12,12
�
�)         toneburst_result%=�toneburst
�#         Ȏ toneburst_result% �
�          � 640 :
�1           �update_rtc(�):t$=$(rtc_buffer%+1)
�&           � 255,255,255:�'" ";t$;
�           � 0,255,0
�F           �" Toneburst found - checking for channel activity ..."
�,           � 0,255,0:ȓ Ȑ 884,858,12,12
�.           � 255,255,0:ȓ Ȑ 884,808,12,12
�          � 320 : �rend:�
�          � 256 : �
�         �
�
�         � �busy(3) �
�;          �'" ***** Channel busy - access denied *****"
�          chan_clear%=�
�         �
�          chan_clear%=�
�         �
�
�!       � chan_clear% � rquit%
�
�       � rquit% �rend:�
�
�D       �'" Channel seems clear - sending '";cw_id$;"' on CW ..."
�(       � 0,255,0:ȓ Ȑ 884,808,12,12
*       � 255,255,0:ȓ Ȑ 884,758,12,12
       �cw_tx(cw_id$)
       �

)       vis_param%!80=1 : � Narrow VIS
$       vis_param%!4=serial_base%
$       r%=255:g%=255:good_vis%=�
:       �'" Now waiting up to 15 seconds for a VIS ..."
(       � 0,255,0:ȓ Ȑ 884,758,12,12
	*       � 255,255,0:ȓ Ȑ 884,708,12,12

        � v%=1 � 30
        � vis_code%
$        � !vis_param%<>256 v%=30

=        r%=r%�255:g%=g%�255:� r%,g%,0:ȓ Ȑ 884,708,12,12

        �
%        � !vis_param%=320 �rend:�
        � !vis_param%<256 �
.         �vis_convert_to_mode(!vis_param%)

        �
7         �'" No VIS found - returning to start ..."

        �

     � good_vis%

(       � mode%=70 � mode%=71 mode%=1
*       �26:� 0,0,0:ȓ Ȑ 0,0,1280,1024
(       �rx_sstv(�):repeater_timer%=0
$       � rx_param%!64=48 �rend:�
       T=�:� � �-T>100
)       � 32,32,32:ȓ Ȑ 0,960,1280,64
$       � 255,255,0:� 128+21 Ȝ 0
[       � �4,1)"Checking channel for SSTV activity before re-transmitting picture ... ";
 
!G      � waiting3%=1 � 36 : � Wait up to 3 mins for channel to clear
"       � � �busy(3) �
#        �topscale2(0)
$        �tx_frame(�)
%        waiting3%=36
&       �
'       T=�:� � �-T>400
(       �
)      �
*
+	  � 0
,
- �
. 
/
0 � �rend
1  �26:Ȗ:�:Ȗ
2  �dismini:�wait_no_button
3  toneburst_result%=320
4 �
5
6 � �repeater_beacon_text
7/  !spr%=40000:spr%!4=0:spr%!8=16:spr%!12=16
87  ș sprswi%,256+10,spr%,"<Pscan$Dir>.PSsprites.T1"
91  sprite_name$="t1":�tiled_sprite_background 
:&  �topscale2(2):f$="Homerton.Bold"
;#  � 0,0,255:ȓ Ȑ 16,876,1240,8
<#  � 0,255,0:ȓ Ȑ 16,886,1240,8
=#  � 255,0,0:ȓ Ȑ 16,896,1240,8
>>  �beacon_text(f$,"PSCAN  REPEATER  INFO",130,848,32,40,6)
?N  �beacon_text(f$,"1 Transmit a 1750 Hz toneburst",44,720,32,32,&80FF8000)
@M  �beacon_text(f$,"2 Wait up to 5 secs for CW ID",44,600,32,32,&00FF8000)
AN  �beacon_text(f$,"3 Send SSTV - with VIS start -",44,480,32,32,&80FF8000)
BE  �beacon_text(f$,"    within 15 seconds",44,390,32,32,&80FF8000)
CJ  �beacon_text(f$,"4 Picture will be replayed",44,270,32,32,&00FF8000)
DI  �beacon_text(f$,"    in the same SSTV mode",44,180,32,32,&00FF8000)
E$  � 255,255,0:ȓ Ȑ 16,58,1240,8
F$  � 0,255,255:ȓ Ȑ 16,68,1240,8
G$  � 255,0,255:ȓ Ȑ 16,78,1240,8
HO  W%=�text_width(f$,"DE  "+call$+"  SSTV  REPEATER",28,38):X%=(1280-W%)/2-8
IL  �beacon_text(f$,"DE  "+call$+"  SSTV  REPEATER",X%,30,28,38,&FFFF8000)
J
  �upmini
K �
L
M* � �beacon_text(f$,t$,x%,y%,xp%,yp%,c)
N  � X%=x% � x%+16 � 8
O   � Y%=y% � y%+16 � 8
P%    �write(f$,t$,X%,Y%,xp%,yp%,0)
Q   �
R  �
S'  �write(f$,t$,x%+8,y%+8,xp%,yp%,c)
T �
U
V � �set_rts_low_on_atomwide
W
  � c% 64
X  � P=0 � 2 �2
Y   P%=c%
Z
   [OPT P
[   SWI "OS_EnterOS"
\5   LDR R1,serial_base:MOV R0,#9:STRB R0,[R1,#&10]
](   TEQP PC,#0:MOVNV R0,R0:MOV PC,R14
^   .serial_base EQUD 0
_   ]
`  �
a&  !serial_base=�(config$(13)):� c%
b �
�
00000000  0d 00 01 10 20 f4 20 3e  50 73 63 61 6e 30 36 33  |.... . >Pscan063|
00000010  0d 00 02 04 0d 00 03 3c  20 f4 20 50 44 20 35 30  |.......< . PD 50|
00000020  20 6d 6f 64 65 20 61 64  64 65 64 20 2d 20 6d 6f  | mode added - mo|
00000030  64 65 20 36 35 2c 20 56  49 53 20 39 33 2f 32 32  |de 65, VIS 93/22|
00000040  31 20 20 20 20 20 2d 20  32 33 2e 31 32 2e 39 37  |1     - 23.12.97|
00000050  0d 00 04 3c 20 f4 20 4d  61 6e 75 61 6c 20 6d 65  |...< . Manual me|
00000060  6d 6f 72 79 20 61 72 65  61 20 73 65 70 61 72 61  |mory area separa|
00000070  74 65 20 66 72 6f 6d 20  73 70 72 69 74 69 65 73  |te from sprities|
00000080  20 20 2d 20 31 31 2e 31  32 2e 39 37 0d 00 05 3c  |  - 11.12.97...<|
00000090  20 f4 20 46 69 6c 65 72  20 63 68 61 6e 67 65 73  | . Filer changes|
000000a0  20 2d 20 6e 65 77 20 64  69 72 20 26 20 73 61 76  | - new dir & sav|
000000b0  65 20 73 70 72 69 74 65  73 20 20 20 20 20 2d 20  |e sprites     - |
000000c0  31 30 2e 31 32 2e 39 37  0d 00 06 3c 20 f4 20 50  |10.12.97...< . P|
000000d0  61 74 68 6e 61 6d 65 73  20 66 69 6c 65 20 66 6f  |athnames file fo|
000000e0  72 6d 61 74 20 63 68 61  6e 67 65 64 20 28 73 69  |rmat changed (si|
000000f0  6d 70 6c 69 66 69 65 64  29 20 2d 20 30 31 2e 31  |mplified) - 01.1|
00000100  32 2e 39 37 0d 00 07 3c  20 f4 20 52 65 70 65 61  |2.97...< . Repea|
00000110  74 65 72 20 22 62 65 61  63 6f 6e 22 20 74 65 78  |ter "beacon" tex|
00000120  74 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |t               |
00000130  20 20 20 20 20 20 2d 20  33 30 2e 31 31 2e 39 37  |      - 30.11.97|
00000140  0d 00 08 3c 20 f4 20 53  65 72 69 61 6c 20 70 6f  |...< . Serial po|
00000150  72 74 20 61 64 64 72 65  73 73 20 63 6f 6e 66 69  |rt address confi|
00000160  67 75 72 61 62 6c 65 20  20 20 20 20 20 20 20 20  |gurable         |
00000170  20 20 2d 20 32 38 2e 31  31 2e 39 37 0d 00 09 04  |  - 28.11.97....|
00000180  0d 00 0a 32 20 69 6a 65  5f 64 65 76 25 3d a3 20  |...2 ije_dev%=. |
00000190  3a 20 f4 20 53 65 74 20  74 6f 20 54 52 55 45 20  |: . Set to TRUE |
000001a0  66 6f 72 20 47 34 49 4a  45 20 52 26 44 20 6f 6e  |for G4IJE R&D on|
000001b0  6c 79 0d 00 0b 04 0d 00  0c 3c 20 f4 20 43 6f 6e  |ly.......< . Con|
000001c0  66 69 67 75 72 61 74 69  6f 6e 20 6e 6f 77 20 75  |figuration now u|
000001d0  73 65 73 20 43 68 6f 69  63 65 73 20 77 69 6e 64  |ses Choices wind|
000001e0  6f 77 20 20 20 20 20 20  2d 20 30 39 2e 31 31 2e  |ow      - 09.11.|
000001f0  39 37 0d 00 0d 3c 20 f4  20 4d 6f 73 74 20 63 6f  |97...< . Most co|
00000200  64 65 20 62 6c 6f 63 6b  73 20 6d 6f 76 65 64 20  |de blocks moved |
00000210  69 6e 74 6f 20 52 65 73  6f 75 72 63 65 73 20 64  |into Resources d|
00000220  69 72 20 20 2d 20 31 36  2e 31 30 2e 39 37 0d 00  |ir  - 16.10.97..|
00000230  0e 3c 20 f4 20 52 65 70  65 61 74 65 72 20 6d 6f  |.< . Repeater mo|
00000240  64 65 20 2d 20 66 6f 72  20 46 4d 20 75 73 65 20  |de - for FM use |
00000250  6f 6e 6c 79 20 20 20 20  20 20 20 20 20 20 20 20  |only            |
00000260  2d 20 31 34 2e 31 30 2e  39 37 0d 00 0f 3c 20 f4  |- 14.10.97...< .|
00000270  20 54 65 78 74 20 6f 75  74 6c 69 6e 65 20 2d 20  | Text outline - |
00000280  32 20 77 69 64 74 68 73  20 61 76 61 69 6c 61 62  |2 widths availab|
00000290  6c 65 20 20 20 20 20 20  20 20 20 20 2d 20 32 38  |le          - 28|
000002a0  2e 30 37 2e 39 37 0d 00  10 3c 20 f4 20 50 69 63  |.07.97...< . Pic|
000002b0  20 6d 65 6d 20 63 68 61  6e 67 65 20 77 69 74 68  | mem change with|
000002c0  69 6e 20 77 61 76 65 66  6f 72 6d 20 6d 6f 6e 69  |in waveform moni|
000002d0  74 6f 72 20 20 20 20 20  2d 20 31 33 2e 30 37 2e  |tor     - 13.07.|
000002e0  39 37 0d 00 11 3c 20 f4  20 50 61 69 6e 74 20 77  |97...< . Paint w|
000002f0  69 74 68 20 73 70 72 69  74 65 20 20 20 20 20 20  |ith sprite      |
00000300  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000310  20 20 20 20 2d 20 32 32  2e 30 36 2e 39 37 0d 00  |    - 22.06.97..|
00000320  12 3c 20 f4 20 4e 65 77  20 62 6f 72 64 65 72 73  |.< . New borders|
00000330  20 2f 20 70 6c 69 6e 74  68 73 20 66 6f 72 20 67  | / plinths for g|
00000340  72 61 62 62 65 64 20 61  72 65 61 73 20 20 20 20  |rabbed areas    |
00000350  2d 20 31 35 2e 30 36 2e  39 37 0d 00 13 3c 20 f4  |- 15.06.97...< .|
00000360  20 4a 50 45 47 20 6d 6f  64 73 20 2f 20 6c 61 72  | JPEG mods / lar|
00000370  67 65 20 64 69 72 65 63  74 6f 72 69 65 73 20 61  |ge directories a|
00000380  63 63 6f 6d 6d 6f 64 61  74 65 64 20 2d 20 30 34  |ccommodated - 04|
00000390  2e 30 35 2e 39 37 0d 00  14 3c 20 f4 20 50 44 20  |.05.97...< . PD |
000003a0  61 75 74 6f 2d 74 75 6e  65 20 38 2c 20 34 20 6c  |auto-tune 8, 4 l|
000003b0  69 6e 65 73 20 6f 72 20  6f 66 66 20 66 6f 72 20  |ines or off for |
000003c0  46 4d 20 75 73 65 20 20  2d 20 31 35 2e 30 32 2e  |FM use  - 15.02.|
000003d0  39 37 0d 00 15 3c 20 f4  20 55 73 65 72 20 65 6e  |97...< . User en|
000003e0  74 72 79 20 6f 66 20 70  61 74 68 6e 61 6d 65 20  |try of pathname |
000003f0  2b 20 6c 69 73 74 20 73  65 6c 65 63 74 6f 72 20  |+ list selector |
00000400  20 20 20 20 2d 20 31 37  2e 30 32 2e 39 37 0d 00  |    - 17.02.97..|
00000410  16 3c 20 f4 20 4d 65 6e  75 20 63 61 6e 63 65 6c  |.< . Menu cancel|
00000420  20 6d 6f 76 65 64 20 74  6f 20 6c 61 73 74 20 65  | moved to last e|
00000430  6e 74 72 79 20 20 20 20  20 20 20 20 20 20 20 20  |ntry            |
00000440  2d 20 30 36 2e 30 32 2e  39 37 0d 00 17 3c 20 f4  |- 06.02.97...< .|
00000450  20 41 75 74 6f 2d 6d 6f  64 65 20 66 69 6e 64 20  | Auto-mode find |
00000460  2d 20 63 6c 69 63 6b 20  52 20 69 63 6f 6e 20 77  |- click R icon w|
00000470  69 74 68 20 61 64 6a 75  73 74 20 20 2d 20 32 37  |ith adjust  - 27|
00000480  2e 30 31 2e 39 37 0d 00  18 3c 20 f4 20 50 44 39  |.01.97...< . PD9|
00000490  30 20 73 61 76 65 20 69  6e 20 50 73 63 61 6e 20  |0 save in Pscan |
000004a0  66 6f 72 6d 61 74 20 63  6f 72 72 65 63 74 65 64  |format corrected|
000004b0  20 20 20 20 20 20 20 20  2d 20 32 35 2e 30 31 2e  |        - 25.01.|
000004c0  39 37 0d 00 19 3c 20 f4  20 54 77 65 61 6b 73 20  |97...< . Tweaks |
000004d0  74 6f 20 22 63 72 65 61  74 65 20 74 65 78 74 22  |to "create text"|
000004e0  20 70 6f 73 69 74 69 6f  6e 69 6e 67 20 20 20 20  | positioning    |
000004f0  20 20 20 20 2d 20 32 33  2e 30 31 2e 39 37 0d 00  |    - 23.01.97..|
00000500  1a 3c 20 f4 20 54 65 78  74 20 61 6e 64 20 6d 61  |.< . Text and ma|
00000510  73 6b 20 73 69 7a 65 20  61 64 6a 75 73 74 20 20  |sk size adjust  |
00000520  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000530  2d 20 31 39 2e 30 31 2e  39 37 0d 00 1b 3c 20 f4  |- 19.01.97...< .|
00000540  20 4e 65 77 20 6c 69 6e  65 61 72 20 74 75 6e 69  | New linear tuni|
00000550  6e 67 20 69 6e 64 69 63  61 74 6f 72 20 20 20 20  |ng indicator    |
00000560  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 32 38  |            - 28|
00000570  2e 31 32 2e 39 36 0d 00  1c 3c 20 f4 20 50 44 20  |.12.96...< . PD |
00000580  6d 6f 64 65 20 52 58 20  6c 6f 6f 6b 75 70 20 74  |mode RX lookup t|
00000590  61 62 6c 65 20 36 34 20  2d 20 31 39 32 20 20 20  |able 64 - 192   |
000005a0  20 20 20 20 20 20 20 20  2d 20 32 33 2e 31 32 2e  |        - 23.12.|
000005b0  39 36 0d 00 1d 3c 20 f4  20 51 77 69 6b 54 65 78  |96...< . QwikTex|
000005c0  74 20 63 61 70 74 69 6f  6e 73 20 20 20 20 20 20  |t captions      |
000005d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000005e0  20 20 20 20 2d 20 31 32  2e 31 32 2e 39 36 0d 00  |    - 12.12.96..|
000005f0  1e 3c 20 f4 20 48 51 20  6d 6f 64 65 73 20 2d 20  |.< . HQ modes - |
00000600  52 58 20 6f 6e 6c 79 20  61 6e 64 20 6e 6f 74 20  |RX only and not |
00000610  22 66 75 6c 6c 20 73 70  65 63 22 20 20 20 20 20  |"full spec"     |
00000620  2d 20 32 35 2e 31 31 2e  39 36 0d 00 1f 3c 20 f4  |- 25.11.96...< .|
00000630  20 53 74 72 6f 6e 67 41  52 4d 20 63 6f 6d 70 61  | StrongARM compa|
00000640  74 69 62 6c 65 20 76 65  72 73 69 6f 6e 20 20 20  |tible version   |
00000650  20 20 20 20 20 20 20 20  20 20 20 20 2d 20 32 30  |            - 20|
00000660  2e 31 30 2e 39 36 0d 00  20 04 0d 00 21 4b 20 f4  |.10.96.. ...!K .|
00000670  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00000680  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000006b0  2a 2a 2a 2a 2a 0d 00 22  4b 20 f4 20 2a 20 4d 61  |*****.."K . * Ma|
000006c0  6e 79 20 74 68 61 6e 6b  73 20 74 6f 20 4e 65 69  |ny thanks to Nei|
000006d0  6c 2c 20 47 34 52 51 4e  2c 20 66 6f 72 20 68 65  |l, G4RQN, for he|
000006e0  6c 70 20 77 69 74 68 20  74 68 65 20 69 63 6f 6e  |lp with the icon|
000006f0  20 62 61 72 20 57 49 4d  50 20 62 69 74 73 20 2a  | bar WIMP bits *|
00000700  0d 00 23 4b 20 f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..#K . *********|
00000710  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000740  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 00 24 04 0d  |***********..$..|
00000750  00 25 04 0d 00 26 38 20  ee 20 85 20 eb 20 eb 3a  |.%...&8 . . . .:|
00000760  c8 99 22 48 6f 75 72 67  6c 61 73 73 5f 53 6d 61  |.."Hourglass_Sma|
00000770  73 68 22 3a f1 27 27 f6  24 3b 22 20 61 74 20 6c  |sh":.''.$;" at l|
00000780  69 6e 65 20 22 3b 9e 27  27 3a e0 0d 00 27 04 0d  |ine ";.'':...'..|
00000790  00 28 11 20 e7 20 69 6a  65 5f 64 65 76 25 20 8c  |.(. . ije_dev% .|
000007a0  0d 00 29 38 20 20 2a 53  45 54 20 50 73 63 61 6e  |..)8  *SET Pscan|
000007b0  24 44 69 72 20 41 44 46  53 3a 3a 48 61 72 64 44  |$Dir ADFS::HardD|
000007c0  69 73 63 34 2e 24 2e 50  53 5f 4a 61 6e 39 38 2e  |isc4.$.PS_Jan98.|
000007d0  41 70 70 46 69 6c 65 73  0d 00 2a 25 20 20 2a 46  |AppFiles..*%  *F|
000007e0  6f 6e 74 49 6e 73 74 61  6c 6c 20 3c 50 73 63 61  |ontInstall <Psca|
000007f0  6e 24 44 69 72 3e 2e 46  6f 6e 74 73 2e 0d 00 2b  |n$Dir>.Fonts...+|
00000800  06 20 cd 0d 00 2c 04 0d  00 2d 31 20 61 70 70 5f  |. ...,...-1 app_|
00000810  6e 61 6d 65 24 3d 22 50  73 63 61 6e 22 3a 76 65  |name$="Pscan":ve|
00000820  72 24 3d 22 33 2e 31 30  20 2d 20 4a 61 6e 75 61  |r$="3.10 - Janua|
00000830  72 79 20 31 39 39 38 22  0d 00 2e 12 20 73 70 6c  |ry 1998".... spl|
00000840  61 73 68 32 78 25 3d 31  39 30 0d 00 2f 2a 20 77  |ash2x%=190../* w|
00000850  69 6d 70 5f 73 70 72 69  74 65 24 3d 22 21 70 73  |imp_sprite$="!ps|
00000860  63 61 6e 22 3a 77 69 6e  64 6f 77 68 61 6e 64 6c  |can":windowhandl|
00000870  65 25 3d b9 0d 00 30 20  20 66 6f 6e 74 25 3d 2d  |e%=...0  font%=-|
00000880  31 3a 6a 75 73 74 5f 72  65 67 69 73 74 65 72 65  |1:just_registere|
00000890  64 25 3d a3 0d 00 31 04  0d 00 32 1d 20 f4 20 73  |d%=...1...2. . s|
000008a0  65 72 69 61 6c 5f 62 61  73 65 25 3d 26 30 33 30  |erial_base%=&030|
000008b0  31 30 46 45 30 0d 00 33  04 0d 00 34 40 20 de 20  |10FE0..3...4@ . |
000008c0  62 6c 6f 63 6b 25 20 26  33 30 30 2c 6d 65 6e 75  |block% &300,menu|
000008d0  25 20 36 34 2c 73 79 73  76 61 72 25 20 32 35 36  |% 64,sysvar% 256|
000008e0  2c 65 72 72 25 20 32 35  36 2c 73 70 72 69 74 65  |,err% 256,sprite|
000008f0  5f 6e 61 6d 65 25 20 33  32 0d 00 35 3b 20 de 20  |_name% 32..5; . |
00000900  74 65 6d 70 25 20 26 33  30 30 2c 57 62 75 66 66  |temp% &300,Wbuff|
00000910  65 72 25 20 26 33 30 30  2c 71 65 72 72 25 20 26  |er% &300,qerr% &|
00000920  33 30 30 3a 63 75 72 62  75 66 25 3d 57 62 75 66  |300:curbuf%=Wbuf|
00000930  66 65 72 25 0d 00 36 19  20 de 20 63 68 6f 69 63  |fer%..6. . choic|
00000940  65 73 5f 77 69 6e 64 6f  77 25 20 33 32 0d 00 37  |es_window% 32..7|
00000950  36 20 20 24 63 68 6f 69  63 65 73 5f 77 69 6e 64  |6  $choices_wind|
00000960  6f 77 25 3d 22 4f 62 65  79 20 3c 50 73 63 61 6e  |ow%="Obey <Pscan|
00000970  24 44 69 72 3e 2e 43 68  6f 69 63 65 73 2e 21 52  |$Dir>.Choices.!R|
00000980  75 6e 22 0d 00 38 1a 20  de 20 72 65 67 69 73 74  |un"..8. . regist|
00000990  65 72 5f 77 69 6e 64 6f  77 25 20 34 30 0d 00 39  |er_window% 40..9|
000009a0  40 20 20 24 72 65 67 69  73 74 65 72 5f 77 69 6e  |@  $register_win|
000009b0  64 6f 77 25 3d 22 4f 62  65 79 20 3c 50 73 63 61  |dow%="Obey <Psca|
000009c0  6e 24 44 69 72 3e 2e 43  68 6f 69 63 65 73 2e 52  |n$Dir>.Choices.R|
000009d0  65 67 69 73 74 65 72 2e  21 52 75 6e 22 0d 00 3a  |egister.!Run"..:|
000009e0  04 0d 00 3b 17 20 24 28  6d 65 6e 75 25 2b 35 36  |...;. $(menu%+56|
000009f0  29 3d 22 78 78 78 78 22  0d 00 3c 04 0d 00 3d 17  |)="xxxx"..<...=.|
00000a00  20 63 6f 6e 66 69 67 5f  65 6e 74 72 69 65 73 25  | config_entries%|
00000a10  3d 31 33 0d 00 3e 1f 20  de 20 63 6f 6e 66 69 67  |=13..>. . config|
00000a20  24 28 63 6f 6e 66 69 67  5f 65 6e 74 72 69 65 73  |$(config_entries|
00000a30  25 29 0d 00 3f 27 20 f2  72 65 61 64 5f 63 6f 6e  |%)..?' .read_con|
00000a40  66 69 67 5f 66 69 6c 65  28 63 6f 6e 66 69 67 5f  |fig_file(config_|
00000a50  65 6e 74 72 69 65 73 25  29 0d 00 40 1c 20 6d 65  |entries%)..@. me|
00000a60  6d 6f 72 69 65 73 25 3d  bb 28 63 6f 6e 66 69 67  |mories%=.(config|
00000a70  24 28 34 29 29 0d 00 41  20 20 74 78 74 73 69 7a  |$(4))..A  txtsiz|
00000a80  65 25 3d bb 28 63 6f 6e  66 69 67 24 28 35 29 29  |e%=.(config$(5))|
00000a90  2a 31 30 32 34 0d 00 42  2b 20 e7 20 63 6f 6e 66  |*1024..B+ . conf|
00000aa0  69 67 24 28 39 29 3d 22  59 22 20 8c 20 74 68 75  |ig$(9)="Y" . thu|
00000ab0  6d 62 25 3d b9 20 8b 20  74 68 75 6d 62 25 3d a3  |mb%=. . thumb%=.|
00000ac0  0d 00 43 39 20 e7 20 a0  28 63 6f 6e 66 69 67 24  |..C9 . .(config$|
00000ad0  28 31 33 29 29 3e 3d 26  30 33 32 34 32 30 30 30  |(13))>=&03242000|
00000ae0  20 f2 73 65 74 5f 72 74  73 5f 6c 6f 77 5f 6f 6e  | .set_rts_low_on|
00000af0  5f 61 74 6f 6d 77 69 64  65 0d 00 44 04 0d 00 45  |_atomwide..D...E|
00000b00  30 20 64 75 6d 6d 79 3d  a4 66 69 6c 65 5f 6c 65  |0 dummy=.file_le|
00000b10  6e 28 22 3c 50 73 63 61  6e 24 44 69 72 3e 2e 52  |n("<Pscan$Dir>.R|
00000b20  65 73 6f 75 72 63 65 73  2e 69 64 22 29 0d 00 46  |esources.id")..F|
00000b30  35 20 46 25 3d 8e 28 22  3c 50 73 63 61 6e 24 44  |5 F%=.("<Pscan$D|
00000b40  69 72 3e 2e 52 65 73 6f  75 72 63 65 73 2e 69 64  |ir>.Resources.id|
00000b50  22 29 3a e8 23 46 25 2c  75 73 65 72 24 3a d9 23  |"):.#F%,user$:.#|
00000b60  46 25 0d 00 47 04 0d 00  48 20 20 e7 20 69 6a 65  |F%..G...H  . ije|
00000b70  5f 64 65 76 25 20 8c 20  f2 73 74 61 72 74 5f 70  |_dev% . .start_p|
00000b80  73 63 61 6e 3a e0 0d 00  49 04 0d 00 4a 12 20 70  |scan:...I...J. p|
00000b90  73 63 61 6e 5f 65 78 69  74 25 3d a3 0d 00 4b 10  |scan_exit%=...K.|
00000ba0  20 f2 69 6e 69 74 69 61  6c 69 73 65 0d 00 4c 0f  | .initialise..L.|
00000bb0  20 f2 74 65 6d 70 6c 61  74 65 73 0d 00 4d 0f 20  | .templates..M. |
00000bc0  ee 20 85 20 f2 65 72 72  6f 72 0d 00 4e 20 20 f2  |. . .error..N  .|
00000bd0  77 72 69 74 65 69 63 6f  6e 28 32 38 2c 69 6e 66  |writeicon(28,inf|
00000be0  6f 25 2c 37 2c 76 65 72  24 29 0d 00 4f 21 20 f2  |o%,7,ver$)..O! .|
00000bf0  77 72 69 74 65 69 63 6f  6e 28 32 38 2c 69 6e 66  |writeicon(28,inf|
00000c00  6f 25 2c 38 2c 75 73 65  72 24 29 0d 00 50 06 20  |o%,8,user$)..P. |
00000c10  f5 0d 00 51 0a 20 f2 70  6f 6c 6c 0d 00 52 14 20  |...Q. .poll..R. |
00000c20  fd 20 70 73 63 61 6e 5f  65 78 69 74 25 3d b9 0d  |. pscan_exit%=..|
00000c30  00 53 17 20 c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |.S. .."Wimp_Clos|
00000c40  65 44 6f 77 6e 22 0d 00  54 06 20 e0 0d 00 55 04  |eDown"..T. ...U.|
00000c50  0d 00 56 12 20 dd 20 f2  69 6e 69 74 69 61 6c 69  |..V. . .initiali|
00000c60  73 65 0d 00 57 30 20 c8  99 22 57 69 6d 70 5f 49  |se..W0 .."Wimp_I|
00000c70  6e 69 74 69 61 6c 69 73  65 22 2c 32 30 30 2c 26  |nitialise",200,&|
00000c80  34 62 35 33 34 31 35 34  2c 61 70 70 5f 6e 61 6d  |4b534154,app_nam|
00000c90  65 24 0d 00 58 1b 20 62  6c 6f 63 6b 25 21 30 3d  |e$..X. block%!0=|
00000ca0  77 69 6e 64 6f 77 68 61  6e 64 6c 65 25 0d 00 59  |windowhandle%..Y|
00000cb0  1a 20 62 6c 6f 63 6b 25  21 34 3d 30 3a 62 6c 6f  |. block%!4=0:blo|
00000cc0  63 6b 25 21 38 3d 30 0d  00 5a 1e 20 62 6c 6f 63  |ck%!8=0..Z. bloc|
00000cd0  6b 25 21 31 32 3d 36 38  3a 62 6c 6f 63 6b 25 21  |k%!12=68:block%!|
00000ce0  31 36 3d 36 38 0d 00 5b  14 20 62 6c 6f 63 6b 25  |16=68..[. block%|
00000cf0  21 32 30 3d 26 33 30 31  41 0d 00 5c 21 20 24 28  |!20=&301A..\! $(|
00000d00  62 6c 6f 63 6b 25 2b 32  34 29 3d 77 69 6d 70 5f  |block%+24)=wimp_|
00000d10  73 70 72 69 74 65 24 2b  bd 30 0d 00 5d 2e 20 c8  |sprite$+.0..]. .|
00000d20  99 22 57 69 6d 70 5f 43  72 65 61 74 65 49 63 6f  |."Wimp_CreateIco|
00000d30  6e 22 2c 2c 62 6c 6f 63  6b 25 20 b8 20 69 63 6f  |n",,block% . ico|
00000d40  6e 68 61 6e 64 6c 65 25  0d 00 5e 06 20 e1 0d 00  |nhandle%..^. ...|
00000d50  5f 04 0d 00 60 11 20 dd  20 f2 74 65 6d 70 6c 61  |_...`. . .templa|
00000d60  74 65 73 0d 00 61 08 20  ea 20 85 0d 00 62 26 20  |tes..a. . ...b& |
00000d70  ee 20 85 20 ea 20 ee 20  85 20 c8 99 20 22 57 69  |. . . . . .. "Wi|
00000d80  6d 70 5f 43 6c 6f 73 65  54 65 6d 70 6c 61 74 65  |mp_CloseTemplate|
00000d90  22 0d 00 63 34 20 c8 99  20 22 57 69 6d 70 5f 4f  |"..c4 .. "Wimp_O|
00000da0  70 65 6e 54 65 6d 70 6c  61 74 65 22 2c 2c 22 3c  |penTemplate",,"<|
00000db0  50 73 63 61 6e 24 44 69  72 3e 2e 54 65 6d 70 6c  |Pscan$Dir>.Templ|
00000dc0  61 74 65 73 22 0d 00 64  3f 20 c8 99 20 22 57 69  |ates"..d? .. "Wi|
00000dd0  6d 70 5f 4c 6f 61 64 54  65 6d 70 6c 61 74 65 22  |mp_LoadTemplate"|
00000de0  2c 2c 62 6c 6f 63 6b 25  2c 74 65 6d 70 25 2c 74  |,,block%,temp%,t|
00000df0  65 6d 70 25 2b 35 31 32  2c 2d 31 2c 22 49 6e 66  |emp%+512,-1,"Inf|
00000e00  6f 22 2c 30 0d 00 65 2b  20 c8 99 20 22 57 69 6d  |o",0..e+ .. "Wim|
00000e10  70 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 22 2c  |p_CreateWindow",|
00000e20  2c 62 6c 6f 63 6b 25 20  b8 20 69 6e 66 6f 25 0d  |,block% . info%.|
00000e30  00 66 1c 20 c8 99 20 22  57 69 6d 70 5f 43 6c 6f  |.f. .. "Wimp_Clo|
00000e40  73 65 54 65 6d 70 6c 61  74 65 22 0d 00 67 06 20  |seTemplate"..g. |
00000e50  f7 0d 00 68 06 20 e1 0d  00 69 04 0d 00 6a 0d 20  |...h. ...i...j. |
00000e60  dd 20 f2 65 72 72 6f 72  0d 00 6b 0e 20 21 62 6c  |. .error..k. !bl|
00000e70  6f 63 6b 25 3d 9f 0d 00  6c 2f 20 24 28 62 6c 6f  |ock%=...l/ $(blo|
00000e80  63 6b 25 2b 34 29 3d f6  24 2b 22 20 28 45 72 72  |ck%+4)=.$+" (Err|
00000e90  6f 72 20 63 6f 64 65 20  22 2b c3 28 9e 29 2b 22  |or code "+.(.)+"|
00000ea0  29 22 2b bd 30 0d 00 6d  35 20 c8 99 22 57 69 6d  |)"+.0..m5 .."Wim|
00000eb0  70 5f 52 65 70 6f 72 74  45 72 72 6f 72 22 2c 62  |p_ReportError",b|
00000ec0  6c 6f 63 6b 25 2c 31 2c  61 70 70 5f 6e 61 6d 65  |lock%,1,app_name|
00000ed0  24 20 b8 20 72 65 70 6c  79 25 0d 00 6e 13 20 e7  |$ . reply%..n. .|
00000ee0  20 72 65 70 6c 79 25 3d  32 20 8c 20 e0 0d 00 6f  | reply%=2 . ...o|
00000ef0  06 20 e1 0d 00 70 04 0d  00 71 0c 20 dd 20 f2 70  |. ...p...q. . .p|
00000f00  6f 6c 6c 0d 00 72 24 20  c8 99 22 57 69 6d 70 5f  |oll..r$ .."Wimp_|
00000f10  50 6f 6c 6c 22 2c 2c 62  6c 6f 63 6b 25 20 b8 20  |Poll",,block% . |
00000f20  72 65 61 73 6f 6e 25 0d  00 73 11 20 c8 8e 20 72  |reason%..s. .. r|
00000f30  65 61 73 6f 6e 25 20 ca  0d 00 74 27 20 20 c9 20  |eason% ...t'  . |
00000f40  32 20 20 20 20 3a c8 99  20 26 34 30 30 43 35 2c  |2    :.. &400C5,|
00000f50  2c 62 6c 6f 63 6b 25 2c  2c 62 6c 6f 63 6b 25 0d  |,block%,,block%.|
00000f60  00 75 25 20 20 c9 20 33  20 20 20 20 3a f2 63 6c  |.u%  . 3    :.cl|
00000f70  6f 73 65 5f 77 69 6e 64  6f 77 28 62 6c 6f 63 6b  |ose_window(block|
00000f80  25 21 30 29 0d 00 76 52  20 20 c9 20 36 20 20 20  |%!0)..vR  . 6   |
00000f90  20 3a f2 63 68 65 63 6b  6d 6f 75 73 65 28 21 62  | :.checkmouse(!b|
00000fa0  6c 6f 63 6b 25 2c 62 6c  6f 63 6b 25 21 34 2c 62  |lock%,block%!4,b|
00000fb0  6c 6f 63 6b 25 21 38 2c  62 6c 6f 63 6b 25 21 31  |lock%!8,block%!1|
00000fc0  32 2c 62 6c 6f 63 6b 25  21 31 36 2c 62 6c 6f 63  |2,block%!16,bloc|
00000fd0  6b 25 21 32 30 29 0d 00  77 21 20 20 c9 20 39 20  |k%!20)..w!  . 9 |
00000fe0  20 20 20 3a f2 6d 65 6e  75 73 65 6c 65 63 74 28  |   :.menuselect(|
00000ff0  62 6c 6f 63 6b 25 29 0d  00 78 17 20 20 c9 20 31  |block%)..x.  . 1|
00001000  37 2c 31 38 3a f2 57 72  65 63 65 69 76 65 0d 00  |7,18:.Wreceive..|
00001010  79 06 20 cb 0d 00 7a 06  20 e1 0d 00 7b 04 0d 00  |y. ...z. ...{...|
00001020  7c 1e 20 dd 20 f2 63 6c  6f 73 65 5f 77 69 6e 64  ||. . .close_wind|
00001030  6f 77 28 77 68 61 6e 64  6c 65 25 29 0d 00 7d 16  |ow(whandle%)..}.|
00001040  20 62 6c 6f 63 6b 25 21  30 3d 77 68 61 6e 64 6c  | block%!0=whandl|
00001050  65 25 0d 00 7e 22 20 c8  99 20 22 57 69 6d 70 5f  |e%..~" .. "Wimp_|
00001060  43 6c 6f 73 65 57 69 6e  64 6f 77 22 2c 2c 62 6c  |CloseWindow",,bl|
00001070  6f 63 6b 25 0d 00 7f 06  20 e1 0d 00 80 04 0d 00  |ock%.... .......|
00001080  81 10 20 dd 20 f2 57 72  65 63 65 69 76 65 0d 00  |.. . .Wreceive..|
00001090  82 13 20 c8 8e 20 62 6c  6f 63 6b 25 21 31 36 20  |.. .. block%!16 |
000010a0  ca 0d 00 83 16 20 c9 20  30 3a 70 73 63 61 6e 5f  |..... . 0:pscan_|
000010b0  65 78 69 74 25 3d b9 0d  00 84 06 20 cb 0d 00 85  |exit%=..... ....|
000010c0  06 20 e1 0d 00 86 04 0d  00 87 38 20 dd 20 f2 63  |. ........8 . .c|
000010d0  68 65 63 6b 6d 6f 75 73  65 28 6d 6f 75 73 65 78  |heckmouse(mousex|
000010e0  25 2c 6d 6f 75 73 65 79  25 2c 62 25 2c 68 61 6e  |%,mousey%,b%,han|
000010f0  64 6c 65 25 2c 69 63 6f  6e 25 2c 6f 62 25 29 0d  |dle%,icon%,ob%).|
00001100  00 88 0d 20 e7 28 62 25  80 32 29 8c 0d 00 89 11  |... .(b%.2).....|
00001110  20 c8 8e 20 68 61 6e 64  6c 65 25 20 ca 0d 00 8a  | .. handle% ....|
00001120  09 20 c9 20 2d 32 0d 00  8b 4a 20 f2 64 6f 6d 65  |. . -2...J .dome|
00001130  6e 75 28 31 30 31 2c 22  3e 49 6e 66 6f 2c 48 65  |nu(101,">Info,He|
00001140  6c 70 2c 4d 61 6e 75 61  6c 2c 52 65 67 69 73 74  |lp,Manual,Regist|
00001150  65 72 2e 2e 2e 2c 2d 43  68 6f 69 63 65 73 2e 2e  |er...,-Choices..|
00001160  2e 2c 51 75 69 74 22 2c  22 50 73 63 61 6e 22 29  |.,Quit","Pscan")|
00001170  0d 00 8c 06 20 cb 0d 00  8d 06 20 cd 0d 00 8e 0d  |.... ..... .....|
00001180  20 e7 28 62 25 80 34 29  8c 0d 00 8f 11 20 f2 73  | .(b%.4)..... .s|
00001190  74 61 72 74 5f 70 73 63  61 6e 0d 00 90 06 20 cd  |tart_pscan.... .|
000011a0  0d 00 91 06 20 e1 0d 00  92 04 0d 00 93 28 20 dd  |.... ........( .|
000011b0  20 f2 64 6f 6d 65 6e 75  28 68 61 6e 64 6c 65 25  | .domenu(handle%|
000011c0  2c 6d 65 6e 75 24 2c 6d  65 6e 75 74 69 74 6c 65  |,menu$,menutitle|
000011d0  24 29 0d 00 94 18 20 6d  65 6e 75 68 61 6e 64 6c  |$).... menuhandl|
000011e0  65 25 3d 68 61 6e 64 6c  65 25 0d 00 95 16 20 6d  |e%=handle%.... m|
000011f0  65 6e 75 70 74 72 25 3d  57 62 75 66 66 65 72 25  |enuptr%=Wbuffer%|
00001200  0d 00 96 09 20 69 25 3d  30 0d 00 97 20 20 6d 65  |.... i%=0...  me|
00001210  6e 75 70 74 72 25 21 32  30 3d 34 30 3a f4 20 62  |nuptr%!20=40:. b|
00001220  6c 6f 63 6b 20 73 69 7a  65 0d 00 98 19 20 24 6d  |lock size.... $m|
00001230  65 6e 75 70 74 72 25 3d  6d 65 6e 75 74 69 74 6c  |enuptr%=menutitl|
00001240  65 24 0d 00 99 12 20 6d  65 6e 75 70 74 72 25 3f  |e$.... menuptr%?|
00001250  31 32 3d 37 0d 00 9a 12  20 6d 65 6e 75 70 74 72  |12=7.... menuptr|
00001260  25 3f 31 33 3d 32 0d 00  9b 12 20 6d 65 6e 75 70  |%?13=2.... menup|
00001270  74 72 25 3f 31 34 3d 37  0d 00 9c 12 20 6d 65 6e  |tr%?14=7.... men|
00001280  75 70 74 72 25 3f 31 35  3d 30 0d 00 9d 17 20 6d  |uptr%?15=0.... m|
00001290  65 6e 75 70 74 72 25 21  31 36 3d 31 39 36 2d 32  |enuptr%!16=196-2|
000012a0  34 0d 00 9e 23 20 6d 65  6e 75 70 74 72 25 21 32  |4...# menuptr%!2|
000012b0  34 3d 34 3a f4 20 48 65  69 67 68 74 20 73 70 61  |4=4:. Height spa|
000012c0  63 69 6e 67 0d 00 9f 11  20 6d 65 6e 75 70 74 72  |cing.... menuptr|
000012d0  25 2b 3d 32 38 0d 00 a0  32 20 f5 20 69 74 65 6d  |%+=28...2 . item|
000012e0  24 3d a4 70 61 72 28 22  2c 22 29 3a f2 6d 65 6e  |$=.par(","):.men|
000012f0  75 69 74 65 6d 28 69 74  65 6d 24 29 3a fd 20 69  |uitem(item$):. i|
00001300  74 65 6d 24 3d 22 22 0d  00 a1 24 20 6d 65 6e 75  |tem$=""...$ menu|
00001310  70 74 72 25 21 2d 32 34  3d 28 6d 65 6e 75 70 74  |ptr%!-24=(menupt|
00001320  72 25 21 2d 32 34 29 84  26 38 30 0d 00 a2 32 20  |r%!-24).&80...2 |
00001330  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  |.. "Wimp_CreateM|
00001340  65 6e 75 22 2c 2c 57 62  75 66 66 65 72 25 2c 6d  |enu",,Wbuffer%,m|
00001350  6f 75 73 65 78 25 2d 36  34 2c 33 38 34 0d 00 a3  |ousex%-64,384...|
00001360  06 20 e1 0d 00 a4 04 0d  00 a5 18 20 dd 20 f2 6d  |. ......... . .m|
00001370  65 6e 75 69 74 65 6d 28  77 74 65 78 74 24 29 0d  |enuitem(wtext$).|
00001380  00 a6 13 20 e7 20 77 74  65 78 74 24 3c 3e 22 22  |... . wtext$<>""|
00001390  20 8c 0d 00 a7 10 20 21  6d 65 6e 75 70 74 72 25  | ..... !menuptr%|
000013a0  3d 30 0d 00 a8 37 20 20  e7 20 c0 77 74 65 78 74  |=0...7  . .wtext|
000013b0  24 2c 31 29 3d 22 2d 22  20 8c 20 6d 65 6e 75 70  |$,1)="-" . menup|
000013c0  74 72 25 3f 30 3d 32 3a  77 74 65 78 74 24 3d c1  |tr%?0=2:wtext$=.|
000013d0  77 74 65 78 74 24 2c 32  29 0d 00 a9 18 20 20 e7  |wtext$,2)....  .|
000013e0  20 c0 77 74 65 78 74 24  2c 31 29 3d 22 3e 22 20  | .wtext$,1)=">" |
000013f0  8c 0d 00 aa 17 20 20 20  6d 65 6e 75 70 74 72 25  |.....   menuptr%|
00001400  21 34 3d 69 6e 66 6f 25  0d 00 ab 32 20 20 20 64  |!4=info%...2   d|
00001410  75 6d 6d 79 3d a4 66 69  6c 65 5f 6c 65 6e 28 22  |ummy=.file_len("|
00001420  3c 50 73 63 61 6e 24 44  69 72 3e 2e 52 65 73 6f  |<Pscan$Dir>.Reso|
00001430  75 72 63 65 73 2e 69 64  22 29 0d 00 ac 37 20 20  |urces.id")...7  |
00001440  20 46 25 3d 8e 28 22 3c  50 73 63 61 6e 24 44 69  | F%=.("<Pscan$Di|
00001450  72 3e 2e 52 65 73 6f 75  72 63 65 73 2e 69 64 22  |r>.Resources.id"|
00001460  29 3a e8 23 46 25 2c 75  73 65 72 24 3a d9 23 46  |):.#F%,user$:.#F|
00001470  25 0d 00 ad 22 20 20 20  f2 77 72 69 74 65 69 63  |%..."   .writeic|
00001480  6f 6e 28 32 38 2c 69 6e  66 6f 25 2c 37 2c 76 65  |on(28,info%,7,ve|
00001490  72 24 29 0d 00 ae 23 20  20 20 f2 77 72 69 74 65  |r$)...#   .write|
000014a0  69 63 6f 6e 28 32 38 2c  69 6e 66 6f 25 2c 38 2c  |icon(28,info%,8,|
000014b0  75 73 65 72 24 29 0d 00  af 07 20 20 cc 0d 00 b0  |user$)....  ....|
000014c0  13 20 20 20 6d 65 6e 75  70 74 72 25 21 34 3d b9  |.   menuptr%!4=.|
000014d0  0d 00 b1 07 20 20 cd 0d  00 b2 19 20 6d 65 6e 75  |....  ..... menu|
000014e0  70 74 72 25 21 38 3d 26  30 37 30 30 30 30 32 31  |ptr%!8=&07000021|
000014f0  0d 00 b3 49 20 e7 20 c0  77 74 65 78 74 24 2c 31  |...I . .wtext$,1|
00001500  29 3d 22 3e 22 20 8c 20  24 28 6d 65 6e 75 70 74  |)=">" . $(menupt|
00001510  72 25 2b 31 32 29 3d c1  77 74 65 78 74 24 2c 32  |r%+12)=.wtext$,2|
00001520  29 20 8b 20 24 28 6d 65  6e 75 70 74 72 25 2b 31  |) . $(menuptr%+1|
00001530  32 29 3d 77 74 65 78 74  24 0d 00 b4 11 20 6d 65  |2)=wtext$.... me|
00001540  6e 75 70 74 72 25 2b 3d  32 34 0d 00 b5 06 20 cd  |nuptr%+=24.... .|
00001550  0d 00 b6 06 20 e1 0d 00  b7 04 0d 00 b8 11 20 dd  |.... ......... .|
00001560  20 a4 70 61 72 28 73 65  70 24 29 0d 00 b9 26 20  | .par(sep$)...& |
00001570  69 31 25 3d 69 25 2b 31  3a 69 25 3d a7 6d 65 6e  |i1%=i%+1:i%=.men|
00001580  75 24 2b 73 65 70 24 2c  73 65 70 24 2c 69 31 25  |u$+sep$,sep$,i1%|
00001590  29 0d 00 ba 18 20 3d c1  6d 65 6e 75 24 2c 69 31  |).... =.menu$,i1|
000015a0  25 2c 69 25 2d 69 31 25  29 0d 00 bb 04 0d 00 bc  |%,i%-i1%).......|
000015b0  1a 20 dd 20 f2 6d 65 6e  75 73 65 6c 65 63 74 28  |. . .menuselect(|
000015c0  6d 65 6e 75 73 25 29 0d  00 bd 3a 20 c8 99 20 22  |menus%)...: .. "|
000015d0  57 69 6d 70 5f 44 65 63  6f 64 65 4d 65 6e 75 22  |Wimp_DecodeMenu"|
000015e0  2c 2c 57 62 75 66 66 65  72 25 2c 6d 65 6e 75 73  |,,Wbuffer%,menus|
000015f0  25 2c c4 32 30 30 2c 22  20 22 29 b8 2c 2c 2c 61  |%,.200," ").,,,a|
00001600  24 0d 00 be 0f 20 e7 20  61 24 3c 3e 22 22 20 8c  |$.... . a$<>"" .|
00001610  0d 00 bf 16 20 20 c8 8e  20 6d 65 6e 75 68 61 6e  |....  .. menuhan|
00001620  64 6c 65 25 20 ca 0d 00  c0 0c 20 20 20 c9 20 31  |dle% .....   . 1|
00001630  30 31 0d 00 c1 0e 20 20  20 c8 8e 20 61 24 20 ca  |01....   .. a$ .|
00001640  0d 00 c2 26 20 20 20 20  c9 20 22 51 75 69 74 22  |...&    . "Quit"|
00001650  20 20 20 20 20 20 20 3a  20 70 73 63 61 6e 5f 65  |       : pscan_e|
00001660  78 69 74 25 3d b9 0d 00  c3 35 20 20 20 20 c9 20  |xit%=....5    . |
00001670  22 48 65 6c 70 22 20 20  20 20 20 20 20 3a 20 2a  |"Help"       : *|
00001680  46 69 6c 65 72 5f 52 75  6e 20 3c 50 73 63 61 6e  |Filer_Run <Pscan|
00001690  24 44 69 72 3e 2e 21 48  65 6c 70 0d 00 c4 36 20  |$Dir>.!Help...6 |
000016a0  20 20 20 c9 20 22 4d 61  6e 75 61 6c 22 20 20 20  |   . "Manual"   |
000016b0  20 20 3a 20 2a 46 69 6c  65 72 5f 52 75 6e 20 3c  |  : *Filer_Run <|
000016c0  50 73 63 61 6e 24 44 69  72 3e 2e 4d 61 6e 75 61  |Pscan$Dir>.Manua|
000016d0  6c 0d 00 c5 3c 20 20 20  20 c9 20 22 43 68 6f 69  |l...<    . "Choi|
000016e0  63 65 73 2e 2e 2e 22 20  3a 20 c8 99 20 22 57 69  |ces..." : .. "Wi|
000016f0  6d 70 5f 53 74 61 72 74  54 61 73 6b 22 2c 63 68  |mp_StartTask",ch|
00001700  6f 69 63 65 73 5f 77 69  6e 64 6f 77 25 0d 00 c6  |oices_window%...|
00001710  42 20 20 20 20 c9 20 22  52 65 67 69 73 74 65 72  |B    . "Register|
00001720  2e 2e 2e 22 3a 20 e7 20  24 28 6d 65 6e 75 25 2b  |...": . $(menu%+|
00001730  35 36 29 3d 22 73 73 74  76 22 20 8c 20 6a 75 73  |56)="sstv" . jus|
00001740  74 5f 72 65 67 69 73 74  65 72 65 64 25 3d b9 0d  |t_registered%=..|
00001750  00 c7 40 20 20 20 20 20  20 20 20 20 20 20 20 20  |..@             |
00001760  20 20 20 20 20 20 20 20  20 20 20 c8 99 20 22 57  |           .. "W|
00001770  69 6d 70 5f 53 74 61 72  74 54 61 73 6b 22 2c 72  |imp_StartTask",r|
00001780  65 67 69 73 74 65 72 5f  77 69 6e 64 6f 77 25 0d  |egister_window%.|
00001790  00 c8 08 20 20 20 cb 0d  00 c9 07 20 20 cb 0d 00  |...   .....  ...|
000017a0  ca 06 20 cd 0d 00 cb 06  20 e1 0d 00 cc 04 0d 00  |.. ..... .......|
000017b0  cd 2a 20 dd 20 f2 77 72  69 74 65 69 63 6f 6e 28  |.* . .writeicon(|
000017c0  69 74 77 25 2c 77 68 61  6e 64 6c 65 25 2c 77 69  |itw%,whandle%,wi|
000017d0  63 25 2c 77 69 63 24 29  0d 00 ce 15 20 21 62 6c  |c%,wic$).... !bl|
000017e0  6f 63 6b 25 3d 77 68 61  6e 64 6c 65 25 0d 00 cf  |ock%=whandle%...|
000017f0  2e 20 73 25 3d a4 72 65  61 64 69 63 6f 6e 28 69  |. s%=.readicon(i|
00001800  74 77 25 2c 77 68 61 6e  64 6c 65 25 2c 77 69 63  |tw%,whandle%,wic|
00001810  25 29 3a 24 73 25 3d 77  69 63 24 0d 00 d0 12 20  |%):$s%=wic$.... |
00001820  62 6c 6f 63 6b 25 21 34  3d 77 69 63 25 0d 00 d1  |block%!4=wic%...|
00001830  1b 20 62 6c 6f 63 6b 25  21 38 3d 30 3a 62 6c 6f  |. block%!8=0:blo|
00001840  63 6b 25 21 31 32 3d 30  0d 00 d2 16 20 c8 99 20  |ck%!12=0.... .. |
00001850  26 34 30 30 43 44 2c 2c  62 6c 6f 63 6b 25 0d 00  |&400CD,,block%..|
00001860  d3 06 20 e1 0d 00 d4 04  0d 00 d5 25 20 dd 20 a4  |.. ........% . .|
00001870  72 65 61 64 69 63 6f 6e  28 69 74 72 25 2c 77 68  |readicon(itr%,wh|
00001880  61 6e 64 6c 65 25 2c 77  68 69 63 68 29 0d 00 d6  |andle%,which)...|
00001890  09 20 ea 20 61 24 0d 00  d7 15 20 21 62 6c 6f 63  |. . a$.... !bloc|
000018a0  6b 25 3d 77 68 61 6e 64  6c 65 25 0d 00 d8 25 20  |k%=whandle%...% |
000018b0  c8 99 20 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  |.. "Wimp_GetWind|
000018c0  6f 77 53 74 61 74 65 22  2c 2c 62 6c 6f 63 6b 25  |owState",,block%|
000018d0  0d 00 d9 13 20 62 6c 6f  63 6b 25 21 34 3d 77 68  |.... block%!4=wh|
000018e0  69 63 68 0d 00 da 16 20  c8 99 20 26 34 30 30 43  |ich.... .. &400C|
000018f0  45 2c 2c 62 6c 6f 63 6b  25 0d 00 db 11 20 3d 62  |E,,block%.... =b|
00001900  6c 6f 63 6b 25 21 69 74  72 25 0d 00 dc 04 0d 00  |lock%!itr%......|
00001910  dd 46 20 f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 20  |.F . ********** |
00001920  4d 41 49 4e 20 4e 4f 4e  2d 4d 55 4c 54 49 54 41  |MAIN NON-MULTITA|
00001930  53 4b 49 4e 47 20 50 52  4f 47 52 41 4d 20 53 54  |SKING PROGRAM ST|
00001940  41 52 54 53 20 48 45 52  45 20 2a 2a 2a 2a 2a 2a  |ARTS HERE ******|
00001950  2a 2a 2a 2a 0d 00 de 04  0d 00 df 13 20 dd 20 f2  |****........ . .|
00001960  73 74 61 72 74 5f 70 73  63 61 6e 0d 00 e0 04 0d  |start_pscan.....|
00001970  00 e1 27 20 f2 72 65 61  64 5f 63 6f 6e 66 69 67  |..' .read_config|
00001980  5f 66 69 6c 65 28 63 6f  6e 66 69 67 5f 65 6e 74  |_file(config_ent|
00001990  72 69 65 73 25 29 0d 00  e2 24 20 f2 73 65 74 5f  |ries%)...$ .set_|
000019a0  76 61 72 69 61 62 6c 65  73 5f 66 72 6f 6d 5f 63  |variables_from_c|
000019b0  6f 6e 66 69 67 5f 66 69  6c 65 0d 00 e3 04 0d 00  |onfig_file......|
000019c0  e4 19 20 e7 20 6a 75 73  74 5f 72 65 67 69 73 74  |.. . just_regist|
000019d0  65 72 65 64 25 20 8c 0d  00 e5 39 20 20 ff 28 22  |ered% ....9  .("|
000019e0  4c 4f 41 44 20 3c 50 73  63 61 6e 24 44 69 72 3e  |LOAD <Pscan$Dir>|
000019f0  2e 52 65 73 6f 75 72 63  65 73 2e 50 73 63 61 6e  |.Resources.Pscan|
00001a00  54 58 20 22 2b c3 7e 74  78 5f 63 6f 64 65 25 29  |TX "+.~tx_code%)|
00001a10  0d 00 e6 19 20 20 6a 75  73 74 5f 72 65 67 69 73  |....  just_regis|
00001a20  74 65 72 65 64 25 3d a3  20 0d 00 e7 06 20 cd 0d  |tered%=. .... ..|
00001a30  00 e8 04 0d 00 e9 16 20  c8 99 20 22 48 6f 75 72  |....... .. "Hour|
00001a40  67 6c 61 73 73 5f 4f 6e  22 0d 00 ea 30 20 64 65  |glass_On"...0 de|
00001a50  73 6b 5f 6d 6f 64 65 25  3d eb 3a 6d 6f 64 65 6c  |sk_mode%=.:model|
00001a60  65 6e 25 3d 32 34 3a 70  74 72 25 3d 64 65 73 6b  |en%=24:ptr%=desk|
00001a70  5f 6d 6f 64 65 25 2b 32  30 0d 00 eb 11 20 c8 95  |_mode%+20.... ..|
00001a80  20 21 70 74 72 25 3c 3e  2d 31 0d 00 ec 18 20 70  | !ptr%<>-1.... p|
00001a90  74 72 25 2b 3d 34 3a 6d  6f 64 65 6c 65 6e 25 2b  |tr%+=4:modelen%+|
00001aa0  3d 34 0d 00 ed 06 20 ce  0d 00 ee 1a 20 de 20 6d  |=4.... ..... . m|
00001ab0  6f 64 65 73 74 6f 72 65  25 20 6d 6f 64 65 6c 65  |odestore% modele|
00001ac0  6e 25 0d 00 ef 1c 20 e3  20 69 25 3d 30 20 b8 20  |n%.... . i%=0 . |
00001ad0  6d 6f 64 65 6c 65 6e 25  2d 34 20 88 20 34 0d 00  |modelen%-4 . 4..|
00001ae0  f0 22 20 6d 6f 64 65 73  74 6f 72 65 25 21 69 25  |." modestore%!i%|
00001af0  3d 64 65 73 6b 5f 6d 6f  64 65 25 21 69 25 3a ed  |=desk_mode%!i%:.|
00001b00  0d 00 f1 2e 20 f2 6d 6f  64 65 28 22 58 36 34 30  |.... .mode("X640|
00001b10  20 59 35 31 32 20 43 33  32 4b 22 29 3a 73 63 72  | Y512 C32K"):scr|
00001b20  65 65 6e 5f 6c 69 6e 65  73 25 3d 35 31 32 0d 00  |een_lines%=512..|
00001b30  f2 36 20 ef 31 32 2c 32  36 2c 32 30 3a 87 3a c8  |.6 .12,26,20:.:.|
00001b40  96 3a 64 69 73 70 5f 66  6c 61 67 25 3d 30 3a 70  |.:disp_flag%=0:p|
00001b50  61 6e 65 6c 24 3d 22 50  61 6e 65 6c 2e 4d 65 64  |anel$="Panel.Med|
00001b60  69 75 6d 22 0d 00 f3 3c  20 73 63 72 65 65 6e 25  |ium"...< screen%|
00001b70  3d a4 73 63 72 65 65 6e  5f 61 64 64 72 65 73 73  |=.screen_address|
00001b80  3a e6 20 32 35 35 2c 32  35 35 2c 30 3a c8 92 20  |:. 255,255,0:.. |
00001b90  30 2c 31 30 32 33 3a c8  92 20 32 2c 31 30 32 33  |0,1023:.. 2,1023|
00001ba0  0d 00 f4 04 0d 00 f5 1c  20 e7 20 21 73 63 72 65  |........ . !scre|
00001bb0  65 6e 25 3c 3e 26 30 33  46 46 30 33 46 46 20 8c  |en%<>&03FF03FF .|
00001bc0  0d 00 f6 4b 20 f2 6d 6f  64 65 28 22 58 36 34 30  |...K .mode("X640|
00001bd0  20 59 34 38 30 20 43 33  32 4b 22 29 3a 73 63 72  | Y480 C32K"):scr|
00001be0  65 65 6e 25 3d a4 73 63  72 65 65 6e 5f 61 64 64  |een%=.screen_add|
00001bf0  72 65 73 73 3a 87 3a c8  96 3a 73 63 72 65 65 6e  |ress:.:..:screen|
00001c00  5f 6c 69 6e 65 73 25 3d  34 38 30 0d 00 f7 22 20  |_lines%=480..." |
00001c10  e6 20 30 2c 30 2c 31 32  38 3a c8 93 20 c8 90 20  |. 0,0,128:.. .. |
00001c20  30 2c 30 2c 31 32 38 30  2c 31 30 32 34 0d 00 f8  |0,0,1280,1024...|
00001c30  23 20 f2 72 61 69 73 65  64 5f 62 6c 6f 63 6b 28  |# .raised_block(|
00001c40  32 30 30 2c 33 30 30 2c  38 35 30 2c 35 30 30 29  |200,300,850,500)|
00001c50  0d 00 f9 27 20 e6 20 32  35 35 2c 32 35 35 2c 31  |...' . 255,255,1|
00001c60  32 38 3a c8 93 20 c8 90  20 32 32 30 2c 37 33 32  |28:.. .. 220,732|
00001c70  2c 38 30 34 2c 35 30 0d  00 fa 3a 20 f2 77 72 69  |,804,50...: .wri|
00001c80  74 65 32 28 22 4d 65 73  73 61 67 65 20 66 72 6f  |te2("Message fro|
00001c90  6d 20 50 73 63 61 6e 20  76 65 72 73 69 6f 6e 20  |m Pscan version |
00001ca0  22 2b 76 65 72 24 2c 32  32 30 2c 37 34 30 2c 34  |"+ver$,220,740,4|
00001cb0  29 0d 00 fb 4d 20 f2 77  72 69 74 65 32 28 22 50  |)...M .write2("P|
00001cc0  73 63 61 6e 20 6e 65 65  64 73 20 74 6f 20 75 73  |scan needs to us|
00001cd0  65 20 61 20 36 34 30 20  78 20 35 31 32 20 73 63  |e a 640 x 512 sc|
00001ce0  72 65 65 6e 20 6d 6f 64  65 20 61 6e 64 20 74 68  |reen mode and th|
00001cf0  69 73 22 2c 32 32 30 2c  36 37 30 2c 34 29 0d 00  |is",220,670,4)..|
00001d00  fc 49 20 f2 77 72 69 74  65 32 28 22 64 6f 65 73  |.I .write2("does|
00001d10  20 6e 6f 74 20 73 65 65  6d 20 74 6f 20 62 65 20  | not seem to be |
00001d20  61 76 61 69 6c 61 62 6c  65 20 6f 6e 20 79 6f 75  |available on you|
00001d30  72 20 63 6f 6d 70 75 74  65 72 2e 22 2c 32 32 30  |r computer.",220|
00001d40  2c 36 33 30 2c 34 29 0d  00 fd 50 20 f2 77 72 69  |,630,4)...P .wri|
00001d50  74 65 32 28 22 53 65 65  20 74 68 65 20 21 52 65  |te2("See the !Re|
00001d60  61 64 4d 65 20 66 69 6c  65 20 69 6e 73 69 64 65  |adMe file inside|
00001d70  20 74 68 65 20 21 50 73  63 61 6e 2e 45 78 74 72  | the !Pscan.Extr|
00001d80  61 73 2e 4d 6f 6e 69 74  6f 72 73 22 2c 32 32 30  |as.Monitors",220|
00001d90  2c 35 39 30 2c 34 29 0d  00 fe 4d 20 f2 77 72 69  |,590,4)...M .wri|
00001da0  74 65 32 28 22 64 69 72  65 63 74 6f 72 79 20 6f  |te2("directory o|
00001db0  72 20 63 6f 6e 74 61 63  74 20 47 34 49 4a 45 20  |r contact G4IJE |
00001dc0  28 30 31 32 37 39 20 37  33 34 34 38 32 29 20 66  |(01279 734482) f|
00001dd0  6f 72 20 68 65 6c 70 2e  22 2c 32 32 30 2c 35 35  |or help.",220,55|
00001de0  30 2c 34 29 0d 00 ff 4a  20 f2 77 72 69 74 65 32  |0,4)...J .write2|
00001df0  28 22 59 6f 75 20 63 61  6e 20 72 75 6e 20 50 73  |("You can run Ps|
00001e00  63 61 6e 20 69 6e 20 61  20 36 34 30 20 78 20 34  |can in a 640 x 4|
00001e10  38 30 20 73 63 72 65 65  6e 20 6d 6f 64 65 20 62  |80 screen mode b|
00001e20  75 74 22 2c 32 32 30 2c  34 39 30 2c 34 29 0d 01  |ut",220,490,4)..|
00001e30  00 40 20 f2 77 72 69 74  65 32 28 22 73 6f 6d 65  |.@ .write2("some|
00001e40  20 66 65 61 74 75 72 65  73 20 77 69 6c 6c 20 6e  | features will n|
00001e50  6f 74 20 77 6f 72 6b 20  63 6f 72 72 65 63 74 6c  |ot work correctl|
00001e60  79 2e 22 2c 32 32 30 2c  34 35 30 2c 34 29 0d 01  |y.",220,450,4)..|
00001e70  01 4d 20 f2 72 61 69 73  65 64 5f 62 6c 6f 63 6b  |.M .raised_block|
00001e80  28 32 34 30 2c 33 34 30  2c 33 34 30 2c 34 30 29  |(240,340,340,40)|
00001e90  3a f2 77 72 69 74 65 32  28 22 43 6f 6e 74 69 6e  |:.write2("Contin|
00001ea0  75 65 20 69 6e 20 36 34  30 20 78 20 34 38 30 22  |ue in 640 x 480"|
00001eb0  2c 32 34 36 2c 33 34 34  2c 34 29 0d 01 02 47 20  |,246,344,4)...G |
00001ec0  f2 72 61 69 73 65 64 5f  62 6c 6f 63 6b 28 36 36  |.raised_block(66|
00001ed0  34 2c 33 34 30 2c 33 34  30 2c 34 30 29 3a f2 77  |4,340,340,40):.w|
00001ee0  72 69 74 65 32 28 22 51  75 69 74 20 74 6f 20 44  |rite2("Quit to D|
00001ef0  65 73 6b 74 6f 70 22 2c  37 31 34 2c 33 34 34 2c  |esktop",714,344,|
00001f00  34 29 0d 01 03 24 20 c8  99 20 22 48 6f 75 72 67  |4)...$ .. "Hourg|
00001f10  6c 61 73 73 5f 53 6d 61  73 68 22 3a 2a 50 4f 49  |lass_Smash":*POI|
00001f20  4e 54 45 52 20 31 0d 01  04 29 20 f2 77 61 69 74  |NTER 1...) .wait|
00001f30  5f 6e 6f 5f 62 75 74 74  6f 6e 3a c8 97 20 c8 93  |_no_button:.. ..|
00001f40  20 32 34 30 2c 33 33 36  2c 37 36 34 2c 34 38 0d  | 240,336,764,48.|
00001f50  01 05 3f 20 f5 3a c8 97  20 58 2c 59 2c 42 3a fd  |..? .:.. X,Y,B:.|
00001f60  20 42 3c 3e 30 3a e7 20  58 3e 36 36 30 20 8c 20  | B<>0:. X>660 . |
00001f70  c8 99 20 22 57 69 6d 70  5f 53 65 74 4d 6f 64 65  |.. "Wimp_SetMode|
00001f80  22 2c 6d 6f 64 65 73 74  6f 72 65 25 3a e0 0d 01  |",modestore%:...|
00001f90  06 18 20 c8 97 20 c8 93  20 30 2c 30 2c 31 32 38  |.. .. .. 0,0,128|
00001fa0  30 2c 31 30 32 34 0d 01  07 06 20 cd 0d 01 08 04  |0,1024.... .....|
00001fb0  0d 01 09 0b 20 2a 46 58  32 2c 30 0d 01 0a 04 0d  |.... *FX2,0.....|
00001fc0  01 0b 1b 20 e7 20 24 28  6d 65 6e 75 25 2b 35 36  |... . $(menu%+56|
00001fd0  29 3d 22 73 73 74 76 22  20 8c 0d 01 0c 45 20 64  |)="sstv" ....E d|
00001fe0  69 73 70 5f 66 6c 61 67  25 3d b9 20 3a 20 f4 20  |isp_flag%=. : . |
00001ff0  50 72 6f 67 72 61 6d 20  68 61 73 20 62 65 65 6e  |Program has been|
00002000  20 72 75 6e 20 61 74 20  6c 65 61 73 74 20 6f 6e  | run at least on|
00002010  63 65 20 73 6f 20 76 61  72 69 61 62 6c 65 73 0d  |ce so variables.|
00002020  01 0d 2c 20 20 20 20 20  20 20 20 20 20 20 20 20  |..,             |
00002030  20 20 20 20 20 20 f4 20  61 72 65 20 6e 6f 74 20  |      . are not |
00002040  69 6e 69 74 69 61 6c 69  73 65 64 0d 01 0e 06 20  |initialised.... |
00002050  cc 0d 01 0f 04 0d 01 10  44 20 e7 20 69 6a 65 5f  |........D . ije_|
00002060  64 65 76 25 20 8c 20 2a  53 45 54 20 50 73 63 61  |dev% . *SET Psca|
00002070  6e 24 44 69 72 20 41 44  46 53 3a 3a 48 61 72 64  |n$Dir ADFS::Hard|
00002080  44 69 73 63 34 2e 24 2e  50 53 5f 4a 61 6e 39 38  |Disc4.$.PS_Jan98|
00002090  2e 41 70 70 46 69 6c 65  73 0d 01 11 04 0d 01 12  |.AppFiles.......|
000020a0  39 20 c8 99 20 22 4f 53  5f 53 57 49 4e 75 6d 62  |9 .. "OS_SWINumb|
000020b0  65 72 46 72 6f 6d 53 74  72 69 6e 67 22 2c 2c 22  |erFromString",,"|
000020c0  4f 53 5f 53 70 72 69 74  65 4f 70 22 20 b8 20 73  |OS_SpriteOp" . s|
000020d0  70 72 73 77 69 25 0d 01  13 31 20 c8 99 20 22 41  |prswi%...1 .. "A|
000020e0  44 46 53 5f 44 72 69 76  65 73 22 20 b8 20 4e 25  |DFS_Drives" . N%|
000020f0  2c 66 6c 6f 70 70 69 65  73 25 2c 68 61 72 64 5f  |,floppies%,hard_|
00002100  64 72 69 76 65 73 25 0d  01 14 04 0d 01 15 04 0d  |drives%.........|
00002110  01 16 1d 20 de 20 73 70  72 25 20 74 78 74 73 69  |... . spr% txtsi|
00002120  7a 65 25 3a f2 73 70 6c  61 73 68 32 0d 01 17 05  |ze%:.splash2....|
00002130  20 0d 01 18 36 20 f2 67  65 74 5f 64 72 69 76 65  | ...6 .get_drive|
00002140  5f 6e 75 6d 62 65 72 5f  66 72 6f 6d 5f 70 61 74  |_number_from_pat|
00002150  68 6e 61 6d 65 3a 64 65  66 61 75 6c 74 5f 64 69  |hname:default_di|
00002160  72 24 3d 64 69 72 24 0d  01 19 1f 20 61 75 74 6f  |r$=dir$.... auto|
00002170  5f 73 61 76 65 25 3d 30  3a 61 75 74 6f 5f 63 6f  |_save%=0:auto_co|
00002180  75 6e 74 25 3d 30 0d 01  1a 23 20 54 68 75 6d 62  |unt%=0...# Thumb|
00002190  64 69 72 24 3d 22 3c 50  73 63 61 6e 24 44 69 72  |dir$="<Pscan$Dir|
000021a0  3e 2e 54 68 75 6d 62 73  22 0d 01 1b 04 0d 01 1c  |>.Thumbs".......|
000021b0  19 20 f2 6c 6f 61 64 5f  72 78 5f 61 6e 64 5f 74  |. .load_rx_and_t|
000021c0  78 5f 63 6f 64 65 0d 01  1d 19 20 f2 6c 6f 61 64  |x_code.... .load|
000021d0  5f 6f 6e 5f 6c 69 6e 65  5f 6d 61 6e 75 61 6c 0d  |_on_line_manual.|
000021e0  01 1e 05 20 0d 01 1f 14  20 c8 97 20 ee 3a 2a 50  |... .... .. .:*P|
000021f0  4f 49 4e 54 45 52 20 31  0d 01 20 04 0d 01 21 1f  |OINTER 1.. ...!.|
00002200  20 6d 6f 64 65 25 3d 31  3a 4d 45 4d 25 3d 30 3a  | mode%=1:MEM%=0:|
00002210  47 48 25 3d 30 3a 47 57  25 3d 30 0d 01 22 34 20  |GH%=0:GW%=0.."4 |
00002220  6d 65 6d 33 25 3d 30 3a  6d 65 6d 34 25 3d 30 3a  |mem3%=0:mem4%=0:|
00002230  6d 65 6d 35 25 3d 30 3a  6d 65 6d 36 25 3d 30 3a  |mem5%=0:mem6%=0:|
00002240  6d 65 6d 37 25 3d 30 3a  6d 65 6d 38 25 3d 30 0d  |mem7%=0:mem8%=0.|
00002250  01 23 20 20 de 20 6d 65  6d 31 25 20 36 35 35 34  |.#  . mem1% 6554|
00002260  32 30 2c 6d 65 6d 32 25  20 36 35 35 34 32 30 0d  |20,mem2% 655420.|
00002270  01 24 23 20 e7 20 6d 65  6d 6f 72 69 65 73 25 3e  |.$# . memories%>|
00002280  32 20 8c 20 de 20 6d 65  6d 33 25 20 36 35 35 34  |2 . . mem3% 6554|
00002290  32 30 0d 01 25 23 20 e7  20 6d 65 6d 6f 72 69 65  |20..%# . memorie|
000022a0  73 25 3e 33 20 8c 20 de  20 6d 65 6d 34 25 20 36  |s%>3 . . mem4% 6|
000022b0  35 35 34 32 30 0d 01 26  23 20 e7 20 6d 65 6d 6f  |55420..&# . memo|
000022c0  72 69 65 73 25 3e 34 20  8c 20 de 20 6d 65 6d 35  |ries%>4 . . mem5|
000022d0  25 20 36 35 35 34 32 30  0d 01 27 23 20 e7 20 6d  |% 655420..'# . m|
000022e0  65 6d 6f 72 69 65 73 25  3e 35 20 8c 20 de 20 6d  |emories%>5 . . m|
000022f0  65 6d 36 25 20 36 35 35  34 32 30 0d 01 28 23 20  |em6% 655420..(# |
00002300  e7 20 6d 65 6d 6f 72 69  65 73 25 3e 36 20 8c 20  |. memories%>6 . |
00002310  de 20 6d 65 6d 37 25 20  36 35 35 34 32 30 0d 01  |. mem7% 655420..|
00002320  29 23 20 e7 20 6d 65 6d  6f 72 69 65 73 25 3e 37  |)# . memories%>7|
00002330  20 8c 20 de 20 6d 65 6d  38 25 20 36 35 35 34 32  | . . mem8% 65542|
00002340  30 0d 01 2a 04 0d 01 2b  14 20 6d 65 6d 62 6c 6f  |0..*...+. memblo|
00002350  63 6b 25 3d 6d 65 6d 31  25 0d 01 2c 0f 20 e7 20  |ck%=mem1%..,. . |
00002360  74 68 75 6d 62 25 20 8c  0d 01 2d 24 20 20 de 20  |thumb% ...-$  . |
00002370  74 68 62 6c 6f 63 6b 25  20 33 32 38 30 30 30 2c  |thblock% 328000,|
00002380  74 68 70 61 74 68 25 20  32 35 36 30 0d 01 2e 35  |thpath% 2560...5|
00002390  20 20 74 68 75 6d 62 5f  6d 61 78 25 3d a4 63 6f  |  thumb_max%=.co|
000023a0  75 6e 74 5f 74 68 75 6d  62 6e 61 69 6c 5f 62 61  |unt_thumbnail_ba|
000023b0  6e 6b 73 3a 74 68 75 6d  62 5f 62 61 6e 6b 25 3d  |nks:thumb_bank%=|
000023c0  31 0d 01 2f 25 20 20 74  68 62 6c 6f 63 6b 25 21  |1../%  thblock%!|
000023d0  30 3d 33 32 38 30 30 30  3a 74 68 62 6c 6f 63 6b  |0=328000:thblock|
000023e0  25 21 38 3d 31 36 0d 01  30 1f 20 20 c8 99 20 73  |%!8=16..0.  .. s|
000023f0  70 72 73 77 69 25 2c 32  35 36 2b 39 2c 74 68 62  |prswi%,256+9,thb|
00002400  6c 6f 63 6b 25 0d 01 31  31 20 20 c8 99 20 22 4f  |lock%..11  .. "O|
00002410  53 5f 46 69 6c 65 22 2c  35 2c 54 68 75 6d 62 64  |S_File",5,Thumbd|
00002420  69 72 24 2b 22 2e 54 68  75 6d 62 50 69 78 30 31  |ir$+".ThumbPix01|
00002430  22 20 b8 20 61 25 0d 01  32 31 20 20 c8 99 20 22  |" . a%..21  .. "|
00002440  4f 53 5f 46 69 6c 65 22  2c 35 2c 54 68 75 6d 62  |OS_File",5,Thumb|
00002450  64 69 72 24 2b 22 2e 54  68 75 6d 50 61 74 68 30  |dir$+".ThumPath0|
00002460  31 22 20 b8 20 62 25 0d  01 33 16 20 20 20 e7 20  |1" . b%..3.   . |
00002470  61 25 3d 30 20 84 20 62  25 3d 30 20 8c 0d 01 34  |a%=0 . b%=0 ...4|
00002480  25 20 20 20 f2 63 72 65  61 74 65 5f 62 6c 61 6e  |%   .create_blan|
00002490  6b 5f 74 68 75 6d 62 6e  61 69 6c 28 22 6e 65 77  |k_thumbnail("new|
000024a0  22 29 0d 01 35 2a 20 20  20 74 68 75 6d 62 5f 6d  |")..5*   thumb_m|
000024b0  61 78 25 3d 31 3a 74 68  75 6d 62 5f 62 61 6e 6b  |ax%=1:thumb_bank|
000024c0  25 3d 31 3a f2 73 70 6c  61 73 68 32 0d 01 36 08  |%=1:.splash2..6.|
000024d0  20 20 20 cd 0d 01 37 27  20 20 f2 6c 6f 61 64 5f  |   ...7'  .load_|
000024e0  74 68 75 6d 62 6e 61 69  6c 5f 62 61 6e 6b 28 74  |thumbnail_bank(t|
000024f0  68 75 6d 62 5f 62 61 6e  6b 25 29 0d 01 38 06 20  |humb_bank%)..8. |
00002500  cd 0d 01 39 04 0d 01 3a  3c 20 de 20 6d 6f 64 65  |...9...:< . mode|
00002510  24 28 32 30 30 29 3a f2  73 65 74 75 70 5f 6d 6f  |$(200):.setup_mo|
00002520  64 65 73 3a 61 72 65 61  5f 63 6f 70 69 65 64 25  |des:area_copied%|
00002530  3d 30 3a 67 62 70 62 5f  6c 65 6e 25 3d 33 30 30  |=0:gbpb_len%=300|
00002540  30 0d 01 3b 41 20 de 20  63 61 74 24 28 38 30 29  |0..;A . cat$(80)|
00002550  2c 66 74 79 70 65 24 28  38 30 29 2c 67 62 70 62  |,ftype$(80),gbpb|
00002560  25 20 67 62 70 62 5f 6c  65 6e 25 2c 70 61 74 68  |% gbpb_len%,path|
00002570  24 28 38 29 2c 6a 70 65  67 73 63 61 6c 65 25 20  |$(8),jpegscale% |
00002580  31 36 0d 01 3c 1f 20 e3  20 4e 25 3d 31 20 b8 20  |16..<. . N%=1 . |
00002590  38 3a 70 61 74 68 24 28  4e 25 29 3d 22 58 22 3a  |8:path$(N%)="X":|
000025a0  ed 0d 01 3d 27 20 de 20  72 65 64 64 61 74 61 20  |...=' . reddata |
000025b0  33 32 2c 67 72 6e 64 61  74 61 20 33 32 2c 62 6c  |32,grndata 32,bl|
000025c0  75 64 61 74 61 20 33 32  0d 01 3e 32 20 de 20 6d  |udata 32..>2 . m|
000025d0  65 6e 75 24 28 32 37 29  2c 66 6f 6e 74 6c 69 73  |enu$(27),fontlis|
000025e0  74 25 20 34 30 2c 74 72  61 6e 25 20 33 32 2c 66  |t% 40,tran% 32,f|
000025f0  6f 6e 74 62 6f 78 25 20  34 30 0d 01 3f 32 20 de  |ontbox% 40..?2 .|
00002600  20 6c 6f 61 64 5f 6c 69  73 74 24 28 38 29 2c 72  | load_list$(8),r|
00002610  74 63 5f 62 75 66 66 65  72 25 20 31 30 3a f2 63  |tc_buffer% 10:.c|
00002620  68 65 63 6b 5f 66 6f 72  5f 62 73 74 0d 01 40 27  |heck_for_bst..@'|
00002630  20 de 20 75 73 65 72 5f  70 61 74 68 24 28 31 34  | . user_path$(14|
00002640  29 2c 63 68 6f 69 63 65  73 5f 6c 69 73 74 24 28  |),choices_list$(|
00002650  32 30 29 0d 01 41 37 20  4c 25 3d 36 34 2b a4 66  |20)..A7 L%=64+.f|
00002660  69 6c 65 5f 6c 65 6e 28  22 3c 50 73 63 61 6e 24  |ile_len("<Pscan$|
00002670  44 69 72 3e 2e 55 73 65  72 46 69 6c 65 73 2e 50  |Dir>.UserFiles.P|
00002680  61 74 68 6e 61 6d 65 73  22 29 0d 01 42 14 20 de  |athnames")..B. .|
00002690  20 75 73 65 72 5f 70 61  74 68 25 20 4c 25 0d 01  | user_path% L%..|
000026a0  43 23 20 de 20 63 77 5f  64 61 74 61 25 20 35 31  |C# . cw_data% 51|
000026b0  32 3a de 20 63 77 5f 74  61 62 6c 65 24 28 35 30  |2:. cw_table$(50|
000026c0  29 0d 01 44 04 0d 01 45  3b 20 f2 6d 65 6d 5f 61  |)..D...E; .mem_a|
000026d0  73 73 65 6d 62 6c 65 3a  f2 70 69 63 70 72 6f 5f  |ssemble:.picpro_|
000026e0  61 73 73 65 6d 62 6c 65  3a f2 73 70 72 69 74 65  |assemble:.sprite|
000026f0  5f 73 68 61 64 6f 77 5f  61 73 73 65 6d 62 6c 65  |_shadow_assemble|
00002700  0d 01 46 39 20 f2 6d 79  73 70 72 69 74 65 5f 61  |..F9 .mysprite_a|
00002710  73 73 65 6d 62 6c 65 3a  f2 6d 61 6e 75 61 6c 5f  |ssemble:.manual_|
00002720  61 73 73 65 6d 62 6c 65  3a f2 72 65 64 72 61 77  |assemble:.redraw|
00002730  5f 61 73 73 65 6d 62 6c  65 0d 01 47 36 20 f2 74  |_assemble..G6 .t|
00002740  61 72 67 61 5f 61 73 73  65 6d 62 6c 65 3a f2 67  |arga_assemble:.g|
00002750  65 74 5f 61 72 65 61 5f  61 73 73 65 6d 62 6c 65  |et_area_assemble|
00002760  3a f2 7a 6f 6f 6d 5f 61  73 73 65 6d 62 6c 65 0d  |:.zoom_assemble.|
00002770  01 48 46 20 f2 72 6f 74  61 74 65 5f 72 67 62 5f  |.HF .rotate_rgb_|
00002780  61 73 73 65 6d 62 6c 65  3a f2 6d 61 6b 65 5f 73  |assemble:.make_s|
00002790  6d 61 6c 6c 5f 74 61 72  67 61 5f 61 73 73 65 6d  |mall_targa_assem|
000027a0  62 6c 65 3a f2 71 75 61  72 74 65 72 5f 61 73 73  |ble:.quarter_ass|
000027b0  65 6d 62 6c 65 0d 01 49  3a 20 f2 77 61 76 65 66  |emble..I: .wavef|
000027c0  6f 72 6d 5f 61 73 73 65  6d 62 6c 65 3a f2 72 65  |orm_assemble:.re|
000027d0  73 65 74 5f 74 30 5f 61  73 73 65 6d 62 6c 65 3a  |set_t0_assemble:|
000027e0  f2 6d 65 72 67 65 5f 61  73 73 65 6d 62 6c 65 0d  |.merge_assemble.|
000027f0  01 4a 04 0d 01 4b 49 20  74 65 78 74 31 24 3d 22  |.J...KI text1$="|
00002800  22 3a 74 65 78 74 32 24  3d 22 22 3a 74 65 78 74  |":text2$="":text|
00002810  24 3d 22 22 3a 54 43 25  3d 26 30 33 46 46 3a 54  |$="":TC%=&03FF:T|
00002820  44 25 3d 33 32 3a 54 4c  25 3d 33 31 3a 74 65 78  |D%=32:TL%=31:tex|
00002830  74 5f 6f 75 74 5f 63 6f  6c 25 3d 30 0d 01 4c 3e  |t_out_col%=0..L>|
00002840  20 62 72 75 73 68 5f 73  69 7a 65 25 3d 31 36 3a  | brush_size%=16:|
00002850  73 74 65 70 25 3d 30 3a  67 72 61 64 25 3d 30 3a  |step%=0:grad%=0:|
00002860  73 68 61 64 24 3d 22 42  52 22 3a 53 43 25 3d 30  |shad$="BR":SC%=0|
00002870  3a 73 68 61 64 6f 77 25  3d 30 0d 01 4d 41 20 70  |:shadow%=0..MA p|
00002880  62 72 25 3d 32 35 35 3a  70 62 67 25 3d 30 3a 70  |br%=255:pbg%=0:p|
00002890  62 62 25 3d 32 35 35 3a  78 70 25 3d 30 3a 79 70  |bb%=255:xp%=0:yp|
000028a0  25 3d 30 3a 70 62 72 69  25 3d 38 3a 70 62 67 69  |%=0:pbri%=8:pbgi|
000028b0  25 3d 30 3a 70 62 62 69  25 3d 38 0d 01 4e 33 20  |%=0:pbbi%=8..N3 |
000028c0  74 65 78 74 5f 62 6c 6f  63 6b 5f 73 68 61 64 6f  |text_block_shado|
000028d0  77 25 3d 30 3a 6f 76 65  72 6c 61 79 25 3d 30 3a  |w%=0:overlay%=0:|
000028e0  66 6f 6e 74 24 3d 22 7b  6e 6f 6e 65 7d 22 0d 01  |font$="{none}"..|
000028f0  4f 4b 20 6f 76 65 72 6c  61 79 5f 6f 75 74 6c 69  |OK overlay_outli|
00002900  6e 65 25 3d 30 3a 4f 4f  43 25 3d 30 3a 68 69 72  |ne%=0:OOC%=0:hir|
00002910  65 73 25 3d 30 3a 74 72  61 6e 73 66 6f 72 6d 25  |es%=0:transform%|
00002920  3d b9 3a 73 6f 6c 69 64  25 3d 30 3a 6a 70 65 67  |=.:solid%=0:jpeg|
00002930  5f 73 63 61 6c 65 25 3d  30 0d 01 50 2c 20 66 69  |_scale%=0..P, fi|
00002940  6c 65 5f 6f 70 65 6e 25  3d 30 3a 6d 65 6e 75 5f  |le_open%=0:menu_|
00002950  72 65 64 72 61 77 25 3d  b9 3a 63 6f 6c 5f 69 64  |redraw%=.:col_id|
00002960  65 63 25 3d 30 0d 01 51  27 20 72 65 61 6c 5f 73  |ec%=0..Q' real_s|
00002970  68 61 64 6f 77 31 25 3d  30 3a 65 6e 74 69 72 65  |hadow1%=0:entire|
00002980  25 3d 30 3a 71 62 77 24  3d 22 6d 22 0d 01 52 4c  |%=0:qbw$="m"..RL|
00002990  20 62 6f 72 64 65 72 5f  77 69 64 74 68 25 3d 32  | border_width%=2|
000029a0  3a 62 6f 72 64 65 72 5f  67 72 61 64 25 3d 31 3a  |:border_grad%=1:|
000029b0  62 79 70 61 73 73 25 3d  30 3a 73 63 72 65 65 6e  |bypass%=0:screen|
000029c0  5f 67 72 61 62 62 65 64  25 3d 30 3a 6a 70 65 67  |_grabbed%=0:jpeg|
000029d0  5f 69 6e 66 6f 25 3d 30  0d 01 53 48 20 71 75 69  |_info%=0..SH qui|
000029e0  74 5f 61 66 74 65 72 5f  65 72 72 6f 72 25 3d a3  |t_after_error%=.|
000029f0  3a 6c 61 73 74 66 69 6c  65 24 3d 22 22 3a 6d 65  |:lastfile$="":me|
00002a00  72 67 65 25 3d 30 3a 67  72 61 62 24 3d 22 65 22  |rge%=0:grab$="e"|
00002a10  3a 6d 61 73 6b 5f 63 72  65 61 74 65 64 25 3d 30  |:mask_created%=0|
00002a20  0d 01 54 38 20 73 68 6f  77 6e 5f 64 69 72 24 3d  |..T8 shown_dir$=|
00002a30  22 2d 22 3a 64 69 72 5f  65 6e 74 72 69 65 73 25  |"-":dir_entries%|
00002a40  3d 30 3a 74 65 78 74 25  3d 30 3a 6d 6d 6d 25 3d  |=0:text%=0:mmm%=|
00002a50  31 3a 56 49 53 25 3d 30  0d 01 55 40 20 63 75 72  |1:VIS%=0..U@ cur|
00002a60  73 6f 72 5f 73 74 61 74  75 73 25 3d 39 39 3a 61  |sor_status%=99:a|
00002a70  75 74 6f 5f 66 69 6e 64  25 3d a3 3a 72 71 75 69  |uto_find%=.:rqui|
00002a80  74 25 3d a3 3a 74 6f 6e  65 62 75 72 73 74 5f 72  |t%=.:toneburst_r|
00002a90  65 73 75 6c 74 25 3d 30  0d 01 56 41 20 73 74 61  |esult%=0..VA sta|
00002aa0  72 74 5f 65 6e 74 72 79  25 3d 30 3a 6c 61 73 74  |rt_entry%=0:last|
00002ab0  5f 73 74 61 72 74 5f 65  6e 74 72 79 25 3d 30 3a  |_start_entry%=0:|
00002ac0  62 69 67 5f 64 69 72 25  3d 30 3a 77 61 73 5f 62  |big_dir%=0:was_b|
00002ad0  69 67 5f 64 69 72 25 3d  30 0d 01 57 04 0d 01 58  |ig_dir%=0..W...X|
00002ae0  27 20 e3 20 4e 25 3d 31  20 b8 20 32 30 3a 63 68  |' . N%=1 . 20:ch|
00002af0  6f 69 63 65 73 5f 6c 69  73 74 24 28 4e 25 29 3d  |oices_list$(N%)=|
00002b00  22 22 3a ed 0d 01 59 08  20 ea 20 85 0d 01 5a 2c  |"":...Y. . ...Z,|
00002b10  20 ee 20 85 20 ea 20 d9  23 46 25 3a f2 63 72 65  | . . . .#F%:.cre|
00002b20  61 74 65 5f 64 65 66 61  75 6c 74 5f 6f 70 74 69  |ate_default_opti|
00002b30  6f 6e 73 5f 66 69 6c 65  0d 01 5b 2a 20 46 25 3d  |ons_file..[* F%=|
00002b40  ad 28 22 3c 50 73 63 61  6e 24 44 69 72 3e 2e 55  |.("<Pscan$Dir>.U|
00002b50  73 65 72 46 69 6c 65 73  2e 4f 70 74 69 6f 6e 73  |serFiles.Options|
00002b60  22 29 0d 01 5c 2a 20 e8  23 46 25 2c 73 61 76 65  |")..\* .#F%,save|
00002b70  5f 74 79 70 65 24 3a 63  68 6f 69 63 65 73 5f 6c  |_type$:choices_l|
00002b80  69 73 74 24 28 31 29 3d  22 6f 6b 22 0d 01 5d 30  |ist$(1)="ok"..]0|
00002b90  20 e8 23 46 25 2c 71 77  69 6b 74 65 78 74 5f 63  | .#F%,qwiktext_c|
00002ba0  6f 6c 6f 75 72 25 3a 63  68 6f 69 63 65 73 5f 6c  |olour%:choices_l|
00002bb0  69 73 74 24 28 32 29 3d  22 6f 6b 22 0d 01 5e 2f  |ist$(2)="ok"..^/|
00002bc0  20 e8 23 46 25 2c 71 77  69 6b 74 65 78 74 5f 62  | .#F%,qwiktext_b|
00002bd0  6c 6f 63 6b 25 3a 63 68  6f 69 63 65 73 5f 6c 69  |lock%:choices_li|
00002be0  73 74 24 28 33 29 3d 22  6f 6b 22 0d 01 5f 29 20  |st$(3)="ok".._) |
00002bf0  e8 23 46 25 2c 6a 70 65  67 5f 6f 70 74 25 3a 63  |.#F%,jpeg_opt%:c|
00002c00  68 6f 69 63 65 73 5f 6c  69 73 74 24 28 34 29 3d  |hoices_list$(4)=|
00002c10  22 6f 6b 22 0d 01 60 2c  20 e8 23 46 25 2c 70 6c  |"ok"..`, .#F%,pl|
00002c20  6f 74 5f 73 68 61 64 6f  77 25 3a 63 68 6f 69 63  |ot_shadow%:choic|
00002c30  65 73 5f 6c 69 73 74 24  28 35 29 3d 22 6f 6b 22  |es_list$(5)="ok"|
00002c40  0d 01 61 2c 20 e8 23 46  25 2c 70 6c 6f 74 5f 62  |..a, .#F%,plot_b|
00002c50  6f 72 64 65 72 25 3a 63  68 6f 69 63 65 73 5f 6c  |order%:choices_l|
00002c60  69 73 74 24 28 36 29 3d  22 6f 6b 22 0d 01 62 2c  |ist$(6)="ok"..b,|
00002c70  20 e8 23 46 25 2c 66 61  78 5f 61 76 65 72 61 67  | .#F%,fax_averag|
00002c80  65 25 3a 63 68 6f 69 63  65 73 5f 6c 69 73 74 24  |e%:choices_list$|
00002c90  28 37 29 3d 22 6f 6b 22  0d 01 63 24 20 e8 23 46  |(7)="ok"..c$ .#F|
00002ca0  25 2c 72 65 64 25 3a 63  68 6f 69 63 65 73 5f 6c  |%,red%:choices_l|
00002cb0  69 73 74 24 28 38 29 3d  22 6f 6b 22 0d 01 64 24  |ist$(8)="ok"..d$|
00002cc0  20 e8 23 46 25 2c 67 72  6e 25 3a 63 68 6f 69 63  | .#F%,grn%:choic|
00002cd0  65 73 5f 6c 69 73 74 24  28 39 29 3d 22 6f 6b 22  |es_list$(9)="ok"|
00002ce0  0d 01 65 25 20 e8 23 46  25 2c 62 6c 75 25 3a 63  |..e% .#F%,blu%:c|
00002cf0  68 6f 69 63 65 73 5f 6c  69 73 74 24 28 31 30 29  |hoices_list$(10)|
00002d00  3d 22 6f 6b 22 0d 01 66  26 20 e8 23 46 25 2c 6a  |="ok"..f& .#F%,j|
00002d10  70 67 71 25 3a 63 68 6f  69 63 65 73 5f 6c 69 73  |pgq%:choices_lis|
00002d20  74 24 28 31 31 29 3d 22  6f 6b 22 0d 01 67 29 20  |t$(11)="ok"..g) |
00002d30  e8 23 46 25 2c 49 6f 66  66 73 65 74 25 3a 63 68  |.#F%,Ioffset%:ch|
00002d40  6f 69 63 65 73 5f 6c 69  73 74 24 28 31 32 29 3d  |oices_list$(12)=|
00002d50  22 6f 6b 22 0d 01 68 2d  20 e8 23 46 25 2c 68 65  |"ok"..h- .#F%,he|
00002d60  61 64 65 72 5f 74 65 78  74 25 3a 63 68 6f 69 63  |ader_text%:choic|
00002d70  65 73 5f 6c 69 73 74 24  28 31 33 29 3d 22 6f 6b  |es_list$(13)="ok|
00002d80  22 0d 01 69 2f 20 e8 23  46 25 2c 70 64 5f 61 75  |"..i/ .#F%,pd_au|
00002d90  74 6f 5f 6c 69 6e 65 73  25 3a 63 68 6f 69 63 65  |to_lines%:choice|
00002da0  73 5f 6c 69 73 74 24 28  31 34 29 3d 22 6f 6b 22  |s_list$(14)="ok"|
00002db0  0d 01 6a 2b 20 e8 23 46  25 2c 73 73 74 76 5f 74  |..j+ .#F%,sstv_t|
00002dc0  69 6d 65 25 3a 63 68 6f  69 63 65 73 5f 6c 69 73  |ime%:choices_lis|
00002dd0  74 24 28 31 35 29 3d 22  6f 6b 22 0d 01 6b 2f 20  |t$(15)="ok"..k/ |
00002de0  e8 23 46 25 2c 6f 75 74  6c 69 6e 65 5f 77 69 64  |.#F%,outline_wid|
00002df0  74 68 25 3a 63 68 6f 69  63 65 73 5f 6c 69 73 74  |th%:choices_list|
00002e00  24 28 31 36 29 3d 22 6f  6b 22 0d 01 6c 2b 20 e8  |$(16)="ok"..l+ .|
00002e10  23 46 25 2c 62 65 61 63  6f 6e 5f 6f 6e 25 3a 63  |#F%,beacon_on%:c|
00002e20  68 6f 69 63 65 73 5f 6c  69 73 74 24 28 31 37 29  |hoices_list$(17)|
00002e30  3d 22 6f 6b 22 0d 01 6d  09 20 d9 23 46 25 0d 01  |="ok"..m. .#F%..|
00002e40  6e 08 20 f7 20 85 0d 01  6f 04 0d 01 70 13 20 c8  |n. . ...o...p. .|
00002e50  8e 20 6a 70 65 67 5f 6f  70 74 25 20 ca 0d 01 71  |. jpeg_opt% ...q|
00002e60  18 20 c9 20 30 2c 31 3a  6a 70 65 67 5f 73 63 61  |. . 0,1:jpeg_sca|
00002e70  6c 65 25 3d 30 0d 01 72  19 20 c9 20 32 2c 33 3a  |le%=0..r. . 2,3:|
00002e80  6a 70 65 67 5f 73 63 61  6c 65 25 3d 2d 31 0d 01  |jpeg_scale%=-1..|
00002e90  73 06 20 cb 0d 01 74 04  0d 01 75 2f 20 e7 20 73  |s. ...t...u/ . s|
00002ea0  61 76 65 5f 74 79 70 65  24 3d 22 6f 76 65 72 6c  |ave_type$="overl|
00002eb0  61 79 22 20 73 61 76 65  5f 74 79 70 65 24 3d 22  |ay" save_type$="|
00002ec0  73 70 72 69 74 65 22 0d  01 76 04 0d 01 77 2a 20  |sprite"..v...w* |
00002ed0  de 20 6d 6f 75 73 65 31  25 20 33 30 30 2c 6d 6f  |. mouse1% 300,mo|
00002ee0  75 73 65 32 25 20 33 30  30 2c 6d 6f 75 73 65 33  |use2% 300,mouse3|
00002ef0  25 20 33 30 30 0d 01 78  34 20 64 75 6d 6d 79 3d  |% 300..x4 dummy=|
00002f00  a4 66 69 6c 65 5f 6c 65  6e 28 22 3c 50 73 63 61  |.file_len("<Psca|
00002f10  6e 24 44 69 72 3e 2e 52  65 73 6f 75 72 63 65 73  |n$Dir>.Resources|
00002f20  2e 63 72 6f 73 73 31 22  29 0d 01 79 36 20 ff 28  |.cross1")..y6 .(|
00002f30  22 4c 4f 41 44 20 3c 50  73 63 61 6e 24 44 69 72  |"LOAD <Pscan$Dir|
00002f40  3e 2e 52 65 73 6f 75 72  63 65 73 2e 63 72 6f 73  |>.Resources.cros|
00002f50  73 31 20 22 2b c3 7e 6d  6f 75 73 65 31 25 29 0d  |s1 "+.~mouse1%).|
00002f60  01 7a 34 20 64 75 6d 6d  79 3d a4 66 69 6c 65 5f  |.z4 dummy=.file_|
00002f70  6c 65 6e 28 22 3c 50 73  63 61 6e 24 44 69 72 3e  |len("<Pscan$Dir>|
00002f80  2e 52 65 73 6f 75 72 63  65 73 2e 63 72 6f 73 73  |.Resources.cross|
00002f90  32 22 29 0d 01 7b 36 20  ff 28 22 4c 4f 41 44 20  |2")..{6 .("LOAD |
00002fa0  3c 50 73 63 61 6e 24 44  69 72 3e 2e 52 65 73 6f  |<Pscan$Dir>.Reso|
00002fb0  75 72 63 65 73 2e 63 72  6f 73 73 32 20 22 2b c3  |urces.cross2 "+.|
00002fc0  7e 6d 6f 75 73 65 32 25  29 0d 01 7c 34 20 64 75  |~mouse2%)..|4 du|
00002fd0  6d 6d 79 3d a4 66 69 6c  65 5f 6c 65 6e 28 22 3c  |mmy=.file_len("<|
00002fe0  50 73 63 61 6e 24 44 69  72 3e 2e 52 65 73 6f 75  |Pscan$Dir>.Resou|
00002ff0  72 63 65 73 2e 66 69 6e  67 65 72 22 29 0d 01 7d  |rces.finger")..}|
00003000  36 20 ff 28 22 4c 4f 41  44 20 3c 50 73 63 61 6e  |6 .("LOAD <Pscan|
00003010  24 44 69 72 3e 2e 52 65  73 6f 75 72 63 65 73 2e  |$Dir>.Resources.|
00003020  66 69 6e 67 65 72 20 22  2b c3 7e 6d 6f 75 73 65  |finger "+.~mouse|
00003030  33 25 29 0d 01 7e 04 0d  01 7f 44 20 53 50 4d 25  |3%)..~....D SPM%|
00003040  3d 32 38 30 30 30 3a de  20 73 70 62 25 20 53 50  |=28000:. spb% SP|
00003050  4d 25 3a 21 73 70 62 25  3d 53 50 4d 25 3a 73 70  |M%:!spb%=SPM%:sp|
00003060  62 25 21 34 3d 30 3a 73  70 62 25 21 38 3d 31 36  |b%!4=0:spb%!8=16|
00003070  3a 73 70 62 25 21 31 32  3d 31 36 0d 01 80 3e 20  |:spb%!12=16...> |
00003080  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 31  |.. sprswi%,256+1|
00003090  30 2c 73 70 62 25 2c 22  3c 50 73 63 61 6e 24 44  |0,spb%,"<Pscan$D|
000030a0  69 72 3e 2e 50 53 73 70  72 69 74 65 73 2e 73 73  |ir>.PSsprites.ss|
000030b0  74 76 5f 69 63 6f 6e 73  22 0d 01 81 04 0d 01 82  |tv_icons".......|
000030c0  14 20 de 20 74 72 61 6e  73 6c 61 74 65 25 20 31  |. . translate% 1|
000030d0  36 0d 01 83 09 20 f7 20  2b 30 0d 01 84 28 20 e3  |6.... . +0...( .|
000030e0  20 4e 25 3d 30 20 b8 20  31 35 3a f3 20 44 25 3a  | N%=0 . 15:. D%:|
000030f0  74 72 61 6e 73 6c 61 74  65 25 3f 4e 25 3d 44 25  |translate%?N%=D%|
00003100  3a ed 0d 01 85 3b 20 dc  20 32 35 35 2c 32 35 33  |:....; . 255,253|
00003110  2c 31 37 31 2c 31 36 39  2c 38 37 2c 38 35 2c 33  |,171,169,87,85,3|
00003120  2c 30 2c 31 34 34 2c 36  31 2c 34 39 2c 31 32 2c  |,0,144,61,49,12,|
00003130  31 39 30 2c 33 36 2c 34  37 2c 32 32 37 0d 01 86  |190,36,47,227...|
00003140  04 0d 01 87 18 20 de 20  74 72 61 6e 73 6c 61 74  |..... . translat|
00003150  65 32 35 36 25 20 32 35  36 0d 01 88 11 20 e3 20  |e256% 256.... . |
00003160  4e 25 3d 30 20 b8 20 32  35 35 0d 01 89 30 20 c8  |N%=0 . 255...0 .|
00003170  99 20 22 43 6f 6c 6f 75  72 54 72 61 6e 73 5f 43  |. "ColourTrans_C|
00003180  6f 6c 6f 75 72 4e 75 6d  62 65 72 54 6f 47 43 4f  |olourNumberToGCO|
00003190  4c 22 2c 4e 25 20 b8 20  44 25 0d 01 8a 1a 20 74  |L",N% . D%.... t|
000031a0  72 61 6e 73 6c 61 74 65  32 35 36 25 3f 4e 25 3d  |ranslate256%?N%=|
000031b0  44 25 3a ed 0d 01 8b 04  0d 01 8c 17 20 24 28 6d  |D%:......... $(m|
000031c0  65 6e 75 25 2b 35 36 29  3d 22 73 73 74 76 22 0d  |enu%+56)="sstv".|
000031d0  01 8d 06 20 cd 0d 01 8e  04 0d 01 8f 19 20 c8 99  |... ......... ..|
000031e0  20 22 4f 53 5f 42 79 74  65 22 2c 32 32 39 2c 30  | "OS_Byte",229,0|
000031f0  2c 30 0d 01 90 08 20 ea  20 85 0d 01 91 1f 20 ee  |,0.... . ..... .|
00003200  20 85 20 ea 20 f2 70 73  63 61 6e 5f 65 72 72 6f  | . . .pscan_erro|
00003210  72 5f 68 61 6e 64 6c 65  72 0d 01 92 24 20 f2 67  |r_handler...$ .g|
00003220  65 74 5f 64 72 69 76 65  5f 6e 75 6d 62 65 72 5f  |et_drive_number_|
00003230  66 72 6f 6d 5f 70 61 74  68 6e 61 6d 65 0d 01 93  |from_pathname...|
00003240  18 20 42 49 47 51 55 49  54 25 3d 30 3a 68 69 6d  |. BIGQUIT%=0:him|
00003250  65 6d 25 3d 93 0d 01 94  23 20 f2 6d 69 6e 69 5f  |em%=....# .mini_|
00003260  70 61 64 3a c8 99 20 22  48 6f 75 72 67 6c 61 73  |pad:.. "Hourglas|
00003270  73 5f 53 6d 61 73 68 22  0d 01 95 13 20 f2 6d 6f  |s_Smash".... .mo|
00003280  75 73 65 5f 63 6f 6e 74  72 6f 6c 0d 01 96 28 20  |use_control...( |
00003290  e7 20 ac 20 69 6a 65 5f  64 65 76 25 20 8c 20 c8  |. . ije_dev% . .|
000032a0  99 20 22 4f 53 5f 42 79  74 65 22 2c 32 32 39 2c  |. "OS_Byte",229,|
000032b0  31 2c 30 0d 01 97 08 20  f7 20 85 0d 01 98 21 20  |1,0.... . ....! |
000032c0  c8 99 20 22 57 69 6d 70  5f 53 65 74 4d 6f 64 65  |.. "Wimp_SetMode|
000032d0  22 2c 6d 6f 64 65 73 74  6f 72 65 25 0d 01 99 49  |",modestore%...I|
000032e0  20 f2 77 72 69 74 65 32  28 22 52 65 74 75 72 6e  | .write2("Return|
000032f0  69 6e 67 20 74 6f 20 74  68 65 20 64 65 73 6b 74  |ing to the deskt|
00003300  6f 70 20 2d 20 70 6c 65  61 73 65 20 77 61 69 74  |op - please wait|
00003310  20 61 20 6d 6f 6d 65 6e  74 22 2c 33 30 30 2c 35  | a moment",300,5|
00003320  30 30 2c 30 29 0d 01 9a  49 20 f2 77 72 69 74 65  |00,0)...I .write|
00003330  32 28 22 52 65 74 75 72  6e 69 6e 67 20 74 6f 20  |2("Returning to |
00003340  74 68 65 20 64 65 73 6b  74 6f 70 20 2d 20 70 6c  |the desktop - pl|
00003350  65 61 73 65 20 77 61 69  74 20 61 20 6d 6f 6d 65  |ease wait a mome|
00003360  6e 74 22 2c 32 39 36 2c  35 30 34 2c 31 29 0d 01  |nt",296,504,1)..|
00003370  9b 13 20 f2 75 70 64 61  74 65 5f 72 74 63 28 b9  |.. .update_rtc(.|
00003380  29 0d 01 9c 04 0d 01 9d  2a 20 46 25 3d ad 28 22  |).......* F%=.("|
00003390  3c 50 73 63 61 6e 24 44  69 72 3e 2e 55 73 65 72  |<Pscan$Dir>.User|
000033a0  46 69 6c 65 73 2e 4f 70  74 69 6f 6e 73 22 29 0d  |Files.Options").|
000033b0  01 9e 14 20 f1 23 46 25  2c 73 61 76 65 5f 74 79  |... .#F%,save_ty|
000033c0  70 65 24 0d 01 9f 1a 20  f1 23 46 25 2c 71 77 69  |pe$.... .#F%,qwi|
000033d0  6b 74 65 78 74 5f 63 6f  6c 6f 75 72 25 0d 01 a0  |ktext_colour%...|
000033e0  19 20 f1 23 46 25 2c 71  77 69 6b 74 65 78 74 5f  |. .#F%,qwiktext_|
000033f0  62 6c 6f 63 6b 25 0d 01  a1 13 20 f1 23 46 25 2c  |block%.... .#F%,|
00003400  6a 70 65 67 5f 6f 70 74  25 0d 01 a2 16 20 f1 23  |jpeg_opt%.... .#|
00003410  46 25 2c 70 6c 6f 74 5f  73 68 61 64 6f 77 25 0d  |F%,plot_shadow%.|
00003420  01 a3 16 20 f1 23 46 25  2c 70 6c 6f 74 5f 62 6f  |... .#F%,plot_bo|
00003430  72 64 65 72 25 0d 01 a4  16 20 f1 23 46 25 2c 66  |rder%.... .#F%,f|
00003440  61 78 5f 61 76 65 72 61  67 65 25 0d 01 a5 0e 20  |ax_average%.... |
00003450  f1 23 46 25 2c 72 65 64  25 0d 01 a6 0e 20 f1 23  |.#F%,red%.... .#|
00003460  46 25 2c 67 72 6e 25 0d  01 a7 0e 20 f1 23 46 25  |F%,grn%.... .#F%|
00003470  2c 62 6c 75 25 0d 01 a8  0f 20 f1 23 46 25 2c 6a  |,blu%.... .#F%,j|
00003480  70 67 71 25 0d 01 a9 12  20 f1 23 46 25 2c 49 6f  |pgq%.... .#F%,Io|
00003490  66 66 73 65 74 25 0d 01  aa 16 20 f1 23 46 25 2c  |ffset%.... .#F%,|
000034a0  68 65 61 64 65 72 5f 74  65 78 74 25 0d 01 ab 18  |header_text%....|
000034b0  20 f1 23 46 25 2c 70 64  5f 61 75 74 6f 5f 6c 69  | .#F%,pd_auto_li|
000034c0  6e 65 73 25 0d 01 ac 14  20 f1 23 46 25 2c 73 73  |nes%.... .#F%,ss|
000034d0  74 76 5f 74 69 6d 65 25  0d 01 ad 18 20 f1 23 46  |tv_time%.... .#F|
000034e0  25 2c 6f 75 74 6c 69 6e  65 5f 77 69 64 74 68 25  |%,outline_width%|
000034f0  0d 01 ae 14 20 f1 23 46  25 2c 62 65 61 63 6f 6e  |.... .#F%,beacon|
00003500  5f 6f 6e 25 0d 01 af 09  20 d9 23 46 25 0d 01 b0  |_on%.... .#F%...|
00003510  06 20 e1 0d 01 b1 04 0d  01 b2 26 20 dd 20 f2 73  |. ........& . .s|
00003520  65 74 5f 76 61 72 69 61  62 6c 65 73 5f 66 72 6f  |et_variables_fro|
00003530  6d 5f 63 6f 6e 66 69 67  5f 66 69 6c 65 0d 01 b3  |m_config_file...|
00003540  16 20 20 63 61 6c 6c 24  3d 63 6f 6e 66 69 67 24  |.  call$=config$|
00003550  28 31 29 0d 01 b4 1f 20  20 63 6c 6f 63 6b 5f 66  |(1)....  clock_f|
00003560  72 65 71 25 3d bb 28 63  6f 6e 66 69 67 24 28 32  |req%=.(config$(2|
00003570  29 29 0d 01 b5 15 20 20  64 69 72 24 3d 63 6f 6e  |))....  dir$=con|
00003580  66 69 67 24 28 33 29 0d  01 b6 1c 20 20 75 73 65  |fig$(3)....  use|
00003590  72 5f 64 72 69 76 65 24  3d 63 6f 6e 66 69 67 24  |r_drive$=config$|
000035a0  28 36 29 0d 01 b7 31 20  20 e7 20 a7 75 73 65 72  |(6)...1  . .user|
000035b0  5f 64 72 69 76 65 24 2c  22 3a 3a 22 29 3e 30 20  |_drive$,"::")>0 |
000035c0  80 20 a9 28 75 73 65 72  5f 64 72 69 76 65 24 29  |. .(user_drive$)|
000035d0  3e 36 20 8c 0d 01 b8 11  20 20 20 75 64 5f 70 61  |>6 .....   ud_pa|
000035e0  74 68 25 3d b9 0d 01 b9  07 20 20 cc 0d 01 ba 11  |th%=.....  .....|
000035f0  20 20 20 75 64 5f 70 61  74 68 25 3d a3 0d 01 bb  |   ud_path%=....|
00003600  07 20 20 cd 0d 01 bc 1a  20 20 61 75 74 6f 5f 64  |.  .....  auto_d|
00003610  69 72 24 3d 63 6f 6e 66  69 67 24 28 37 29 0d 01  |ir$=config$(7)..|
00003620  bd 26 20 20 e7 20 63 6f  6e 66 69 67 24 28 38 29  |.&  . config$(8)|
00003630  3d 22 59 22 20 8c 20 58  34 25 3d b9 20 8b 20 58  |="Y" . X4%=. . X|
00003640  34 25 3d a3 0d 01 be 1e  20 20 68 65 61 64 65 72  |4%=.....  header|
00003650  5f 74 65 78 74 24 3d 63  6f 6e 66 69 67 24 28 31  |_text$=config$(1|
00003660  30 29 0d 01 bf 18 20 20  63 77 5f 69 64 24 3d 63  |0)....  cw_id$=c|
00003670  6f 6e 66 69 67 24 28 31  31 29 0d 01 c0 29 20 20  |onfig$(11)...)  |
00003680  74 6f 6e 65 62 75 72 73  74 5f 62 61 6e 64 77 69  |toneburst_bandwi|
00003690  64 74 68 25 3d bb 28 63  6f 6e 66 69 67 24 28 31  |dth%=.(config$(1|
000036a0  32 29 29 0d 01 c1 21 20  20 73 65 72 69 61 6c 5f  |2))...!  serial_|
000036b0  62 61 73 65 25 3d a0 28  63 6f 6e 66 69 67 24 28  |base%=.(config$(|
000036c0  31 33 29 29 0d 01 c2 06  20 e1 0d 01 c3 04 0d 01  |13)).... .......|
000036d0  c4 1c 20 dd 20 f2 72 65  61 64 5f 63 6f 6e 66 69  |.. . .read_confi|
000036e0  67 5f 66 69 6c 65 28 4c  25 29 0d 01 c5 28 20 20  |g_file(L%)...(  |
000036f0  46 25 3d 8e 28 22 3c 50  73 63 61 6e 24 44 69 72  |F%=.("<Pscan$Dir|
00003700  3e 2e 43 68 6f 69 63 65  73 2e 50 61 72 61 6d 73  |>.Choices.Params|
00003710  22 29 0d 01 c6 12 20 20  20 e3 20 4e 25 3d 31 20  |")....   . N%=1 |
00003720  b8 20 4c 25 0d 01 c7 18  20 20 20 20 63 6f 6e 66  |. L%....    conf|
00003730  69 67 24 28 4e 25 29 3d  be 23 46 25 0d 01 c8 08  |ig$(N%)=.#F%....|
00003740  20 20 20 ed 0d 01 c9 0a  20 20 d9 23 46 25 0d 01  |   .....  .#F%..|
00003750  ca 06 20 e1 0d 01 cb 04  0d 01 cc 1b 20 dd 20 f2  |.. ......... . .|
00003760  70 73 63 61 6e 5f 65 72  72 6f 72 5f 68 61 6e 64  |pscan_error_hand|
00003770  6c 65 72 0d 01 cd 15 20  d6 20 72 65 73 65 74 5f  |ler.... . reset_|
00003780  74 30 5f 63 6f 64 65 25  0d 01 ce 3b 20 e7 20 63  |t0_code%...; . c|
00003790  75 72 73 6f 72 5f 73 74  61 74 75 73 25 3c 3e 39  |ursor_status%<>9|
000037a0  39 20 c8 99 20 22 4f 53  5f 42 79 74 65 22 2c 32  |9 .. "OS_Byte",2|
000037b0  33 37 2c 63 75 72 73 6f  72 5f 73 74 61 74 75 73  |37,cursor_status|
000037c0  25 2c 30 0d 01 cf 1f 20  ef 32 36 2c 32 30 2c 34  |%,0.... .26,20,4|
000037d0  2c 37 3a 87 3a c8 96 3a  2a 50 4f 49 4e 54 45 52  |,7:.:..:*POINTER|
000037e0  20 31 0d 01 d0 13 20 ef  31 39 2c 31 2c 32 34 2c  | 1.... .19,1,24,|
000037f0  30 2c 30 2c 30 0d 01 d1  2d 20 58 25 3d 32 38 30  |0,0,0...- X%=280|
00003800  3a 59 25 3d 33 30 34 3a  57 25 3d 37 32 30 3a 48  |:Y%=304:W%=720:H|
00003810  25 3d 34 30 30 3a 61 75  74 6f 5f 73 61 76 65 25  |%=400:auto_save%|
00003820  3d 30 0d 01 d2 19 20 c8  99 20 22 48 6f 75 72 67  |=0.... .. "Hourg|
00003830  6c 61 73 73 5f 53 6d 61  73 68 22 0d 01 d3 18 20  |lass_Smash".... |
00003840  e7 20 66 69 6c 65 5f 6f  70 65 6e 25 20 8c 20 d9  |. file_open% . .|
00003850  23 46 25 0d 01 d4 28 20  f2 72 61 69 73 65 64 5f  |#F%...( .raised_|
00003860  62 6c 6f 63 6b 28 58 25  2b 34 30 2c 59 25 2c 57  |block(X%+40,Y%,W|
00003870  25 2d 38 30 2c 48 25 2d  33 30 29 0d 01 d5 2f 20  |%-80,H%-30).../ |
00003880  e6 20 36 33 20 c8 9c 20  30 3a c8 93 20 c8 90 20  |. 63 .. 0:.. .. |
00003890  58 25 2b 36 34 2c 59 25  2b 31 30 30 2c 57 25 2d  |X%+64,Y%+100,W%-|
000038a0  31 32 38 2c 48 25 2d 32  34 30 0d 01 d6 2d 20 e6  |128,H%-240...- .|
000038b0  20 36 34 2c 36 34 2c 36  34 3a c8 93 20 58 25 2b  | 64,64,64:.. X%+|
000038c0  36 34 2c 59 25 2b 31 30  30 2c 57 25 2d 31 32 38  |64,Y%+100,W%-128|
000038d0  2c 48 25 2d 32 34 30 0d  01 d7 31 20 e6 20 32 35  |,H%-240...1 . 25|
000038e0  35 2c 32 35 35 2c 32 35  35 3a 86 20 58 25 2b 36  |5,255,255:. X%+6|
000038f0  34 2c 59 25 2b 31 30 30  2c 58 25 2b 57 25 2d 36  |4,Y%+100,X%+W%-6|
00003900  34 2c 59 25 2b 31 30 30  0d 01 d8 29 20 86 20 58  |4,Y%+100...) . X|
00003910  25 2b 57 25 2d 36 34 2c  59 25 2b 31 30 30 2c 58  |%+W%-64,Y%+100,X|
00003920  25 2b 57 25 2d 36 34 2c  59 25 2b 48 25 2d 31 34  |%+W%-64,Y%+H%-14|
00003930  30 0d 01 d9 3f 20 c8 99  20 73 70 72 73 77 69 25  |0...? .. sprswi%|
00003940  2c 32 35 36 2b 35 32 2c  73 70 62 25 2c 22 65 72  |,256+52,spb%,"er|
00003950  72 6f 72 22 2c 58 25 2b  36 36 2c 59 25 2b 32 38  |ror",X%+66,Y%+28|
00003960  30 2c 38 2c 30 2c 74 72  61 6e 73 6c 61 74 65 25  |0,8,0,translate%|
00003970  0d 01 da 40 20 c8 99 20  73 70 72 73 77 69 25 2c  |...@ .. sprswi%,|
00003980  32 35 36 2b 35 32 2c 73  70 62 25 2c 22 65 72 72  |256+52,spb%,"err|
00003990  6f 72 22 2c 58 25 2b 35  37 30 2c 59 25 2b 32 38  |or",X%+570,Y%+28|
000039a0  30 2c 38 2c 30 2c 74 72  61 6e 73 6c 61 74 65 25  |0,8,0,translate%|
000039b0  0d 01 db 38 20 f2 77 72  69 74 65 32 28 22 45 72  |...8 .write2("Er|
000039c0  72 6f 72 20 6d 65 73 73  61 67 65 20 66 72 6f 6d  |ror message from|
000039d0  20 50 73 63 61 6e 22 2c  58 25 2b 31 37 30 2c 59  | Pscan",X%+170,Y|
000039e0  25 2b 33 30 30 2c 34 29  0d 01 dc 26 20 f2 72 61  |%+300,4)...& .ra|
000039f0  69 73 65 64 5f 62 6c 6f  63 6b 28 58 25 2b 37 30  |ised_block(X%+70|
00003a00  2c 59 25 2b 33 32 2c 32  34 30 2c 34 30 29 0d 01  |,Y%+32,240,40)..|
00003a10  dd 27 20 f2 72 61 69 73  65 64 5f 62 6c 6f 63 6b  |.' .raised_block|
00003a20  28 58 25 2b 34 31 30 2c  59 25 2b 33 32 2c 32 34  |(X%+410,Y%+32,24|
00003a30  30 2c 34 30 29 0d 01 de  2e 20 f2 77 72 69 74 65  |0,40).... .write|
00003a40  32 28 22 51 75 69 74 20  74 6f 20 44 65 73 6b 74  |2("Quit to Deskt|
00003a50  6f 70 22 2c 58 25 2b 34  31 30 2c 59 25 2b 33 36  |op",X%+410,Y%+36|
00003a60  2c 34 29 0d 01 df 27 20  f2 77 72 69 74 65 32 28  |,4)...' .write2(|
00003a70  22 43 6f 6e 74 69 6e 75  65 22 2c 58 25 2b 31 32  |"Continue",X%+12|
00003a80  30 2c 59 25 2b 33 36 2c  34 29 0d 01 e0 18 20 fb  |0,Y%+36,4).... .|
00003a90  31 32 38 2b 36 33 20 c8  9c 30 3a fb 20 30 2c 30  |128+63 ..0:. 0,0|
00003aa0  2c 30 0d 01 e1 0a 20 52  24 3d f6 24 0d 01 e2 28  |,0.... R$=.$...(|
00003ab0  20 e7 20 a7 52 24 2c 22  69 72 65 63 74 6f 72 79  | . .R$,"irectory|
00003ac0  22 29 20 64 69 72 24 3d  64 65 66 61 75 6c 74 5f  |") dir$=default_|
00003ad0  64 69 72 24 0d 01 e3 23  20 e7 20 a7 52 24 2c 22  |dir$...# . .R$,"|
00003ae0  69 73 63 22 29 20 64 69  72 24 3d 64 65 66 61 75  |isc") dir$=defau|
00003af0  6c 74 5f 64 69 72 24 0d  01 e4 23 20 e7 20 a7 52  |lt_dir$...# . .R|
00003b00  24 2c 22 69 6c 65 22 29  20 64 69 72 24 3d 64 65  |$,"ile") dir$=de|
00003b10  66 61 75 6c 74 5f 64 69  72 24 0d 01 e5 24 20 e7  |fault_dir$...$ .|
00003b20  20 a7 52 24 2c 22 72 69  76 65 22 29 20 64 69 72  | .R$,"rive") dir|
00003b30  24 3d 64 65 66 61 75 6c  74 5f 64 69 72 24 0d 01  |$=default_dir$..|
00003b40  e6 25 20 e7 20 a7 52 24  2c 22 61 6e 64 6c 65 22  |.% . .R$,"andle"|
00003b50  29 20 64 69 72 24 3d 64  65 66 61 75 6c 74 5f 64  |) dir$=default_d|
00003b60  69 72 24 0d 01 e7 25 20  e7 20 a7 52 24 2c 22 69  |ir$...% . .R$,"i|
00003b70  6c 69 6e 67 22 29 20 64  69 72 24 3d 64 65 66 61  |ling") dir$=defa|
00003b80  75 6c 74 5f 64 69 72 24  0d 01 e8 27 20 e7 20 64  |ult_dir$...' . d|
00003b90  69 72 24 3d 64 65 66 61  75 6c 74 5f 64 69 72 24  |ir$=default_dir$|
00003ba0  20 73 68 6f 77 6e 5f 64  69 72 24 3d 22 2d 22 0d  | shown_dir$="-".|
00003bb0  01 e9 34 20 6d 65 73 73  61 67 65 24 3d f6 24 2b  |..4 message$=.$+|
00003bc0  bd 31 33 2b bd 31 33 2b  22 49 6e 74 65 72 6e 61  |.13+.13+"Interna|
00003bd0  6c 20 65 72 72 6f 72 20  63 6f 64 65 20 22 2b c3  |l error code "+.|
00003be0  28 9e 29 0d 01 ea 6c 20  e7 20 9f 3d 36 37 37 38  |(.)...l . .=6778|
00003bf0  32 20 8c 20 6d 65 73 73  61 67 65 24 3d 6d 65 73  |2 . message$=mes|
00003c00  73 61 67 65 24 2b bd 31  33 2b bd 31 33 2b 22 59  |sage$+.13+.13+"Y|
00003c10  6f 75 20 6d 75 73 74 20  72 75 6e 20 50 73 63 61  |ou must run Psca|
00003c20  6e 20 66 72 6f 6d 20 61  20 68 61 72 64 20 64 72  |n from a hard dr|
00003c30  69 76 65 20 74 6f 20 6c  6f 61 64 20 6f 72 20 73  |ive to load or s|
00003c40  61 76 65 20 4a 50 45 47  20 66 69 6c 65 73 22 0d  |ave JPEG files".|
00003c50  01 eb 27 20 24 65 72 72  25 3d 6d 65 73 73 61 67  |..' $err%=messag|
00003c60  65 24 3a 65 72 72 25 3f  28 a9 20 6d 65 73 73 61  |e$:err%?(. messa|
00003c70  67 65 24 29 3d 30 0d 01  ec 3e 20 e7 20 73 63 72  |ge$)=0...> . scr|
00003c80  65 65 6e 5f 6c 69 6e 65  73 25 3d 35 31 32 20 8c  |een_lines%=512 .|
00003c90  20 ef 20 32 38 2c 32 34  2c 33 37 2c 35 35 2c 33  | . 28,24,37,55,3|
00003ca0  30 20 8b 20 ef 20 32 38  2c 32 34 2c 33 33 2c 35  |0 . . 28,24,33,5|
00003cb0  35 2c 32 36 0d 01 ed 24  20 c8 99 20 22 4f 53 5f  |5,26...$ .. "OS_|
00003cc0  50 72 65 74 74 79 50 72  69 6e 74 22 2c 65 72 72  |PrettyPrint",err|
00003cd0  25 2c 30 3a 87 3a c8 96  0d 01 ee 20 20 c8 97 20  |%,0:.:.....  .. |
00003ce0  c8 93 20 58 25 2b 36 30  2c 59 25 2b 32 36 2c 57  |.. X%+60,Y%+26,W|
00003cf0  25 2d 31 32 34 2c 35 34  0d 01 ef 1c 20 e7 20 73  |%-124,54.... . s|
00003d00  74 65 70 25 3c 3e 30 20  8c 20 c8 97 20 88 20 73  |tep%<>0 . .. . s|
00003d10  74 65 70 25 0d 01 f0 04  0d 01 f1 24 20 f2 77 61  |tep%.......$ .wa|
00003d20  69 74 5f 6e 6f 5f 62 75  74 74 6f 6e 3a f5 3a 4b  |it_no_button:.:K|
00003d30  3d a6 28 31 29 3a fd 20  4b 3d 2d 31 0d 01 f2 25  |=.(1):. K=-1...%|
00003d40  20 f5 3a c8 97 20 58 2c  59 2c 42 3a 4b 3d a6 28  | .:.. X,Y,B:K=.(|
00003d50  31 29 3a fd 20 42 3c 3e  30 20 84 20 4b 3c 3e 2d  |1):. B<>0 . K<>-|
00003d60  31 0d 01 f3 29 20 e7 20  58 3e 36 38 30 20 84 20  |1...) . X>680 . |
00003d70  4b 3d 31 33 20 8c 20 71  75 69 74 5f 61 66 74 65  |K=13 . quit_afte|
00003d80  72 5f 65 72 72 6f 72 25  3d b9 0d 01 f4 18 20 c8  |r_error%=..... .|
00003d90  97 20 c8 93 20 30 2c 30  2c 31 32 38 30 2c 31 30  |. .. 0,0,1280,10|
00003da0  32 34 0d 01 f5 30 20 e7  20 ac 20 71 75 69 74 5f  |24...0 . . quit_|
00003db0  61 66 74 65 72 5f 65 72  72 6f 72 25 20 8c 20 ef  |after_error% . .|
00003dc0  32 36 3a f2 64 69 73 70  6c 61 79 5f 6d 65 6d 6f  |26:.display_memo|
00003dd0  72 79 0d 01 f6 06 20 e1  0d 01 f7 04 0d 01 f8 15  |ry.... .........|
00003de0  20 dd 20 f2 6d 6f 75 73  65 5f 63 6f 6e 74 72 6f  | . .mouse_contro|
00003df0  6c 0d 01 f9 0f 20 c8 97  20 ee 20 31 3a 54 3d 30  |l.... .. . 1:T=0|
00003e00  0d 01 fa 06 20 f5 0d 01  fb 1c 20 e7 20 ac 20 71  |.... ..... . . q|
00003e10  75 69 74 5f 61 66 74 65  72 5f 65 72 72 6f 72 25  |uit_after_error%|
00003e20  20 8c 0d 01 fc 20 20 f2  77 61 69 74 5f 6e 6f 5f  | ....  .wait_no_|
00003e30  62 75 74 74 6f 6e 3a f5  20 fd 20 a6 28 31 29 3d  |button:. . .(1)=|
00003e40  2d 31 0d 01 fd 04 0d 01  fe 06 20 f5 0d 01 ff 15  |-1........ .....|
00003e50  20 c8 97 20 58 2c 59 2c  42 3a 4b 24 3d bf 28 31  | .. X,Y,B:K$=.(1|
00003e60  29 0d 02 00 12 20 20 20  e7 20 4b 24 3d bd 32 35  |)....   . K$=.25|
00003e70  34 20 8c 0d 02 01 26 20  20 20 e6 20 30 2c 33 32  |4 ....&   . 0,32|
00003e80  20 c8 9c 30 3a c8 93 20  c8 90 20 32 30 2c 37 30  | ..0:.. .. 20,70|
00003e90  30 2c 35 30 30 2c 33 30  30 0d 02 02 24 20 20 20  |0,500,300...$   |
00003ea0  e6 20 32 35 35 2c 32 35  35 2c 30 3a c8 93 20 32  |. 255,255,0:.. 2|
00003eb0  30 2c 37 30 30 2c 35 30  30 2c 33 30 30 0d 02 03  |0,700,500,300...|
00003ec0  22 20 20 20 fb 20 31 32  38 2b 33 32 20 c8 9c 20  |"   . 128+32 .. |
00003ed0  30 3a fb 20 32 35 35 2c  32 35 35 2c 32 35 35 0d  |0:. 255,255,255.|
00003ee0  02 04 26 20 20 20 f1 20  8a 34 2c 33 29 22 20 20  |..&   . .4,3)"  |
00003ef0  2d 20 50 73 63 61 6e 20  70 61 72 61 6d 65 74 65  |- Pscan paramete|
00003f00  72 73 20 2d 22 0d 02 05  35 20 20 20 f1 20 8a 34  |rs -"...5   . .4|
00003f10  2c 36 29 22 20 20 4d 65  6d 6f 72 79 20 69 6e 20  |,6)"  Memory in |
00003f20  75 73 65 20 3d 20 22 3b  a8 28 28 e0 2d 90 29 2f  |use = ";.((.-.)/|
00003f30  31 30 32 34 29 3b 22 6b  20 22 0d 02 06 27 20 20  |1024);"k "...'  |
00003f40  20 f1 20 8a 34 2c 38 29  22 20 20 4c 61 73 74 20  | . .4,8)"  Last |
00003f50  56 49 53 20 63 6f 64 65  20 3d 20 22 3b 56 49 53  |VIS code = ";VIS|
00003f60  25 0d 02 07 2c 20 20 20  f1 20 8a 34 2c 31 30 29  |%...,   . .4,10)|
00003f70  22 20 20 49 6f 66 66 73  65 74 25 20 20 20 20 20  |"  Ioffset%     |
00003f80  20 3d 20 22 3b 49 6f 66  66 73 65 74 25 0d 02 08  | = ";Ioffset%...|
00003f90  06 20 20 0d 02 09 0c 20  20 20 4b 24 3d 22 22 0d  |.  ....   K$="".|
00003fa0  02 0a 08 20 20 20 cd 0d  02 0b 17 20 20 f2 63 68  |...   .....  .ch|
00003fb0  65 63 6b 5f 61 6c 74 5f  73 5f 73 61 76 65 0d 02  |eck_alt_s_save..|
00003fc0  0c 36 20 20 e7 20 6a 70  65 67 5f 69 6e 66 6f 25  |.6  . jpeg_info%|
00003fd0  20 80 20 28 91 2d 54 29  3e 33 30 30 20 8c 20 f2  | . (.-T)>300 . .|
00003fe0  64 69 73 6d 69 6e 69 3a  6a 70 65 67 5f 69 6e 66  |dismini:jpeg_inf|
00003ff0  6f 25 3d 30 0d 02 0d 26  20 20 e7 20 59 3c 35 35  |o%=0...&  . Y<55|
00004000  20 8c 20 6d 62 6f 78 25  3d 58 20 81 20 36 34 20  | . mbox%=X . 64 |
00004010  8b 20 6d 62 6f 78 25 3d  39 39 0d 02 0e 21 20 fd  |. mbox%=99...! .|
00004020  20 42 3c 3e 30 20 84 20  4b 24 3c 3e 22 22 3a 6a  | B<>0 . K$<>"":j|
00004030  70 65 67 5f 69 6e 66 6f  25 3d 30 0d 02 0f 04 0d  |peg_info%=0.....|
00004040  02 10 0e 20 e7 20 4b 24  3d 22 22 20 8c 0d 02 11  |... . K$="" ....|
00004050  24 20 20 e7 20 42 3d 32  20 fb 20 31 32 38 20 c8  |$  . B=2 . 128 .|
00004060  9c 20 31 32 38 3a db 3a  f2 6d 69 6e 69 5f 70 61  |. 128:.:.mini_pa|
00004070  64 0d 02 12 32 20 20 e7  20 28 42 3d 31 20 84 20  |d...2  . (B=1 . |
00004080  42 3d 34 29 20 80 20 59  3c 35 35 20 6d 62 6f 78  |B=4) . Y<55 mbox|
00004090  25 3d 58 20 81 20 36 34  20 8b 20 6d 62 6f 78 25  |%=X . 64 . mbox%|
000040a0  3d 39 39 0d 02 13 1c 20  20 e7 20 28 42 3d 31 20  |=99....  . (B=1 |
000040b0  84 20 42 3d 34 29 20 80  20 59 3e 35 34 20 8c 0d  |. B=4) . Y>54 ..|
000040c0  02 14 25 20 20 f2 64 69  73 70 6c 61 79 5f 6d 65  |..%  .display_me|
000040d0  6d 6f 72 79 3a f2 77 61  69 74 5f 6e 6f 5f 62 75  |mory:.wait_no_bu|
000040e0  74 74 6f 6e 0d 02 15 1c  20 20 f5 3a c8 97 20 78  |tton....  .:.. x|
000040f0  2c 79 2c 62 3a fd 20 62  3d 34 20 84 20 62 3d 31  |,y,b:. b=4 . b=1|
00004100  0d 02 16 30 20 20 e7 20  78 3c 31 30 20 84 20 78  |...0  . x<10 . x|
00004110  3e 31 32 37 30 20 84 20  79 3c 31 30 20 84 20 79  |>1270 . y<10 . y|
00004120  3e 39 35 30 20 8c 20 f2  73 63 72 6f 6c 6c 65 72  |>950 . .scroller|
00004130  0d 02 17 0f 20 20 f2 6d  69 6e 69 5f 70 61 64 0d  |....  .mini_pad.|
00004140  02 18 07 20 20 cd 0d 02  19 07 20 20 cc 0d 02 1a  |...  .....  ....|
00004150  1f 20 20 e7 20 97 28 4b  24 29 3e 39 36 20 4b 24  |.  . .(K$)>96 K$|
00004160  3d bd 28 97 28 4b 24 29  2d 33 32 29 0d 02 1b 0b  |=.(.(K$)-32)....|
00004170  20 20 58 3d 34 30 30 0d  02 1c 0d 20 20 c8 8e 20  |  X=400....  .. |
00004180  4b 24 20 ca 0d 02 1d 2d  20 20 c9 20 22 43 22 3a  |K$ ....-  . "C":|
00004190  fb 20 31 32 38 20 c8 9c  20 31 32 38 3a db 3a f2  |. 128 .. 128:.:.|
000041a0  6d 69 6e 69 5f 70 61 64  3a 6d 62 6f 78 25 3d 39  |mini_pad:mbox%=9|
000041b0  39 0d 02 1e 14 20 20 c9  20 22 46 22 3a 6d 62 6f  |9....  . "F":mbo|
000041c0  78 25 3d 31 39 0d 02 1f  14 20 20 c9 20 22 48 22  |x%=19....  . "H"|
000041d0  3a 6d 62 6f 78 25 3d 32  32 0d 02 20 13 20 20 c9  |:mbox%=22.. .  .|
000041e0  20 22 4d 22 3a 6d 62 6f  78 25 3d 36 0d 02 21 14  | "M":mbox%=6..!.|
000041f0  20 20 c9 20 22 4e 22 3a  6d 62 6f 78 25 3d 31 38  |  . "N":mbox%=18|
00004200  0d 02 22 14 20 20 c9 20  22 52 22 3a 6d 62 6f 78  |..".  . "R":mbox|
00004210  25 3d 31 30 0d 02 23 14  20 20 c9 20 22 54 22 3a  |%=10..#.  . "T":|
00004220  6d 62 6f 78 25 3d 31 31  0d 02 24 13 20 20 c9 20  |mbox%=11..$.  . |
00004230  22 56 22 3a 6d 62 6f 78  25 3d 38 0d 02 25 14 20  |"V":mbox%=8..%. |
00004240  20 c9 20 22 51 22 3a 6d  62 6f 78 25 3d 32 31 0d  | . "Q":mbox%=21.|
00004250  02 26 3f 20 20 c9 20 22  31 22 2c 22 32 22 2c 22  |.&?  . "1","2","|
00004260  33 22 2c 22 34 22 2c 22  35 22 2c 22 36 22 2c 22  |3","4","5","6","|
00004270  37 22 2c 22 38 22 3a 58  3d 28 97 28 4b 24 29 2d  |7","8":X=(.(K$)-|
00004280  34 39 29 2a 34 38 3a 6d  62 6f 78 25 3d 31 0d 02  |49)*48:mbox%=1..|
00004290  27 06 20 7f 0d 02 28 0d  20 6d 62 6f 78 25 3d 39  |'. ...(. mbox%=9|
000042a0  39 0d 02 29 06 20 cb 0d  02 2a 06 20 cd 0d 02 2b  |9..). ...*. ...+|
000042b0  04 0d 02 2c 34 20 e7 20  58 3c 33 38 34 20 80 20  |...,4 . X<384 . |
000042c0  6d 62 6f 78 25 3c 3e 39  39 20 8c 20 f2 6d 65 6d  |mbox%<>99 . .mem|
000042d0  6f 72 79 5f 73 65 6c 65  63 74 28 58 20 81 20 34  |ory_select(X . 4|
000042e0  38 2c 2d 31 29 0d 02 2d  0f 20 c8 8e 20 6d 62 6f  |8,-1)..-. .. mbo|
000042f0  78 25 20 ca 0d 02 2e 15  20 c9 20 36 2c 37 3a f2  |x% ..... . 6,7:.|
00004300  6d 6f 64 65 5f 6d 65 6e  75 0d 02 2f 15 20 c9 20  |mode_menu../. . |
00004310  38 2c 39 3a f2 76 69 73  5f 73 74 61 72 74 0d 02  |8,9:.vis_start..|
00004320  30 2b 20 c9 20 31 30 3a  e7 20 42 3d 31 20 61 75  |0+ . 10:. B=1 au|
00004330  74 6f 5f 66 69 6e 64 25  3d b9 20 8b 20 61 75 74  |to_find%=. . aut|
00004340  6f 5f 66 69 6e 64 25 3d  a3 0d 02 31 18 20 20 20  |o_find%=...1.   |
00004350  20 20 20 20 20 3a f2 72  78 5f 73 73 74 76 28 a3  |     :.rx_sstv(.|
00004360  29 0d 02 32 16 20 c9 20  31 31 3a f2 74 78 5f 66  |)..2. . 11:.tx_f|
00004370  72 61 6d 65 28 a3 29 0d  02 33 18 20 c9 20 31 32  |rame(.)..3. . 12|
00004380  3a f2 74 65 73 74 5f 70  61 74 74 65 72 6e 73 0d  |:.test_patterns.|
00004390  02 34 19 20 c9 20 31 33  3a f2 72 67 62 5f 70 72  |.4. . 13:.rgb_pr|
000043a0  6f 63 65 73 73 69 6e 67  0d 02 35 2a 20 c9 20 31  |ocessing..5* . 1|
000043b0  34 3a f2 74 6f 6f 6c 73  3a e7 20 61 75 74 6f 5f  |4:.tools:. auto_|
000043c0  73 61 76 65 25 20 8c 20  f2 61 75 74 6f 5f 73 61  |save% . .auto_sa|
000043d0  76 65 0d 02 36 1a 20 c9  20 31 35 3a f2 62 61 63  |ve..6. . 15:.bac|
000043e0  6b 67 72 6f 75 6e 64 5f  6d 65 6e 75 0d 02 37 14  |kground_menu..7.|
000043f0  20 c9 20 31 36 3a f2 67  72 61 62 5f 6d 65 6e 75  | . 16:.grab_menu|
00004400  0d 02 38 23 20 c9 20 31  37 3a f2 74 65 78 74 5f  |..8# . 17:.text_|
00004410  73 70 72 69 74 65 5f 6f  76 65 72 6c 61 79 5f 6d  |sprite_overlay_m|
00004420  65 6e 75 0d 02 39 1a 20  c9 20 31 38 3a f2 73 68  |enu..9. . 18:.sh|
00004430  6f 77 5f 74 68 75 6d 62  6e 61 69 6c 73 0d 02 3a  |ow_thumbnails..:|
00004440  32 20 c9 20 31 39 3a f2  66 69 6c 65 72 5f 64 69  |2 . 19:.filer_di|
00004450  73 70 6c 61 79 3a e7 20  6a 70 65 67 5f 69 6e 66  |splay:. jpeg_inf|
00004460  6f 25 20 8c 20 f2 6a 70  65 67 5f 69 6e 66 6f 0d  |o% . .jpeg_info.|
00004470  02 3b 19 20 c9 20 32 32  3a f2 6f 6e 5f 6c 69 6e  |.;. . 22:.on_lin|
00004480  65 5f 6d 61 6e 75 61 6c  0d 02 3c 13 20 c9 20 32  |e_manual..<. . 2|
00004490  31 3a f2 71 77 69 6b 74  65 78 74 0d 02 3d 06 20  |1:.qwiktext..=. |
000044a0  cb 0d 02 3e 06 20 cc 0d  02 3f 23 20 42 49 47 51  |...>. ...?# BIGQ|
000044b0  55 49 54 25 3d b9 3a 71  75 69 74 5f 61 66 74 65  |UIT%=.:quit_afte|
000044c0  72 5f 65 72 72 6f 72 25  3d a3 0d 02 40 06 20 cd  |r_error%=...@. .|
000044d0  0d 02 41 0f 20 fd 20 42  49 47 51 55 49 54 25 0d  |..A. . BIGQUIT%.|
000044e0  02 42 06 20 e1 0d 02 43  04 0d 02 44 18 20 dd 20  |.B. ...C...D. . |
000044f0  f2 63 68 65 63 6b 5f 61  6c 74 5f 73 5f 73 61 76  |.check_alt_s_sav|
00004500  65 0d 02 45 17 20 e7 20  a6 28 2d 33 29 20 80 20  |e..E. . .(-3) . |
00004510  a6 28 2d 38 32 29 20 8c  0d 02 46 2d 20 ff 28 22  |.(-82) ...F- .("|
00004520  53 43 52 45 45 4e 53 41  56 45 20 22 2b 64 69 72  |SCREENSAVE "+dir|
00004530  24 2b 22 2e 50 53 73 63  72 65 65 6e 22 2b c3 20  |$+".PSscreen"+. |
00004540  6d 6d 6d 25 29 0d 02 47  0c 20 6d 6d 6d 25 2b 3d  |mmm%)..G. mmm%+=|
00004550  31 0d 02 48 06 20 cd 0d  02 49 06 20 e1 0d 02 4a  |1..H. ...I. ...J|
00004560  04 0d 02 4b 11 20 dd 20  f2 6a 70 65 67 5f 69 6e  |...K. . .jpeg_in|
00004570  66 6f 0d 02 4c 27 20 f2  72 61 69 73 65 64 5f 62  |fo..L' .raised_b|
00004580  6c 6f 63 6b 28 34 30 30  2c 31 30 36 2c 34 37 32  |lock(400,106,472|
00004590  2c 31 30 30 29 3a 54 3d  91 0d 02 4d 38 20 f2 77  |,100):T=...M8 .w|
000045a0  72 69 74 65 32 28 22 4a  50 45 47 20 69 6d 61 67  |rite2("JPEG imag|
000045b0  65 20 22 2b c3 20 78 73  25 2b 22 20 62 79 20 22  |e "+. xs%+" by "|
000045c0  2b c3 20 79 73 25 2c 34  35 36 2c 31 36 30 2c 34  |+. ys%,456,160,4|
000045d0  29 0d 02 4e 31 20 e7 20  6a 70 65 67 5f 73 63 61  |)..N1 . jpeg_sca|
000045e0  6c 65 25 20 8c 20 73 63  24 3d 22 73 63 61 6c 65  |le% . sc$="scale|
000045f0  64 22 20 8b 20 73 63 24  3d 22 63 72 6f 70 70 65  |d" . sc$="croppe|
00004600  64 22 0d 02 4f 3b 20 f2  77 72 69 74 65 32 28 22  |d"..O; .write2("|
00004610  4c 6f 61 64 65 64 20 61  6e 64 20 22 2b 73 63 24  |Loaded and "+sc$|
00004620  2b 22 20 69 6e 20 22 2b  54 24 2b 22 20 73 65 63  |+" in "+T$+" sec|
00004630  73 22 2c 33 39 34 2c 31  32 30 2c 34 29 0d 02 50  |s",394,120,4)..P|
00004640  06 20 e1 0d 02 51 04 0d  02 52 20 20 dd 20 f2 6d  |. ...Q...R  . .m|
00004650  65 6d 6f 72 79 5f 73 65  6c 65 63 74 28 6d 65 6d  |emory_select(mem|
00004660  25 2c 64 69 73 25 29 0d  02 53 17 20 e7 20 6d 65  |%,dis%)..S. . me|
00004670  6d 25 3c 6d 65 6d 6f 72  69 65 73 25 20 8c 0d 02  |m%<memories% ...|
00004680  54 0e 20 c8 8e 20 6d 65  6d 25 20 ca 0d 02 55 18  |T. .. mem% ...U.|
00004690  20 c9 20 30 3a 6d 65 6d  62 6c 6f 63 6b 25 3d 6d  | . 0:memblock%=m|
000046a0  65 6d 31 25 0d 02 56 18  20 c9 20 31 3a 6d 65 6d  |em1%..V. . 1:mem|
000046b0  62 6c 6f 63 6b 25 3d 6d  65 6d 32 25 0d 02 57 18  |block%=mem2%..W.|
000046c0  20 c9 20 32 3a 6d 65 6d  62 6c 6f 63 6b 25 3d 6d  | . 2:memblock%=m|
000046d0  65 6d 33 25 0d 02 58 18  20 c9 20 33 3a 6d 65 6d  |em3%..X. . 3:mem|
000046e0  62 6c 6f 63 6b 25 3d 6d  65 6d 34 25 0d 02 59 18  |block%=mem4%..Y.|
000046f0  20 c9 20 34 3a 6d 65 6d  62 6c 6f 63 6b 25 3d 6d  | . 4:memblock%=m|
00004700  65 6d 35 25 0d 02 5a 18  20 c9 20 35 3a 6d 65 6d  |em5%..Z. . 5:mem|
00004710  62 6c 6f 63 6b 25 3d 6d  65 6d 36 25 0d 02 5b 18  |block%=mem6%..[.|
00004720  20 c9 20 36 3a 6d 65 6d  62 6c 6f 63 6b 25 3d 6d  | . 6:memblock%=m|
00004730  65 6d 37 25 0d 02 5c 18  20 c9 20 37 3a 6d 65 6d  |em7%..\. . 7:mem|
00004740  62 6c 6f 63 6b 25 3d 6d  65 6d 38 25 0d 02 5d 06  |block%=mem8%..].|
00004750  20 cb 0d 02 5e 20 20 4d  45 4d 25 3d 6d 65 6d 25  | ...^  MEM%=mem%|
00004760  3a e7 20 64 69 73 25 20  8c 20 f2 64 69 73 6d 69  |:. dis% . .dismi|
00004770  6e 69 0d 02 5f 06 20 cc  0d 02 60 1f 20 e7 20 6d  |ni.._. ...`. . m|
00004780  65 6d 25 3d 6d 65 6d 6f  72 69 65 73 25 20 80 20  |em%=memories% . |
00004790  a6 28 2d 33 29 20 8c 0d  02 61 23 20 20 c8 99 20  |.(-3) ...a#  .. |
000047a0  22 57 69 6d 70 5f 53 6c  6f 74 53 69 7a 65 22 2c  |"Wimp_SlotSize",|
000047b0  2d 31 2c 2d 31 20 b8 20  53 25 0d 02 62 25 20 20  |-1,-1 . S%..b%  |
000047c0  c8 99 20 22 57 69 6d 70  5f 53 6c 6f 74 53 69 7a  |.. "Wimp_SlotSiz|
000047d0  65 22 2c 53 25 2b 36 36  30 30 30 30 2c 2d 31 0d  |e",S%+660000,-1.|
000047e0  02 63 18 20 20 c8 8e 20  28 6d 65 6d 6f 72 69 65  |.c.  .. (memorie|
000047f0  73 25 2b 31 29 20 ca 0d  02 64 38 20 20 c9 20 33  |s%+1) ...d8  . 3|
00004800  3a 6d 65 6d 33 25 3d 68  69 6d 65 6d 25 2b 36 34  |:mem3%=himem%+64|
00004810  3a 6d 65 6d 62 6c 6f 63  6b 25 3d 6d 65 6d 33 25  |:memblock%=mem3%|
00004820  3a 68 69 6d 65 6d 25 2b  3d 36 36 30 30 30 30 0d  |:himem%+=660000.|
00004830  02 65 38 20 20 c9 20 34  3a 6d 65 6d 34 25 3d 68  |.e8  . 4:mem4%=h|
00004840  69 6d 65 6d 25 2b 36 34  3a 6d 65 6d 62 6c 6f 63  |imem%+64:membloc|
00004850  6b 25 3d 6d 65 6d 34 25  3a 68 69 6d 65 6d 25 2b  |k%=mem4%:himem%+|
00004860  3d 36 36 30 30 30 30 0d  02 66 38 20 20 c9 20 35  |=660000..f8  . 5|
00004870  3a 6d 65 6d 35 25 3d 68  69 6d 65 6d 25 2b 36 34  |:mem5%=himem%+64|
00004880  3a 6d 65 6d 62 6c 6f 63  6b 25 3d 6d 65 6d 35 25  |:memblock%=mem5%|
00004890  3a 68 69 6d 65 6d 25 2b  3d 36 36 30 30 30 30 0d  |:himem%+=660000.|
000048a0  02 67 38 20 20 c9 20 36  3a 6d 65 6d 36 25 3d 68  |.g8  . 6:mem6%=h|
000048b0  69 6d 65 6d 25 2b 36 34  3a 6d 65 6d 62 6c 6f 63  |imem%+64:membloc|
000048c0  6b 25 3d 6d 65 6d 36 25  3a 68 69 6d 65 6d 25 2b  |k%=mem6%:himem%+|
000048d0  3d 36 36 30 30 30 30 0d  02 68 38 20 20 c9 20 37  |=660000..h8  . 7|
000048e0  3a 6d 65 6d 37 25 3d 68  69 6d 65 6d 25 2b 36 34  |:mem7%=himem%+64|
000048f0  3a 6d 65 6d 62 6c 6f 63  6b 25 3d 6d 65 6d 37 25  |:memblock%=mem7%|
00004900  3a 68 69 6d 65 6d 25 2b  3d 36 36 30 30 30 30 0d  |:himem%+=660000.|
00004910  02 69 38 20 20 c9 20 38  3a 6d 65 6d 38 25 3d 68  |.i8  . 8:mem8%=h|
00004920  69 6d 65 6d 25 2b 36 34  3a 6d 65 6d 62 6c 6f 63  |imem%+64:membloc|
00004930  6b 25 3d 6d 65 6d 38 25  3a 68 69 6d 65 6d 25 2b  |k%=mem8%:himem%+|
00004940  3d 36 36 30 30 30 30 0d  02 6a 07 20 20 cb 0d 02  |=660000..j.  ...|
00004950  6b 3a 20 20 6d 65 6d 6f  72 69 65 73 25 2b 3d 31  |k:  memories%+=1|
00004960  3a 4d 45 4d 25 3d 6d 65  6d 25 3a 74 65 6d 70 5f  |:MEM%=mem%:temp_|
00004970  6d 65 6d 5f 69 6e 63 72  65 61 73 65 25 3d b9 3a  |mem_increase%=.:|
00004980  f2 64 69 73 6d 69 6e 69  0d 02 6c 07 20 20 cd 0d  |.dismini..l.  ..|
00004990  02 6d 06 20 cd 0d 02 6e  06 20 e1 0d 02 6f 04 0d  |.m. ...n. ...o..|
000049a0  02 70 26 20 dd 20 f2 67  65 74 5f 64 72 69 76 65  |.p& . .get_drive|
000049b0  5f 6e 75 6d 62 65 72 5f  66 72 6f 6d 5f 70 61 74  |_number_from_pat|
000049c0  68 6e 61 6d 65 0d 02 71  13 20 4e 25 3d 30 3a 64  |hname..q. N%=0:d|
000049d0  72 76 25 3d 39 39 3a f5  0d 02 72 21 20 64 72 76  |rv%=99:...r! drv|
000049e0  25 3d 97 28 c1 64 69 72  24 2c 4e 25 2c 31 29 29  |%=.(.dir$,N%,1))|
000049f0  2d 34 38 3a 4e 25 2b 3d  31 0d 02 73 35 20 fd 20  |-48:N%+=1..s5 . |
00004a00  64 72 76 25 3d 30 20 84  20 64 72 76 25 3d 31 20  |drv%=0 . drv%=1 |
00004a10  84 20 64 72 76 25 3d 34  20 84 20 64 72 76 25 3d  |. drv%=4 . drv%=|
00004a20  35 20 84 20 4e 25 3d a9  28 64 69 72 24 29 0d 02  |5 . N%=.(dir$)..|
00004a30  74 30 20 e7 20 64 72 76  25 3c 30 20 84 20 64 72  |t0 . drv%<0 . dr|
00004a40  76 25 3e 35 20 8c 20 64  72 76 25 3d 34 3a 64 69  |v%>5 . drv%=4:di|
00004a50  72 24 3d 22 41 44 46 53  3a 3a 34 2e 24 22 0d 02  |r$="ADFS::4.$"..|
00004a60  75 06 20 e1 0d 02 76 04  0d 02 77 17 20 dd 20 f2  |u. ...v...w. . .|
00004a70  62 61 63 6b 67 72 6f 75  6e 64 5f 6d 65 6e 75 0d  |background_menu.|
00004a80  02 78 22 20 e6 33 2c 36  33 20 c8 9c 31 39 32 3a  |.x" .3,63 ..192:|
00004a90  c8 93 20 c8 90 20 39 36  34 2c 34 2c 35 32 2c 35  |.. .. 964,4,52,5|
00004aa0  30 0d 02 79 06 20 f5 0d  02 7a 1d 20 6d 65 6e 75  |0..y. ...z. menu|
00004ab0  24 28 30 29 3d 22 20 20  42 61 63 6b 67 72 6f 75  |$(0)="  Backgrou|
00004ac0  6e 64 73 22 0d 02 7b 24  20 6d 65 6e 75 24 28 32  |nds"..{$ menu$(2|
00004ad0  29 3d 22 20 20 53 69 6e  67 6c 65 20 67 72 61 64  |)="  Single grad|
00004ae0  61 74 69 6f 6e 73 3e 22  0d 02 7c 24 20 6d 65 6e  |ations>"..|$ men|
00004af0  75 24 28 33 29 3d 22 20  20 44 6f 75 62 6c 65 20  |u$(3)="  Double |
00004b00  67 72 61 64 61 74 69 6f  6e 73 3e 22 0d 02 7d 25  |gradations>"..}%|
00004b10  20 6d 65 6e 75 24 28 34  29 3d 22 20 20 57 68 69  | menu$(4)="  Whi|
00004b20  74 65 2d 62 6c 75 65 20  64 69 61 67 6f 6e 61 6c  |te-blue diagonal|
00004b30  22 0d 02 7e 24 20 6d 65  6e 75 24 28 35 29 3d 22  |"..~$ menu$(5)="|
00004b40  20 20 57 68 69 74 65 2d  72 65 64 20 64 69 61 67  |  White-red diag|
00004b50  6f 6e 61 6c 22 0d 02 7f  27 20 6d 65 6e 75 24 28  |onal"...' menu$(|
00004b60  36 29 3d 22 20 20 43 79  61 6e 2d 6d 61 67 65 6e  |6)="  Cyan-magen|
00004b70  74 61 20 64 69 61 67 6f  6e 61 6c 22 0d 02 80 29  |ta diagonal"...)|
00004b80  20 6d 65 6e 75 24 28 37  29 3d 22 20 20 59 65 6c  | menu$(7)="  Yel|
00004b90  6c 6f 77 2d 6d 61 67 65  6e 74 61 20 64 69 61 67  |low-magenta diag|
00004ba0  6f 6e 61 6c 22 0d 02 81  25 20 6d 65 6e 75 24 28  |onal"...% menu$(|
00004bb0  38 29 3d 22 20 20 59 65  6c 6c 6f 77 2d 72 65 64  |8)="  Yellow-red|
00004bc0  20 64 69 61 67 6f 6e 61  6c 22 0d 02 82 26 20 6d  | diagonal"...& m|
00004bd0  65 6e 75 24 28 39 29 3d  22 20 20 57 68 69 74 65  |enu$(9)="  White|
00004be0  2d 67 72 65 65 6e 20 64  69 61 67 6f 6e 61 6c 22  |-green diagonal"|
00004bf0  0d 02 83 27 20 6d 65 6e  75 24 28 31 30 29 3d 22  |...' menu$(10)="|
00004c00  20 20 59 65 6c 6c 6f 77  2d 63 79 61 6e 20 64 69  |  Yellow-cyan di|
00004c10  61 67 6f 6e 61 6c 22 0d  02 84 24 20 6d 65 6e 75  |agonal"...$ menu|
00004c20  24 28 31 31 29 3d 22 20  20 52 65 64 2d 62 6c 75  |$(11)="  Red-blu|
00004c30  65 20 64 69 61 67 6f 6e  61 6c 22 0d 02 85 28 20  |e diagonal"...( |
00004c40  6d 65 6e 75 24 28 31 32  29 3d 22 20 20 4d 75 6c  |menu$(12)="  Mul|
00004c50  74 69 20 64 69 61 67 6f  6e 61 6c 20 74 79 70 65  |ti diagonal type|
00004c60  20 31 22 0d 02 86 28 20  6d 65 6e 75 24 28 31 33  | 1"...( menu$(13|
00004c70  29 3d 22 20 20 4d 75 6c  74 69 20 64 69 61 67 6f  |)="  Multi diago|
00004c80  6e 61 6c 20 74 79 70 65  20 32 22 0d 02 87 23 20  |nal type 2"...# |
00004c90  6d 65 6e 75 24 28 31 34  29 3d 22 20 20 50 6c 61  |menu$(14)="  Pla|
00004ca0  69 6e 20 62 61 63 6b 67  72 6f 75 6e 64 22 0d 02  |in background"..|
00004cb0  88 27 20 6d 65 6e 75 24  28 31 35 29 3d 22 20 20  |.' menu$(15)="  |
00004cc0  43 69 72 63 75 6c 61 72  20 67 72 61 64 61 74 69  |Circular gradati|
00004cd0  6f 6e 73 3e 22 0d 02 89  24 20 6d 65 6e 75 24 28  |ons>"...$ menu$(|
00004ce0  31 36 29 3d 22 20 20 4d  75 6c 74 69 20 67 72 61  |16)="  Multi gra|
00004cf0  64 61 74 69 6f 6e 73 3e  22 0d 02 8a 26 20 6d 65  |dations>"...& me|
00004d00  6e 75 24 28 31 37 29 3d  22 20 20 53 65 67 6d 65  |nu$(17)="  Segme|
00004d10  6e 74 20 67 72 61 64 61  74 69 6f 6e 73 3e 22 0d  |nt gradations>".|
00004d20  02 8b 21 20 6d 65 6e 75  24 28 31 38 29 3d 22 20  |..! menu$(18)=" |
00004d30  20 4d 69 73 63 65 6c 6c  61 6e 65 6f 75 73 3e 22  | Miscellaneous>"|
00004d40  0d 02 8c 1e 20 e7 20 6d  65 72 67 65 25 20 6d 24  |.... . merge% m$|
00004d50  3d bd 31 32 38 20 8b 20  6d 24 3d 22 20 22 0d 02  |=.128 . m$=" "..|
00004d60  8d 27 20 6d 65 6e 75 24  28 31 39 29 3d 6d 24 2b  |.' menu$(19)=m$+|
00004d70  22 20 4d 65 72 67 65 20  77 69 74 68 20 70 69 63  |" Merge with pic|
00004d80  74 75 72 65 22 0d 02 8e  25 20 6d 65 6e 75 24 28  |ture"...% menu$(|
00004d90  32 30 29 3d 22 20 20 46  61 64 65 20 74 6f 70 2d  |20)="  Fade top-|
00004da0  74 6f 2d 62 6f 74 74 6f  6d 22 0d 02 8f 22 20 6d  |to-bottom"..." m|
00004db0  65 6e 75 24 28 32 31 29  3d 22 2a 22 3a f2 6d 65  |enu$(21)="*":.me|
00004dc0  6e 75 28 34 39 34 2c 39  30 2c 30 29 0d 02 90 35  |nu(494,90,0)...5|
00004dd0  20 e7 20 6d 65 6e 75 5f  62 6f 78 25 3d 31 39 20  | . menu_box%=19 |
00004de0  8c 20 6d 65 72 67 65 25  3d ac 28 6d 65 72 67 65  |. merge%=.(merge|
00004df0  25 29 3a 6d 65 6e 75 5f  72 65 64 72 61 77 25 3d  |%):menu_redraw%=|
00004e00  b9 0d 02 91 13 20 c8 8e  20 6d 65 6e 75 5f 62 6f  |..... .. menu_bo|
00004e10  78 25 20 ca 0d 02 92 14  20 c9 20 31 3a 6d 65 6e  |x% ..... . 1:men|
00004e20  75 5f 62 6f 78 25 3d 30  0d 02 93 1d 20 c9 20 32  |u_box%=0.... . 2|
00004e30  3a f2 73 69 6e 67 6c 65  5f 67 72 61 64 5f 6f 70  |:.single_grad_op|
00004e40  74 69 6f 6e 73 0d 02 94  1d 20 c9 20 33 3a f2 64  |tions.... . 3:.d|
00004e50  6f 75 62 6c 65 5f 67 72  61 64 5f 6f 70 74 69 6f  |ouble_grad_optio|
00004e60  6e 73 0d 02 95 28 20 c9  20 34 2c 35 2c 36 2c 37  |ns...( . 4,5,6,7|
00004e70  2c 38 2c 39 2c 31 30 2c  31 31 2c 31 32 2c 31 33  |,8,9,10,11,12,13|
00004e80  3a f2 64 69 61 67 6f 6e  61 6c 0d 02 96 1b 20 c9  |:.diagonal.... .|
00004e90  20 31 34 3a f2 70 6c 61  69 6e 5f 62 61 63 6b 67  | 14:.plain_backg|
00004ea0  72 6f 75 6e 64 0d 02 97  1e 20 c9 20 31 35 3a f2  |round.... . 15:.|
00004eb0  63 69 72 63 75 6c 61 72  5f 67 72 61 64 61 74 69  |circular_gradati|
00004ec0  6f 6e 73 0d 02 98 1a 20  c9 20 31 36 3a f2 6d 75  |ons.... . 16:.mu|
00004ed0  6c 74 69 5f 67 72 61 64  5f 6d 65 6e 75 0d 02 99  |lti_grad_menu...|
00004ee0  17 20 c9 20 31 37 3a f2  73 65 67 6d 65 6e 74 5f  |. . 17:.segment_|
00004ef0  6d 65 6e 75 0d 02 9a 1b  20 c9 20 31 38 3a f2 6d  |menu.... . 18:.m|
00004f00  69 73 63 5f 62 61 63 6b  67 72 6f 75 6e 64 73 0d  |isc_backgrounds.|
00004f10  02 9b 16 20 c9 20 32 30  3a f2 73 63 72 65 65 6e  |... . 20:.screen|
00004f20  5f 66 61 64 65 0d 02 9c  06 20 cb 0d 02 9d 24 20  |_fade.... ....$ |
00004f30  fd 20 6d 65 6e 75 5f 62  6f 78 25 3c 3e 31 39 20  |. menu_box%<>19 |
00004f40  80 20 6d 65 6e 75 5f 62  6f 78 25 3c 3e 39 39 0d  |. menu_box%<>99.|
00004f50  02 9e 2e 20 e7 20 6d 65  72 67 65 25 20 80 20 6d  |... . merge% . m|
00004f60  65 6e 75 5f 62 6f 78 25  3c 3e 30 20 8c 20 f2 6d  |enu_box%<>0 . .m|
00004f70  65 72 67 65 3a 6d 65 72  67 65 25 3d 30 0d 02 9f  |erge:merge%=0...|
00004f80  0d 20 f2 64 69 73 6d 69  6e 69 0d 02 a0 06 20 e1  |. .dismini.... .|
00004f90  0d 02 a1 04 0d 02 a2 1b  20 dd 20 f2 64 6f 75 62  |........ . .doub|
00004fa0  6c 65 5f 67 72 61 64 5f  6f 70 74 69 6f 6e 73 0d  |le_grad_options.|
00004fb0  02 a3 1e 20 6d 65 6e 75  24 28 30 29 3d 22 44 6f  |... menu$(0)="Do|
00004fc0  75 62 6c 65 20 67 72 61  64 20 20 20 22 0d 02 a4  |uble grad   "...|
00004fd0  19 20 6d 65 6e 75 24 28  31 29 3d 22 52 65 64 2d  |. menu$(1)="Red-|
00004fe0  62 6c 61 63 6b 22 0d 02  a5 1b 20 6d 65 6e 75 24  |black".... menu$|
00004ff0  28 32 29 3d 22 47 72 65  65 6e 2d 62 6c 61 63 6b  |(2)="Green-black|
00005000  22 0d 02 a6 1a 20 6d 65  6e 75 24 28 33 29 3d 22  |".... menu$(3)="|
00005010  42 6c 75 65 2d 62 6c 61  63 6b 22 0d 02 a7 1a 20  |Blue-black".... |
00005020  6d 65 6e 75 24 28 34 29  3d 22 52 65 64 2d 79 65  |menu$(4)="Red-ye|
00005030  6c 6c 6f 77 22 0d 02 a8  1b 20 6d 65 6e 75 24 28  |llow".... menu$(|
00005040  35 29 3d 22 52 65 64 2d  6d 61 67 65 6e 74 61 22  |5)="Red-magenta"|
00005050  0d 02 a9 1a 20 6d 65 6e  75 24 28 36 29 3d 22 47  |.... menu$(6)="G|
00005060  72 65 65 6e 2d 63 79 61  6e 22 0d 02 aa 1b 20 6d  |reen-cyan".... m|
00005070  65 6e 75 24 28 37 29 3d  22 59 65 6c 6c 6f 77 2d  |enu$(7)="Yellow-|
00005080  62 6c 75 65 22 0d 02 ab  1c 20 6d 65 6e 75 24 28  |blue".... menu$(|
00005090  38 29 3d 22 59 65 6c 6c  6f 77 2d 62 6c 61 63 6b  |8)="Yellow-black|
000050a0  22 0d 02 ac 1b 20 6d 65  6e 75 24 28 39 29 3d 22  |".... menu$(9)="|
000050b0  57 68 69 74 65 2d 62 6c  61 63 6b 22 0d 02 ad 21  |White-black"...!|
000050c0  20 6d 65 6e 75 24 28 31  30 29 3d 22 2a 22 3a f2  | menu$(10)="*":.|
000050d0  6d 65 6e 75 28 30 2c 39  30 2c 2d 31 29 0d 02 ae  |menu(0,90,-1)...|
000050e0  13 20 c8 8e 20 6d 65 6e  75 5f 62 6f 78 25 20 ca  |. .. menu_box% .|
000050f0  0d 02 af 2a 20 c9 20 31  3a f2 64 6f 75 62 6c 65  |...* . 1:.double|
00005100  5f 67 72 61 64 5f 62 61  63 6b 28 32 35 35 2c 31  |_grad_back(255,1|
00005110  2c 31 2c 2d 31 2c 30 2c  30 29 0d 02 b0 2a 20 c9  |,1,-1,0,0)...* .|
00005120  20 32 3a f2 64 6f 75 62  6c 65 5f 67 72 61 64 5f  | 2:.double_grad_|
00005130  62 61 63 6b 28 31 2c 32  35 35 2c 31 2c 30 2c 2d  |back(1,255,1,0,-|
00005140  31 2c 30 29 0d 02 b1 2a  20 c9 20 33 3a f2 64 6f  |1,0)...* . 3:.do|
00005150  75 62 6c 65 5f 67 72 61  64 5f 62 61 63 6b 28 31  |uble_grad_back(1|
00005160  2c 31 2c 32 35 35 2c 30  2c 30 2c 2d 31 29 0d 02  |,1,255,0,0,-1)..|
00005170  b2 29 20 c9 20 34 3a f2  64 6f 75 62 6c 65 5f 67  |.) . 4:.double_g|
00005180  72 61 64 5f 62 61 63 6b  28 32 35 35 2c 31 2c 31  |rad_back(255,1,1|
00005190  2c 30 2c 31 2c 30 29 0d  02 b3 29 20 c9 20 35 3a  |,0,1,0)...) . 5:|
000051a0  f2 64 6f 75 62 6c 65 5f  67 72 61 64 5f 62 61 63  |.double_grad_bac|
000051b0  6b 28 32 35 35 2c 31 2c  31 2c 30 2c 30 2c 31 29  |k(255,1,1,0,0,1)|
000051c0  0d 02 b4 29 20 c9 20 36  3a f2 64 6f 75 62 6c 65  |...) . 6:.double|
000051d0  5f 67 72 61 64 5f 62 61  63 6b 28 31 2c 32 35 35  |_grad_back(1,255|
000051e0  2c 31 2c 30 2c 30 2c 31  29 0d 02 b5 2d 20 c9 20  |,1,0,0,1)...- . |
000051f0  37 3a f2 64 6f 75 62 6c  65 5f 67 72 61 64 5f 62  |7:.double_grad_b|
00005200  61 63 6b 28 32 35 35 2c  32 35 35 2c 31 2c 2d 31  |ack(255,255,1,-1|
00005210  2c 2d 31 2c 31 29 0d 02  b6 2d 20 c9 20 38 3a f2  |,-1,1)...- . 8:.|
00005220  64 6f 75 62 6c 65 5f 67  72 61 64 5f 62 61 63 6b  |double_grad_back|
00005230  28 32 35 35 2c 32 35 35  2c 31 2c 2d 31 2c 2d 31  |(255,255,1,-1,-1|
00005240  2c 30 29 0d 02 b7 30 20  c9 20 39 3a f2 64 6f 75  |,0)...0 . 9:.dou|
00005250  62 6c 65 5f 67 72 61 64  5f 62 61 63 6b 28 32 35  |ble_grad_back(25|
00005260  35 2c 32 35 35 2c 32 35  35 2c 2d 31 2c 2d 31 2c  |5,255,255,-1,-1,|
00005270  2d 31 29 0d 02 b8 06 20  cb 0d 02 b9 06 20 e1 0d  |-1).... ..... ..|
00005280  02 ba 04 0d 02 bb 1b 20  dd 20 f2 73 69 6e 67 6c  |....... . .singl|
00005290  65 5f 67 72 61 64 5f 6f  70 74 69 6f 6e 73 0d 02  |e_grad_options..|
000052a0  bc 1f 20 6d 65 6e 75 24  28 30 29 3d 22 53 69 6e  |.. menu$(0)="Sin|
000052b0  67 6c 65 20 67 72 61 64  73 20 20 20 22 0d 02 bd  |gle grads   "...|
000052c0  1b 20 6d 65 6e 75 24 28  31 29 3d 22 42 6c 61 63  |. menu$(1)="Blac|
000052d0  6b 2d 77 68 69 74 65 22  0d 02 be 1c 20 6d 65 6e  |k-white".... men|
000052e0  75 24 28 32 29 3d 22 42  6c 61 63 6b 2d 79 65 6c  |u$(2)="Black-yel|
000052f0  6c 6f 77 22 0d 02 bf 1a  20 6d 65 6e 75 24 28 33  |low".... menu$(3|
00005300  29 3d 22 42 6c 61 63 6b  2d 63 79 61 6e 22 0d 02  |)="Black-cyan"..|
00005310  c0 1b 20 6d 65 6e 75 24  28 34 29 3d 22 42 6c 61  |.. menu$(4)="Bla|
00005320  63 6b 2d 67 72 65 65 6e  22 0d 02 c1 1d 20 6d 65  |ck-green".... me|
00005330  6e 75 24 28 35 29 3d 22  42 6c 61 63 6b 2d 6d 61  |nu$(5)="Black-ma|
00005340  67 65 6e 74 61 22 0d 02  c2 19 20 6d 65 6e 75 24  |genta".... menu$|
00005350  28 36 29 3d 22 42 6c 61  63 6b 2d 72 65 64 22 0d  |(6)="Black-red".|
00005360  02 c3 1a 20 6d 65 6e 75  24 28 37 29 3d 22 42 6c  |... menu$(7)="Bl|
00005370  61 63 6b 2d 62 6c 75 65  22 0d 02 c4 20 20 6d 65  |ack-blue"...  me|
00005380  6e 75 24 28 38 29 3d 22  2a 22 3a f2 6d 65 6e 75  |nu$(8)="*":.menu|
00005390  28 30 2c 39 30 2c 2d 31  29 0d 02 c5 13 20 c8 8e  |(0,90,-1).... ..|
000053a0  20 6d 65 6e 75 5f 62 6f  78 25 20 ca 0d 02 c6 27  | menu_box% ....'|
000053b0  20 c9 20 31 3a f2 73 69  6e 67 6c 65 5f 67 72 61  | . 1:.single_gra|
000053c0  64 5f 62 61 63 6b 28 30  2c 30 2c 30 2c 31 2c 31  |d_back(0,0,0,1,1|
000053d0  2c 31 29 0d 02 c7 27 20  c9 20 32 3a f2 73 69 6e  |,1)...' . 2:.sin|
000053e0  67 6c 65 5f 67 72 61 64  5f 62 61 63 6b 28 30 2c  |gle_grad_back(0,|
000053f0  30 2c 30 2c 31 2c 31 2c  30 29 0d 02 c8 27 20 c9  |0,0,1,1,0)...' .|
00005400  20 33 3a f2 73 69 6e 67  6c 65 5f 67 72 61 64 5f  | 3:.single_grad_|
00005410  62 61 63 6b 28 30 2c 30  2c 30 2c 30 2c 31 2c 31  |back(0,0,0,0,1,1|
00005420  29 0d 02 c9 27 20 c9 20  34 3a f2 73 69 6e 67 6c  |)...' . 4:.singl|
00005430  65 5f 67 72 61 64 5f 62  61 63 6b 28 30 2c 30 2c  |e_grad_back(0,0,|
00005440  30 2c 30 2c 31 2c 30 29  0d 02 ca 27 20 c9 20 35  |0,0,1,0)...' . 5|
00005450  3a f2 73 69 6e 67 6c 65  5f 67 72 61 64 5f 62 61  |:.single_grad_ba|
00005460  63 6b 28 30 2c 30 2c 30  2c 31 2c 30 2c 31 29 0d  |ck(0,0,0,1,0,1).|
00005470  02 cb 27 20 c9 20 36 3a  f2 73 69 6e 67 6c 65 5f  |..' . 6:.single_|
00005480  67 72 61 64 5f 62 61 63  6b 28 30 2c 30 2c 30 2c  |grad_back(0,0,0,|
00005490  31 2c 30 2c 30 29 0d 02  cc 27 20 c9 20 37 3a f2  |1,0,0)...' . 7:.|
000054a0  73 69 6e 67 6c 65 5f 67  72 61 64 5f 62 61 63 6b  |single_grad_back|
000054b0  28 30 2c 30 2c 30 2c 30  2c 30 2c 31 29 0d 02 cd  |(0,0,0,0,0,1)...|
000054c0  06 20 cb 0d 02 ce 06 20  e1 0d 02 cf 04 0d 02 d0  |. ..... ........|
000054d0  18 20 dd 20 f2 70 6c 61  69 6e 5f 62 61 63 6b 67  |. . .plain_backg|
000054e0  72 6f 75 6e 64 0d 02 d1  39 20 f2 72 67 62 5f 73  |round...9 .rgb_s|
000054f0  6c 69 64 65 72 73 28 30  29 3a e6 20 72 65 64 25  |liders(0):. red%|
00005500  2c 67 72 6e 25 2c 62 6c  75 25 3a c8 93 20 c8 90  |,grn%,blu%:.. ..|
00005510  20 30 2c 30 2c 31 32 37  39 2c 31 30 32 34 0d 02  | 0,0,1279,1024..|
00005520  d2 21 20 e7 20 ac 28 6d  65 72 67 65 25 29 20 8c  |.! . .(merge%) .|
00005530  20 f2 75 70 6c 6f 61 64  5f 6d 65 6d 6f 72 79 0d  | .upload_memory.|
00005540  02 d3 06 20 e1 0d 02 d4  04 0d 02 d5 13 20 dd 20  |... ......... . |
00005550  f2 62 6f 72 64 65 72 5f  6d 65 6e 75 0d 02 d6 27  |.border_menu...'|
00005560  20 e7 20 6d 65 6e 75 5f  62 6f 78 25 3d 36 20 8c  | . menu_box%=6 .|
00005570  20 62 68 25 3d 31 30 32  32 20 8b 20 62 68 25 3d  | bh%=1022 . bh%=|
00005580  39 35 38 0d 02 d7 06 20  f5 0d 02 d8 26 20 6d 65  |958.... ....& me|
00005590  6e 75 24 28 30 29 3d 22  20 20 42 6f 72 64 65 72  |nu$(0)="  Border|
000055a0  20 6f 70 74 69 6f 6e 73  20 20 20 20 20 20 22 0d  | options      ".|
000055b0  02 d9 20 20 6d 65 6e 75  24 28 31 29 3d 22 20 20  |..  menu$(1)="  |
000055c0  57 68 69 74 65 20 67 72  61 64 61 74 65 64 22 0d  |White gradated".|
000055d0  02 da 21 20 6d 65 6e 75  24 28 32 29 3d 22 20 20  |..! menu$(2)="  |
000055e0  59 65 6c 6c 6f 77 20 67  72 61 64 61 74 65 64 22  |Yellow gradated"|
000055f0  0d 02 db 1f 20 6d 65 6e  75 24 28 33 29 3d 22 20  |.... menu$(3)=" |
00005600  20 43 79 61 6e 20 67 72  61 64 61 74 65 64 22 0d  | Cyan gradated".|
00005610  02 dc 20 20 6d 65 6e 75  24 28 34 29 3d 22 20 20  |..  menu$(4)="  |
00005620  47 72 65 65 6e 20 67 72  61 64 61 74 65 64 22 0d  |Green gradated".|
00005630  02 dd 22 20 6d 65 6e 75  24 28 35 29 3d 22 20 20  |.." menu$(5)="  |
00005640  4d 61 67 65 6e 74 61 20  67 72 61 64 61 74 65 64  |Magenta gradated|
00005650  22 0d 02 de 1e 20 6d 65  6e 75 24 28 36 29 3d 22  |".... menu$(6)="|
00005660  20 20 52 65 64 20 67 72  61 64 61 74 65 64 22 0d  |  Red gradated".|
00005670  02 df 1f 20 6d 65 6e 75  24 28 37 29 3d 22 20 20  |... menu$(7)="  |
00005680  42 6c 75 65 20 67 72 61  64 61 74 65 64 22 0d 02  |Blue gradated"..|
00005690  e0 21 20 6d 65 6e 75 24  28 38 29 3d 22 20 20 43  |.! menu$(8)="  C|
000056a0  6f 6c 6f 75 72 20 73 65  6c 65 63 74 6f 72 22 0d  |olour selector".|
000056b0  02 e1 21 20 6d 65 6e 75  24 28 39 29 3d 22 20 20  |..! menu$(9)="  |
000056c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 22  |---------------"|
000056d0  0d 02 e2 29 20 e7 20 62  6f 72 64 65 72 5f 77 69  |...) . border_wi|
000056e0  64 74 68 25 3d 31 20 8c  20 6d 24 3d bd 31 32 38  |dth%=1 . m$=.128|
000056f0  20 8b 20 6d 24 3d 22 20  22 0d 02 e3 22 20 6d 65  | . m$=" "..." me|
00005700  6e 75 24 28 31 30 29 3d  6d 24 2b 22 20 4e 61 72  |nu$(10)=m$+" Nar|
00005710  72 6f 77 20 62 6f 72 64  65 72 22 0d 02 e4 29 20  |row border"...) |
00005720  e7 20 62 6f 72 64 65 72  5f 77 69 64 74 68 25 3d  |. border_width%=|
00005730  32 20 8c 20 6d 24 3d bd  31 32 38 20 8b 20 6d 24  |2 . m$=.128 . m$|
00005740  3d 22 20 22 0d 02 e5 22  20 6d 65 6e 75 24 28 31  |=" "..." menu$(1|
00005750  31 29 3d 6d 24 2b 22 20  4d 65 64 69 75 6d 20 62  |1)=m$+" Medium b|
00005760  6f 72 64 65 72 22 0d 02  e6 29 20 e7 20 62 6f 72  |order"...) . bor|
00005770  64 65 72 5f 77 69 64 74  68 25 3d 33 20 8c 20 6d  |der_width%=3 . m|
00005780  24 3d bd 31 32 38 20 8b  20 6d 24 3d 22 20 22 0d  |$=.128 . m$=" ".|
00005790  02 e7 20 20 6d 65 6e 75  24 28 31 32 29 3d 6d 24  |..  menu$(12)=m$|
000057a0  2b 22 20 57 69 64 65 20  62 6f 72 64 65 72 22 0d  |+" Wide border".|
000057b0  02 e8 28 20 e7 20 62 6f  72 64 65 72 5f 67 72 61  |..( . border_gra|
000057c0  64 25 3d 31 20 8c 20 6d  24 3d bd 31 32 38 20 8b  |d%=1 . m$=.128 .|
000057d0  20 6d 24 3d 22 20 22 0d  02 e9 25 20 6d 65 6e 75  | m$=" "...% menu|
000057e0  24 28 31 33 29 3d 6d 24  2b 22 20 47 72 61 64 61  |$(13)=m$+" Grada|
000057f0  74 65 20 74 6f 20 77 68  69 74 65 22 0d 02 ea 28  |te to white"...(|
00005800  20 e7 20 62 6f 72 64 65  72 5f 67 72 61 64 25 3d  | . border_grad%=|
00005810  32 20 8c 20 6d 24 3d bd  31 32 38 20 8b 20 6d 24  |2 . m$=.128 . m$|
00005820  3d 22 20 22 0d 02 eb 26  20 6d 65 6e 75 24 28 31  |=" "...& menu$(1|
00005830  34 29 3d 6d 24 2b 22 20  47 72 61 64 61 74 65 20  |4)=m$+" Gradate |
00005840  74 6f 20 79 65 6c 6c 6f  77 22 0d 02 ec 28 20 e7  |to yellow"...( .|
00005850  20 62 6f 72 64 65 72 5f  67 72 61 64 25 3d 33 20  | border_grad%=3 |
00005860  8c 20 6d 24 3d bd 31 32  38 20 8b 20 6d 24 3d 22  |. m$=.128 . m$="|
00005870  20 22 0d 02 ed 24 20 6d  65 6e 75 24 28 31 35 29  | "...$ menu$(15)|
00005880  3d 6d 24 2b 22 20 47 72  61 64 61 74 65 20 74 6f  |=m$+" Gradate to|
00005890  20 63 79 61 6e 22 0d 02  ee 28 20 e7 20 62 6f 72  | cyan"...( . bor|
000058a0  64 65 72 5f 67 72 61 64  25 3d 34 20 8c 20 6d 24  |der_grad%=4 . m$|
000058b0  3d bd 31 32 38 20 8b 20  6d 24 3d 22 20 22 0d 02  |=.128 . m$=" "..|
000058c0  ef 25 20 6d 65 6e 75 24  28 31 36 29 3d 6d 24 2b  |.% menu$(16)=m$+|
000058d0  22 20 47 72 61 64 61 74  65 20 74 6f 20 67 72 65  |" Gradate to gre|
000058e0  65 6e 22 0d 02 f0 28 20  e7 20 62 6f 72 64 65 72  |en"...( . border|
000058f0  5f 67 72 61 64 25 3d 35  20 8c 20 6d 24 3d bd 31  |_grad%=5 . m$=.1|
00005900  32 38 20 8b 20 6d 24 3d  22 20 22 0d 02 f1 27 20  |28 . m$=" "...' |
00005910  6d 65 6e 75 24 28 31 37  29 3d 6d 24 2b 22 20 47  |menu$(17)=m$+" G|
00005920  72 61 64 61 74 65 20 74  6f 20 6d 61 67 65 6e 74  |radate to magent|
00005930  61 22 0d 02 f2 28 20 e7  20 62 6f 72 64 65 72 5f  |a"...( . border_|
00005940  67 72 61 64 25 3d 36 20  8c 20 6d 24 3d bd 31 32  |grad%=6 . m$=.12|
00005950  38 20 8b 20 6d 24 3d 22  20 22 0d 02 f3 23 20 6d  |8 . m$=" "...# m|
00005960  65 6e 75 24 28 31 38 29  3d 6d 24 2b 22 20 47 72  |enu$(18)=m$+" Gr|
00005970  61 64 61 74 65 20 74 6f  20 72 65 64 22 0d 02 f4  |adate to red"...|
00005980  28 20 e7 20 62 6f 72 64  65 72 5f 67 72 61 64 25  |( . border_grad%|
00005990  3d 37 20 8c 20 6d 24 3d  bd 31 32 38 20 8b 20 6d  |=7 . m$=.128 . m|
000059a0  24 3d 22 20 22 0d 02 f5  24 20 6d 65 6e 75 24 28  |$=" "...$ menu$(|
000059b0  31 39 29 3d 6d 24 2b 22  20 47 72 61 64 61 74 65  |19)=m$+" Gradate|
000059c0  20 74 6f 20 62 6c 75 65  22 0d 02 f6 28 20 e7 20  | to blue"...( . |
000059d0  62 6f 72 64 65 72 5f 67  72 61 64 25 3d 38 20 8c  |border_grad%=8 .|
000059e0  20 6d 24 3d bd 31 32 38  20 8b 20 6d 24 3d 22 20  | m$=.128 . m$=" |
000059f0  22 0d 02 f7 25 20 6d 65  6e 75 24 28 32 30 29 3d  |"...% menu$(20)=|
00005a00  6d 24 2b 22 20 47 72 61  64 61 74 65 20 74 6f 20  |m$+" Gradate to |
00005a10  62 6c 61 63 6b 22 0d 02  f8 21 20 6d 65 6e 75 24  |black"...! menu$|
00005a20  28 32 31 29 3d 22 2a 22  3a f2 6d 65 6e 75 28 30  |(21)="*":.menu(0|
00005a30  2c 39 30 2c 2d 31 29 0d  02 f9 13 20 c8 8e 20 6d  |,90,-1).... .. m|
00005a40  65 6e 75 5f 62 6f 78 25  20 ca 0d 02 fa 19 20 c9  |enu_box% ..... .|
00005a50  20 31 30 3a 62 6f 72 64  65 72 5f 77 69 64 74 68  | 10:border_width|
00005a60  25 3d 31 0d 02 fb 19 20  c9 20 31 31 3a 62 6f 72  |%=1.... . 11:bor|
00005a70  64 65 72 5f 77 69 64 74  68 25 3d 32 0d 02 fc 19  |der_width%=2....|
00005a80  20 c9 20 31 32 3a 62 6f  72 64 65 72 5f 77 69 64  | . 12:border_wid|
00005a90  74 68 25 3d 33 0d 02 fd  18 20 c9 20 31 33 3a 62  |th%=3.... . 13:b|
00005aa0  6f 72 64 65 72 5f 67 72  61 64 25 3d 31 0d 02 fe  |order_grad%=1...|
00005ab0  18 20 c9 20 31 34 3a 62  6f 72 64 65 72 5f 67 72  |. . 14:border_gr|
00005ac0  61 64 25 3d 32 0d 02 ff  18 20 c9 20 31 35 3a 62  |ad%=2.... . 15:b|
00005ad0  6f 72 64 65 72 5f 67 72  61 64 25 3d 33 0d 03 00  |order_grad%=3...|
00005ae0  18 20 c9 20 31 36 3a 62  6f 72 64 65 72 5f 67 72  |. . 16:border_gr|
00005af0  61 64 25 3d 34 0d 03 01  18 20 c9 20 31 37 3a 62  |ad%=4.... . 17:b|
00005b00  6f 72 64 65 72 5f 67 72  61 64 25 3d 35 0d 03 02  |order_grad%=5...|
00005b10  18 20 c9 20 31 38 3a 62  6f 72 64 65 72 5f 67 72  |. . 18:border_gr|
00005b20  61 64 25 3d 36 0d 03 03  18 20 c9 20 31 39 3a 62  |ad%=6.... . 19:b|
00005b30  6f 72 64 65 72 5f 67 72  61 64 25 3d 37 0d 03 04  |order_grad%=7...|
00005b40  18 20 c9 20 32 30 3a 62  6f 72 64 65 72 5f 67 72  |. . 20:border_gr|
00005b50  61 64 25 3d 38 0d 03 05  06 20 cb 0d 03 06 21 20  |ad%=8.... ....! |
00005b60  fd 20 6d 65 6e 75 5f 62  6f 78 25 3c 39 20 84 20  |. menu_box%<9 . |
00005b70  6d 65 6e 75 5f 62 6f 78  25 3d 39 39 0d 03 07 13  |menu_box%=99....|
00005b80  20 c8 8e 20 6d 65 6e 75  5f 62 6f 78 25 20 ca 0d  | .. menu_box% ..|
00005b90  03 08 1d 20 c9 20 31 3a  72 25 3d 32 35 35 3a 67  |... . 1:r%=255:g|
00005ba0  25 3d 32 35 35 3a 62 25  3d 32 35 35 0d 03 09 1b  |%=255:b%=255....|
00005bb0  20 c9 20 32 3a 72 25 3d  32 35 35 3a 67 25 3d 32  | . 2:r%=255:g%=2|
00005bc0  35 35 3a 62 25 3d 30 0d  03 0a 1b 20 c9 20 33 3a  |55:b%=0.... . 3:|
00005bd0  72 25 3d 30 3a 67 25 3d  32 35 35 3a 62 25 3d 32  |r%=0:g%=255:b%=2|
00005be0  35 35 0d 03 0b 19 20 c9  20 34 3a 72 25 3d 30 3a  |55.... . 4:r%=0:|
00005bf0  67 25 3d 32 35 35 3a 62  25 3d 30 0d 03 0c 1b 20  |g%=255:b%=0.... |
00005c00  c9 20 35 3a 72 25 3d 32  35 35 3a 67 25 3d 30 3a  |. 5:r%=255:g%=0:|
00005c10  62 25 3d 32 35 35 0d 03  0d 19 20 c9 20 36 3a 72  |b%=255.... . 6:r|
00005c20  25 3d 32 35 35 3a 67 25  3d 30 3a 62 25 3d 30 0d  |%=255:g%=0:b%=0.|
00005c30  03 0e 19 20 c9 20 37 3a  72 25 3d 30 3a 67 25 3d  |... . 7:r%=0:g%=|
00005c40  30 3a 62 25 3d 32 35 35  0d 03 0f 30 20 c9 20 38  |0:b%=255...0 . 8|
00005c50  3a f2 72 67 62 5f 73 6c  69 64 65 72 73 28 30 29  |:.rgb_sliders(0)|
00005c60  3a 72 25 3d 72 65 64 25  3a 67 25 3d 67 72 6e 25  |:r%=red%:g%=grn%|
00005c70  3a 62 25 3d 62 6c 75 25  0d 03 10 06 20 cb 0d 03  |:b%=blu%.... ...|
00005c80  11 28 20 e7 20 6d 65 6e  75 5f 62 6f 78 25 3c 3e  |.( . menu_box%<>|
00005c90  39 39 20 8c 20 f2 62 6f  72 64 65 72 28 72 25 2c  |99 . .border(r%,|
00005ca0  67 25 2c 62 25 29 0d 03  12 06 20 e1 0d 03 13 04  |g%,b%).... .....|
00005cb0  0d 03 14 11 20 dd 20 f2  6d 6f 64 65 5f 6d 65 6e  |.... . .mode_men|
00005cc0  75 0d 03 15 23 20 e6 33  2c 36 33 20 c8 9c 31 39  |u...# .3,63 ..19|
00005cd0  32 3a c8 93 20 c8 90 20  33 38 38 2c 34 2c 31 31  |2:.. .. 388,4,11|
00005ce0  36 2c 35 30 0d 03 16 06  20 f5 0d 03 17 22 20 6d  |6,50.... ...." m|
00005cf0  65 6e 75 24 28 30 29 3d  22 53 53 54 56 20 6d 6f  |enu$(0)="SSTV mo|
00005d00  64 65 20 73 65 6c 65 63  74 20 20 22 0d 03 18 18  |de select  "....|
00005d10  20 6d 65 6e 75 24 28 32  29 3d 22 4d 61 72 74 69  | menu$(2)="Marti|
00005d20  6e 20 31 22 0d 03 19 18  20 6d 65 6e 75 24 28 33  |n 1".... menu$(3|
00005d30  29 3d 22 4d 61 72 74 69  6e 20 32 22 0d 03 1a 19  |)="Martin 2"....|
00005d40  20 6d 65 6e 75 24 28 34  29 3d 22 53 63 6f 74 74  | menu$(4)="Scott|
00005d50  69 65 20 31 22 0d 03 1b  19 20 6d 65 6e 75 24 28  |ie 1".... menu$(|
00005d60  35 29 3d 22 53 63 6f 74  74 69 65 20 32 22 0d 03  |5)="Scottie 2"..|
00005d70  1c 1a 20 6d 65 6e 75 24  28 36 29 3d 22 53 63 6f  |.. menu$(6)="Sco|
00005d80  74 74 69 65 20 44 58 22  0d 03 1d 1f 20 6d 65 6e  |ttie DX".... men|
00005d90  75 24 28 37 29 3d 22 53  43 32 20 31 38 30 20 73  |u$(7)="SC2 180 s|
00005da0  65 63 6f 6e 64 73 22 0d  03 1e 1d 20 6d 65 6e 75  |econds".... menu|
00005db0  24 28 38 29 3d 22 57 52  31 38 30 20 2d 20 4a 56  |$(8)="WR180 - JV|
00005dc0  46 41 58 22 0d 03 1f 20  20 6d 65 6e 75 24 28 39  |FAX"...  menu$(9|
00005dd0  29 3d 22 50 44 20 35 30  20 20 28 33 32 30 78 32  |)="PD 50  (320x2|
00005de0  35 36 29 22 0d 03 20 21  20 6d 65 6e 75 24 28 31  |56)".. ! menu$(1|
00005df0  30 29 3d 22 50 44 20 39  30 20 20 28 33 32 30 78  |0)="PD 90  (320x|
00005e00  32 35 36 29 22 0d 03 21  21 20 6d 65 6e 75 24 28  |256)"..!! menu$(|
00005e10  31 31 29 3d 22 50 44 20  31 32 30 20 28 36 34 30  |11)="PD 120 (640|
00005e20  78 34 39 36 29 22 0d 03  22 21 20 6d 65 6e 75 24  |x496)".."! menu$|
00005e30  28 31 32 29 3d 22 50 44  20 31 36 30 20 28 35 31  |(12)="PD 160 (51|
00005e40  32 78 33 38 34 29 22 0d  03 23 21 20 6d 65 6e 75  |2x384)"..#! menu|
00005e50  24 28 31 33 29 3d 22 50  44 20 31 38 30 20 28 36  |$(13)="PD 180 (6|
00005e60  34 30 78 34 39 36 29 22  0d 03 24 21 20 6d 65 6e  |40x496)"..$! men|
00005e70  75 24 28 31 34 29 3d 22  50 44 20 32 34 30 20 28  |u$(14)="PD 240 (|
00005e80  36 34 30 78 34 39 36 29  22 0d 03 25 25 20 6d 65  |640x496)"..%% me|
00005e90  6e 75 24 28 31 35 29 3d  22 50 33 20 28 50 61 73  |nu$(15)="P3 (Pas|
00005ea0  6f 6b 6f 6e 20 36 34 30  78 34 39 36 29 22 0d 03  |okon 640x496)"..|
00005eb0  26 25 20 6d 65 6e 75 24  28 31 36 29 3d 22 50 35  |&% menu$(16)="P5|
00005ec0  20 28 50 61 73 6f 6b 6f  6e 20 36 34 30 78 34 39  | (Pasokon 640x49|
00005ed0  36 29 22 0d 03 27 27 20  6d 65 6e 75 24 28 31 37  |6)"..'' menu$(17|
00005ee0  29 3d 22 50 37 20 28 50  61 73 6f 6b 6f 6e 20 36  |)="P7 (Pasokon 6|
00005ef0  34 30 78 34 39 36 29 20  20 22 0d 03 28 1f 20 6d  |40x496)  "..(. m|
00005f00  65 6e 75 24 28 31 38 29  3d 22 48 51 2d 31 20 28  |enu$(18)="HQ-1 (|
00005f10  52 58 20 6f 6e 6c 79 29  22 0d 03 29 1f 20 6d 65  |RX only)"..). me|
00005f20  6e 75 24 28 31 39 29 3d  22 48 51 2d 32 20 28 52  |nu$(19)="HQ-2 (R|
00005f30  58 20 6f 6e 6c 79 29 22  0d 03 2a 29 20 6d 65 6e  |X only)"..*) men|
00005f40  75 24 28 32 30 29 3d 22  53 65 6c 65 63 74 20 4d  |u$(20)="Select M|
00005f50  61 72 74 69 6e 20 31 20  74 69 6d 69 6e 67 73 3e  |artin 1 timings>|
00005f60  22 0d 03 2b 20 20 6d 65  6e 75 24 28 32 31 29 3d  |"..+  menu$(21)=|
00005f70  22 4d 6f 6e 6f 20 46 41  58 20 6d 6f 64 65 73 3e  |"Mono FAX modes>|
00005f80  22 0d 03 2c 22 20 6d 65  6e 75 24 28 32 32 29 3d  |"..," menu$(22)=|
00005f90  22 43 6f 6c 6f 75 72 20  46 41 58 20 6d 6f 64 65  |"Colour FAX mode|
00005fa0  73 3e 22 0d 03 2d 26 20  6d 65 6e 75 24 28 32 33  |s>"..-& menu$(23|
00005fb0  29 3d 22 50 44 20 61 75  74 6f 2d 74 75 6e 65 20  |)="PD auto-tune |
00005fc0  63 6f 6e 74 72 6f 6c 3e  22 0d 03 2e 22 20 6d 65  |control>"..." me|
00005fd0  6e 75 24 28 32 34 29 3d  22 2a 22 3a f2 6d 65 6e  |nu$(24)="*":.men|
00005fe0  75 28 32 38 32 2c 39 30  2c 30 29 0d 03 2f 13 20  |u(282,90,0)../. |
00005ff0  c8 8e 20 6d 65 6e 75 5f  62 6f 78 25 20 ca 0d 03  |.. menu_box% ...|
00006000  30 10 20 c9 20 32 3a 6d  6f 64 65 25 3d 31 0d 03  |0. . 2:mode%=1..|
00006010  31 10 20 c9 20 33 3a 6d  6f 64 65 25 3d 32 0d 03  |1. . 3:mode%=2..|
00006020  32 10 20 c9 20 34 3a 6d  6f 64 65 25 3d 35 0d 03  |2. . 4:mode%=5..|
00006030  33 10 20 c9 20 35 3a 6d  6f 64 65 25 3d 36 0d 03  |3. . 5:mode%=6..|
00006040  34 10 20 c9 20 36 3a 6d  6f 64 65 25 3d 39 0d 03  |4. . 6:mode%=9..|
00006050  35 11 20 c9 20 37 3a 6d  6f 64 65 25 3d 31 31 0d  |5. . 7:mode%=11.|
00006060  03 36 11 20 c9 20 38 3a  6d 6f 64 65 25 3d 31 32  |.6. . 8:mode%=12|
00006070  0d 03 37 11 20 c9 20 39  3a 6d 6f 64 65 25 3d 36  |..7. . 9:mode%=6|
00006080  35 0d 03 38 12 20 c9 20  31 30 3a 6d 6f 64 65 25  |5..8. . 10:mode%|
00006090  3d 36 33 0d 03 39 12 20  c9 20 31 31 3a 6d 6f 64  |=63..9. . 11:mod|
000060a0  65 25 3d 36 34 0d 03 3a  12 20 c9 20 31 32 3a 6d  |e%=64..:. . 12:m|
000060b0  6f 64 65 25 3d 36 32 0d  03 3b 12 20 c9 20 31 33  |ode%=62..;. . 13|
000060c0  3a 6d 6f 64 65 25 3d 36  30 0d 03 3c 12 20 c9 20  |:mode%=60..<. . |
000060d0  31 34 3a 6d 6f 64 65 25  3d 36 31 0d 03 3d 12 20  |14:mode%=61..=. |
000060e0  c9 20 31 35 3a 6d 6f 64  65 25 3d 32 30 0d 03 3e  |. 15:mode%=20..>|
000060f0  12 20 c9 20 31 36 3a 6d  6f 64 65 25 3d 32 31 0d  |. . 16:mode%=21.|
00006100  03 3f 12 20 c9 20 31 37  3a 6d 6f 64 65 25 3d 32  |.?. . 17:mode%=2|
00006110  32 0d 03 40 12 20 c9 20  31 38 3a 6d 6f 64 65 25  |2..@. . 18:mode%|
00006120  3d 37 30 0d 03 41 12 20  c9 20 31 39 3a 6d 6f 64  |=70..A. . 19:mod|
00006130  65 25 3d 37 31 0d 03 42  21 20 c9 20 32 30 3a f2  |e%=71..B! . 20:.|
00006140  73 65 6c 65 63 74 5f 6d  61 72 74 69 6e 31 5f 74  |select_martin1_t|
00006150  69 6d 69 6e 67 73 0d 03  43 18 20 c9 20 32 31 3a  |imings..C. . 21:|
00006160  f2 66 61 78 5f 6d 6f 64  65 5f 6d 65 6e 75 0d 03  |.fax_mode_menu..|
00006170  44 1a 20 c9 20 32 32 3a  f2 63 6f 6c 6f 75 72 5f  |D. . 22:.colour_|
00006180  66 61 78 5f 6d 65 6e 75  0d 03 45 1f 20 c9 20 32  |fax_menu..E. . 2|
00006190  33 3a f2 70 64 5f 61 75  74 6f 5f 74 75 6e 65 5f  |3:.pd_auto_tune_|
000061a0  63 6f 6e 74 72 6f 6c 0d  03 46 06 20 cb 0d 03 47  |control..F. ...G|
000061b0  14 20 fd 20 6d 65 6e 75  5f 62 6f 78 25 3c 3e 39  |. . menu_box%<>9|
000061c0  39 0d 03 48 0d 20 f2 64  69 73 6d 69 6e 69 0d 03  |9..H. .dismini..|
000061d0  49 06 20 e1 0d 03 4a 04  0d 03 4b 1e 20 dd 20 f2  |I. ...J...K. . .|
000061e0  73 65 6c 65 63 74 5f 6d  61 72 74 69 6e 31 5f 74  |select_martin1_t|
000061f0  69 6d 69 6e 67 73 0d 03  4c 06 20 f5 0d 03 4d 29  |imings..L. ...M)|
00006200  20 6d 65 6e 75 24 28 30  29 3d 22 20 20 53 65 6c  | menu$(0)="  Sel|
00006210  65 63 74 20 4d 61 72 74  69 6e 20 31 20 74 69 6d  |ect Martin 1 tim|
00006220  69 6e 67 73 22 0d 03 4e  2b 20 e7 20 73 73 74 76  |ings"..N+ . sstv|
00006230  5f 74 69 6d 65 25 3d 31  20 8c 20 6d 24 3d bd 31  |_time%=1 . m$=.1|
00006240  32 38 2b 22 20 22 20 8b  20 6d 24 3d 22 20 20 22  |28+" " . m$="  "|
00006250  0d 03 4f 25 20 6d 65 6e  75 24 28 31 29 3d 6d 24  |..O% menu$(1)=m$|
00006260  2b 22 52 6f 62 6f 74 20  6f 72 20 53 75 70 65 72  |+"Robot or Super|
00006270  73 63 61 6e 22 0d 03 50  2b 20 e7 20 73 73 74 76  |scan"..P+ . sstv|
00006280  5f 74 69 6d 65 25 3d 32  20 8c 20 6d 24 3d bd 31  |_time%=2 . m$=.1|
00006290  32 38 2b 22 20 22 20 8b  20 6d 24 3d 22 20 20 22  |28+" " . m$="  "|
000062a0  0d 03 51 2d 20 6d 65 6e  75 24 28 32 29 3d 6d 24  |..Q- menu$(2)=m$|
000062b0  2b 22 57 69 6e 50 69 78  20 50 72 6f 20 6f 72 20  |+"WinPix Pro or |
000062c0  47 53 48 20 28 44 4c 34  53 41 57 29 22 0d 03 52  |GSH (DL4SAW)"..R|
000062d0  2b 20 e7 20 73 73 74 76  5f 74 69 6d 65 25 3d 33  |+ . sstv_time%=3|
000062e0  20 8c 20 6d 24 3d bd 31  32 38 2b 22 20 22 20 8b  | . m$=.128+" " .|
000062f0  20 6d 24 3d 22 20 20 22  0d 03 53 18 20 6d 65 6e  | m$="  "..S. men|
00006300  75 24 28 33 29 3d 6d 24  2b 22 4a 56 46 41 58 22  |u$(3)=m$+"JVFAX"|
00006310  0d 03 54 20 20 6d 65 6e  75 24 28 34 29 3d 22 2a  |..T  menu$(4)="*|
00006320  22 3a f2 6d 65 6e 75 28  30 2c 39 30 2c 2d 31 29  |":.menu(0,90,-1)|
00006330  0d 03 55 13 20 c8 8e 20  6d 65 6e 75 5f 62 6f 78  |..U. .. menu_box|
00006340  25 20 ca 0d 03 56 1d 20  c9 20 31 3a 73 73 74 76  |% ...V. . 1:sstv|
00006350  5f 74 69 6d 65 25 3d 31  3a 6d 6f 64 65 25 3d 31  |_time%=1:mode%=1|
00006360  0d 03 57 1d 20 c9 20 32  3a 73 73 74 76 5f 74 69  |..W. . 2:sstv_ti|
00006370  6d 65 25 3d 32 3a 6d 6f  64 65 25 3d 31 0d 03 58  |me%=2:mode%=1..X|
00006380  1d 20 c9 20 33 3a 73 73  74 76 5f 74 69 6d 65 25  |. . 3:sstv_time%|
00006390  3d 33 3a 6d 6f 64 65 25  3d 31 0d 03 59 06 20 cb  |=3:mode%=1..Y. .|
000063a0  0d 03 5a 13 20 fd 20 6d  65 6e 75 5f 62 6f 78 25  |..Z. . menu_box%|
000063b0  3d 39 39 0d 03 5b 06 20  e1 0d 03 5c 04 0d 03 5d  |=99..[. ...\...]|
000063c0  1c 20 dd 20 f2 70 64 5f  61 75 74 6f 5f 74 75 6e  |. . .pd_auto_tun|
000063d0  65 5f 63 6f 6e 74 72 6f  6c 0d 03 5e 06 20 f5 0d  |e_control..^. ..|
000063e0  03 5f 26 20 6d 65 6e 75  24 28 30 29 3d 22 20 20  |._& menu$(0)="  |
000063f0  50 44 20 61 75 74 6f 2d  74 75 6e 65 20 63 6f 6e  |PD auto-tune con|
00006400  74 72 6f 6c 22 0d 03 60  2f 20 e7 20 70 64 5f 61  |trol"..`/ . pd_a|
00006410  75 74 6f 5f 6c 69 6e 65  73 25 3d 38 20 8c 20 6d  |uto_lines%=8 . m|
00006420  24 3d bd 31 32 38 2b 22  20 22 20 8b 20 6d 24 3d  |$=.128+" " . m$=|
00006430  22 20 20 22 0d 03 61 22  20 6d 65 6e 75 24 28 31  |"  "..a" menu$(1|
00006440  29 3d 6d 24 2b 22 41 76  65 72 61 67 65 20 38 20  |)=m$+"Average 8 |
00006450  6c 69 6e 65 73 22 0d 03  62 2f 20 e7 20 70 64 5f  |lines"..b/ . pd_|
00006460  61 75 74 6f 5f 6c 69 6e  65 73 25 3d 34 20 8c 20  |auto_lines%=4 . |
00006470  6d 24 3d bd 31 32 38 2b  22 20 22 20 8b 20 6d 24  |m$=.128+" " . m$|
00006480  3d 22 20 20 22 0d 03 63  22 20 6d 65 6e 75 24 28  |="  "..c" menu$(|
00006490  32 29 3d 6d 24 2b 22 41  76 65 72 61 67 65 20 34  |2)=m$+"Average 4|
000064a0  20 6c 69 6e 65 73 22 0d  03 64 2f 20 e7 20 70 64  | lines"..d/ . pd|
000064b0  5f 61 75 74 6f 5f 6c 69  6e 65 73 25 3d 30 20 8c  |_auto_lines%=0 .|
000064c0  20 6d 24 3d bd 31 32 38  2b 22 20 22 20 8b 20 6d  | m$=.128+" " . m|
000064d0  24 3d 22 20 20 22 0d 03  65 29 20 6d 65 6e 75 24  |$="  "..e) menu$|
000064e0  28 33 29 3d 6d 24 2b 22  41 75 74 6f 2d 74 75 6e  |(3)=m$+"Auto-tun|
000064f0  65 20 6f 66 66 20 28 46  4d 20 75 73 65 29 22 0d  |e off (FM use)".|
00006500  03 66 20 20 6d 65 6e 75  24 28 34 29 3d 22 2a 22  |.f  menu$(4)="*"|
00006510  3a f2 6d 65 6e 75 28 30  2c 39 30 2c 2d 31 29 0d  |:.menu(0,90,-1).|
00006520  03 67 13 20 c8 8e 20 6d  65 6e 75 5f 62 6f 78 25  |.g. .. menu_box%|
00006530  20 ca 0d 03 68 19 20 c9  20 31 3a 70 64 5f 61 75  | ...h. . 1:pd_au|
00006540  74 6f 5f 6c 69 6e 65 73  25 3d 38 0d 03 69 19 20  |to_lines%=8..i. |
00006550  c9 20 32 3a 70 64 5f 61  75 74 6f 5f 6c 69 6e 65  |. 2:pd_auto_line|
00006560  73 25 3d 34 0d 03 6a 19  20 c9 20 33 3a 70 64 5f  |s%=4..j. . 3:pd_|
00006570  61 75 74 6f 5f 6c 69 6e  65 73 25 3d 30 0d 03 6b  |auto_lines%=0..k|
00006580  06 20 cb 0d 03 6c 13 20  fd 20 6d 65 6e 75 5f 62  |. ...l. . menu_b|
00006590  6f 78 25 3d 39 39 0d 03  6d 06 20 e1 0d 03 6e 04  |ox%=99..m. ...n.|
000065a0  0d 03 6f 15 20 dd 20 f2  66 61 78 5f 6d 6f 64 65  |..o. . .fax_mode|
000065b0  5f 6d 65 6e 75 0d 03 70  06 20 f5 0d 03 71 1c 20  |_menu..p. ...q. |
000065c0  6d 65 6e 75 24 28 30 29  3d 22 20 20 4d 6f 6e 6f  |menu$(0)="  Mono|
000065d0  20 46 41 58 20 20 22 0d  03 72 19 20 6d 65 6e 75  | FAX  "..r. menu|
000065e0  24 28 31 29 3d 22 20 20  20 36 30 20 4c 50 4d 22  |$(1)="   60 LPM"|
000065f0  0d 03 73 19 20 6d 65 6e  75 24 28 32 29 3d 22 20  |..s. menu$(2)=" |
00006600  20 20 39 30 20 4c 50 4d  22 0d 03 74 19 20 6d 65  |  90 LPM"..t. me|
00006610  6e 75 24 28 33 29 3d 22  20 20 31 32 30 20 4c 50  |nu$(3)="  120 LP|
00006620  4d 22 0d 03 75 19 20 6d  65 6e 75 24 28 34 29 3d  |M"..u. menu$(4)=|
00006630  22 20 20 31 38 30 20 4c  50 4d 22 0d 03 76 19 20  |"  180 LPM"..v. |
00006640  6d 65 6e 75 24 28 35 29  3d 22 20 20 32 34 30 20  |menu$(5)="  240 |
00006650  4c 50 4d 22 0d 03 77 19  20 6d 65 6e 75 24 28 36  |LPM"..w. menu$(6|
00006660  29 3d 22 20 20 33 36 30  20 4c 50 4d 22 0d 03 78  |)="  360 LPM"..x|
00006670  19 20 6d 65 6e 75 24 28  37 29 3d 22 20 20 34 38  |. menu$(7)="  48|
00006680  30 20 4c 50 4d 22 0d 03  79 2d 20 e7 20 66 61 78  |0 LPM"..y- . fax|
00006690  5f 61 76 65 72 61 67 65  25 3d 31 20 8c 20 6d 24  |_average%=1 . m$|
000066a0  3d bd 31 32 38 2b 22 20  22 20 8b 20 6d 24 3d 22  |=.128+" " . m$="|
000066b0  20 20 22 0d 03 7a 22 20  6d 65 6e 75 24 28 38 29  |  "..z" menu$(8)|
000066c0  3d 6d 24 2b 22 53 68 6f  77 20 65 76 65 72 79 20  |=m$+"Show every |
000066d0  6c 69 6e 65 22 0d 03 7b  2d 20 e7 20 66 61 78 5f  |line"..{- . fax_|
000066e0  61 76 65 72 61 67 65 25  3d 32 20 8c 20 6d 24 3d  |average%=2 . m$=|
000066f0  bd 31 32 38 2b 22 20 22  20 8b 20 6d 24 3d 22 20  |.128+" " . m$=" |
00006700  20 22 0d 03 7c 23 20 6d  65 6e 75 24 28 39 29 3d  | "..|# menu$(9)=|
00006710  6d 24 2b 22 41 76 65 72  61 67 65 20 32 20 6c 69  |m$+"Average 2 li|
00006720  6e 65 73 20 22 0d 03 7d  2d 20 e7 20 66 61 78 5f  |nes "..}- . fax_|
00006730  61 76 65 72 61 67 65 25  3d 33 20 8c 20 6d 24 3d  |average%=3 . m$=|
00006740  bd 31 32 38 2b 22 20 22  20 8b 20 6d 24 3d 22 20  |.128+" " . m$=" |
00006750  20 22 0d 03 7e 23 20 6d  65 6e 75 24 28 31 30 29  | "..~# menu$(10)|
00006760  3d 6d 24 2b 22 41 76 65  72 61 67 65 20 33 20 6c  |=m$+"Average 3 l|
00006770  69 6e 65 73 22 0d 03 7f  21 20 6d 65 6e 75 24 28  |ines"...! menu$(|
00006780  31 31 29 3d 22 2a 22 3a  f2 6d 65 6e 75 28 30 2c  |11)="*":.menu(0,|
00006790  39 30 2c 2d 31 29 0d 03  80 13 20 c8 8e 20 6d 65  |90,-1).... .. me|
000067a0  6e 75 5f 62 6f 78 25 20  ca 0d 03 81 26 20 c9 20  |nu_box% ....& . |
000067b0  38 3a 66 61 78 5f 61 76  65 72 61 67 65 25 3d 31  |8:fax_average%=1|
000067c0  3a 6d 65 6e 75 5f 72 65  64 72 61 77 25 3d b9 0d  |:menu_redraw%=..|
000067d0  03 82 26 20 c9 20 39 3a  66 61 78 5f 61 76 65 72  |..& . 9:fax_aver|
000067e0  61 67 65 25 3d 32 3a 6d  65 6e 75 5f 72 65 64 72  |age%=2:menu_redr|
000067f0  61 77 25 3d b9 0d 03 83  27 20 c9 20 31 30 3a 66  |aw%=....' . 10:f|
00006800  61 78 5f 61 76 65 72 61  67 65 25 3d 33 3a 6d 65  |ax_average%=3:me|
00006810  6e 75 5f 72 65 64 72 61  77 25 3d b9 0d 03 84 06  |nu_redraw%=.....|
00006820  20 cb 0d 03 85 21 20 fd  20 6d 65 6e 75 5f 62 6f  | ....! . menu_bo|
00006830  78 25 3c 38 20 84 20 6d  65 6e 75 5f 62 6f 78 25  |x%<8 . menu_box%|
00006840  3d 39 39 0d 03 86 29 20  e7 20 6d 65 6e 75 5f 62  |=99...) . menu_b|
00006850  6f 78 25 3c 3e 39 39 20  8c 20 6d 6f 64 65 25 3d  |ox%<>99 . mode%=|
00006860  6d 65 6e 75 5f 62 6f 78  25 2b 39 39 0d 03 87 06  |menu_box%+99....|
00006870  20 e1 0d 03 88 04 0d 03  89 17 20 dd 20 f2 63 6f  | ......... . .co|
00006880  6c 6f 75 72 5f 66 61 78  5f 6d 65 6e 75 0d 03 8a  |lour_fax_menu...|
00006890  1b 20 6d 65 6e 75 24 28  30 29 3d 22 43 6f 6c 6f  |. menu$(0)="Colo|
000068a0  75 72 20 46 41 58 20 22  0d 03 8b 17 20 6d 65 6e  |ur FAX ".... men|
000068b0  75 24 28 31 29 3d 22 20  36 30 20 4c 50 4d 22 0d  |u$(1)=" 60 LPM".|
000068c0  03 8c 17 20 6d 65 6e 75  24 28 32 29 3d 22 20 39  |... menu$(2)=" 9|
000068d0  30 20 4c 50 4d 22 0d 03  8d 17 20 6d 65 6e 75 24  |0 LPM".... menu$|
000068e0  28 33 29 3d 22 31 32 30  20 4c 50 4d 22 0d 03 8e  |(3)="120 LPM"...|
000068f0  17 20 6d 65 6e 75 24 28  34 29 3d 22 31 38 30 20  |. menu$(4)="180 |
00006900  4c 50 4d 22 0d 03 8f 17  20 6d 65 6e 75 24 28 35  |LPM".... menu$(5|
00006910  29 3d 22 32 34 30 20 4c  50 4d 22 0d 03 90 17 20  |)="240 LPM".... |
00006920  6d 65 6e 75 24 28 36 29  3d 22 33 36 30 20 4c 50  |menu$(6)="360 LP|
00006930  4d 22 0d 03 91 17 20 6d  65 6e 75 24 28 37 29 3d  |M".... menu$(7)=|
00006940  22 34 38 30 20 4c 50 4d  22 0d 03 92 20 20 6d 65  |"480 LPM"...  me|
00006950  6e 75 24 28 38 29 3d 22  2a 22 3a f2 6d 65 6e 75  |nu$(8)="*":.menu|
00006960  28 30 2c 39 30 2c 2d 31  29 0d 03 93 2a 20 e7 20  |(0,90,-1)...* . |
00006970  6d 65 6e 75 5f 62 6f 78  25 3c 3e 39 39 20 8c 20  |menu_box%<>99 . |
00006980  6d 6f 64 65 25 3d 6d 65  6e 75 5f 62 6f 78 25 2b  |mode%=menu_box%+|
00006990  31 31 39 0d 03 94 06 20  e1 0d 03 95 04 0d 03 96  |119.... ........|
000069a0  16 20 dd 20 f2 77 61 69  74 5f 6e 6f 5f 62 75 74  |. . .wait_no_but|
000069b0  74 6f 6e 0d 03 97 24 20  ea 20 78 25 2c 79 25 2c  |ton...$ . x%,y%,|
000069c0  62 25 3a f5 3a c8 97 20  78 25 2c 79 25 2c 62 25  |b%:.:.. x%,y%,b%|
000069d0  3a fd 20 62 25 3d 30 0d  03 98 06 20 e1 0d 03 99  |:. b%=0.... ....|
000069e0  04 0d 03 9a 16 20 dd 20  a4 73 63 72 65 65 6e 5f  |..... . .screen_|
000069f0  61 64 64 72 65 73 73 0d  03 9b 12 20 ea 20 49 42  |address.... . IB|
00006a00  25 28 29 2c 4f 42 25 28  29 0d 03 9c 14 20 de 20  |%(),OB%().... . |
00006a10  49 42 25 20 32 30 2c 4f  42 25 20 32 30 0d 03 9d  |IB% 20,OB% 20...|
00006a20  20 20 21 49 42 25 3d 31  34 38 3a 49 42 25 21 34  |  !IB%=148:IB%!4|
00006a30  3d 31 35 30 3a 49 42 25  21 38 3d 2d 31 0d 03 9e  |=150:IB%!8=-1...|
00006a40  25 20 c8 99 20 22 4f 53  5f 52 65 61 64 56 64 75  |% .. "OS_ReadVdu|
00006a50  56 61 72 69 61 62 6c 65  73 22 2c 49 42 25 2c 4f  |Variables",IB%,O|
00006a60  42 25 0d 03 9f 0a 20 3d  21 4f 42 25 0d 03 a0 04  |B%.... =!OB%....|
00006a70  0d 03 a1 10 20 dd 20 f2  6d 69 6e 69 5f 70 61 64  |.... . .mini_pad|
00006a80  0d 03 a2 2e 20 e7 20 64  69 73 70 5f 66 6c 61 67  |.... . disp_flag|
00006a90  25 20 f2 64 69 73 70 6c  61 79 5f 6d 65 6d 6f 72  |% .display_memor|
00006aa0  79 3a 64 69 73 70 5f 66  6c 61 67 25 3d 30 0d 03  |y:disp_flag%=0..|
00006ab0  a3 24 20 e6 20 31 32 38  2c 31 38 30 2c 31 38 30  |.$ . 128,180,180|
00006ac0  3a c8 93 20 c8 90 20 30  2c 30 2c 31 32 38 30 2c  |:.. .. 0,0,1280,|
00006ad0  36 30 0d 03 a4 1f 20 e6  32 34 30 2c 32 34 30 2c  |60.... .240,240,|
00006ae0  32 34 30 3a 86 30 2c 36  30 2c 31 32 38 30 2c 36  |240:.0,60,1280,6|
00006af0  30 0d 03 a5 15 20 e3 20  58 25 3d 34 20 b8 20 33  |0.... . X%=4 . 3|
00006b00  34 30 20 88 34 38 0d 03  a6 38 20 c8 99 20 73 70  |40 .48...8 .. sp|
00006b10  72 73 77 69 25 2c 32 35  36 2b 35 32 2c 73 70 62  |rswi%,256+52,spb|
00006b20  25 2c 22 62 75 74 74 6f  6e 22 2c 58 25 2c 34 2c  |%,"button",X%,4,|
00006b30  30 2c 30 2c 74 72 61 6e  73 6c 61 74 65 25 0d 03  |0,0,translate%..|
00006b40  a7 06 20 ed 0d 03 a8 21  20 f2 72 61 69 73 65 64  |.. ....! .raised|
00006b50  5f 62 6c 6f 63 6b 28 35  32 32 2c 31 30 2c 31 30  |_block(522,10,10|
00006b60  36 2c 33 38 29 0d 03 a9  1d 20 f2 6c 61 72 67 65  |6,38).... .large|
00006b70  5f 62 75 74 74 6f 6e 73  28 33 38 34 2c 32 2c 2d  |_buttons(384,2,-|
00006b80  31 29 0d 03 aa 2b 20 e3  20 58 25 3d 37 36 38 20  |1)...+ . X%=768 |
00006b90  b8 20 31 31 35 32 20 88  36 34 3a f2 62 75 74 74  |. 1152 .64:.butt|
00006ba0  6f 6e 73 28 58 25 2c 32  2c 30 29 3a ed 0d 03 ab  |ons(X%,2,0):....|
00006bb0  22 20 ef 20 32 33 2c 31  37 2c 37 2c 36 2c 38 3b  |" . 23,17,7,6,8;|
00006bc0  38 3b 30 3b 3a e6 33 32  20 c8 9c 30 3a ef 35 0d  |8;0;:.32 ..0:.5.|
00006bd0  03 ac 16 20 e7 20 ac 28  61 75 74 6f 5f 73 61 76  |... . .(auto_sav|
00006be0  65 25 29 20 8c 0d 03 ad  43 20 e7 20 6d 6f 64 65  |e%) ....C . mode|
00006bf0  25 3c 39 39 20 f2 77 72  69 74 65 32 28 22 56 49  |%<99 .write2("VI|
00006c00  53 22 2c 35 33 30 2c 31  32 2c 34 29 20 8b 20 f2  |S",530,12,4) . .|
00006c10  77 72 69 74 65 32 28 22  50 68 61 73 65 22 2c 35  |write2("Phase",5|
00006c20  31 32 2c 31 32 2c 34 29  0d 03 ae 06 20 cc 0d 03  |12,12,4).... ...|
00006c30  af 1d 20 f2 77 72 69 74  65 32 28 22 41 55 54 4f  |.. .write2("AUTO|
00006c40  22 2c 35 31 36 2c 31 32  2c 34 29 0d 03 b0 06 20  |",516,12,4).... |
00006c50  cd 0d 03 b1 0c 20 e6 20  30 2c 30 2c 30 0d 03 b2  |..... . 0,0,0...|
00006c60  12 20 e7 20 6d 6f 64 65  25 3c 31 32 30 20 8c 0d  |. . mode%<120 ..|
00006c70  03 b3 1c 20 ec 20 34 30  30 2c 33 36 3a f1 20 6d  |... . 400,36:. m|
00006c80  6f 64 65 24 28 6d 6f 64  65 25 29 0d 03 b4 06 20  |ode$(mode%).... |
00006c90  cc 0d 03 b5 20 20 ec 20  34 30 30 2c 34 34 3a f1  |....  . 400,44:.|
00006ca0  20 c0 6d 6f 64 65 24 28  6d 6f 64 65 25 29 2c 36  | .mode$(mode%),6|
00006cb0  29 0d 03 b6 20 20 ec 20  33 39 32 2c 32 34 3a f1  |)...  . 392,24:.|
00006cc0  20 c1 6d 6f 64 65 24 28  6d 6f 64 65 25 29 2c 37  | .mode$(mode%),7|
00006cd0  29 0d 03 b7 06 20 cd 0d  03 b8 36 20 c8 99 20 73  |).... ....6 .. s|
00006ce0  70 72 73 77 69 25 2c 32  35 36 2b 35 32 2c 73 70  |prswi%,256+52,sp|
00006cf0  62 25 2c 22 72 67 62 22  2c 38 33 38 2c 36 2c 30  |b%,"rgb",838,6,0|
00006d00  2c 30 2c 74 72 61 6e 73  6c 61 74 65 25 0d 03 b9  |,0,translate%...|
00006d10  38 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |8 .. sprswi%,256|
00006d20  2b 35 32 2c 73 70 62 25  2c 22 62 72 75 73 68 22  |+52,spb%,"brush"|
00006d30  2c 39 30 32 2c 36 2c 30  2c 30 2c 74 72 61 6e 73  |,902,6,0,0,trans|
00006d40  6c 61 74 65 25 0d 03 ba  38 20 c8 99 20 73 70 72  |late%...8 .. spr|
00006d50  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
00006d60  2c 22 74 65 78 74 22 2c  31 30 39 34 2c 36 2c 30  |,"text",1094,6,0|
00006d70  2c 30 2c 74 72 61 6e 73  6c 61 74 65 25 0d 03 bb  |,0,translate%...|
00006d80  35 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |5 .. sprswi%,256|
00006d90  2b 35 32 2c 73 70 62 25  2c 22 74 70 22 2c 37 37  |+52,spb%,"tp",77|
00006da0  34 2c 36 2c 30 2c 30 2c  74 72 61 6e 73 6c 61 74  |4,6,0,0,translat|
00006db0  65 25 0d 03 bc 3a 20 c8  99 20 73 70 72 73 77 69  |e%...: .. sprswi|
00006dc0  25 2c 32 35 36 2b 35 32  2c 73 70 62 25 2c 22 63  |%,256+52,spb%,"c|
00006dd0  61 6d 65 72 61 22 2c 31  30 33 30 2c 36 2c 30 2c  |amera",1030,6,0,|
00006de0  30 2c 74 72 61 6e 73 6c  61 74 65 25 0d 03 bd 39  |0,translate%...9|
00006df0  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
00006e00  35 32 2c 73 70 62 25 2c  22 72 6f 6c 6c 65 72 22  |52,spb%,"roller"|
00006e10  2c 39 36 36 2c 36 2c 30  2c 30 2c 74 72 61 6e 73  |,966,6,0,0,trans|
00006e20  6c 61 74 65 25 0d 03 be  35 20 c8 99 20 73 70 72  |late%...5 .. spr|
00006e30  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
00006e40  2c 22 72 78 22 2c 36 34  36 2c 34 2c 30 2c 30 2c  |,"rx",646,4,0,0,|
00006e50  74 72 61 6e 73 6c 61 74  65 25 0d 03 bf 35 20 c8  |translate%...5 .|
00006e60  99 20 73 70 72 73 77 69  25 2c 32 35 36 2b 35 32  |. sprswi%,256+52|
00006e70  2c 73 70 62 25 2c 22 74  78 22 2c 37 31 30 2c 34  |,spb%,"tx",710,4|
00006e80  2c 30 2c 30 2c 74 72 61  6e 73 6c 61 74 65 25 0d  |,0,0,translate%.|
00006e90  03 c0 39 20 c8 99 20 73  70 72 73 77 69 25 2c 32  |..9 .. sprswi%,2|
00006ea0  35 36 2b 35 32 2c 73 70  62 25 2c 22 74 68 75 6d  |56+52,spb%,"thum|
00006eb0  62 22 2c 31 31 35 38 2c  36 2c 30 2c 30 2c 74 72  |b",1158,6,0,0,tr|
00006ec0  61 6e 73 6c 61 74 65 25  0d 03 c1 39 20 c8 99 20  |anslate%...9 .. |
00006ed0  73 70 72 73 77 69 25 2c  32 35 36 2b 35 32 2c 73  |sprswi%,256+52,s|
00006ee0  70 62 25 2c 22 66 69 6c  65 72 22 2c 31 32 31 36  |pb%,"filer",1216|
00006ef0  2c 34 2c 38 2c 30 2c 74  72 61 6e 73 6c 61 74 65  |,4,8,0,translate|
00006f00  25 0d 03 c2 1b 20 58 4d  25 3d 28 6d 65 6d 6f 72  |%.... XM%=(memor|
00006f10  69 65 73 25 2d 31 29 2a  34 38 2b 34 0d 03 c3 1a  |ies%-1)*48+4....|
00006f20  20 4d 25 3d 31 3a e3 20  58 25 3d 34 20 b8 20 58  | M%=1:. X%=4 . X|
00006f30  4d 25 20 88 34 38 0d 03  c4 22 20 f2 77 72 69 74  |M% .48..." .writ|
00006f40  65 32 28 c3 20 4d 25 2c  58 25 2c 31 32 2c 34 29  |e2(. M%,X%,12,4)|
00006f50  3a 4d 25 2b 3d 31 3a ed  0d 03 c5 20 20 e6 20 30  |:M%+=1:....  . 0|
00006f60  2c 36 34 2c 30 3a c8 93  20 c8 90 20 36 31 32 2c  |,64,0:.. .. 612,|
00006f70  32 34 2c 31 30 2c 31 30  0d 03 c6 1b 20 ef 34 3a  |24,10,10.... .4:|
00006f80  87 3a c8 96 3a 6d 65 6e  75 5f 72 65 64 72 61 77  |.:..:menu_redraw|
00006f90  25 3d b9 0d 03 c7 2b 20  e6 33 2c 32 35 35 2c 32  |%=....+ .3,255,2|
00006fa0  35 35 2c 32 35 35 3a c8  93 20 c8 90 20 4d 45 4d  |55,255:.. .. MEM|
00006fb0  25 2a 34 38 2b 36 2c 38  2c 33 38 2c 34 34 0d 03  |%*48+6,8,38,44..|
00006fc0  c8 1b 20 fb 31 32 38 3a  ef 32 33 2c 31 37 2c 37  |.. .128:.23,17,7|
00006fd0  2c 36 2c 38 3b 38 3b 30  3b 0d 03 c9 06 20 e1 0d  |,6,8;8;0;.... ..|
00006fe0  03 ca 04 0d 03 cb 16 20  dd 20 f2 62 75 74 74 6f  |....... . .butto|
00006ff0  6e 73 28 58 2c 59 2c 46  29 0d 03 cc 0e 20 e6 36  |ns(X,Y,F).... .6|
00007000  33 20 c8 9c 31 39 32 0d  03 cd 2c 20 86 20 58 2b  |3 ..192..., . X+|
00007010  34 2c 59 2b 34 2c 58 2b  34 2c 59 2b 35 30 3a 86  |4,Y+4,X+4,Y+50:.|
00007020  20 58 2b 34 2c 59 2b 35  32 2c 58 2b 35 36 2c 59  | X+4,Y+52,X+56,Y|
00007030  2b 35 32 0d 03 ce 0b 20  e6 30 20 c8 9c 30 0d 03  |+52.... .0 ..0..|
00007040  cf 2c 20 86 20 58 2b 34  2c 59 2b 32 2c 58 2b 35  |., . X+4,Y+2,X+5|
00007050  36 2c 59 2b 32 3a 86 20  58 2b 35 36 2c 59 2b 32  |6,Y+2:. X+56,Y+2|
00007060  2c 58 2b 35 36 2c 59 2b  35 30 0d 03 d0 29 20 e7  |,X+56,Y+50...) .|
00007070  28 46 29 20 8c 20 e6 34  32 20 c8 9c 31 39 32 3a  |(F) . .42 ..192:|
00007080  c8 93 20 c8 90 20 58 2b  38 2c 59 2b 38 2c 34 34  |.. .. X+8,Y+8,44|
00007090  2c 35 36 0d 03 d1 06 20  e1 0d 03 d2 04 0d 03 d3  |,56.... ........|
000070a0  1c 20 dd 20 f2 6c 61 72  67 65 5f 62 75 74 74 6f  |. . .large_butto|
000070b0  6e 73 28 58 2c 59 2c 46  29 0d 03 d4 0e 20 e6 36  |ns(X,Y,F).... .6|
000070c0  33 20 c8 9c 31 39 32 0d  03 d5 2d 20 86 20 58 2b  |3 ..192...- . X+|
000070d0  34 2c 59 2b 34 2c 58 2b  34 2c 59 2b 35 30 3a 86  |4,Y+4,X+4,Y+50:.|
000070e0  20 58 2b 34 2c 59 2b 35  32 2c 58 2b 31 32 30 2c  | X+4,Y+52,X+120,|
000070f0  59 2b 35 32 0d 03 d6 0b  20 e6 30 20 c8 9c 30 0d  |Y+52.... .0 ..0.|
00007100  03 d7 2f 20 86 20 58 2b  34 2c 59 2b 32 2c 58 2b  |../ . X+4,Y+2,X+|
00007110  31 32 30 2c 59 2b 32 3a  86 20 58 2b 31 32 30 2c  |120,Y+2:. X+120,|
00007120  59 2b 32 2c 58 2b 31 32  30 2c 59 2b 35 30 0d 03  |Y+2,X+120,Y+50..|
00007130  d8 2b 20 e7 28 46 29 20  8c 20 e6 32 35 35 2c 31  |.+ .(F) . .255,1|
00007140  39 30 2c 30 3a c8 93 20  c8 90 20 58 2b 36 2c 59  |90,0:.. .. X+6,Y|
00007150  2b 34 2c 31 31 32 2c 34  36 0d 03 d9 06 20 e1 0d  |+4,112,46.... ..|
00007160  03 da 04 0d 03 db 14 20  dd 20 f2 6d 65 6d 5f 61  |....... . .mem_a|
00007170  73 73 65 6d 62 6c 65 0d  03 dc 13 20 de 20 6d 65  |ssemble.... . me|
00007180  6d 5f 63 6f 64 65 25 20  36 34 0d 03 dd 11 20 e3  |m_code% 64.... .|
00007190  20 50 3d 30 20 b8 20 32  20 88 32 0d 03 de 11 20  | P=0 . 2 .2.... |
000071a0  50 25 3d 6d 65 6d 5f 63  6f 64 65 25 0d 03 df 0b  |P%=mem_code%....|
000071b0  20 5b 4f 50 54 20 50 0d  03 e0 12 20 2e 6d 65 6d  | [OPT P.... .mem|
000071c0  5f 74 72 61 6e 73 66 65  72 0d 03 e1 13 20 4d 4f  |_transfer.... MO|
000071d0  56 20 52 31 32 2c 23 31  36 33 38 34 0d 03 e2 0e  |V R12,#16384....|
000071e0  20 2e 6d 74 73 5f 6c 6f  6f 70 0d 03 e3 30 20 4c  | .mts_loop...0 L|
000071f0  44 4d 49 41 20 52 30 21  2c 7b 52 31 2c 52 33 2d  |DMIA R0!,{R1,R3-|
00007200  52 31 31 7d 3a 53 54 4d  49 41 20 52 32 21 2c 7b  |R11}:STMIA R2!,{|
00007210  52 31 2c 52 33 2d 52 31  31 7d 0d 03 e4 21 20 53  |R1,R3-R11}...! S|
00007220  55 42 53 20 52 31 32 2c  52 31 32 2c 23 31 3a 42  |UBS R12,R12,#1:B|
00007230  4e 45 20 6d 74 73 5f 6c  6f 6f 70 0d 03 e5 0f 20  |NE mts_loop.... |
00007240  4d 4f 56 20 50 43 2c 52  31 34 0d 03 e6 08 20 5d  |MOV PC,R14.... ]|
00007250  3a ed 0d 03 e7 06 20 e1  0d 03 e8 04 0d 03 e9 16  |:..... .........|
00007260  20 dd 20 f2 64 69 73 70  6c 61 79 5f 6d 65 6d 6f  | . .display_memo|
00007270  72 79 0d 03 ea 2e 20 41  25 3d 6d 65 6d 62 6c 6f  |ry.... A%=memblo|
00007280  63 6b 25 2b 32 30 3a 43  25 3d 73 63 72 65 65 6e  |ck%+20:C%=screen|
00007290  25 3a d6 20 6d 65 6d 5f  74 72 61 6e 73 66 65 72  |%:. mem_transfer|
000072a0  0d 03 eb 06 20 e1 0d 03  ec 04 0d 03 ed 15 20 dd  |.... ......... .|
000072b0  20 f2 75 70 6c 6f 61 64  5f 6d 65 6d 6f 72 79 0d  | .upload_memory.|
000072c0  03 ee 2e 20 43 25 3d 6d  65 6d 62 6c 6f 63 6b 25  |... C%=memblock%|
000072d0  2b 32 30 3a 41 25 3d 73  63 72 65 65 6e 25 3a d6  |+20:A%=screen%:.|
000072e0  20 6d 65 6d 5f 74 72 61  6e 73 66 65 72 0d 03 ef  | mem_transfer...|
000072f0  16 20 70 61 74 68 24 28  4d 45 4d 25 2b 31 29 3d  |. path$(MEM%+1)=|
00007300  22 58 22 0d 03 f0 06 20  e1 0d 03 f1 04 0d 03 f2  |"X".... ........|
00007310  10 20 dd 20 f2 73 63 72  6f 6c 6c 65 72 0d 03 f3  |. . .scroller...|
00007320  20 20 ef 31 39 2c 31 2c  32 34 2c 32 35 35 2c 30  |  .19,1,24,255,0|
00007330  2c 32 35 35 3a c8 97 20  58 2c 59 2c 42 0d 03 f4  |,255:.. X,Y,B...|
00007340  31 20 6d 69 64 25 3d 21  73 63 72 65 65 6e 25 3a  |1 mid%=!screen%:|
00007350  e7 20 a4 68 69 67 68 5f  72 65 73 5f 6d 6f 64 65  |. .high_res_mode|
00007360  20 78 79 25 3d 32 20 8b  20 78 79 25 3d 34 0d 03  | xy%=2 . xy%=4..|
00007370  f5 06 20 f5 0d 03 f6 2a  20 e7 20 59 3e 39 35 30  |.. ....* . Y>950|
00007380  20 8c 20 c8 93 20 c8 90  20 30 2c 30 2c 31 32 38  | . .. .. 0,0,128|
00007390  30 2c 31 30 32 34 20 b8  20 30 2c 78 79 25 0d 03  |0,1024 . 0,xy%..|
000073a0  f7 2a 20 e7 20 59 3c 31  30 20 8c 20 c8 93 20 c8  |.* . Y<10 . .. .|
000073b0  90 20 30 2c 30 2c 31 32  38 30 2c 31 30 32 34 20  |. 0,0,1280,1024 |
000073c0  b8 20 30 2c 2d 78 79 25  0d 03 f8 2b 20 e7 20 58  |. 0,-xy%...+ . X|
000073d0  3e 31 32 37 30 20 8c 20  c8 93 20 c8 90 20 30 2c  |>1270 . .. .. 0,|
000073e0  30 2c 31 32 38 30 2c 31  30 32 34 20 b8 20 78 79  |0,1280,1024 . xy|
000073f0  25 2c 30 0d 03 f9 2a 20  e7 20 58 3c 31 30 20 8c  |%,0...* . X<10 .|
00007400  20 c8 93 20 c8 90 20 30  2c 30 2c 31 32 38 30 2c  | .. .. 0,0,1280,|
00007410  31 30 32 34 20 b8 20 2d  78 79 25 2c 30 0d 03 fa  |1024 . -xy%,0...|
00007420  0c 20 4b 25 3d a6 28 35  29 0d 03 fb 15 20 f5 3a  |. K%=.(5).... .:|
00007430  c8 97 20 58 2c 59 2c 42  3a fd 20 42 3d 34 0d 03  |.. X,Y,B:. B=4..|
00007440  fc 29 20 fd 20 28 59 3e  31 30 30 20 80 20 59 3c  |.) . (Y>100 . Y<|
00007450  39 32 33 29 20 80 20 28  58 3e 31 30 30 20 80 20  |923) . (X>100 . |
00007460  58 3c 31 31 37 39 29 0d  03 fd 21 20 ef 31 39 2c  |X<1179)...! .19,|
00007470  31 2c 32 34 2c 30 2c 30  2c 30 3a 21 73 63 72 65  |1,24,0,0,0:!scre|
00007480  65 6e 25 3d 6d 69 64 25  0d 03 fe 13 20 f2 75 70  |en%=mid%.... .up|
00007490  6c 6f 61 64 5f 6d 65 6d  6f 72 79 0d 03 ff 06 20  |load_memory.... |
000074a0  e1 0d 04 00 04 0d 04 01  15 20 dd 20 a4 68 69 67  |......... . .hig|
000074b0  68 5f 72 65 73 5f 6d 6f  64 65 0d 04 02 0e 20 ea  |h_res_mode.... .|
000074c0  20 72 65 73 75 6c 74 25  0d 04 03 0f 20 c8 8e 20  | result%.... .. |
000074d0  6d 6f 64 65 25 20 ca 0d  04 04 2a 20 20 c9 20 31  |mode% ....*  . 1|
000074e0  2c 32 2c 35 2c 36 2c 39  2c 31 31 2c 31 32 2c 36  |,2,5,6,9,11,12,6|
000074f0  33 2c 37 30 2c 37 31 3a  72 65 73 75 6c 74 25 3d  |3,70,71:result%=|
00007500  a3 0d 04 05 06 20 7f 0d  04 06 0f 20 20 72 65 73  |..... .....  res|
00007510  75 6c 74 25 3d b9 0d 04  07 06 20 cb 0d 04 08 0d  |ult%=..... .....|
00007520  20 3d 72 65 73 75 6c 74  25 0d 04 09 04 0d 04 0a  | =result%.......|
00007530  13 20 dd 20 f2 73 65 74  75 70 5f 6d 6f 64 65 73  |. . .setup_modes|
00007540  0d 04 0b 09 20 f7 20 2b  30 0d 04 0c 1e 20 e3 20  |.... . +0.... . |
00007550  4e 25 3d 31 20 b8 20 31  32 3a f3 20 6d 6f 64 65  |N%=1 . 12:. mode|
00007560  24 28 4e 25 29 3a ed 0d  04 0d 46 20 dc 20 22 20  |$(N%):....F . " |
00007570  4d 2d 31 20 22 2c 22 20  4d 2d 32 20 22 2c 22 20  |M-1 "," M-2 "," |
00007580  4d 2d 33 20 22 2c 22 20  4d 2d 34 20 22 2c 22 20  |M-3 "," M-4 "," |
00007590  53 2d 31 20 22 2c 22 20  53 2d 32 20 22 2c 22 20  |S-1 "," S-2 "," |
000075a0  53 2d 33 20 22 2c 22 20  53 2d 34 20 22 0d 04 0e  |S-3 "," S-4 "...|
000075b0  29 20 dc 20 22 20 53 2d  44 58 22 2c 22 53 43 2d  |) . " S-DX","SC-|
000075c0  31 32 30 22 2c 22 53 43  2d 31 38 30 22 2c 22 57  |120","SC-180","W|
000075d0  52 2d 31 38 30 22 0d 04  0f 21 20 e3 20 4e 25 3d  |R-180"...! . N%=|
000075e0  31 30 30 20 b8 20 31 30  37 3a f3 20 6d 6f 64 65  |100 . 107:. mode|
000075f0  24 28 4e 25 29 3a ed 0d  04 10 33 20 dc 20 22 46  |$(N%):....3 . "F|
00007600  41 58 20 36 30 22 2c 22  46 41 58 20 39 30 22 2c  |AX 60","FAX 90",|
00007610  22 46 41 58 31 32 30 22  2c 22 46 41 58 31 38 30  |"FAX120","FAX180|
00007620  22 2c 22 46 41 58 32 34  30 22 0d 04 11 21 20 dc  |","FAX240"...! .|
00007630  20 22 46 41 58 33 36 30  22 2c 22 46 41 58 34 38  | "FAX360","FAX48|
00007640  30 22 2c 22 51 53 54 34  38 30 22 0d 04 12 21 20  |0","QST480"...! |
00007650  e3 20 4e 25 3d 31 32 30  20 b8 20 31 32 36 3a f3  |. N%=120 . 126:.|
00007660  20 6d 6f 64 65 24 28 4e  25 29 3a ed 0d 04 13 2a  | mode$(N%):....*|
00007670  20 6d 6f 64 65 24 28 36  30 29 3d 22 50 44 2d 31  | mode$(60)="PD-1|
00007680  38 30 22 3a 6d 6f 64 65  24 28 36 31 29 3d 22 50  |80":mode$(61)="P|
00007690  44 2d 32 34 30 22 0d 04  14 29 20 6d 6f 64 65 24  |D-240"...) mode$|
000076a0  28 36 32 29 3d 22 50 44  2d 31 36 30 22 3a 6d 6f  |(62)="PD-160":mo|
000076b0  64 65 24 28 36 33 29 3d  22 50 44 2d 39 30 22 0d  |de$(63)="PD-90".|
000076c0  04 15 29 20 6d 6f 64 65  24 28 36 34 29 3d 22 50  |..) mode$(64)="P|
000076d0  44 2d 31 32 30 22 3a 6d  6f 64 65 24 28 36 35 29  |D-120":mode$(65)|
000076e0  3d 22 50 44 2d 35 30 22  0d 04 16 28 20 6d 6f 64  |="PD-50"...( mod|
000076f0  65 24 28 37 30 29 3d 22  20 48 51 2d 31 22 3a 6d  |e$(70)=" HQ-1":m|
00007700  6f 64 65 24 28 37 31 29  3d 22 20 48 51 2d 32 22  |ode$(71)=" HQ-2"|
00007710  0d 04 17 37 20 6d 6f 64  65 24 28 32 30 29 3d 22  |...7 mode$(20)="|
00007720  20 50 2d 33 22 3a 6d 6f  64 65 24 28 32 31 29 3d  | P-3":mode$(21)=|
00007730  22 20 50 2d 35 22 3a 6d  6f 64 65 24 28 32 32 29  |" P-5":mode$(22)|
00007740  3d 22 20 50 2d 37 22 0d  04 18 26 20 dc 20 22 48  |=" P-7"...& . "H|
00007750  61 6d 43 6f 6c 36 30 20  2f 32 30 34 22 2c 22 48  |amCol60 /204","H|
00007760  61 6d 43 6f 6c 39 30 20  2f 32 30 34 22 0d 04 19  |amCol90 /204"...|
00007770  36 20 dc 20 22 48 61 6d  43 6f 6c 31 32 30 2f 32  |6 . "HamCol120/2|
00007780  30 34 22 2c 22 48 61 6d  43 6f 6c 31 38 30 2f 32  |04","HamCol180/2|
00007790  30 34 22 2c 22 48 61 6d  43 6f 6c 32 34 30 2f 32  |04","HamCol240/2|
000077a0  30 34 22 0d 04 1a 26 20  dc 20 22 48 61 6d 43 6f  |04"...& . "HamCo|
000077b0  6c 33 36 30 2f 32 30 34  22 2c 22 48 61 6d 43 6f  |l360/204","HamCo|
000077c0  6c 34 38 30 2f 32 30 34  22 0d 04 1b 06 20 e1 0d  |l480/204".... ..|
000077d0  04 1c 04 0d 04 1d 18 20  dd 20 f2 66 6f 6e 74 5f  |....... . .font_|
000077e0  6c 69 73 74 5f 73 65 6c  65 63 74 0d 04 1e 06 20  |list_select.... |
000077f0  f5 0d 04 1f 15 20 f2 70  72 69 6e 74 5f 66 6f 6e  |..... .print_fon|
00007800  74 5f 6c 69 73 74 0d 04  20 18 20 c8 97 20 c8 93  |t_list.. . .. ..|
00007810  20 32 36 2c 30 2c 31 32  30 34 2c 38 38 38 0d 04  | 26,0,1204,888..|
00007820  21 22 20 44 25 3d 34 30  30 3a 57 25 3d 33 38 30  |!" D%=400:W%=380|
00007830  3a f2 77 61 69 74 5f 6e  6f 5f 62 75 74 74 6f 6e  |:.wait_no_button|
00007840  0d 04 22 2d 20 f5 3a c8  97 20 58 2c 59 2c 42 3a  |.."- .:.. X,Y,B:|
00007850  4d 58 25 3d 28 58 2d 33  32 29 81 20 44 25 3a 4d  |MX%=(X-32). D%:M|
00007860  59 25 3d 28 39 35 36 2d  59 29 81 33 32 0d 04 23  |Y%=(956-Y).32..#|
00007870  1b 20 62 6f 78 25 3d 28  4d 58 25 2b 31 29 2b 28  |. box%=(MX%+1)+(|
00007880  4d 59 25 2d 32 29 2a 33  0d 04 24 1b 20 e7 20 62  |MY%-2)*3..$. . b|
00007890  6f 78 25 3c 3d 4e 25 20  84 20 62 6f 78 25 3d 37  |ox%<=N% . box%=7|
000078a0  38 20 8c 0d 04 25 32 20  e6 20 33 2c 36 33 20 c8  |8 ...%2 . 3,63 .|
000078b0  9c 31 39 32 3a c8 93 20  c8 90 20 4d 58 25 2a 44  |.192:.. .. MX%*D|
000078c0  25 2b 33 32 2c 39 32 32  2d 4d 59 25 2a 33 32 2c  |%+32,922-MY%*32,|
000078d0  57 25 2c 33 32 0d 04 26  2f 20 f5 3a c8 97 20 58  |W%,32..&/ .:.. X|
000078e0  2c 59 2c 42 3a 4d 58 32  25 3d 28 58 2d 33 32 29  |,Y,B:MX2%=(X-32)|
000078f0  81 20 44 25 3a 4d 59 32  25 3d 28 39 35 36 2d 59  |. D%:MY2%=(956-Y|
00007900  29 81 33 32 0d 04 27 22  20 fd 20 4d 58 32 25 3c  |).32..'" . MX2%<|
00007910  3e 4d 58 25 20 84 20 4d  59 32 25 3c 3e 4d 59 25  |>MX% . MY2%<>MY%|
00007920  20 84 20 42 3d 34 0d 04  28 25 20 c8 93 20 c8 90  | . B=4..(% .. ..|
00007930  20 4d 58 25 2a 44 25 2b  33 32 2c 39 32 32 2d 4d  | MX%*D%+32,922-M|
00007940  59 25 2a 33 32 2c 57 25  2c 33 32 0d 04 29 06 20  |Y%*32,W%,32..). |
00007950  cd 0d 04 2a 0a 20 fd 20  42 3d 34 0d 04 2b 29 20  |...*. . B=4..+) |
00007960  fd 20 62 6f 78 25 3c 37  38 3a c8 97 20 c8 93 20  |. box%<78:.. .. |
00007970  30 2c 30 2c 31 32 38 30  2c 31 30 32 34 3a c8 91  |0,0,1280,1024:..|
00007980  20 30 2c 30 0d 04 2c 06  20 e1 0d 04 2d 04 0d 04  | 0,0..,. ...-...|
00007990  2e 17 20 dd 20 f2 70 72  69 6e 74 5f 66 6f 6e 74  |.. . .print_font|
000079a0  5f 6c 69 73 74 0d 04 2f  0c 20 c8 91 20 30 2c 33  |_list../. .. 0,3|
000079b0  32 0d 04 30 31 20 fb 31  32 38 2b 33 32 20 c8 9c  |2..01 .128+32 ..|
000079c0  30 3a db 3a e6 32 35 35  2c 32 35 35 2c 32 35 35  |0:.:.255,255,255|
000079d0  3a c8 93 20 32 30 2c 35  32 2c 31 32 33 36 2c 38  |:.. 20,52,1236,8|
000079e0  39 32 0d 04 31 38 20 86  20 34 32 32 2c 35 32 2c  |92..18 . 422,52,|
000079f0  34 32 32 2c 38 39 36 3a  86 20 38 32 32 2c 35 32  |422,896:. 822,52|
00007a00  2c 38 32 32 2c 38 39 36  3a 86 20 32 30 2c 38 39  |,822,896:. 20,89|
00007a10  36 2c 31 32 35 36 2c 38  39 36 0d 04 32 35 20 fb  |6,1256,896..25 .|
00007a20  20 32 35 35 2c 32 35 35  2c 32 35 35 3a f1 20 8a  | 255,255,255:. .|
00007a30  33 2c 34 29 22 46 6f 6e  74 20 6c 69 73 74 3a 20  |3,4)"Font list: |
00007a40  4c 61 73 74 20 75 73 65  64 20 77 61 73 20 22 0d  |Last used was ".|
00007a50  04 33 28 20 fb 20 32 35  35 2c 32 35 35 2c 30 3a  |.3( . 255,255,0:|
00007a60  f1 20 8a 32 38 2c 34 29  c0 66 6f 6e 74 24 2c 33  |. .28,4).font$,3|
00007a70  31 29 3b 22 20 22 3b 0d  04 34 1a 20 fb 20 32 35  |1);" ";..4. . 25|
00007a80  35 2c 32 35 35 2c 32 35  35 3a f1 22 61 74 20 22  |5,255,255:."at "|
00007a90  3b 0d 04 35 21 20 fb 20  32 35 35 2c 32 35 35 2c  |;..5! . 255,255,|
00007aa0  30 3a f1 3b 78 70 25 3b  22 20 2f 20 22 3b 79 70  |0:.;xp%;" / ";yp|
00007ab0  25 3b 0d 04 36 1d 20 fb  20 32 35 35 2c 32 35 35  |%;..6. . 255,255|
00007ac0  2c 32 35 35 3a f1 22 20  70 6f 69 6e 74 73 22 0d  |,255:." points".|
00007ad0  04 37 2e 20 e6 20 31 32  38 2c 32 35 35 2c 32 35  |.7. . 128,255,25|
00007ae0  35 3a c8 93 20 c8 90 20  33 32 30 2c 31 32 2c 36  |5:.. .. 320,12,6|
00007af0  30 30 2c 33 32 3a e6 20  30 2c 30 2c 30 0d 04 38  |00,32:. 0,0,0..8|
00007b00  3f 20 ef 35 3a ec 20 33  34 32 2c 33 36 3a f1 22  |? .5:. 342,36:."|
00007b10  43 6c 69 63 6b 20 6f 6e  20 61 6e 20 65 6d 70 74  |Click on an empt|
00007b20  79 20 70 6f 73 69 74 69  6f 6e 20 74 6f 20 61 62  |y position to ab|
00007b30  6f 72 74 22 3a ef 34 3a  87 3a c8 96 0d 04 39 26  |ort":.4:.:....9&|
00007b40  20 fb 20 32 35 35 2c 32  35 35 2c 30 3a fb 31 32  | . 255,255,0:.12|
00007b50  38 2b 33 32 20 c8 9c 30  3a 58 25 3d 33 3a 59 25  |8+32 ..0:X%=3:Y%|
00007b60  3d 37 0d 04 3a 30 20 e3  20 4a 25 3d 30 b8 37 37  |=7..:0 . J%=0.77|
00007b70  3a 63 61 74 24 28 4a 25  29 3d 22 22 3a ed 3a 4e  |:cat$(J%)="":.:N|
00007b80  25 3d 30 3a 73 68 6f 77  6e 5f 64 69 72 24 3d 22  |%=0:shown_dir$="|
00007b90  2d 22 0d 04 3b 06 20 f5  0d 04 3c 32 20 c8 99 20  |-"..;. ...<2 .. |
00007ba0  22 46 6f 6e 74 5f 4c 69  73 74 46 6f 6e 74 73 22  |"Font_ListFonts"|
00007bb0  2c 30 2c 66 6f 6e 74 6c  69 73 74 25 2c 46 25 2c  |,0,fontlist%,F%,|
00007bc0  2d 31 20 b8 2c 2c 65 6e  64 25 0d 04 3d 0f 20 e7  |-1 .,,end%..=. .|
00007bd0  20 ac 20 65 6e 64 25 20  8c 0d 04 3e 2f 20 63 61  | . end% ...>/ ca|
00007be0  74 24 28 4e 25 29 3d 24  66 6f 6e 74 6c 69 73 74  |t$(N%)=$fontlist|
00007bf0  25 3a f1 20 8a 58 25 2c  59 25 29 c0 63 61 74 24  |%:. .X%,Y%).cat$|
00007c00  28 4e 25 29 2c 32 33 29  0d 04 3f 2c 20 46 25 2b  |(N%),23)..?, F%+|
00007c10  3d 31 3a 4e 25 2b 3d 31  3a 58 25 2b 3d 32 35 3a  |=1:N%+=1:X%+=25:|
00007c20  e7 20 58 25 3e 35 34 20  8c 20 58 25 3d 33 3a 59  |. X%>54 . X%=3:Y|
00007c30  25 2b 3d 32 0d 04 40 06  20 cd 0d 04 41 15 20 fd  |%+=2..@. ...A. .|
00007c40  20 4e 25 3d 37 37 20 84  20 65 6e 64 25 3d b9 0d  | N%=77 . end%=..|
00007c50  04 42 3c 20 e7 20 ac 20  65 6e 64 25 20 8c 20 fb  |.B< . . end% . .|
00007c60  20 32 35 35 2c 32 35 35  2c 32 35 35 3a f1 20 8a  | 255,255,255:. .|
00007c70  35 34 2c 35 37 29 22 5b  20 4e 45 58 54 20 46 4f  |54,57)"[ NEXT FO|
00007c80  4e 54 20 50 41 47 45 20  20 5d 22 0d 04 43 06 20  |NT PAGE  ]"..C. |
00007c90  e1 0d 04 44 04 0d 04 45  20 20 dd 20 f2 74 65 78  |...D...E  . .tex|
00007ca0  74 5f 73 70 72 69 74 65  5f 6f 76 65 72 6c 61 79  |t_sprite_overlay|
00007cb0  5f 6d 65 6e 75 0d 04 46  23 20 e6 33 2c 36 33 20  |_menu..F# .3,63 |
00007cc0  c8 9c 31 39 32 3a c8 93  20 c8 90 20 31 30 39 32  |..192:.. .. 1092|
00007cd0  2c 34 2c 35 32 2c 35 30  0d 04 47 06 20 f5 0d 04  |,4,52,50..G. ...|
00007ce0  48 26 20 6d 65 6e 75 24  28 30 29 3d 22 54 65 78  |H& menu$(0)="Tex|
00007cf0  74 20 26 20 73 70 72 69  74 65 20 6f 76 65 72 6c  |t & sprite overl|
00007d00  61 79 73 22 0d 04 49 21  20 6d 65 6e 75 24 28 32  |ays"..I! menu$(2|
00007d10  29 3d 22 51 77 69 6b 54  65 78 74 20 6f 70 74 69  |)="QwikText opti|
00007d20  6f 6e 73 3e 22 0d 04 4a  20 20 6d 65 6e 75 24 28  |ons>"..J  menu$(|
00007d30  33 29 3d 22 51 77 69 6b  54 65 78 74 20 64 69 73  |3)="QwikText dis|
00007d40  70 6c 61 79 22 0d 04 4b  22 20 6d 65 6e 75 24 28  |play"..K" menu$(|
00007d50  34 29 3d 22 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |4)="------------|
00007d60  2d 2d 2d 2d 2d 2d 22 0d  04 4c 23 20 6d 65 6e 75  |------"..L# menu|
00007d70  24 28 35 29 3d 22 53 65  6c 65 63 74 20 74 65 78  |$(5)="Select tex|
00007d80  74 20 63 6f 6c 6f 75 72  3e 22 0d 04 4d 24 20 6d  |t colour>"..M$ m|
00007d90  65 6e 75 24 28 36 29 3d  22 53 65 6c 65 63 74 20  |enu$(6)="Select |
00007da0  74 65 78 74 20 6f 75 74  6c 69 6e 65 3e 22 0d 04  |text outline>"..|
00007db0  4e 23 20 6d 65 6e 75 24  28 37 29 3d 22 53 65 6c  |N# menu$(7)="Sel|
00007dc0  65 63 74 20 74 65 78 74  20 73 68 61 64 6f 77 3e  |ect text shadow>|
00007dd0  22 0d 04 4f 23 20 6d 65  6e 75 24 28 38 29 3d 22  |"..O# menu$(8)="|
00007de0  43 72 65 61 74 65 20 74  65 78 74 20 6f 76 65 72  |Create text over|
00007df0  6c 61 79 22 0d 04 50 23  20 6d 65 6e 75 24 28 39  |lay"..P# menu$(9|
00007e00  29 3d 22 47 72 61 62 20  73 63 72 65 65 6e 20 65  |)="Grab screen e|
00007e10  6c 6c 69 70 73 65 22 0d  04 51 26 20 6d 65 6e 75  |llipse"..Q& menu|
00007e20  24 28 31 30 29 3d 22 47  72 61 62 20 73 63 72 65  |$(10)="Grab scre|
00007e30  65 6e 20 72 65 63 74 61  6e 67 6c 65 22 0d 04 52  |en rectangle"..R|
00007e40  23 20 6d 65 6e 75 24 28  31 31 29 3d 22 54 65 78  |# menu$(11)="Tex|
00007e50  74 20 6d 61 73 6b 20 6f  70 74 69 6f 6e 73 3e 22  |t mask options>"|
00007e60  0d 04 53 28 20 6d 65 6e  75 24 28 31 32 29 3d 22  |..S( menu$(12)="|
00007e70  53 70 72 69 74 65 20 6f  76 65 72 6c 61 79 20 6f  |Sprite overlay o|
00007e80  75 74 6c 69 6e 65 3e 22  0d 04 54 23 20 6d 65 6e  |utline>"..T# men|
00007e90  75 24 28 31 33 29 3d 22  2d 2d 2d 2d 2d 2d 2d 2d  |u$(13)="--------|
00007ea0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 22 0d 04 55 57 20  |----------"..UW |
00007eb0  e7 20 74 65 78 74 25 20  8c 20 6d 65 6e 75 24 28  |. text% . menu$(|
00007ec0  31 36 29 3d 22 44 69 73  70 6c 61 79 20 27 22 2b  |16)="Display '"+|
00007ed0  c0 74 65 78 74 31 24 2c  31 32 29 2b 22 27 22 20  |.text1$,12)+"'" |
00007ee0  8b 20 6d 65 6e 75 24 28  31 36 29 3d 22 7b 6e 6f  |. menu$(16)="{no|
00007ef0  20 74 65 78 74 20 6f 72  20 6f 76 65 72 6c 61 79  | text or overlay|
00007f00  7d 22 0d 04 56 38 20 e7  20 6f 76 65 72 6c 61 79  |}"..V8 . overlay|
00007f10  25 20 8c 20 6d 65 6e 75  24 28 31 36 29 3d 22 44  |% . menu$(16)="D|
00007f20  69 73 70 6c 61 79 20 27  22 2b 73 70 72 69 74 65  |isplay '"+sprite|
00007f30  5f 6e 61 6d 65 24 2b 22  27 22 0d 04 57 11 20 e7  |_name$+"'"..W. .|
00007f40  20 6f 76 65 72 6c 61 79  25 20 8c 0d 04 58 29 20  | overlay% ...X) |
00007f50  20 6d 65 6e 75 24 28 31  34 29 3d 22 54 69 6c 65  | menu$(14)="Tile|
00007f60  20 27 22 2b 73 70 72 69  74 65 5f 6e 61 6d 65 24  | '"+sprite_name$|
00007f70  2b 22 27 22 0d 04 59 2a  20 20 6d 65 6e 75 24 28  |+"'"..Y*  menu$(|
00007f80  31 35 29 3d 22 53 61 76  65 20 27 22 2b 73 70 72  |15)="Save '"+spr|
00007f90  69 74 65 5f 6e 61 6d 65  24 2b 22 27 3e 22 0d 04  |ite_name$+"'>"..|
00007fa0  5a 06 20 cc 0d 04 5b 24  20 20 6d 65 6e 75 24 28  |Z. ...[$  menu$(|
00007fb0  31 34 29 3d 22 7b 6e 6f  20 73 70 72 69 74 65 20  |14)="{no sprite |
00007fc0  6c 6f 61 64 65 64 7d 22  0d 04 5c 24 20 20 6d 65  |loaded}"..\$  me|
00007fd0  6e 75 24 28 31 35 29 3d  22 7b 6e 6f 20 73 70 72  |nu$(15)="{no spr|
00007fe0  69 74 65 20 6c 6f 61 64  65 64 7d 22 0d 04 5d 06  |ite loaded}"..].|
00007ff0  20 cd 0d 04 5e 22 20 6d  65 6e 75 24 28 31 37 29  | ...^" menu$(17)|
00008000  3d 22 2a 22 3a f2 6d 65  6e 75 28 34 39 34 2c 39  |="*":.menu(494,9|
00008010  30 2c 30 29 0d 04 5f 13  20 c8 8e 20 6d 65 6e 75  |0,0).._. .. menu|
00008020  5f 62 6f 78 25 20 ca 0d  04 60 17 20 c9 20 32 3a  |_box% ...`. . 2:|
00008030  f2 71 77 69 6b 74 65 78  74 5f 6d 65 6e 75 0d 04  |.qwiktext_menu..|
00008040  61 12 20 c9 20 33 3a f2  71 77 69 6b 74 65 78 74  |a. . 3:.qwiktext|
00008050  0d 04 62 1a 20 c9 20 35  3a f2 74 65 78 74 5f 63  |..b. . 5:.text_c|
00008060  6f 6c 6f 75 72 5f 6d 65  6e 75 0d 04 63 27 20 c9  |olour_menu..c' .|
00008070  20 36 3a f2 74 65 78 74  5f 6f 75 74 6c 69 6e 65  | 6:.text_outline|
00008080  5f 6d 65 6e 75 3a 6d 65  6e 75 5f 62 6f 78 25 3d  |_menu:menu_box%=|
00008090  36 0d 04 64 1a 20 c9 20  37 3a f2 74 65 78 74 5f  |6..d. . 7:.text_|
000080a0  73 68 61 64 6f 77 5f 6d  65 6e 75 0d 04 65 22 20  |shadow_menu..e" |
000080b0  c9 20 38 3a f2 66 6f 6e  74 5f 74 65 78 74 28 30  |. 8:.font_text(0|
000080c0  29 3a 6d 65 6e 75 5f 62  6f 78 25 3d 38 0d 04 66  |):menu_box%=8..f|
000080d0  29 20 c9 20 39 3a f2 67  72 61 62 5f 73 63 72 65  |) . 9:.grab_scre|
000080e0  65 6e 5f 65 6c 6c 69 70  73 65 3a 6d 65 6e 75 5f  |en_ellipse:menu_|
000080f0  62 6f 78 25 3d 31 0d 04  67 2c 20 c9 20 31 30 3a  |box%=1..g, . 10:|
00008100  f2 67 72 61 62 5f 73 63  72 65 65 6e 5f 72 65 63  |.grab_screen_rec|
00008110  74 61 6e 67 6c 65 3a 6d  65 6e 75 5f 62 6f 78 25  |tangle:menu_box%|
00008120  3d 31 0d 04 68 19 20 c9  20 31 31 3a f2 74 65 78  |=1..h. . 11:.tex|
00008130  74 5f 6d 61 73 6b 5f 6d  65 6e 75 0d 04 69 26 20  |t_mask_menu..i& |
00008140  c9 20 31 32 3a f2 6f 76  65 72 6c 61 79 5f 6f 75  |. 12:.overlay_ou|
00008150  74 6c 69 6e 65 3a 6d 65  6e 75 5f 62 6f 78 25 3d  |tline:menu_box%=|
00008160  38 0d 04 6a 2f 20 c9 20  31 34 3a e7 20 6f 76 65  |8..j/ . 14:. ove|
00008170  72 6c 61 79 25 20 8c 20  f2 74 69 6c 65 64 5f 73  |rlay% . .tiled_s|
00008180  70 72 69 74 65 5f 62 61  63 6b 67 72 6f 75 6e 64  |prite_background|
00008190  0d 04 6b 2e 20 c9 20 31  36 3a e7 20 28 74 65 78  |..k. . 16:. (tex|
000081a0  74 25 20 84 20 6f 76 65  72 6c 61 79 25 29 20 8c  |t% . overlay%) .|
000081b0  20 f2 64 69 73 70 6c 61  79 5f 74 65 78 74 0d 04  | .display_text..|
000081c0  6c 16 20 c9 20 31 35 3a  e7 20 6f 76 65 72 6c 61  |l. . 15:. overla|
000081d0  79 25 20 8c 0d 04 6d 32  20 20 20 20 20 20 20 20  |y% ...m2        |
000081e0  20 20 73 74 32 24 3d 73  61 76 65 5f 74 79 70 65  |  st2$=save_type|
000081f0  24 3a 73 61 76 65 5f 74  79 70 65 24 3d 22 6f 76  |$:save_type$="ov|
00008200  65 72 6c 61 79 22 0d 04  6e 2c 20 20 20 20 20 20  |erlay"..n,      |
00008210  20 20 20 20 f2 66 69 6c  65 72 5f 64 69 73 70 6c  |    .filer_displ|
00008220  61 79 3a 73 61 76 65 5f  74 79 70 65 24 3d 73 74  |ay:save_type$=st|
00008230  32 24 0d 04 6f 0e 20 20  20 20 20 20 20 20 20 cd  |2$..o.         .|
00008240  0d 04 70 06 20 cb 0d 04  71 40 20 fd 20 6d 65 6e  |..p. ...q@ . men|
00008250  75 5f 62 6f 78 25 3d 31  20 84 20 6d 65 6e 75 5f  |u_box%=1 . menu_|
00008260  62 6f 78 25 3d 33 20 84  20 28 6d 65 6e 75 5f 62  |box%=3 . (menu_b|
00008270  6f 78 25 3e 31 33 20 80  20 6d 65 6e 75 5f 62 6f  |ox%>13 . menu_bo|
00008280  78 25 3c 31 37 29 0d 04  72 1d 20 e7 20 6d 65 6e  |x%<17)..r. . men|
00008290  75 5f 62 6f 78 25 3c 3e  31 35 20 f2 64 69 73 6d  |u_box%<>15 .dism|
000082a0  69 6e 69 0d 04 73 06 20  e1 0d 04 74 04 0d 04 75  |ini..s. ...t...u|
000082b0  15 20 dd 20 f2 71 77 69  6b 74 65 78 74 5f 6d 65  |. . .qwiktext_me|
000082c0  6e 75 0d 04 76 06 20 f5  0d 04 77 20 20 6d 65 6e  |nu..v. ...w  men|
000082d0  75 24 28 30 29 3d 22 51  77 69 6b 54 65 78 74 20  |u$(0)="QwikText |
000082e0  6f 70 74 69 6f 6e 73 22  0d 04 78 1a 20 6d 65 6e  |options"..x. men|
000082f0  75 24 28 31 29 3d 22 57  68 69 74 65 20 74 65 78  |u$(1)="White tex|
00008300  74 22 0d 04 79 1b 20 6d  65 6e 75 24 28 32 29 3d  |t"..y. menu$(2)=|
00008310  22 59 65 6c 6c 6f 77 20  74 65 78 74 22 0d 04 7a  |"Yellow text"..z|
00008320  19 20 6d 65 6e 75 24 28  33 29 3d 22 43 79 61 6e  |. menu$(3)="Cyan|
00008330  20 74 65 78 74 22 0d 04  7b 1a 20 6d 65 6e 75 24  | text"..{. menu$|
00008340  28 34 29 3d 22 47 72 65  65 6e 20 74 65 78 74 22  |(4)="Green text"|
00008350  0d 04 7c 1c 20 6d 65 6e  75 24 28 35 29 3d 22 4d  |..|. menu$(5)="M|
00008360  61 67 65 6e 74 61 20 74  65 78 74 22 0d 04 7d 18  |agenta text"..}.|
00008370  20 6d 65 6e 75 24 28 36  29 3d 22 52 65 64 20 74  | menu$(6)="Red t|
00008380  65 78 74 22 0d 04 7e 19  20 6d 65 6e 75 24 28 37  |ext"..~. menu$(7|
00008390  29 3d 22 42 6c 75 65 20  74 65 78 74 22 0d 04 7f  |)="Blue text"...|
000083a0  1a 20 6d 65 6e 75 24 28  38 29 3d 22 42 6c 61 63  |. menu$(8)="Blac|
000083b0  6b 20 74 65 78 74 22 0d  04 80 1d 20 6d 65 6e 75  |k text".... menu|
000083c0  24 28 39 29 3d 22 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |$(9)="  --------|
000083d0  2d 2d 2d 22 0d 04 81 1c  20 6d 65 6e 75 24 28 31  |---".... menu$(1|
000083e0  30 29 3d 22 57 68 69 74  65 20 62 6c 6f 63 6b 22  |0)="White block"|
000083f0  0d 04 82 1d 20 6d 65 6e  75 24 28 31 31 29 3d 22  |.... menu$(11)="|
00008400  59 65 6c 6c 6f 77 20 62  6c 6f 63 6b 22 0d 04 83  |Yellow block"...|
00008410  1b 20 6d 65 6e 75 24 28  31 32 29 3d 22 43 79 61  |. menu$(12)="Cya|
00008420  6e 20 62 6c 6f 63 6b 22  0d 04 84 1c 20 6d 65 6e  |n block".... men|
00008430  75 24 28 31 33 29 3d 22  47 72 65 65 6e 20 62 6c  |u$(13)="Green bl|
00008440  6f 63 6b 22 0d 04 85 1e  20 6d 65 6e 75 24 28 31  |ock".... menu$(1|
00008450  34 29 3d 22 4d 61 67 65  6e 74 61 20 62 6c 6f 63  |4)="Magenta bloc|
00008460  6b 22 0d 04 86 1a 20 6d  65 6e 75 24 28 31 35 29  |k".... menu$(15)|
00008470  3d 22 52 65 64 20 62 6c  6f 63 6b 22 0d 04 87 1b  |="Red block"....|
00008480  20 6d 65 6e 75 24 28 31  36 29 3d 22 42 6c 75 65  | menu$(16)="Blue|
00008490  20 62 6c 6f 63 6b 22 0d  04 88 1c 20 6d 65 6e 75  | block".... menu|
000084a0  24 28 31 37 29 3d 22 42  6c 61 63 6b 20 62 6c 6f  |$(17)="Black blo|
000084b0  63 6b 22 0d 04 89 1c 20  6d 65 6e 75 24 28 31 38  |ck".... menu$(18|
000084c0  29 3d 22 54 72 61 6e 73  70 61 72 65 6e 74 22 0d  |)="Transparent".|
000084d0  04 8a 0f 20 e3 20 4e 25  3d 31 20 b8 20 38 0d 04  |... . N%=1 . 8..|
000084e0  8b 2b 20 e7 20 4e 25 3d  71 77 69 6b 74 65 78 74  |.+ . N%=qwiktext|
000084f0  5f 63 6f 6c 6f 75 72 25  20 6d 24 3d bd 31 32 38  |_colour% m$=.128|
00008500  20 8b 20 6d 24 3d 22 20  22 0d 04 8c 21 20 6d 65  | . m$=" "...! me|
00008510  6e 75 24 28 4e 25 29 3d  6d 24 2b 22 20 22 2b 6d  |nu$(N%)=m$+" "+m|
00008520  65 6e 75 24 28 4e 25 29  3a ed 0d 04 8d 11 20 e3  |enu$(N%):..... .|
00008530  20 4e 25 3d 31 30 20 b8  20 31 38 0d 04 8e 2a 20  | N%=10 . 18...* |
00008540  e7 20 4e 25 3d 71 77 69  6b 74 65 78 74 5f 62 6c  |. N%=qwiktext_bl|
00008550  6f 63 6b 25 20 6d 24 3d  bd 31 32 38 20 8b 20 6d  |ock% m$=.128 . m|
00008560  24 3d 22 20 22 0d 04 8f  21 20 6d 65 6e 75 24 28  |$=" "...! menu$(|
00008570  4e 25 29 3d 6d 24 2b 22  20 22 2b 6d 65 6e 75 24  |N%)=m$+" "+menu$|
00008580  28 4e 25 29 3a ed 0d 04  90 21 20 6d 65 6e 75 24  |(N%):....! menu$|
00008590  28 31 39 29 3d 22 2a 22  3a f2 6d 65 6e 75 28 30  |(19)="*":.menu(0|
000085a0  2c 39 30 2c 2d 31 29 0d  04 91 13 20 c8 8e 20 6d  |,90,-1).... .. m|
000085b0  65 6e 75 5f 62 6f 78 25  20 ca 0d 04 92 31 20 c9  |enu_box% ....1 .|
000085c0  20 31 2c 32 2c 33 2c 34  2c 35 2c 36 2c 37 2c 38  | 1,2,3,4,5,6,7,8|
000085d0  3a 71 77 69 6b 74 65 78  74 5f 63 6f 6c 6f 75 72  |:qwiktext_colour|
000085e0  25 3d 6d 65 6e 75 5f 62  6f 78 25 0d 04 93 3b 20  |%=menu_box%...; |
000085f0  c9 20 31 30 2c 31 31 2c  31 32 2c 31 33 2c 31 34  |. 10,11,12,13,14|
00008600  2c 31 35 2c 31 36 2c 31  37 2c 31 38 3a 71 77 69  |,15,16,17,18:qwi|
00008610  6b 74 65 78 74 5f 62 6c  6f 63 6b 25 3d 6d 65 6e  |ktext_block%=men|
00008620  75 5f 62 6f 78 25 0d 04  94 06 20 cb 0d 04 95 13  |u_box%.... .....|
00008630  20 fd 20 6d 65 6e 75 5f  62 6f 78 25 3d 39 39 0d  | . menu_box%=99.|
00008640  04 96 06 20 e1 0d 04 97  04 0d 04 98 17 20 dd 20  |... ......... . |
00008650  f2 6f 76 65 72 6c 61 79  5f 6f 75 74 6c 69 6e 65  |.overlay_outline|
00008660  0d 04 99 27 20 6d 65 6e  75 24 28 30 29 3d 22 4f  |...' menu$(0)="O|
00008670  76 65 72 6c 61 79 20 6f  75 74 6c 69 6e 65 20 20  |verlay outline  |
00008680  20 20 20 20 20 22 20 0d  04 9a 1d 20 6d 65 6e 75  |     " .... menu|
00008690  24 28 31 29 3d 22 57 68  69 74 65 20 6f 75 74 6c  |$(1)="White outl|
000086a0  69 6e 65 22 0d 04 9b 1e  20 6d 65 6e 75 24 28 32  |ine".... menu$(2|
000086b0  29 3d 22 59 65 6c 6c 6f  77 20 6f 75 74 6c 69 6e  |)="Yellow outlin|
000086c0  65 22 0d 04 9c 1c 20 6d  65 6e 75 24 28 33 29 3d  |e".... menu$(3)=|
000086d0  22 43 79 61 6e 20 6f 75  74 6c 69 6e 65 22 0d 04  |"Cyan outline"..|
000086e0  9d 1d 20 6d 65 6e 75 24  28 34 29 3d 22 47 72 65  |.. menu$(4)="Gre|
000086f0  65 6e 20 6f 75 74 6c 69  6e 65 22 0d 04 9e 1f 20  |en outline".... |
00008700  6d 65 6e 75 24 28 35 29  3d 22 4d 61 67 65 6e 74  |menu$(5)="Magent|
00008710  61 20 6f 75 74 6c 69 6e  65 22 0d 04 9f 1b 20 6d  |a outline".... m|
00008720  65 6e 75 24 28 36 29 3d  22 52 65 64 20 6f 75 74  |enu$(6)="Red out|
00008730  6c 69 6e 65 22 0d 04 a0  1c 20 6d 65 6e 75 24 28  |line".... menu$(|
00008740  37 29 3d 22 42 6c 75 65  20 6f 75 74 6c 69 6e 65  |7)="Blue outline|
00008750  22 0d 04 a1 1d 20 6d 65  6e 75 24 28 38 29 3d 22  |".... menu$(8)="|
00008760  42 6c 61 63 6b 20 6f 75  74 6c 69 6e 65 22 0d 04  |Black outline"..|
00008770  a2 1f 20 6d 65 6e 75 24  28 39 29 3d 22 43 6f 6c  |.. menu$(9)="Col|
00008780  6f 75 72 20 73 65 6c 65  63 74 6f 72 22 0d 04 a3  |our selector"...|
00008790  25 20 6d 65 6e 75 24 28  31 30 29 3d 22 53 6f 66  |% menu$(10)="Sof|
000087a0  74 20 6d 75 6c 74 69 70  6c 65 20 73 68 61 64 6f  |t multiple shado|
000087b0  77 22 0d 04 a4 26 20 6d  65 6e 75 24 28 31 31 29  |w"...& menu$(11)|
000087c0  3d 22 53 69 6e 67 6c 65  20 73 68 61 64 6f 77 20  |="Single shadow |
000087d0  2d 20 63 6c 6f 73 65 22  0d 04 a5 25 20 6d 65 6e  |- close"...% men|
000087e0  75 24 28 31 32 29 3d 22  53 69 6e 67 6c 65 20 73  |u$(12)="Single s|
000087f0  68 61 64 6f 77 20 2d 20  77 69 64 65 22 0d 04 a6  |hadow - wide"...|
00008800  25 20 6d 65 6e 75 24 28  31 33 29 3d 22 4e 6f 20  |% menu$(13)="No |
00008810  6f 75 74 6c 69 6e 65 20  6f 72 20 73 68 61 64 6f  |outline or shado|
00008820  77 22 0d 04 a7 21 20 6d  65 6e 75 24 28 31 34 29  |w"...! menu$(14)|
00008830  3d 22 2a 22 3a f2 6d 65  6e 75 28 30 2c 39 30 2c  |="*":.menu(0,90,|
00008840  2d 31 29 0d 04 a8 17 20  6f 76 65 72 6c 61 79 5f  |-1).... overlay_|
00008850  6f 75 74 6c 69 6e 65 25  3d b9 0d 04 a9 13 20 c8  |outline%=..... .|
00008860  8e 20 6d 65 6e 75 5f 62  6f 78 25 20 ca 0d 04 aa  |. menu_box% ....|
00008870  13 20 c9 20 31 3a 4f 4f  43 25 3d 26 37 46 46 46  |. . 1:OOC%=&7FFF|
00008880  0d 04 ab 13 20 c9 20 32  3a 4f 4f 43 25 3d 26 30  |.... . 2:OOC%=&0|
00008890  33 46 46 0d 04 ac 13 20  c9 20 33 3a 4f 4f 43 25  |3FF.... . 3:OOC%|
000088a0  3d 26 37 46 45 30 0d 04  ad 13 20 c9 20 34 3a 4f  |=&7FE0.... . 4:O|
000088b0  4f 43 25 3d 26 30 33 45  30 0d 04 ae 13 20 c9 20  |OC%=&03E0.... . |
000088c0  35 3a 4f 4f 43 25 3d 26  37 43 31 46 0d 04 af 13  |5:OOC%=&7C1F....|
000088d0  20 c9 20 36 3a 4f 4f 43  25 3d 26 30 30 31 46 0d  | . 6:OOC%=&001F.|
000088e0  04 b0 13 20 c9 20 37 3a  4f 4f 43 25 3d 26 37 43  |... . 7:OOC%=&7C|
000088f0  30 30 0d 04 b1 13 20 c9  20 38 3a 4f 4f 43 25 3d  |00.... . 8:OOC%=|
00008900  26 30 30 30 30 0d 04 b2  22 20 c9 20 39 3a f2 72  |&0000..." . 9:.r|
00008910  67 62 5f 73 6c 69 64 65  72 73 28 30 29 3a 4f 4f  |gb_sliders(0):OO|
00008920  43 25 3d 52 47 42 25 0d  04 b3 10 20 c9 20 31 30  |C%=RGB%.... . 10|
00008930  3a 4f 4f 43 25 3d 31 0d  04 b4 10 20 c9 20 31 31  |:OOC%=1.... . 11|
00008940  3a 4f 4f 43 25 3d 32 0d  04 b5 10 20 c9 20 31 32  |:OOC%=2.... . 12|
00008950  3a 4f 4f 43 25 3d 33 0d  04 b6 1c 20 c9 20 31 33  |:OOC%=3.... . 13|
00008960  3a 6f 76 65 72 6c 61 79  5f 6f 75 74 6c 69 6e 65  |:overlay_outline|
00008970  25 3d 30 0d 04 b7 06 20  cb 0d 04 b8 06 20 e1 0d  |%=0.... ..... ..|
00008980  04 b9 04 0d 04 ba 18 20  dd 20 f2 74 65 78 74 5f  |....... . .text_|
00008990  73 68 61 64 6f 77 5f 6d  65 6e 75 0d 04 bb 26 20  |shadow_menu...& |
000089a0  6d 65 6e 75 24 28 30 29  3d 22 54 65 78 74 20 73  |menu$(0)="Text s|
000089b0  68 61 64 6f 77 20 20 20  20 20 20 20 20 20 20 20  |hadow           |
000089c0  22 0d 04 bc 21 20 6d 65  6e 75 24 28 31 29 3d 22  |"...! menu$(1)="|
000089d0  53 6f 6c 69 64 20 64 72  6f 70 20 73 68 61 64 6f  |Solid drop shado|
000089e0  77 22 0d 04 bd 1f 20 6d  65 6e 75 24 28 32 29 3d  |w".... menu$(2)=|
000089f0  22 47 72 61 64 61 74 65  64 20 73 68 61 64 6f 77  |"Gradated shadow|
00008a00  22 0d 04 be 24 20 6d 65  6e 75 24 28 33 29 3d 22  |"...$ menu$(3)="|
00008a10  53 6f 66 74 20 6d 75 6c  74 69 70 6c 65 20 73 68  |Soft multiple sh|
00008a20  61 64 6f 77 22 0d 04 bf  25 20 6d 65 6e 75 24 28  |adow"...% menu$(|
00008a30  34 29 3d 22 53 69 6e 67  6c 65 20 73 68 61 64 6f  |4)="Single shado|
00008a40  77 20 2d 20 63 6c 6f 73  65 22 0d 04 c0 24 20 6d  |w - close"...$ m|
00008a50  65 6e 75 24 28 35 29 3d  22 53 69 6e 67 6c 65 20  |enu$(5)="Single |
00008a60  73 68 61 64 6f 77 20 2d  20 77 69 64 65 22 0d 04  |shadow - wide"..|
00008a70  c1 21 20 6d 65 6e 75 24  28 36 29 3d 22 47 72 65  |.! menu$(6)="Gre|
00008a80  79 20 62 6c 6f 63 6b 20  73 68 61 64 6f 77 22 0d  |y block shadow".|
00008a90  04 c2 23 20 6d 65 6e 75  24 28 37 29 3d 22 59 65  |..# menu$(7)="Ye|
00008aa0  6c 6c 6f 77 20 62 6c 6f  63 6b 20 73 68 61 64 6f  |llow block shado|
00008ab0  77 22 0d 04 c3 21 20 6d  65 6e 75 24 28 38 29 3d  |w"...! menu$(8)=|
00008ac0  22 43 79 61 6e 20 62 6c  6f 63 6b 20 73 68 61 64  |"Cyan block shad|
00008ad0  6f 77 22 0d 04 c4 22 20  6d 65 6e 75 24 28 39 29  |ow"..." menu$(9)|
00008ae0  3d 22 47 72 65 65 6e 20  62 6c 6f 63 6b 20 73 68  |="Green block sh|
00008af0  61 64 6f 77 22 0d 04 c5  25 20 6d 65 6e 75 24 28  |adow"...% menu$(|
00008b00  31 30 29 3d 22 4d 61 67  65 6e 74 61 20 62 6c 6f  |10)="Magenta blo|
00008b10  63 6b 20 73 68 61 64 6f  77 22 0d 04 c6 21 20 6d  |ck shadow"...! m|
00008b20  65 6e 75 24 28 31 31 29  3d 22 52 65 64 20 62 6c  |enu$(11)="Red bl|
00008b30  6f 63 6b 20 73 68 61 64  6f 77 22 0d 04 c7 22 20  |ock shadow"..." |
00008b40  6d 65 6e 75 24 28 31 32  29 3d 22 42 6c 75 65 20  |menu$(12)="Blue |
00008b50  62 6c 6f 63 6b 20 73 68  61 64 6f 77 22 0d 04 c8  |block shadow"...|
00008b60  24 20 6d 65 6e 75 24 28  31 33 29 3d 22 53 6f 6c  |$ menu$(13)="Sol|
00008b70  69 64 20 6c 65 74 74 65  72 20 65 66 66 65 63 74  |id letter effect|
00008b80  22 0d 04 c9 1a 20 6d 65  6e 75 24 28 31 34 29 3d  |".... menu$(14)=|
00008b90  22 4e 6f 20 73 68 61 64  6f 77 22 0d 04 ca 21 20  |"No shadow"...! |
00008ba0  6d 65 6e 75 24 28 31 35  29 3d 22 2a 22 3a f2 6d  |menu$(15)="*":.m|
00008bb0  65 6e 75 28 30 2c 39 30  2c 2d 31 29 0d 04 cb 13  |enu(0,90,-1)....|
00008bc0  20 c8 8e 20 6d 65 6e 75  5f 62 6f 78 25 20 ca 0d  | .. menu_box% ..|
00008bd0  04 cc 23 20 c9 20 31 2c  32 3a f2 72 67 62 5f 73  |..# . 1,2:.rgb_s|
00008be0  6c 69 64 65 72 73 28 30  29 3a 53 43 25 3d 52 47  |liders(0):SC%=RG|
00008bf0  42 25 0d 04 cd 37 20 c9  20 33 3a 72 65 61 6c 5f  |B%...7 . 3:real_|
00008c00  73 68 61 64 6f 77 31 25  3d 31 3a 73 68 61 64 6f  |shadow1%=1:shado|
00008c10  77 25 3d 30 3a 74 65 78  74 5f 62 6c 6f 63 6b 5f  |w%=0:text_block_|
00008c20  73 68 61 64 6f 77 25 3d  30 0d 04 ce 37 20 c9 20  |shadow%=0...7 . |
00008c30  34 3a 72 65 61 6c 5f 73  68 61 64 6f 77 31 25 3d  |4:real_shadow1%=|
00008c40  32 3a 73 68 61 64 6f 77  25 3d 30 3a 74 65 78 74  |2:shadow%=0:text|
00008c50  5f 62 6c 6f 63 6b 5f 73  68 61 64 6f 77 25 3d 30  |_block_shadow%=0|
00008c60  0d 04 cf 37 20 c9 20 35  3a 72 65 61 6c 5f 73 68  |...7 . 5:real_sh|
00008c70  61 64 6f 77 31 25 3d 33  3a 73 68 61 64 6f 77 25  |adow1%=3:shadow%|
00008c80  3d 30 3a 74 65 78 74 5f  62 6c 6f 63 6b 5f 73 68  |=0:text_block_sh|
00008c90  61 64 6f 77 25 3d 30 0d  04 d0 45 20 c9 20 36 3a  |adow%=0...E . 6:|
00008ca0  21 73 68 61 64 6f 77 5f  66 6c 61 67 3d 30 3a 21  |!shadow_flag=0:!|
00008cb0  63 6c 65 61 72 5f 6d 61  73 6b 3d 25 30 31 30 30  |clear_mask=%0100|
00008cc0  30 30 31 30 30 30 30 31  30 30 30 30 30 31 30 30  |0010000100000100|
00008cd0  30 30 31 30 30 30 30 31  30 30 30 30 0d 04 d1 45  |001000010000...E|
00008ce0  20 c9 20 37 3a 21 73 68  61 64 6f 77 5f 66 6c 61  | . 7:!shadow_fla|
00008cf0  67 3d 31 3a 21 63 6c 65  61 72 5f 6d 61 73 6b 3d  |g=1:!clear_mask=|
00008d00  25 30 31 31 31 31 31 30  30 30 30 30 30 30 30 30  |%011111000000000|
00008d10  30 30 31 31 31 31 31 30  30 30 30 30 30 30 30 30  |0011111000000000|
00008d20  30 0d 04 d2 45 20 c9 20  38 3a 21 73 68 61 64 6f  |0...E . 8:!shado|
00008d30  77 5f 66 6c 61 67 3d 31  3a 21 63 6c 65 61 72 5f  |w_flag=1:!clear_|
00008d40  6d 61 73 6b 3d 25 30 30  30 30 30 30 30 30 30 30  |mask=%0000000000|
00008d50  30 31 31 31 31 31 30 30  30 30 30 30 30 30 30 30  |0111110000000000|
00008d60  30 31 31 31 31 31 0d 04  d3 45 20 c9 20 39 3a 21  |011111...E . 9:!|
00008d70  73 68 61 64 6f 77 5f 66  6c 61 67 3d 31 3a 21 63  |shadow_flag=1:!c|
00008d80  6c 65 61 72 5f 6d 61 73  6b 3d 25 30 31 31 31 31  |lear_mask=%01111|
00008d90  31 30 30 30 30 30 31 31  31 31 31 30 31 31 31 31  |1000001111101111|
00008da0  31 30 30 30 30 30 31 31  31 31 31 0d 04 d4 46 20  |10000011111...F |
00008db0  c9 20 31 30 3a 21 73 68  61 64 6f 77 5f 66 6c 61  |. 10:!shadow_fla|
00008dc0  67 3d 31 3a 21 63 6c 65  61 72 5f 6d 61 73 6b 3d  |g=1:!clear_mask=|
00008dd0  25 30 30 30 30 30 30 31  31 31 31 31 30 30 30 30  |%000000111110000|
00008de0  30 30 30 30 30 30 30 31  31 31 31 31 30 30 30 30  |0000000111110000|
00008df0  30 0d 04 d5 46 20 c9 20  31 31 3a 21 73 68 61 64  |0...F . 11:!shad|
00008e00  6f 77 5f 66 6c 61 67 3d  31 3a 21 63 6c 65 61 72  |ow_flag=1:!clear|
00008e10  5f 6d 61 73 6b 3d 25 30  31 31 31 31 31 31 31 31  |_mask=%011111111|
00008e20  31 31 30 30 30 30 30 30  31 31 31 31 31 31 31 31  |1100000011111111|
00008e30  31 31 30 30 30 30 30 0d  04 d6 46 20 c9 20 31 32  |1100000...F . 12|
00008e40  3a 21 73 68 61 64 6f 77  5f 66 6c 61 67 3d 31 3a  |:!shadow_flag=1:|
00008e50  21 63 6c 65 61 72 5f 6d  61 73 6b 3d 25 30 30 30  |!clear_mask=%000|
00008e60  30 30 30 31 31 31 31 31  31 31 31 31 31 30 30 30  |0001111111111000|
00008e70  30 30 30 31 31 31 31 31  31 31 31 31 31 0d 04 d7  |0001111111111...|
00008e80  3e 20 c9 20 31 33 3a 53  43 25 3d 30 3a 74 65 78  |> . 13:SC%=0:tex|
00008e90  74 5f 62 6c 6f 63 6b 5f  73 68 61 64 6f 77 25 3d  |t_block_shadow%=|
00008ea0  30 3a 73 68 61 64 6f 77  25 3d 30 3a 72 65 61 6c  |0:shadow%=0:real|
00008eb0  5f 73 68 61 64 6f 77 31  25 3d 30 0d 04 d8 3e 20  |_shadow1%=0...> |
00008ec0  c9 20 31 34 3a 53 43 25  3d 30 3a 74 65 78 74 5f  |. 14:SC%=0:text_|
00008ed0  62 6c 6f 63 6b 5f 73 68  61 64 6f 77 25 3d 30 3a  |block_shadow%=0:|
00008ee0  73 68 61 64 6f 77 25 3d  30 3a 72 65 61 6c 5f 73  |shadow%=0:real_s|
00008ef0  68 61 64 6f 77 31 25 3d  30 0d 04 d9 06 20 cb 0d  |hadow1%=0.... ..|
00008f00  04 da 43 20 e7 20 6d 65  6e 75 5f 62 6f 78 25 3c  |..C . menu_box%<|
00008f10  33 20 8c 20 73 68 61 64  6f 77 25 3d b9 3a 74 65  |3 . shadow%=.:te|
00008f20  78 74 5f 62 6c 6f 63 6b  5f 73 68 61 64 6f 77 25  |xt_block_shadow%|
00008f30  3d 30 3a 72 65 61 6c 5f  73 68 61 64 6f 77 31 25  |=0:real_shadow1%|
00008f40  3d 30 0d 04 db 63 20 e7  20 6d 65 6e 75 5f 62 6f  |=0...c . menu_bo|
00008f50  78 25 3e 35 20 80 20 6d  65 6e 75 5f 62 6f 78 25  |x%>5 . menu_box%|
00008f60  3c 31 33 20 8c 20 74 65  78 74 5f 62 6c 6f 63 6b  |<13 . text_block|
00008f70  5f 73 68 61 64 6f 77 25  3d b9 3a 6f 75 74 6c 69  |_shadow%=.:outli|
00008f80  6e 65 5f 77 69 64 74 68  25 3d 30 3a 73 68 61 64  |ne_width%=0:shad|
00008f90  6f 77 25 3d 30 3a 72 65  61 6c 5f 73 68 61 64 6f  |ow%=0:real_shado|
00008fa0  77 31 25 3d 30 0d 04 dc  26 20 e7 20 6d 65 6e 75  |w1%=0...& . menu|
00008fb0  5f 62 6f 78 25 3d 32 20  8c 20 67 72 61 64 25 3d  |_box%=2 . grad%=|
00008fc0  b9 20 8b 20 67 72 61 64  25 3d 30 0d 04 dd 29 20  |. . grad%=0...) |
00008fd0  e7 20 6d 65 6e 75 5f 62  6f 78 25 3d 31 33 20 8c  |. menu_box%=13 .|
00008fe0  20 73 6f 6c 69 64 25 3d  b9 20 8b 20 73 6f 6c 69  | solid%=. . soli|
00008ff0  64 25 3d 30 0d 04 de 11  20 6d 65 6e 75 5f 62 6f  |d%=0.... menu_bo|
00009000  78 25 3d 39 39 0d 04 df  06 20 e1 0d 04 e0 04 0d  |x%=99.... ......|
00009010  04 e1 18 20 dd 20 f2 74  65 78 74 5f 63 6f 6c 6f  |... . .text_colo|
00009020  75 72 5f 6d 65 6e 75 0d  04 e2 26 20 6d 65 6e 75  |ur_menu...& menu|
00009030  24 28 30 29 3d 22 54 65  78 74 20 63 6f 6c 6f 75  |$(0)="Text colou|
00009040  72 20 20 20 20 20 20 20  20 20 20 20 22 0d 04 e3  |r           "...|
00009050  20 20 6d 65 6e 75 24 28  31 29 3d 22 50 6c 61 69  |  menu$(1)="Plai|
00009060  6e 20 57 48 49 54 45 20  74 65 78 74 22 0d 04 e4  |n WHITE text"...|
00009070  21 20 6d 65 6e 75 24 28  32 29 3d 22 50 6c 61 69  |! menu$(2)="Plai|
00009080  6e 20 59 45 4c 4c 4f 57  20 74 65 78 74 22 0d 04  |n YELLOW text"..|
00009090  e5 1f 20 6d 65 6e 75 24  28 33 29 3d 22 50 6c 61  |.. menu$(3)="Pla|
000090a0  69 6e 20 43 59 41 4e 20  74 65 78 74 22 0d 04 e6  |in CYAN text"...|
000090b0  20 20 6d 65 6e 75 24 28  34 29 3d 22 50 6c 61 69  |  menu$(4)="Plai|
000090c0  6e 20 47 52 45 45 4e 20  74 65 78 74 22 0d 04 e7  |n GREEN text"...|
000090d0  22 20 6d 65 6e 75 24 28  35 29 3d 22 50 6c 61 69  |" menu$(5)="Plai|
000090e0  6e 20 4d 41 47 45 4e 54  41 20 74 65 78 74 22 0d  |n MAGENTA text".|
000090f0  04 e8 1e 20 6d 65 6e 75  24 28 36 29 3d 22 50 6c  |... menu$(6)="Pl|
00009100  61 69 6e 20 52 45 44 20  74 65 78 74 22 0d 04 e9  |ain RED text"...|
00009110  1f 20 6d 65 6e 75 24 28  37 29 3d 22 50 6c 61 69  |. menu$(7)="Plai|
00009120  6e 20 42 4c 55 45 20 74  65 78 74 22 0d 04 ea 20  |n BLUE text"... |
00009130  20 6d 65 6e 75 24 28 38  29 3d 22 50 6c 61 69 6e  | menu$(8)="Plain|
00009140  20 42 4c 41 43 4b 20 74  65 78 74 22 0d 04 eb 22  | BLACK text"..."|
00009150  20 6d 65 6e 75 24 28 39  29 3d 22 47 72 61 64 20  | menu$(9)="Grad |
00009160  59 45 4c 4c 4f 57 20 74  6f 20 52 45 44 22 0d 04  |YELLOW to RED"..|
00009170  ec 25 20 6d 65 6e 75 24  28 31 30 29 3d 22 47 72  |.% menu$(10)="Gr|
00009180  61 64 20 59 45 4c 4c 4f  57 20 74 6f 20 47 52 45  |ad YELLOW to GRE|
00009190  45 4e 22 0d 04 ed 23 20  6d 65 6e 75 24 28 31 31  |EN"...# menu$(11|
000091a0  29 3d 22 47 72 61 64 20  43 59 41 4e 20 74 6f 20  |)="Grad CYAN to |
000091b0  47 52 45 45 4e 22 0d 04  ee 22 20 6d 65 6e 75 24  |GREEN"..." menu$|
000091c0  28 31 32 29 3d 22 47 72  61 64 20 43 59 41 4e 20  |(12)="Grad CYAN |
000091d0  74 6f 20 42 4c 55 45 22  0d 04 ef 24 20 6d 65 6e  |to BLUE"...$ men|
000091e0  75 24 28 31 33 29 3d 22  47 72 61 64 20 4d 41 47  |u$(13)="Grad MAG|
000091f0  45 4e 54 41 20 74 6f 20  52 45 44 22 0d 04 f0 25  |ENTA to RED"...%|
00009200  20 6d 65 6e 75 24 28 31  34 29 3d 22 47 72 61 64  | menu$(14)="Grad|
00009210  20 4d 41 47 45 4e 54 41  20 74 6f 20 42 4c 55 45  | MAGENTA to BLUE|
00009220  22 0d 04 f1 26 20 6d 65  6e 75 24 28 31 35 29 3d  |"...& menu$(15)=|
00009230  22 47 72 61 64 20 57 48  49 54 45 20 74 6f 20 4d  |"Grad WHITE to M|
00009240  41 47 45 4e 54 41 22 0d  04 f2 22 20 6d 65 6e 75  |AGENTA"..." menu|
00009250  24 28 31 36 29 3d 22 47  72 61 64 20 57 48 49 54  |$(16)="Grad WHIT|
00009260  45 20 74 6f 20 52 45 44  22 0d 04 f3 23 20 6d 65  |E to RED"...# me|
00009270  6e 75 24 28 31 37 29 3d  22 47 72 61 64 20 57 48  |nu$(17)="Grad WH|
00009280  49 54 45 20 74 6f 20 42  4c 55 45 22 0d 04 f4 22  |ITE to BLUE"..."|
00009290  20 6d 65 6e 75 24 28 31  38 29 3d 22 47 72 61 64  | menu$(18)="Grad|
000092a0  20 52 45 44 20 74 6f 20  57 48 49 54 45 22 0d 04  | RED to WHITE"..|
000092b0  f5 24 20 6d 65 6e 75 24  28 31 39 29 3d 22 47 72  |.$ menu$(19)="Gr|
000092c0  61 64 20 47 52 45 45 4e  20 74 6f 20 57 48 49 54  |ad GREEN to WHIT|
000092d0  45 22 0d 04 f6 23 20 6d  65 6e 75 24 28 32 30 29  |E"...# menu$(20)|
000092e0  3d 22 47 72 61 64 20 42  4c 55 45 20 74 6f 20 57  |="Grad BLUE to W|
000092f0  48 49 54 45 22 0d 04 f7  20 20 6d 65 6e 75 24 28  |HITE"...  menu$(|
00009300  32 31 29 3d 22 43 6f 6c  6f 75 72 20 73 65 6c 65  |21)="Colour sele|
00009310  63 74 6f 72 22 0d 04 f8  21 20 6d 65 6e 75 24 28  |ctor"...! menu$(|
00009320  32 32 29 3d 22 2a 22 3a  f2 6d 65 6e 75 28 30 2c  |22)="*":.menu(0,|
00009330  39 30 2c 2d 31 29 0d 04  f9 13 20 c8 8e 20 6d 65  |90,-1).... .. me|
00009340  6e 75 5f 62 6f 78 25 20  ca 0d 04 fa 1e 20 c9 20  |nu_box% ..... . |
00009350  31 3a 54 43 25 3d 26 37  46 46 46 3a 54 44 25 3d  |1:TC%=&7FFF:TD%=|
00009360  30 3a 54 4c 25 3d 30 0d  04 fb 1e 20 c9 20 32 3a  |0:TL%=0.... . 2:|
00009370  54 43 25 3d 26 30 33 46  46 3a 54 44 25 3d 30 3a  |TC%=&03FF:TD%=0:|
00009380  54 4c 25 3d 30 0d 04 fc  1e 20 c9 20 33 3a 54 43  |TL%=0.... . 3:TC|
00009390  25 3d 26 37 46 45 30 3a  54 44 25 3d 30 3a 54 4c  |%=&7FE0:TD%=0:TL|
000093a0  25 3d 30 0d 04 fd 1e 20  c9 20 34 3a 54 43 25 3d  |%=0.... . 4:TC%=|
000093b0  26 30 33 45 30 3a 54 44  25 3d 30 3a 54 4c 25 3d  |&03E0:TD%=0:TL%=|
000093c0  30 0d 04 fe 1e 20 c9 20  35 3a 54 43 25 3d 26 37  |0.... . 5:TC%=&7|
000093d0  43 31 46 3a 54 44 25 3d  30 3a 54 4c 25 3d 30 0d  |C1F:TD%=0:TL%=0.|
000093e0  04 ff 1e 20 c9 20 36 3a  54 43 25 3d 26 30 30 31  |... . 6:TC%=&001|
000093f0  46 3a 54 44 25 3d 30 3a  54 4c 25 3d 30 0d 05 00  |F:TD%=0:TL%=0...|
00009400  1e 20 c9 20 37 3a 54 43  25 3d 26 37 43 30 30 3a  |. . 7:TC%=&7C00:|
00009410  54 44 25 3d 30 3a 54 4c  25 3d 30 0d 05 01 1e 20  |TD%=0:TL%=0.... |
00009420  c9 20 38 3a 54 43 25 3d  26 30 30 30 30 3a 54 44  |. 8:TC%=&0000:TD|
00009430  25 3d 30 3a 54 4c 25 3d  30 0d 05 02 20 20 c9 20  |%=0:TL%=0...  . |
00009440  39 3a 54 43 25 3d 26 30  33 46 46 3a 54 44 25 3d  |9:TC%=&03FF:TD%=|
00009450  33 32 3a 54 4c 25 3d 33  31 0d 05 03 21 20 c9 20  |32:TL%=31...! . |
00009460  31 30 3a 54 43 25 3d 26  30 33 46 46 3a 54 44 25  |10:TC%=&03FF:TD%|
00009470  3d 31 3a 54 4c 25 3d 39  39 32 0d 05 04 24 20 c9  |=1:TL%=992...$ .|
00009480  20 31 31 3a 54 43 25 3d  26 37 46 45 30 3a 54 44  | 11:TC%=&7FE0:TD|
00009490  25 3d 31 30 32 34 3a 54  4c 25 3d 39 39 32 0d 05  |%=1024:TL%=992..|
000094a0  05 24 20 c9 20 31 32 3a  54 43 25 3d 26 37 46 45  |.$ . 12:TC%=&7FE|
000094b0  30 3a 54 44 25 3d 33 32  3a 54 4c 25 3d 33 31 37  |0:TD%=32:TL%=317|
000094c0  34 34 0d 05 06 23 20 c9  20 31 33 3a 54 43 25 3d  |44...# . 13:TC%=|
000094d0  26 37 43 31 46 3a 54 44  25 3d 31 30 32 34 3a 54  |&7C1F:TD%=1024:T|
000094e0  4c 25 3d 33 31 0d 05 07  23 20 c9 20 31 34 3a 54  |L%=31...# . 14:T|
000094f0  43 25 3d 26 37 43 31 46  3a 54 44 25 3d 31 3a 54  |C%=&7C1F:TD%=1:T|
00009500  4c 25 3d 33 31 37 34 34  0d 05 08 24 20 c9 20 31  |L%=31744...$ . 1|
00009510  35 3a 54 43 25 3d 26 37  46 46 46 3a 54 44 25 3d  |5:TC%=&7FFF:TD%=|
00009520  33 32 3a 54 4c 25 3d 33  31 37 37 35 0d 05 09 23  |32:TL%=31775...#|
00009530  20 c9 20 31 36 3a 54 43  25 3d 26 37 46 46 46 3a  | . 16:TC%=&7FFF:|
00009540  54 44 25 3d 31 30 35 36  3a 54 4c 25 3d 33 31 0d  |TD%=1056:TL%=31.|
00009550  05 0a 24 20 c9 20 31 37  3a 54 43 25 3d 26 37 46  |..$ . 17:TC%=&7F|
00009560  46 46 3a 54 44 25 3d 33  33 3a 54 4c 25 3d 33 31  |FF:TD%=33:TL%=31|
00009570  37 34 34 0d 05 0b 41 20  c9 20 31 38 3a 54 43 25  |744...A . 18:TC%|
00009580  3d 33 31 3a 54 44 25 3d  31 30 35 36 3a 54 4c 25  |=31:TD%=1056:TL%|
00009590  3d 26 37 46 46 46 3a f4  20 46 69 72 73 74 20 69  |=&7FFF:. First i|
000095a0  6e 63 72 65 6d 65 6e 74  65 64 20 67 72 61 64 61  |ncremented grada|
000095b0  74 69 6f 6e 0d 05 0c 26  20 c9 20 31 39 3a 54 43  |tion...& . 19:TC|
000095c0  25 3d 26 30 33 45 30 3a  54 44 25 3d 26 34 30 31  |%=&03E0:TD%=&401|
000095d0  3a 54 4c 25 3d 26 37 46  46 46 0d 05 0d 24 20 c9  |:TL%=&7FFF...$ .|
000095e0  20 32 30 3a 54 43 25 3d  26 37 43 30 30 3a 54 44  | 20:TC%=&7C00:TD|
000095f0  25 3d 33 33 3a 54 4c 25  3d 26 37 46 46 46 0d 05  |%=33:TL%=&7FFF..|
00009600  0e 2e 20 c9 20 32 31 3a  f2 72 67 62 5f 73 6c 69  |.. . 21:.rgb_sli|
00009610  64 65 72 73 28 30 29 3a  54 43 25 3d 52 47 42 25  |ders(0):TC%=RGB%|
00009620  3a 54 44 25 3d 30 3a 54  4c 25 3d 30 0d 05 0f 06  |:TD%=0:TL%=0....|
00009630  20 cb 0d 05 10 33 20 e7  20 6d 65 6e 75 5f 62 6f  | ....3 . menu_bo|
00009640  78 25 3c 31 38 20 84 20  6d 65 6e 75 5f 62 6f 78  |x%<18 . menu_box|
00009650  25 3d 32 31 20 84 20 6d  65 6e 75 5f 62 6f 78 25  |%=21 . menu_box%|
00009660  3d 39 39 20 8c 0d 05 11  11 20 20 63 6f 6c 5f 69  |=99 .....  col_i|
00009670  64 65 63 25 3d 30 0d 05  12 06 20 cc 0d 05 13 11  |dec%=0.... .....|
00009680  20 20 63 6f 6c 5f 69 64  65 63 25 3d 31 0d 05 14  |  col_idec%=1...|
00009690  06 20 cd 0d 05 15 11 20  6d 65 6e 75 5f 62 6f 78  |. ..... menu_box|
000096a0  25 3d 39 39 0d 05 16 06  20 e1 0d 05 17 04 0d 05  |%=99.... .......|
000096b0  18 19 20 dd 20 f2 74 65  78 74 5f 6f 75 74 6c 69  |.. . .text_outli|
000096c0  6e 65 5f 6d 65 6e 75 0d  05 19 06 20 f5 0d 05 1a  |ne_menu.... ....|
000096d0  22 20 6d 65 6e 75 24 28  30 29 3d 22 20 20 54 65  |" menu$(0)="  Te|
000096e0  78 74 20 6f 75 74 6c 69  6e 65 20 20 20 20 22 0d  |xt outline    ".|
000096f0  05 1b 43 20 e7 20 74 65  78 74 5f 6f 75 74 5f 63  |..C . text_out_c|
00009700  6f 6c 25 3d 26 37 46 46  46 20 80 20 6f 75 74 6c  |ol%=&7FFF . outl|
00009710  69 6e 65 5f 77 69 64 74  68 25 3e 30 20 6d 24 3d  |ine_width%>0 m$=|
00009720  bd 31 32 38 2b 22 20 22  20 8b 20 6d 24 3d 22 20  |.128+" " . m$=" |
00009730  20 22 0d 05 1c 20 20 6d  65 6e 75 24 28 31 29 3d  | "...  menu$(1)=|
00009740  6d 24 2b 22 57 68 69 74  65 20 6f 75 74 6c 69 6e  |m$+"White outlin|
00009750  65 22 0d 05 1d 43 20 e7  20 74 65 78 74 5f 6f 75  |e"...C . text_ou|
00009760  74 5f 63 6f 6c 25 3d 26  30 33 46 46 20 80 20 6f  |t_col%=&03FF . o|
00009770  75 74 6c 69 6e 65 5f 77  69 64 74 68 25 3e 30 20  |utline_width%>0 |
00009780  6d 24 3d bd 31 32 38 2b  22 20 22 20 8b 20 6d 24  |m$=.128+" " . m$|
00009790  3d 22 20 20 22 0d 05 1e  21 20 6d 65 6e 75 24 28  |="  "...! menu$(|
000097a0  32 29 3d 6d 24 2b 22 59  65 6c 6c 6f 77 20 6f 75  |2)=m$+"Yellow ou|
000097b0  74 6c 69 6e 65 22 0d 05  1f 43 20 e7 20 74 65 78  |tline"...C . tex|
000097c0  74 5f 6f 75 74 5f 63 6f  6c 25 3d 26 37 46 45 30  |t_out_col%=&7FE0|
000097d0  20 80 20 6f 75 74 6c 69  6e 65 5f 77 69 64 74 68  | . outline_width|
000097e0  25 3e 30 20 6d 24 3d bd  31 32 38 2b 22 20 22 20  |%>0 m$=.128+" " |
000097f0  8b 20 6d 24 3d 22 20 20  22 0d 05 20 1f 20 6d 65  |. m$="  ".. . me|
00009800  6e 75 24 28 33 29 3d 6d  24 2b 22 43 79 61 6e 20  |nu$(3)=m$+"Cyan |
00009810  6f 75 74 6c 69 6e 65 22  0d 05 21 43 20 e7 20 74  |outline"..!C . t|
00009820  65 78 74 5f 6f 75 74 5f  63 6f 6c 25 3d 26 30 33  |ext_out_col%=&03|
00009830  45 30 20 80 20 6f 75 74  6c 69 6e 65 5f 77 69 64  |E0 . outline_wid|
00009840  74 68 25 3e 30 20 6d 24  3d bd 31 32 38 2b 22 20  |th%>0 m$=.128+" |
00009850  22 20 8b 20 6d 24 3d 22  20 20 22 0d 05 22 20 20  |" . m$="  ".."  |
00009860  6d 65 6e 75 24 28 34 29  3d 6d 24 2b 22 47 72 65  |menu$(4)=m$+"Gre|
00009870  65 6e 20 6f 75 74 6c 69  6e 65 22 0d 05 23 43 20  |en outline"..#C |
00009880  e7 20 74 65 78 74 5f 6f  75 74 5f 63 6f 6c 25 3d  |. text_out_col%=|
00009890  26 37 43 31 46 20 80 20  6f 75 74 6c 69 6e 65 5f  |&7C1F . outline_|
000098a0  77 69 64 74 68 25 3e 30  20 6d 24 3d bd 31 32 38  |width%>0 m$=.128|
000098b0  2b 22 20 22 20 8b 20 6d  24 3d 22 20 20 22 0d 05  |+" " . m$="  "..|
000098c0  24 22 20 6d 65 6e 75 24  28 35 29 3d 6d 24 2b 22  |$" menu$(5)=m$+"|
000098d0  4d 61 67 65 6e 74 61 20  6f 75 74 6c 69 6e 65 22  |Magenta outline"|
000098e0  0d 05 25 43 20 e7 20 74  65 78 74 5f 6f 75 74 5f  |..%C . text_out_|
000098f0  63 6f 6c 25 3d 26 30 30  31 46 20 80 20 6f 75 74  |col%=&001F . out|
00009900  6c 69 6e 65 5f 77 69 64  74 68 25 3e 30 20 6d 24  |line_width%>0 m$|
00009910  3d bd 31 32 38 2b 22 20  22 20 8b 20 6d 24 3d 22  |=.128+" " . m$="|
00009920  20 20 22 0d 05 26 1e 20  6d 65 6e 75 24 28 36 29  |  "..&. menu$(6)|
00009930  3d 6d 24 2b 22 52 65 64  20 6f 75 74 6c 69 6e 65  |=m$+"Red outline|
00009940  22 0d 05 27 43 20 e7 20  74 65 78 74 5f 6f 75 74  |"..'C . text_out|
00009950  5f 63 6f 6c 25 3d 26 37  43 30 30 20 80 20 6f 75  |_col%=&7C00 . ou|
00009960  74 6c 69 6e 65 5f 77 69  64 74 68 25 3e 30 20 6d  |tline_width%>0 m|
00009970  24 3d bd 31 32 38 2b 22  20 22 20 8b 20 6d 24 3d  |$=.128+" " . m$=|
00009980  22 20 20 22 0d 05 28 1f  20 6d 65 6e 75 24 28 37  |"  "..(. menu$(7|
00009990  29 3d 6d 24 2b 22 42 6c  75 65 20 6f 75 74 6c 69  |)=m$+"Blue outli|
000099a0  6e 65 22 0d 05 29 43 20  e7 20 74 65 78 74 5f 6f  |ne"..)C . text_o|
000099b0  75 74 5f 63 6f 6c 25 3d  26 30 30 30 30 20 80 20  |ut_col%=&0000 . |
000099c0  6f 75 74 6c 69 6e 65 5f  77 69 64 74 68 25 3e 30  |outline_width%>0|
000099d0  20 6d 24 3d bd 31 32 38  2b 22 20 22 20 8b 20 6d  | m$=.128+" " . m|
000099e0  24 3d 22 20 20 22 0d 05  2a 20 20 6d 65 6e 75 24  |$="  "..*  menu$|
000099f0  28 38 29 3d 6d 24 2b 22  42 6c 61 63 6b 20 6f 75  |(8)=m$+"Black ou|
00009a00  74 6c 69 6e 65 22 0d 05  2b 21 20 6d 65 6e 75 24  |tline"..+! menu$|
00009a10  28 39 29 3d 22 20 20 43  6f 6c 6f 75 72 20 73 65  |(9)="  Colour se|
00009a20  6c 65 63 74 6f 72 22 0d  05 2c 23 20 6d 65 6e 75  |lector"..,# menu|
00009a30  24 28 31 30 29 3d 22 20  20 2d 2d 2d 2d 2d 2d 2d  |$(10)="  -------|
00009a40  2d 2d 2d 2d 2d 2d 2d 2d  2d 22 0d 05 2d 2d 20 e7  |---------"..-- .|
00009a50  20 6f 75 74 6c 69 6e 65  5f 77 69 64 74 68 25 3d  | outline_width%=|
00009a60  31 20 6d 24 3d bd 31 32  38 2b 22 20 22 20 8b 20  |1 m$=.128+" " . |
00009a70  6d 24 3d 22 20 20 22 0d  05 2e 22 20 6d 65 6e 75  |m$="  "..." menu|
00009a80  24 28 31 31 29 3d 6d 24  2b 22 4e 61 72 72 6f 77  |$(11)=m$+"Narrow|
00009a90  20 6f 75 74 6c 69 6e 65  22 0d 05 2f 2d 20 e7 20  | outline"../- . |
00009aa0  6f 75 74 6c 69 6e 65 5f  77 69 64 74 68 25 3d 32  |outline_width%=2|
00009ab0  20 6d 24 3d bd 31 32 38  2b 22 20 22 20 8b 20 6d  | m$=.128+" " . m|
00009ac0  24 3d 22 20 20 22 0d 05  30 20 20 6d 65 6e 75 24  |$="  "..0  menu$|
00009ad0  28 31 32 29 3d 6d 24 2b  22 57 69 64 65 20 6f 75  |(12)=m$+"Wide ou|
00009ae0  74 6c 69 6e 65 22 0d 05  31 2d 20 e7 20 6f 75 74  |tline"..1- . out|
00009af0  6c 69 6e 65 5f 77 69 64  74 68 25 3d 33 20 6d 24  |line_width%=3 m$|
00009b00  3d bd 31 32 38 2b 22 20  22 20 8b 20 6d 24 3d 22  |=.128+" " . m$="|
00009b10  20 20 22 0d 05 32 22 20  6d 65 6e 75 24 28 31 33  |  "..2" menu$(13|
00009b20  29 3d 6d 24 2b 22 52 65  6c 69 65 66 20 6f 75 74  |)=m$+"Relief out|
00009b30  6c 69 6e 65 22 0d 05 33  2d 20 e7 20 6f 75 74 6c  |line"..3- . outl|
00009b40  69 6e 65 5f 77 69 64 74  68 25 3d 30 20 6d 24 3d  |ine_width%=0 m$=|
00009b50  bd 31 32 38 2b 22 20 22  20 8b 20 6d 24 3d 22 20  |.128+" " . m$=" |
00009b60  20 22 0d 05 34 1e 20 6d  65 6e 75 24 28 31 34 29  | "..4. menu$(14)|
00009b70  3d 6d 24 2b 22 4e 6f 20  6f 75 74 6c 69 6e 65 22  |=m$+"No outline"|
00009b80  0d 05 35 21 20 6d 65 6e  75 24 28 31 35 29 3d 22  |..5! menu$(15)="|
00009b90  2a 22 3a f2 6d 65 6e 75  28 30 2c 39 30 2c 2d 31  |*":.menu(0,90,-1|
00009ba0  29 0d 05 36 13 20 c8 8e  20 6d 65 6e 75 5f 62 6f  |)..6. .. menu_bo|
00009bb0  78 25 20 ca 0d 05 37 1c  20 c9 20 31 3a 74 65 78  |x% ...7. . 1:tex|
00009bc0  74 5f 6f 75 74 5f 63 6f  6c 25 3d 26 37 46 46 46  |t_out_col%=&7FFF|
00009bd0  0d 05 38 1c 20 c9 20 32  3a 74 65 78 74 5f 6f 75  |..8. . 2:text_ou|
00009be0  74 5f 63 6f 6c 25 3d 26  30 33 46 46 0d 05 39 1c  |t_col%=&03FF..9.|
00009bf0  20 c9 20 33 3a 74 65 78  74 5f 6f 75 74 5f 63 6f  | . 3:text_out_co|
00009c00  6c 25 3d 26 37 46 45 30  0d 05 3a 1c 20 c9 20 34  |l%=&7FE0..:. . 4|
00009c10  3a 74 65 78 74 5f 6f 75  74 5f 63 6f 6c 25 3d 26  |:text_out_col%=&|
00009c20  30 33 45 30 0d 05 3b 1c  20 c9 20 35 3a 74 65 78  |03E0..;. . 5:tex|
00009c30  74 5f 6f 75 74 5f 63 6f  6c 25 3d 26 37 43 31 46  |t_out_col%=&7C1F|
00009c40  0d 05 3c 1c 20 c9 20 36  3a 74 65 78 74 5f 6f 75  |..<. . 6:text_ou|
00009c50  74 5f 63 6f 6c 25 3d 26  30 30 31 46 0d 05 3d 1c  |t_col%=&001F..=.|
00009c60  20 c9 20 37 3a 74 65 78  74 5f 6f 75 74 5f 63 6f  | . 7:text_out_co|
00009c70  6c 25 3d 26 37 43 30 30  0d 05 3e 1c 20 c9 20 38  |l%=&7C00..>. . 8|
00009c80  3a 74 65 78 74 5f 6f 75  74 5f 63 6f 6c 25 3d 26  |:text_out_col%=&|
00009c90  30 30 30 30 0d 05 3f 2b  20 c9 20 39 3a f2 72 67  |0000..?+ . 9:.rg|
00009ca0  62 5f 73 6c 69 64 65 72  73 28 30 29 3a 74 65 78  |b_sliders(0):tex|
00009cb0  74 5f 6f 75 74 5f 63 6f  6c 25 3d 52 47 42 25 0d  |t_out_col%=RGB%.|
00009cc0  05 40 1a 20 c9 20 31 31  3a 6f 75 74 6c 69 6e 65  |.@. . 11:outline|
00009cd0  5f 77 69 64 74 68 25 3d  31 0d 05 41 1a 20 c9 20  |_width%=1..A. . |
00009ce0  31 32 3a 6f 75 74 6c 69  6e 65 5f 77 69 64 74 68  |12:outline_width|
00009cf0  25 3d 32 0d 05 42 1a 20  c9 20 31 33 3a 6f 75 74  |%=2..B. . 13:out|
00009d00  6c 69 6e 65 5f 77 69 64  74 68 25 3d 33 0d 05 43  |line_width%=3..C|
00009d10  1a 20 c9 20 31 34 3a 6f  75 74 6c 69 6e 65 5f 77  |. . 14:outline_w|
00009d20  69 64 74 68 25 3d 30 0d  05 44 06 20 cb 0d 05 45  |idth%=0..D. ...E|
00009d30  21 20 fd 20 6d 65 6e 75  5f 62 6f 78 25 3d 39 20  |! . menu_box%=9 |
00009d40  84 20 6d 65 6e 75 5f 62  6f 78 25 3d 39 39 0d 05  |. menu_box%=99..|
00009d50  46 06 20 e1 0d 05 47 04  0d 05 48 1d 20 dd 20 f2  |F. ...G...H. . .|
00009d60  66 6f 6e 74 5f 74 65 78  74 28 6d 61 73 6b 5f 66  |font_text(mask_f|
00009d70  6c 61 67 25 29 0d 05 49  09 20 46 25 3d 30 0d 05  |lag%)..I. F%=0..|
00009d80  4a 2b 20 f5 3a f2 66 6f  6e 74 5f 6c 69 73 74 5f  |J+ .:.font_list_|
00009d90  73 65 6c 65 63 74 3a fd  20 62 6f 78 25 3c 37 38  |select:. box%<78|
00009da0  20 84 20 65 6e 64 25 3d  b9 0d 05 4b 17 20 66 6f  | . end%=...K. fo|
00009db0  6e 74 24 3d 63 61 74 24  28 62 6f 78 25 2d 31 29  |nt$=cat$(box%-1)|
00009dc0  0d 05 4c 12 20 e7 20 66  6f 6e 74 24 3c 3e 22 22  |..L. . font$<>""|
00009dd0  20 8c 0d 05 4d 2f 20 db  3a e6 32 35 35 2c 32 35  | ...M/ .:.255,25|
00009de0  35 2c 32 35 35 3a 86 20  30 2c 34 30 30 2c 31 32  |5,255:. 0,400,12|
00009df0  38 30 2c 34 30 30 3a 6f  76 65 72 6c 61 79 25 3d  |80,400:overlay%=|
00009e00  30 0d 05 4e 38 20 ee 3a  fb 32 35 35 2c 32 35 35  |0..N8 .:.255,255|
00009e10  2c 30 3a f1 20 8a 31 2c  34 30 29 22 46 6f 6e 74  |,0:. .1,40)"Font|
00009e20  20 63 68 6f 73 65 6e 20  69 73 20 20 20 20 20 20  | chosen is      |
00009e30  20 3a 20 22 66 6f 6e 74  24 0d 05 4f 37 20 fb 32  | : "font$..O7 .2|
00009e40  35 35 2c 32 35 35 2c 32  35 35 3a e8 20 86 27 27  |55,255,255:. .''|
00009e50  22 20 45 6e 74 65 72 20  63 61 70 74 69 6f 6e 20  |" Enter caption |
00009e60  6c 69 6e 65 20 31 20 3a  20 22 74 65 78 74 31 24  |line 1 : "text1$|
00009e70  0d 05 50 2f 20 e7 20 74  65 78 74 31 24 3d 22 22  |..P/ . text1$=""|
00009e80  20 8c 20 74 65 78 74 31  24 3d 63 61 6c 6c 24 3a  | . text1$=call$:|
00009e90  f1 20 8a 32 34 2c 34 33  29 74 65 78 74 31 24 0d  |. .24,43)text1$.|
00009ea0  05 51 29 20 e8 20 86 27  22 20 45 6e 74 65 72 20  |.Q) . .'" Enter |
00009eb0  63 61 70 74 69 6f 6e 20  6c 69 6e 65 20 32 20 3a  |caption line 2 :|
00009ec0  20 22 74 65 78 74 32 24  0d 05 52 25 20 e8 27 27  | "text2$..R% .''|
00009ed0  22 20 45 6e 74 65 72 20  58 20 70 6f 69 6e 74 20  |" Enter X point |
00009ee0  73 69 7a 65 20 20 20 3a  20 22 78 70 25 0d 05 53  |size   : "xp%..S|
00009ef0  33 20 e7 20 78 70 25 3c  31 30 20 84 20 78 70 25  |3 . xp%<10 . xp%|
00009f00  3e 32 30 30 20 8c 20 78  70 25 3d 36 34 3a f1 20  |>200 . xp%=64:. |
00009f10  8a 32 34 2c 34 38 29 3b  78 70 25 3b 22 20 20 22  |.24,48);xp%;"  "|
00009f20  0d 05 54 25 20 e8 27 27  22 20 45 6e 74 65 72 20  |..T% .''" Enter |
00009f30  59 20 70 6f 69 6e 74 20  73 69 7a 65 20 20 20 3a  |Y point size   :|
00009f40  20 22 79 70 25 0d 05 55  34 20 e7 20 79 70 25 3c  | "yp%..U4 . yp%<|
00009f50  31 30 20 84 20 79 70 25  3e 34 30 30 20 8c 20 79  |10 . yp%>400 . y|
00009f60  70 25 3d 78 70 25 3a f1  20 8a 32 34 2c 35 31 29  |p%=xp%:. .24,51)|
00009f70  3b 79 70 25 3b 22 20 20  22 0d 05 56 15 20 e7 20  |;yp%;"  "..V. . |
00009f80  ac 20 6d 61 73 6b 5f 66  6c 61 67 25 20 8c 0d 05  |. mask_flag% ...|
00009f90  57 25 20 e8 27 27 22 20  48 6f 72 69 7a 20 6f 72  |W% .''" Horiz or|
00009fa0  20 56 65 72 74 20 28 48  2f 56 29 20 20 3a 20 22  | Vert (H/V)  : "|
00009fb0  68 76 24 0d 05 58 21 20  db 3a 87 3a c8 96 3a 74  |hv$..X! .:.:..:t|
00009fc0  72 61 6e 73 66 6f 72 6d  25 3d b9 3a 68 76 32 24  |ransform%=.:hv2$|
00009fd0  3d 68 76 24 0d 05 59 1a  20 e7 20 68 76 24 3d 22  |=hv$..Y. . hv$="|
00009fe0  56 22 20 84 20 68 76 24  3d 22 76 22 20 8c 0d 05  |V" . hv$="v" ...|
00009ff0  5a 33 20 f2 76 65 72 74  69 63 61 6c 5f 77 72 69  |Z3 .vertical_wri|
0000a000  74 65 28 66 6f 6e 74 24  2c 74 65 78 74 31 24 2c  |te(font$,text1$,|
0000a010  31 36 2c 38 34 30 2c 78  70 25 2c 79 70 25 2c 31  |16,840,xp%,yp%,1|
0000a020  29 0d 05 5b 19 20 68 76  24 3d 22 56 22 3a 74 72  |)..[. hv$="V":tr|
0000a030  61 6e 73 66 6f 72 6d 25  3d 30 0d 05 5c 06 20 cc  |ansform%=0..\. .|
0000a040  0d 05 5d 0f 20 f2 70 6c  6f 74 5f 74 65 78 74 0d  |..]. .plot_text.|
0000a050  05 5e 06 20 cd 0d 05 5f  09 20 87 3a c8 96 0d 05  |.^. ..._. .:....|
0000a060  60 2e 20 f2 67 72 61 62  5f 74 65 78 74 3a e7 20  |`. .grab_text:. |
0000a070  74 72 61 6e 73 66 6f 72  6d 25 20 8c 20 f2 74 72  |transform% . .tr|
0000a080  61 6e 73 66 6f 72 6d 5f  74 65 78 74 0d 05 61 0d  |ansform_text..a.|
0000a090  20 f2 64 69 73 6d 69 6e  69 0d 05 62 06 20 cd 0d  | .dismini..b. ..|
0000a0a0  05 63 0b 20 cd 3a 87 3a  c8 96 0d 05 64 33 20 e7  |.c. .:.:....d3 .|
0000a0b0  20 66 6f 6e 74 24 3d 22  22 20 80 20 ac 20 6d 61  | font$="" . . ma|
0000a0c0  73 6b 5f 66 6c 61 67 25  20 8c 20 f2 64 69 73 6d  |sk_flag% . .dism|
0000a0d0  69 6e 69 20 8b 20 74 65  78 74 25 3d b9 0d 05 65  |ini . text%=...e|
0000a0e0  06 20 e1 0d 05 66 04 0d  05 67 11 20 dd 20 f2 70  |. ...f...g. . .p|
0000a0f0  6c 6f 74 5f 74 65 78 74  0d 05 68 12 20 e7 20 74  |lot_text..h. . t|
0000a100  65 78 74 32 24 3d 22 22  20 8c 0d 05 69 2a 20 f2  |ext2$="" ...i* .|
0000a110  77 72 69 74 65 28 66 6f  6e 74 24 2c 74 65 78 74  |write(font$,text|
0000a120  31 24 2c 31 36 2c 35 35  36 2c 78 70 25 2c 79 70  |1$,16,556,xp%,yp|
0000a130  25 2c 31 29 0d 05 6a 06  20 cc 0d 05 6b 29 20 e7  |%,1)..j. ...k) .|
0000a140  20 66 6f 6e 74 25 3c 3e  2d 31 20 c8 99 20 22 46  | font%<>-1 .. "F|
0000a150  6f 6e 74 5f 4c 6f 73 65  46 6f 6e 74 22 2c 66 6f  |ont_LoseFont",fo|
0000a160  6e 74 25 0d 05 6c 34 20  c8 99 20 22 46 6f 6e 74  |nt%..l4 .. "Font|
0000a170  5f 46 69 6e 64 46 6f 6e  74 22 2c 2c 66 6f 6e 74  |_FindFont",,font|
0000a180  24 2c 78 70 25 2a 31 36  2c 79 70 25 2a 31 36 20  |$,xp%*16,yp%*16 |
0000a190  b8 20 66 6f 6e 74 25 0d  05 6d 31 20 c8 99 20 22  |. font%..m1 .. "|
0000a1a0  46 6f 6e 74 5f 43 68 61  72 42 42 6f 78 22 2c 66  |Font_CharBBox",f|
0000a1b0  6f 6e 74 25 2c 97 22 41  22 2c 31 36 20 b8 2c 2c  |ont%,."A",16 .,,|
0000a1c0  2c 72 33 25 2c 72 34 25  0d 05 6e 2a 20 f2 77 72  |,r3%,r4%..n* .wr|
0000a1d0  69 74 65 28 66 6f 6e 74  24 2c 74 65 78 74 31 24  |ite(font$,text1$|
0000a1e0  2c 31 36 2c 36 35 30 2c  78 70 25 2c 79 70 25 2c  |,16,650,xp%,yp%,|
0000a1f0  31 29 0d 05 6f 31 20 f2  77 72 69 74 65 28 66 6f  |1)..o1 .write(fo|
0000a200  6e 74 24 2c 74 65 78 74  32 24 2c 31 36 2c 36 35  |nt$,text2$,16,65|
0000a210  30 2d 72 34 25 2d 33 32  2c 78 70 25 2c 79 70 25  |0-r4%-32,xp%,yp%|
0000a220  2c 31 29 0d 05 70 19 20  59 6d 61 78 25 3d 72 34  |,1)..p. Ymax%=r4|
0000a230  25 2b 32 34 3a 68 76 24  3d 22 56 22 0d 05 71 06  |%+24:hv$="V"..q.|
0000a240  20 cd 0d 05 72 06 20 e1  0d 05 73 04 0d 05 74 16  | ...r. ...s...t.|
0000a250  20 dd 20 f2 74 72 61 6e  73 66 6f 72 6d 5f 74 65  | . .transform_te|
0000a260  78 74 0d 05 75 49 20 6d  75 6c 3d 36 35 35 33 36  |xt..uI mul=65536|
0000a270  3a 61 3d 31 3a 62 3d 30  3a 63 3d 30 3a 64 3d 31  |:a=1:b=0:c=0:d=1|
0000a280  3a 65 3d 30 3a 66 3d 30  3a 74 72 79 25 3d 30 3a  |:e=0:f=0:try%=0:|
0000a290  78 70 5f 73 74 61 72 74  25 3d 78 70 25 3a 79 70  |xp_start%=xp%:yp|
0000a2a0  5f 73 74 61 72 74 25 3d  79 70 25 0d 05 76 29 20  |_start%=yp%..v) |
0000a2b0  c8 91 20 30 2c 30 3a e6  20 30 2c 30 2c 31 33 36  |.. 0,0:. 0,0,136|
0000a2c0  3a c8 93 20 c8 90 20 30  2c 30 2c 31 32 38 30 2c  |:.. .. 0,0,1280,|
0000a2d0  31 30 32 34 0d 05 77 06  20 f5 0d 05 78 30 20 e7  |1024..w. ...x0 .|
0000a2e0  20 74 72 79 25 20 c8 91  20 30 2c 30 3a e6 20 30  | try% .. 0,0:. 0|
0000a2f0  2c 30 2c 31 33 36 3a c8  93 20 c8 90 20 30 2c 30  |,0,136:.. .. 0,0|
0000a300  2c 31 32 38 30 2c 31 30  32 34 0d 05 79 1a 20 f2  |,1280,1024..y. .|
0000a310  70 6c 6f 74 5f 74 65 78  74 3a f2 67 72 61 62 5f  |plot_text:.grab_|
0000a320  74 65 78 74 0d 05 7a 23  20 59 31 25 3d 31 30 34  |text..z# Y1%=104|
0000a330  30 2d 28 28 53 25 2d 73  63 72 65 65 6e 25 29 2f  |0-((S%-screen%)/|
0000a340  31 32 38 30 29 2a 32 0d  05 7b 23 20 59 32 25 3d  |1280)*2..{# Y2%=|
0000a350  31 30 30 30 2d 28 28 45  25 2d 73 63 72 65 65 6e  |1000-((E%-screen|
0000a360  25 29 2f 31 32 38 30 29  2a 32 0d 05 7c 31 20 21  |%)/1280)*2..|1 !|
0000a370  73 70 72 25 3d 74 78 74  73 69 7a 65 25 3a 73 70  |spr%=txtsize%:sp|
0000a380  72 25 21 34 3d 30 3a 73  70 72 25 21 38 3d 31 36  |r%!4=0:spr%!8=16|
0000a390  3a 73 70 72 25 21 31 32  3d 31 36 0d 05 7d 31 20  |:spr%!12=16..}1 |
0000a3a0  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 31  |.. sprswi%,256+1|
0000a3b0  36 2c 73 70 72 25 2c 22  74 22 2c 30 2c 30 2c 59  |6,spr%,"t",0,0,Y|
0000a3c0  32 25 2c 57 25 2b 31 32  2c 59 31 25 0d 05 7e 2b  |2%,W%+12,Y1%..~+|
0000a3d0  20 f5 3a c8 91 20 30 2c  30 3a e6 20 30 2c 30 2c  | .:.. 0,0:. 0,0,|
0000a3e0  31 33 36 3a c8 93 20 c8  90 20 30 2c 30 2c 31 32  |136:.. .. 0,0,12|
0000a3f0  38 30 2c 31 30 32 34 0d  05 7f 25 20 e6 20 32 30  |80,1024...% . 20|
0000a400  30 2c 32 30 30 2c 32 30  30 3a c8 93 20 c8 90 20  |0,200,200:.. .. |
0000a410  30 2c 30 2c 31 32 38 30  2c 33 37 30 0d 05 80 22  |0,0,1280,370..."|
0000a420  20 f2 72 61 69 73 65 64  5f 62 6c 6f 63 6b 28 37  | .raised_block(7|
0000a430  38 34 2c 31 36 2c 34 34  38 2c 33 34 32 29 0d 05  |84,16,448,342)..|
0000a440  81 27 20 e6 20 32 35 35  2c 31 38 30 2c 31 30 30  |.' . 255,180,100|
0000a450  3a c8 93 20 c8 90 20 37  38 34 2c 33 32 30 2c 34  |:.. .. 784,320,4|
0000a460  34 34 2c 33 38 0d 05 82  3a 20 c8 99 20 73 70 72  |44,38...: .. spr|
0000a470  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
0000a480  2c 22 73 68 5f 6c 22 2c  31 30 32 30 2c 32 36 30  |,"sh_l",1020,260|
0000a490  2c 38 2c 30 2c 74 72 61  6e 73 6c 61 74 65 25 0d  |,8,0,translate%.|
0000a4a0  05 83 3a 20 c8 99 20 73  70 72 73 77 69 25 2c 32  |..: .. sprswi%,2|
0000a4b0  35 36 2b 35 32 2c 73 70  62 25 2c 22 73 68 5f 72  |56+52,spb%,"sh_r|
0000a4c0  22 2c 31 31 33 30 2c 32  36 30 2c 38 2c 30 2c 74  |",1130,260,8,0,t|
0000a4d0  72 61 6e 73 6c 61 74 65  25 0d 05 84 3a 20 c8 99  |ranslate%...: ..|
0000a4e0  20 73 70 72 73 77 69 25  2c 32 35 36 2b 35 32 2c  | sprswi%,256+52,|
0000a4f0  73 70 62 25 2c 22 73 68  5f 75 22 2c 31 30 32 30  |spb%,"sh_u",1020|
0000a500  2c 32 30 30 2c 38 2c 30  2c 74 72 61 6e 73 6c 61  |,200,8,0,transla|
0000a510  74 65 25 0d 05 85 3a 20  c8 99 20 73 70 72 73 77  |te%...: .. sprsw|
0000a520  69 25 2c 32 35 36 2b 35  32 2c 73 70 62 25 2c 22  |i%,256+52,spb%,"|
0000a530  73 68 5f 64 22 2c 31 31  33 30 2c 32 30 30 2c 38  |sh_d",1130,200,8|
0000a540  2c 30 2c 74 72 61 6e 73  6c 61 74 65 25 0d 05 86  |,0,translate%...|
0000a550  39 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |9 .. sprswi%,256|
0000a560  2b 35 32 2c 73 70 62 25  2c 22 75 70 32 22 2c 31  |+52,spb%,"up2",1|
0000a570  30 38 34 2c 31 35 36 2c  38 2c 30 2c 74 72 61 6e  |084,156,8,0,tran|
0000a580  73 6c 61 74 65 25 0d 05  87 3a 20 c8 99 20 73 70  |slate%...: .. sp|
0000a590  72 73 77 69 25 2c 32 35  36 2b 35 32 2c 73 70 62  |rswi%,256+52,spb|
0000a5a0  25 2c 22 6c 65 66 74 22  2c 31 30 34 30 2c 31 32  |%,"left",1040,12|
0000a5b0  30 2c 38 2c 30 2c 74 72  61 6e 73 6c 61 74 65 25  |0,8,0,translate%|
0000a5c0  0d 05 88 3b 20 c8 99 20  73 70 72 73 77 69 25 2c  |...; .. sprswi%,|
0000a5d0  32 35 36 2b 35 32 2c 73  70 62 25 2c 22 72 69 67  |256+52,spb%,"rig|
0000a5e0  68 74 22 2c 31 31 33 30  2c 31 32 30 2c 38 2c 30  |ht",1130,120,8,0|
0000a5f0  2c 74 72 61 6e 73 6c 61  74 65 25 0d 05 89 39 20  |,translate%...9 |
0000a600  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 35  |.. sprswi%,256+5|
0000a610  32 2c 73 70 62 25 2c 22  64 6f 77 6e 22 2c 31 30  |2,spb%,"down",10|
0000a620  38 34 2c 38 32 2c 38 2c  30 2c 74 72 61 6e 73 6c  |84,82,8,0,transl|
0000a630  61 74 65 25 0d 05 8a 39  20 c8 99 20 73 70 72 73  |ate%...9 .. sprs|
0000a640  77 69 25 2c 32 35 36 2b  35 32 2c 73 70 62 25 2c  |wi%,256+52,spb%,|
0000a650  22 6c 65 66 74 22 2c 38  31 30 2c 32 32 30 2c 38  |"left",810,220,8|
0000a660  2c 30 2c 74 72 61 6e 73  6c 61 74 65 25 0d 05 8b  |,0,translate%...|
0000a670  3a 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |: .. sprswi%,256|
0000a680  2b 35 32 2c 73 70 62 25  2c 22 72 69 67 68 74 22  |+52,spb%,"right"|
0000a690  2c 39 33 30 2c 32 32 30  2c 38 2c 30 2c 74 72 61  |,930,220,8,0,tra|
0000a6a0  6e 73 6c 61 74 65 25 0d  05 8c 39 20 c8 99 20 73  |nslate%...9 .. s|
0000a6b0  70 72 73 77 69 25 2c 32  35 36 2b 35 32 2c 73 70  |prswi%,256+52,sp|
0000a6c0  62 25 2c 22 6c 65 66 74  22 2c 38 31 30 2c 31 30  |b%,"left",810,10|
0000a6d0  30 2c 38 2c 30 2c 74 72  61 6e 73 6c 61 74 65 25  |0,8,0,translate%|
0000a6e0  0d 05 8d 3a 20 c8 99 20  73 70 72 73 77 69 25 2c  |...: .. sprswi%,|
0000a6f0  32 35 36 2b 35 32 2c 73  70 62 25 2c 22 72 69 67  |256+52,spb%,"rig|
0000a700  68 74 22 2c 39 33 30 2c  31 30 30 2c 38 2c 30 2c  |ht",930,100,8,0,|
0000a710  74 72 61 6e 73 6c 61 74  65 25 0d 05 8e 16 20 f2  |translate%.... .|
0000a720  73 68 6f 77 5f 70 6f 69  6e 74 5f 73 69 7a 65 73  |show_point_sizes|
0000a730  0d 05 8f 23 20 f2 77 72  69 74 65 32 28 22 78 2f  |...# .write2("x/|
0000a740  79 20 70 6f 69 6e 74 22  2c 38 31 32 2c 32 37 32  |y point",812,272|
0000a750  2c 34 29 0d 05 90 21 20  f2 77 72 69 74 65 32 28  |,4)...! .write2(|
0000a760  22 79 20 70 6f 69 6e 74  22 2c 38 32 38 2c 31 35  |"y point",828,15|
0000a770  32 2c 34 29 0d 05 91 21  20 f2 72 61 69 73 65 64  |2,4)...! .raised|
0000a780  5f 62 6c 6f 63 6b 28 38  30 38 2c 33 32 2c 31 32  |_block(808,32,12|
0000a790  30 2c 33 32 29 0d 05 92  21 20 f2 72 61 69 73 65  |0,32)...! .raise|
0000a7a0  64 5f 62 6c 6f 63 6b 28  39 34 38 2c 33 32 2c 31  |d_block(948,32,1|
0000a7b0  32 30 2c 33 32 29 0d 05  93 22 20 f2 72 61 69 73  |20,32)..." .rais|
0000a7c0  65 64 5f 62 6c 6f 63 6b  28 31 30 38 38 2c 33 32  |ed_block(1088,32|
0000a7d0  2c 31 32 30 2c 33 32 29  0d 05 94 1d 20 f2 77 72  |,120,32).... .wr|
0000a7e0  69 74 65 32 28 22 55 4e  44 4f 22 2c 38 32 32 2c  |ite2("UNDO",822,|
0000a7f0  33 32 2c 34 29 0d 05 95  1c 20 f2 77 72 69 74 65  |32,4).... .write|
0000a800  32 28 22 54 52 59 22 2c  39 37 30 2c 33 32 2c 34  |2("TRY",970,32,4|
0000a810  29 0d 05 96 1c 20 f2 77  72 69 74 65 32 28 22 4f  |).... .write2("O|
0000a820  4b 22 2c 31 31 31 36 2c  33 32 2c 34 29 0d 05 97  |K",1116,32,4)...|
0000a830  34 20 f2 77 72 69 74 65  32 28 22 20 20 52 65 2d  |4 .write2("  Re-|
0000a840  73 69 7a 65 20 20 20 20  20 20 20 20 54 72 61 6e  |size        Tran|
0000a850  73 66 6f 72 6d 22 2c 38  30 30 2c 33 32 34 2c 34  |sform",800,324,4|
0000a860  29 0d 05 98 44 20 f2 77  72 69 74 65 32 28 22 44  |)...D .write2("D|
0000a870  6f 20 6e 6f 74 20 61 6c  6c 6f 77 20 74 72 61 6e  |o not allow tran|
0000a880  73 66 6f 72 6d 61 74 69  6f 6e 20 70 72 6f 63 65  |sformation proce|
0000a890  73 73 20 74 6f 20 6d 6f  76 65 22 2c 35 30 2c 33  |ss to move",50,3|
0000a8a0  32 34 2c 34 29 0d 05 99  35 20 f2 77 72 69 74 65  |24,4)...5 .write|
0000a8b0  32 28 22 63 61 70 74 69  6f 6e 20 69 6e 74 6f 20  |2("caption into |
0000a8c0  74 68 69 73 20 67 72 65  79 20 61 72 65 61 2e 22  |this grey area."|
0000a8d0  2c 35 30 2c 32 38 34 2c  34 29 0d 05 9a 3d 20 f2  |,50,284,4)...= .|
0000a8e0  77 72 69 74 65 32 28 22  43 6c 69 63 6b 20 61 64  |write2("Click ad|
0000a8f0  6a 75 73 74 20 6f 6e 20  74 68 65 20 27 63 6f 6d  |just on the 'com|
0000a900  70 61 73 73 20 70 6f 69  6e 74 73 27 22 2c 35 30  |pass points'",50|
0000a910  2c 32 32 30 2c 34 29 0d  05 9b 3d 20 f2 77 72 69  |,220,4)...= .wri|
0000a920  74 65 32 28 22 74 6f 20  72 65 2d 70 6f 73 69 74  |te2("to re-posit|
0000a930  69 6f 6e 20 63 61 70 74  69 6f 6e 20 69 66 20 6e  |ion caption if n|
0000a940  65 63 65 73 73 61 72 79  2e 22 2c 35 30 2c 31 38  |ecessary.",50,18|
0000a950  30 2c 34 29 0d 05 9c 3e  20 f2 77 72 69 74 65 32  |0,4)...> .write2|
0000a960  28 22 43 6c 69 63 6b 20  4f 4b 20 6f 72 20 70 72  |("Click OK or pr|
0000a970  65 73 73 20 3c 72 65 74  75 72 6e 3e 20 74 6f 20  |ess <return> to |
0000a980  66 69 6e 69 73 68 2e 22  2c 35 30 2c 31 32 30 2c  |finish.",50,120,|
0000a990  34 29 0d 05 9d 04 0d 05  9e 1d 20 e6 20 30 2c 30  |4)........ . 0,0|
0000a9a0  2c 30 3a 86 20 39 38 38  2c 38 36 2c 39 38 38 2c  |,0:. 988,86,988,|
0000a9b0  32 39 34 0d 05 9f 23 20  e6 20 32 35 35 2c 32 35  |294...# . 255,25|
0000a9c0  35 2c 32 35 35 3a 86 20  39 39 32 2c 38 36 2c 39  |5,255:. 992,86,9|
0000a9d0  39 32 2c 32 39 34 0d 05  a0 19 20 c8 97 20 c8 93  |92,294.... .. ..|
0000a9e0  20 37 38 34 2c 31 36 2c  34 34 38 2c 33 33 38 0d  | 784,16,448,338.|
0000a9f0  05 a1 25 20 c8 91 20 30  2c 35 30 30 3a 71 75 69  |..% .. 0,500:qui|
0000aa00  74 25 3d 30 3a 72 65 73  65 74 25 3d 30 3a 74 72  |t%=0:reset%=0:tr|
0000aa10  79 25 3d 30 0d 05 a2 06  20 f5 0d 05 a3 20 20 74  |y%=0.... ....  t|
0000aa20  72 61 6e 25 21 30 3d 61  2a 6d 75 6c 3a 74 72 61  |ran%!0=a*mul:tra|
0000aa30  6e 25 21 34 3d 62 2a 6d  75 6c 0d 05 a4 21 20 74  |n%!4=b*mul...! t|
0000aa40  72 61 6e 25 21 38 3d 63  2a 6d 75 6c 3a 74 72 61  |ran%!8=c*mul:tra|
0000aa50  6e 25 21 31 32 3d 64 2a  6d 75 6c 0d 05 a5 22 20  |n%!12=d*mul..." |
0000aa60  74 72 61 6e 25 21 31 36  3d 65 2a 6d 75 6c 3a 74  |tran%!16=e*mul:t|
0000aa70  72 61 6e 25 21 32 30 3d  66 2a 6d 75 6c 0d 05 a6  |ran%!20=f*mul...|
0000aa80  31 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |1 .. sprswi%,256|
0000aa90  2b 35 36 2c 73 70 72 25  2c 22 74 22 2c 25 30 30  |+56,spr%,"t",%00|
0000aaa0  2c 2c 38 2c 74 72 61 6e  25 3a 87 3a c8 96 0d 05  |,,8,tran%:.:....|
0000aab0  a7 24 20 f5 3a c8 97 20  58 2c 59 2c 42 3a 4b 3d  |.$ .:.. X,Y,B:K=|
0000aac0  a6 28 35 29 3a fd 20 42  3c 3e 30 20 84 20 4b 3d  |.(5):. B<>0 . K=|
0000aad0  31 33 0d 05 a8 15 20 70  6f 69 6e 74 5f 62 75 74  |13.... point_but|
0000aae0  74 6f 6e 24 3d 22 22 0d  05 a9 04 0d 05 aa 12 20  |ton$=""........ |
0000aaf0  e7 20 42 3d 34 20 84 20  42 3d 31 20 8c 0d 05 ab  |. B=4 . B=1 ....|
0000ab00  04 0d 05 ac 34 20 e7 20  94 28 58 2d 38 33 30 29  |....4 . .(X-830)|
0000ab10  3c 32 38 20 80 20 94 28  59 2d 2d 32 36 30 29 3c  |<28 . .(Y--260)<|
0000ab20  32 38 20 70 6f 69 6e 74  5f 62 75 74 74 6f 6e 24  |28 point_button$|
0000ab30  3d 22 78 6d 22 0d 05 ad  34 20 e7 20 94 28 58 2d  |="xm"...4 . .(X-|
0000ab40  39 34 32 29 3c 32 38 20  80 20 94 28 59 2d 2d 32  |942)<28 . .(Y--2|
0000ab50  36 30 29 3c 32 38 20 70  6f 69 6e 74 5f 62 75 74  |60)<28 point_but|
0000ab60  74 6f 6e 24 3d 22 78 70  22 0d 05 ae 34 20 e7 20  |ton$="xp"...4 . |
0000ab70  94 28 58 2d 38 33 30 29  3c 32 38 20 80 20 94 28  |.(X-830)<28 . .(|
0000ab80  59 2d 2d 33 38 30 29 3c  32 38 20 70 6f 69 6e 74  |Y--380)<28 point|
0000ab90  5f 62 75 74 74 6f 6e 24  3d 22 79 6d 22 0d 05 af  |_button$="ym"...|
0000aba0  34 20 e7 20 94 28 58 2d  39 34 32 29 3c 32 38 20  |4 . .(X-942)<28 |
0000abb0  80 20 94 28 59 2d 2d 33  38 30 29 3c 32 38 20 70  |. .(Y--380)<28 p|
0000abc0  6f 69 6e 74 5f 62 75 74  74 6f 6e 24 3d 22 79 70  |oint_button$="yp|
0000abd0  22 0d 05 b0 04 0d 05 b1  2c 20 e7 20 94 28 58 2d  |"......., . .(X-|
0000abe0  38 36 38 29 3c 36 30 20  80 20 94 28 59 2d 2d 34  |868)<60 . .(Y--4|
0000abf0  35 30 29 3c 32 34 20 8c  20 72 65 73 65 74 25 3d  |50)<24 . reset%=|
0000ac00  b9 0d 05 b2 2b 20 e7 20  94 28 58 2d 31 30 30 38  |....+ . .(X-1008|
0000ac10  29 3c 36 30 20 80 20 94  28 59 2d 2d 34 35 30 29  |)<60 . .(Y--450)|
0000ac20  3c 32 34 20 8c 20 74 72  79 25 3d b9 0d 05 b3 2c  |<24 . try%=....,|
0000ac30  20 e7 20 94 28 58 2d 31  31 34 38 29 3c 36 30 20  | . .(X-1148)<60 |
0000ac40  80 20 94 28 59 2d 2d 34  35 30 29 3c 32 34 20 8c  |. .(Y--450)<24 .|
0000ac50  20 71 75 69 74 25 3d b9  0d 05 b4 2c 20 e7 20 94  | quit%=...., . .|
0000ac60  28 58 2d 31 30 34 34 29  3c 32 38 20 80 20 94 28  |(X-1044)<28 . .(|
0000ac70  59 2d 2d 32 31 38 29 3c  32 38 20 8c 20 63 2d 3d  |Y--218)<28 . c-=|
0000ac80  30 2e 30 31 0d 05 b5 2c  20 e7 20 94 28 58 2d 31  |0.01..., . .(X-1|
0000ac90  30 34 34 29 3c 32 38 20  80 20 94 28 59 2d 2d 32  |044)<28 . .(Y--2|
0000aca0  37 38 29 3c 32 38 20 8c  20 62 2b 3d 30 2e 30 31  |78)<28 . b+=0.01|
0000acb0  0d 05 b6 2c 20 e7 20 94  28 58 2d 31 31 35 36 29  |..., . .(X-1156)|
0000acc0  3c 32 38 20 80 20 94 28  59 2d 2d 32 31 38 29 3c  |<28 . .(Y--218)<|
0000acd0  32 38 20 8c 20 63 2b 3d  30 2e 30 31 0d 05 b7 2c  |28 . c+=0.01...,|
0000ace0  20 e7 20 94 28 58 2d 31  31 35 36 29 3c 32 38 20  | . .(X-1156)<28 |
0000acf0  80 20 94 28 59 2d 2d 32  37 38 29 3c 32 38 20 8c  |. .(Y--278)<28 .|
0000ad00  20 62 2d 3d 30 2e 30 31  0d 05 b8 06 20 cd 0d 05  | b-=0.01.... ...|
0000ad10  b9 04 0d 05 ba 23 20 e7  20 70 6f 69 6e 74 5f 62  |.....# . point_b|
0000ad20  75 74 74 6f 6e 24 3c 3e  22 22 20 84 20 72 65 73  |utton$<>"" . res|
0000ad30  65 74 25 20 8c 0d 05 bb  17 20 c8 8e 20 70 6f 69  |et% ..... .. poi|
0000ad40  6e 74 5f 62 75 74 74 6f  6e 24 20 ca 0d 05 bc 22  |nt_button$ ...."|
0000ad50  20 c9 20 22 78 6d 22 3a  e7 20 78 70 25 3e 31 30  | . "xm":. xp%>10|
0000ad60  20 78 70 25 2d 3d 32 3a  79 70 25 2d 3d 32 0d 05  | xp%-=2:yp%-=2..|
0000ad70  bd 23 20 c9 20 22 78 70  22 3a e7 20 78 70 25 3c  |.# . "xp":. xp%<|
0000ad80  32 30 30 20 78 70 25 2b  3d 32 3a 79 70 25 2b 3d  |200 xp%+=2:yp%+=|
0000ad90  32 0d 05 be 1b 20 c9 20  22 79 6d 22 3a e7 20 79  |2.... . "ym":. y|
0000ada0  70 25 3e 31 30 20 79 70  25 2d 3d 32 0d 05 bf 1c  |p%>10 yp%-=2....|
0000adb0  20 c9 20 22 79 70 22 3a  e7 20 79 70 25 3c 32 30  | . "yp":. yp%<20|
0000adc0  30 20 79 70 25 2b 3d 32  0d 05 c0 06 20 cb 0d 05  |0 yp%+=2.... ...|
0000add0  c1 29 20 e7 20 72 65 73  65 74 25 20 78 70 25 3d  |.) . reset% xp%=|
0000ade0  78 70 5f 73 74 61 72 74  25 3a 79 70 25 3d 79 70  |xp_start%:yp%=yp|
0000adf0  5f 73 74 61 72 74 25 0d  05 c2 0b 20 c8 91 20 30  |_start%.... .. 0|
0000ae00  2c 30 0d 05 c3 22 20 e6  20 33 32 20 c8 9c 30 3a  |,0..." . 32 ..0:|
0000ae10  c8 93 20 c8 90 20 30 2c  33 37 32 2c 31 32 38 30  |.. .. 0,372,1280|
0000ae20  2c 36 36 30 0d 05 c4 1a  20 f2 70 6c 6f 74 5f 74  |,660.... .plot_t|
0000ae30  65 78 74 3a f2 67 72 61  62 5f 74 65 78 74 0d 05  |ext:.grab_text..|
0000ae40  c5 23 20 59 31 25 3d 31  30 34 30 2d 28 28 53 25  |.# Y1%=1040-((S%|
0000ae50  2d 73 63 72 65 65 6e 25  29 2f 31 32 38 30 29 2a  |-screen%)/1280)*|
0000ae60  32 0d 05 c6 23 20 59 32  25 3d 31 30 30 30 2d 28  |2...# Y2%=1000-(|
0000ae70  28 45 25 2d 73 63 72 65  65 6e 25 29 2f 31 32 38  |(E%-screen%)/128|
0000ae80  30 29 2a 32 0d 05 c7 31  20 21 73 70 72 25 3d 74  |0)*2...1 !spr%=t|
0000ae90  78 74 73 69 7a 65 25 3a  73 70 72 25 21 34 3d 30  |xtsize%:spr%!4=0|
0000aea0  3a 73 70 72 25 21 38 3d  31 36 3a 73 70 72 25 21  |:spr%!8=16:spr%!|
0000aeb0  31 32 3d 31 36 0d 05 c8  31 20 c8 99 20 73 70 72  |12=16...1 .. spr|
0000aec0  73 77 69 25 2c 32 35 36  2b 31 36 2c 73 70 72 25  |swi%,256+16,spr%|
0000aed0  2c 22 74 22 2c 30 2c 30  2c 59 32 25 2c 57 25 2b  |,"t",0,0,Y2%,W%+|
0000aee0  31 32 2c 59 31 25 0d 05  c9 19 20 c8 93 20 c8 90  |12,Y1%.... .. ..|
0000aef0  20 30 2c 33 37 32 2c 31  32 38 30 2c 36 36 30 0d  | 0,372,1280,660.|
0000af00  05 ca 16 20 f2 73 68 6f  77 5f 70 6f 69 6e 74 5f  |... .show_point_|
0000af10  73 69 7a 65 73 0d 05 cb  0d 20 c8 91 20 30 2c 35  |sizes.... .. 0,5|
0000af20  30 30 0d 05 cc 06 20 cd  0d 05 cd 04 0d 05 ce 24  |00.... ........$|
0000af30  20 e7 20 94 28 58 2d 31  31 30 30 29 3c 32 30 20  | . .(X-1100)<20 |
0000af40  80 20 94 28 59 2d 2d 33  33 30 29 3c 32 30 20 8c  |. .(Y--330)<20 .|
0000af50  0d 05 cf 1e 20 e7 20 42  3d 31 20 8c 20 66 2b 3d  |.... . B=1 . f+=|
0000af60  30 2e 30 32 20 8b 20 64  2b 3d 30 2e 30 32 0d 05  |0.02 . d+=0.02..|
0000af70  d0 06 20 cd 0d 05 d1 24  20 e7 20 94 28 58 2d 31  |.. ....$ . .(X-1|
0000af80  31 30 30 29 3c 32 30 20  80 20 94 28 59 2d 2d 33  |100)<20 . .(Y--3|
0000af90  39 34 29 3c 32 30 20 8c  0d 05 d2 1e 20 e7 20 42  |94)<20 ..... . B|
0000afa0  3d 31 20 8c 20 66 2d 3d  30 2e 30 32 20 8b 20 64  |=1 . f-=0.02 . d|
0000afb0  2d 3d 30 2e 30 32 0d 05  d3 06 20 cd 0d 05 d4 24  |-=0.02.... ....$|
0000afc0  20 e7 20 94 28 58 2d 31  30 35 36 29 3c 32 30 20  | . .(X-1056)<20 |
0000afd0  80 20 94 28 59 2d 2d 33  36 32 29 3c 32 30 20 8c  |. .(Y--362)<20 .|
0000afe0  0d 05 d5 1e 20 e7 20 42  3d 31 20 8c 20 65 2d 3d  |.... . B=1 . e-=|
0000aff0  30 2e 30 32 20 8b 20 61  2d 3d 30 2e 30 32 0d 05  |0.02 . a-=0.02..|
0000b000  d6 06 20 cd 0d 05 d7 24  20 e7 20 94 28 58 2d 31  |.. ....$ . .(X-1|
0000b010  31 34 30 29 3c 32 30 20  80 20 94 28 59 2d 2d 33  |140)<20 . .(Y--3|
0000b020  36 32 29 3c 32 30 20 8c  0d 05 d8 1e 20 e7 20 42  |62)<20 ..... . B|
0000b030  3d 31 20 8c 20 65 2b 3d  30 2e 30 32 20 8b 20 61  |=1 . e+=0.02 . a|
0000b040  2b 3d 30 2e 30 32 0d 05  d9 06 20 cd 0d 05 da 04  |+=0.02.... .....|
0000b050  0d 05 db 15 20 e7 20 4b  3d 31 33 20 8c 20 71 75  |.... . K=13 . qu|
0000b060  69 74 25 3d b9 0d 05 dc  0e 20 4b 3d a6 28 31 29  |it%=..... K=.(1)|
0000b070  3a c8 96 0d 05 dd 48 20  e7 20 72 65 73 65 74 25  |:.....H . reset%|
0000b080  20 8c 20 f2 77 61 69 74  5f 6e 6f 5f 62 75 74 74  | . .wait_no_butt|
0000b090  6f 6e 3a 6d 75 6c 3d 36  35 35 33 36 3a 61 3d 31  |on:mul=65536:a=1|
0000b0a0  3a 62 3d 30 3a 63 3d 30  3a 64 3d 31 3a 65 3d 30  |:b=0:c=0:d=1:e=0|
0000b0b0  3a 66 3d 30 3a 74 72 79  25 3d 30 0d 05 de 1c 20  |:f=0:try%=0.... |
0000b0c0  fd 20 71 75 69 74 25 20  84 20 72 65 73 65 74 25  |. quit% . reset%|
0000b0d0  20 84 20 74 72 79 25 0d  05 df 13 20 fd 20 71 75  | . try%.... . qu|
0000b0e0  69 74 25 20 84 20 74 72  79 25 0d 05 e0 24 20 e7  |it% . try%...$ .|
0000b0f0  20 62 3c 30 20 8c 20 73  68 61 64 24 3d 22 42 4c  | b<0 . shad$="BL|
0000b100  22 20 8b 20 73 68 61 64  24 3d 22 42 52 22 0d 05  |" . shad$="BR"..|
0000b110  e1 0b 20 c8 91 20 30 2c  30 0d 05 e2 0f 20 f2 67  |.. .. 0,0.... .g|
0000b120  72 61 62 5f 74 65 78 74  0d 05 e3 1b 20 e7 20 74  |rab_text.... . t|
0000b130  72 79 25 20 8c 20 f2 64  69 73 70 6c 61 79 5f 74  |ry% . .display_t|
0000b140  65 78 74 0d 05 e4 1f 20  e7 20 42 3d 34 20 8c 20  |ext.... . B=4 . |
0000b150  74 72 79 25 3d 30 3a 6d  65 6e 75 5f 62 6f 78 25  |try%=0:menu_box%|
0000b160  3d 31 0d 05 e5 0d 20 fd  20 ac 20 74 72 79 25 0d  |=1.... . . try%.|
0000b170  05 e6 1f 20 c8 91 20 30  2c 30 3a c8 97 20 c8 93  |... .. 0,0:.. ..|
0000b180  20 30 2c 30 2c 31 32 38  30 2c 31 30 32 34 0d 05  | 0,0,1280,1024..|
0000b190  e7 06 20 e1 0d 05 e8 04  0d 05 e9 18 20 dd 20 f2  |.. ......... . .|
0000b1a0  73 68 6f 77 5f 70 6f 69  6e 74 5f 73 69 7a 65 73  |show_point_sizes|
0000b1b0  0d 05 ea 12 20 e6 20 32  35 35 2c 32 35 35 2c 32  |.... . 255,255,2|
0000b1c0  35 35 0d 05 eb 2b 20 c8  93 20 c8 90 20 38 35 36  |55...+ .. .. 856|
0000b1d0  2c 32 31 38 2c 36 38 2c  34 30 3a c8 93 20 c8 90  |,218,68,40:.. ..|
0000b1e0  20 38 35 36 2c 39 38 2c  36 38 2c 34 30 0d 05 ec  | 856,98,68,40...|
0000b1f0  18 20 78 70 24 3d c3 20  78 70 25 3a 79 70 24 3d  |. xp$=. xp%:yp$=|
0000b200  c3 20 79 70 25 0d 05 ed  1a 20 e7 20 a9 20 78 70  |. yp%.... . . xp|
0000b210  24 3c 33 20 78 70 24 3d  22 20 22 2b 78 70 24 0d  |$<3 xp$=" "+xp$.|
0000b220  05 ee 1a 20 e7 20 a9 20  79 70 24 3c 33 20 79 70  |... . . yp$<3 yp|
0000b230  24 3d 22 20 22 2b 79 70  24 0d 05 ef 32 20 f2 77  |$=" "+yp$...2 .w|
0000b240  72 69 74 65 32 28 78 70  24 2c 38 35 34 2c 32 32  |rite2(xp$,854,22|
0000b250  32 2c 30 29 3a f2 77 72  69 74 65 32 28 79 70 24  |2,0):.write2(yp$|
0000b260  2c 38 35 34 2c 31 30 32  2c 30 29 0d 05 f0 06 20  |,854,102,0).... |
0000b270  e1 0d 05 f1 04 0d 05 f2  13 20 dd 20 f2 67 72 65  |......... . .gre|
0000b280  79 73 63 61 6c 65 33 32  0d 05 f3 26 20 67 25 3d  |yscale32...& g%=|
0000b290  30 3a e3 20 58 25 3d 30  20 b8 20 31 32 34 30 20  |0:. X%=0 . 1240 |
0000b2a0  88 34 30 3a e6 20 67 25  2c 67 25 2c 67 25 0d 05  |.40:. g%,g%,g%..|
0000b2b0  f4 1f 20 c8 93 20 c8 90  20 58 25 2c 30 2c 34 30  |.. .. .. X%,0,40|
0000b2c0  2c 31 30 32 34 3a 67 25  2b 3d 38 3a ed 0d 05 f5  |,1024:g%+=8:....|
0000b2d0  0c 20 f2 75 70 6d 69 6e  69 0d 05 f6 06 20 e1 0d  |. .upmini.... ..|
0000b2e0  05 f7 04 0d 05 f8 14 20  dd 20 f2 74 6f 70 73 63  |....... . .topsc|
0000b2f0  61 6c 65 28 73 25 29 0d  05 f9 1e 20 e7 20 73 25  |ale(s%).... . s%|
0000b300  3c 3e 32 20 8c 20 f2 64  69 73 70 6c 61 79 5f 6d  |<>2 . .display_m|
0000b310  65 6d 6f 72 79 0d 05 fa  1b 20 e7 20 73 25 3d 31  |emory.... . s%=1|
0000b320  20 8c 20 59 25 3d 30 20  8b 20 59 25 3d 39 36 30  | . Y%=0 . Y%=960|
0000b330  0d 05 fb 2d 20 c8 91 20  30 2c 30 3a 67 25 3d 30  |...- .. 0,0:g%=0|
0000b340  3a e3 20 58 25 3d 30 20  b8 20 31 32 30 30 20 88  |:. X%=0 . 1200 .|
0000b350  38 30 3a e6 20 67 25 2c  67 25 2c 67 25 0d 05 fc  |80:. g%,g%,g%...|
0000b360  21 20 c8 93 20 c8 90 20  58 25 2c 59 25 2c 38 30  |! .. .. X%,Y%,80|
0000b370  2c 31 30 32 34 3a 67 25  2b 3d 31 36 3a ed 0d 05  |,1024:g%+=16:...|
0000b380  fd 16 20 e7 20 73 25 3c  3e 32 20 8c 20 f2 75 70  |.. . s%<>2 . .up|
0000b390  6d 69 6e 69 0d 05 fe 06  20 e1 0d 05 ff 04 0d 06  |mini.... .......|
0000b3a0  00 15 20 dd 20 f2 74 6f  70 73 63 61 6c 65 32 28  |.. . .topscale2(|
0000b3b0  73 25 29 0d 06 01 1e 20  e7 20 73 25 3c 3e 32 20  |s%).... . s%<>2 |
0000b3c0  8c 20 f2 64 69 73 70 6c  61 79 5f 6d 65 6d 6f 72  |. .display_memor|
0000b3d0  79 0d 06 02 23 20 e6 20  34 38 2c 34 38 2c 31 38  |y...# . 48,48,18|
0000b3e0  34 3a c8 93 20 c8 90 20  30 2c 39 38 38 2c 32 30  |4:.. .. 0,988,20|
0000b3f0  30 2c 34 34 0d 06 03 0e  20 e7 20 73 25 3c 3e 31  |0,44.... . s%<>1|
0000b400  20 8c 0d 06 04 25 20 e6  20 32 35 35 2c 32 35 35  | ....% . 255,255|
0000b410  2c 32 35 35 3a c8 93 20  c8 90 20 30 2c 39 36 30  |,255:.. .. 0,960|
0000b420  2c 32 30 30 2c 32 36 0d  06 05 20 20 e6 20 32 35  |,200,26...  . 25|
0000b430  35 2c 30 2c 30 3a c8 93  20 c8 90 20 38 2c 39 36  |5,0,0:.. .. 8,96|
0000b440  34 2c 36 30 2c 31 38 0d  06 06 21 20 e6 20 30 2c  |4,60,18...! . 0,|
0000b450  32 35 35 2c 30 3a c8 93  20 c8 90 20 36 38 2c 39  |255,0:.. .. 68,9|
0000b460  36 34 2c 36 32 2c 31 38  0d 06 07 22 20 e6 20 30  |64,62,18..." . 0|
0000b470  2c 30 2c 32 35 35 3a c8  93 20 c8 90 20 31 32 38  |,0,255:.. .. 128|
0000b480  2c 39 36 34 2c 36 32 2c  31 38 0d 06 08 06 20 cd  |,964,62,18.... .|
0000b490  0d 06 09 1d 20 e7 20 73  25 3d 31 20 8c 20 59 25  |.... . s%=1 . Y%|
0000b4a0  3d 39 38 38 20 8b 20 59  25 3d 39 36 30 0d 06 0a  |=988 . Y%=960...|
0000b4b0  32 20 c8 91 20 30 2c 30  3a 67 25 3d 30 3a e3 20  |2 .. 0,0:g%=0:. |
0000b4c0  58 3d 32 30 30 20 b8 20  31 32 31 32 2e 35 20 88  |X=200 . 1212.5 .|
0000b4d0  36 37 2e 35 3a e6 20 67  25 2c 67 25 2c 67 25 0d  |67.5:. g%,g%,g%.|
0000b4e0  06 0b 1e 20 c8 93 20 c8  90 20 58 2c 59 25 2c 36  |... .. .. X,Y%,6|
0000b4f0  38 2c 36 34 3a 67 25 2b  3d 31 36 3a ed 0d 06 0c  |8,64:g%+=16:....|
0000b500  16 20 e7 20 73 25 3c 3e  32 20 8c 20 f2 75 70 6d  |. . s%<>2 . .upm|
0000b510  69 6e 69 0d 06 0d 06 20  e1 0d 06 0e 04 0d 06 0f  |ini.... ........|
0000b520  0d 20 dd 20 f2 74 6f 6f  6c 73 0d 06 10 22 20 e6  |. . .tools..." .|
0000b530  33 2c 36 33 20 c8 9c 31  39 32 3a c8 93 20 c8 90  |3,63 ..192:.. ..|
0000b540  20 39 30 30 2c 34 2c 35  32 2c 35 30 0d 06 11 06  | 900,4,52,50....|
0000b550  20 f5 0d 06 12 25 20 6d  65 6e 75 24 28 30 29 3d  | ....% menu$(0)=|
0000b560  22 20 20 54 6f 6f 6c 73  20 61 6e 64 20 75 74 69  |"  Tools and uti|
0000b570  6c 69 74 69 65 73 22 0d  06 13 1c 20 6d 65 6e 75  |lities".... menu|
0000b580  24 28 32 29 3d 22 20 20  52 65 70 61 69 72 20 51  |$(2)="  Repair Q|
0000b590  52 4d 22 0d 06 14 1c 20  6d 65 6e 75 24 28 33 29  |RM".... menu$(3)|
0000b5a0  3d 22 20 20 46 6c 6f 6f  64 20 66 69 6c 6c 22 0d  |="  Flood fill".|
0000b5b0  06 15 1c 20 6d 65 6e 75  24 28 34 29 3d 22 20 20  |... menu$(4)="  |
0000b5c0  50 61 69 6e 74 62 72 75  73 68 22 0d 06 16 23 20  |Paintbrush"...# |
0000b5d0  6d 65 6e 75 24 28 35 29  3d 22 20 20 50 61 69 6e  |menu$(5)="  Pain|
0000b5e0  74 20 77 69 74 68 20 73  70 72 69 74 65 22 0d 06  |t with sprite"..|
0000b5f0  17 1f 20 6d 65 6e 75 24  28 36 29 3d 22 20 20 43  |.. menu$(6)="  C|
0000b600  6c 6f 6e 69 6e 67 20 62  72 75 73 68 22 0d 06 18  |loning brush"...|
0000b610  25 20 6d 65 6e 75 24 28  37 29 3d 22 20 20 47 72  |% menu$(7)="  Gr|
0000b620  61 64 20 62 6f 72 64 65  72 20 2d 20 66 75 6c 6c  |ad border - full|
0000b630  3e 22 0d 06 19 24 20 6d  65 6e 75 24 28 38 29 3d  |>"...$ menu$(8)=|
0000b640  22 20 20 47 72 61 64 20  62 6f 72 64 65 72 20 2d  |"  Grad border -|
0000b650  20 34 38 30 3e 22 0d 06  1a 25 20 6d 65 6e 75 24  | 480>"...% menu$|
0000b660  28 39 29 3d 22 20 20 50  69 70 65 20 62 6f 72 64  |(9)="  Pipe bord|
0000b670  65 72 20 2d 20 66 75 6c  6c 3e 22 0d 06 1b 25 20  |er - full>"...% |
0000b680  6d 65 6e 75 24 28 31 30  29 3d 22 20 20 50 69 70  |menu$(10)="  Pip|
0000b690  65 20 62 6f 72 64 65 72  20 2d 20 34 38 30 3e 22  |e border - 480>"|
0000b6a0  0d 06 1c 21 20 6d 65 6e  75 24 28 31 31 29 3d 22  |...! menu$(11)="|
0000b6b0  20 20 54 58 20 74 65 73  74 20 74 6f 6e 65 73 3e  |  TX test tones>|
0000b6c0  22 0d 06 1d 29 20 e7 20  61 75 74 6f 5f 73 61 76  |"...) . auto_sav|
0000b6d0  65 25 20 8c 20 6d 24 3d  bd 31 32 38 2b 22 20 22  |e% . m$=.128+" "|
0000b6e0  20 8b 20 6d 24 3d 22 20  20 22 0d 06 1e 22 20 6d  | . m$="  "..." m|
0000b6f0  65 6e 75 24 28 31 32 29  3d 6d 24 2b 22 41 75 74  |enu$(12)=m$+"Aut|
0000b700  6f 20 73 61 76 65 20 6d  6f 64 65 22 0d 06 1f 22  |o save mode"..."|
0000b710  20 e7 20 58 34 25 20 8c  20 6d 24 3d bd 31 32 38  | . X4% . m$=.128|
0000b720  2b 22 20 22 20 8b 20 6d  24 3d 22 20 20 22 0d 06  |+" " . m$="  "..|
0000b730  20 23 20 6d 65 6e 75 24  28 31 33 29 3d 6d 24 2b  | # menu$(13)=m$+|
0000b740  22 54 58 20 74 6f 6e 65  20 58 34 20 6d 6f 64 65  |"TX tone X4 mode|
0000b750  22 0d 06 21 26 20 e7 20  62 79 70 61 73 73 25 20  |"..!& . bypass% |
0000b760  8c 20 6d 24 3d bd 31 32  38 2b 22 20 22 20 8b 20  |. m$=.128+" " . |
0000b770  6d 24 3d 22 20 20 22 0d  06 22 25 20 6d 65 6e 75  |m$="  ".."% menu|
0000b780  24 28 31 34 29 3d 6d 24  2b 22 42 79 70 61 73 73  |$(14)=m$+"Bypass|
0000b790  20 73 61 76 65 20 63 68  65 63 6b 22 0d 06 23 21  | save check"..#!|
0000b7a0  20 6d 65 6e 75 24 28 31  35 29 3d 22 20 20 4f 6e  | menu$(15)="  On|
0000b7b0  2d 6c 69 6e 65 20 6d 61  6e 75 61 6c 22 0d 06 24  |-line manual"..$|
0000b7c0  20 20 6d 65 6e 75 24 28  31 36 29 3d 22 20 20 52  |  menu$(16)="  R|
0000b7d0  65 70 65 61 74 65 72 20  6d 6f 64 65 22 0d 06 25  |epeater mode"..%|
0000b7e0  29 20 e7 20 62 65 61 63  6f 6e 5f 6f 6e 25 20 8c  |) . beacon_on% .|
0000b7f0  20 6d 24 3d bd 31 32 38  2b 22 20 22 20 8b 20 6d  | m$=.128+" " . m|
0000b800  24 3d 22 20 20 22 0d 06  26 23 20 6d 65 6e 75 24  |$="  "..&# menu$|
0000b810  28 31 37 29 3d 6d 24 2b  22 52 65 70 65 61 74 65  |(17)=m$+"Repeate|
0000b820  72 20 62 65 61 63 6f 6e  22 0d 06 27 26 20 e7 20  |r beacon"..'& . |
0000b830  63 61 6c 6c 24 3d 22 47  33 53 49 44 22 20 84 20  |call$="G3SID" . |
0000b840  63 61 6c 6c 24 3d 22 47  30 57 59 52 22 20 8c 0d  |call$="G0WYR" ..|
0000b850  06 28 2f 20 20 e7 20 63  61 6c 6c 24 3d 22 47 33  |.(/  . call$="G3|
0000b860  53 49 44 22 20 8c 20 63  24 3d 22 47 30 57 59 52  |SID" . c$="G0WYR|
0000b870  22 20 8b 20 63 24 3d 22  47 33 53 49 44 22 0d 06  |" . c$="G3SID"..|
0000b880  29 28 20 20 20 6d 65 6e  75 24 28 31 38 29 3d 22  |)(   menu$(18)="|
0000b890  20 20 53 65 74 20 63 61  6c 6c 73 69 67 6e 20 74  |  Set callsign t|
0000b8a0  6f 20 22 2b 63 24 0d 06  2a 14 20 20 20 6d 65 6e  |o "+c$..*.   men|
0000b8b0  75 24 28 31 39 29 3d 22  2a 22 0d 06 2b 07 20 20  |u$(19)="*"..+.  |
0000b8c0  cc 0d 06 2c 14 20 20 20  6d 65 6e 75 24 28 31 38  |...,.   menu$(18|
0000b8d0  29 3d 22 2a 22 0d 06 2d  07 20 20 cd 0d 06 2e 14  |)="*"..-.  .....|
0000b8e0  20 f2 6d 65 6e 75 28 34  39 34 2c 39 30 2c 30 29  | .menu(494,90,0)|
0000b8f0  0d 06 2f 13 20 c8 8e 20  6d 65 6e 75 5f 62 6f 78  |../. .. menu_box|
0000b900  25 20 ca 0d 06 30 11 20  c9 20 31 3a f2 64 69 73  |% ...0. . 1:.dis|
0000b910  6d 69 6e 69 0d 06 31 13  20 c9 20 32 3a f2 72 65  |mini..1. . 2:.re|
0000b920  70 61 69 72 51 52 4d 0d  06 32 14 20 c9 20 33 3a  |pairQRM..2. . 3:|
0000b930  f2 66 6c 6f 6f 64 5f 66  69 6c 6c 0d 06 33 14 20  |.flood_fill..3. |
0000b940  c9 20 34 3a f2 70 61 69  6e 74 62 72 75 73 68 0d  |. 4:.paintbrush.|
0000b950  06 34 1b 20 c9 20 35 3a  f2 70 61 69 6e 74 5f 77  |.4. . 5:.paint_w|
0000b960  69 74 68 5f 73 70 72 69  74 65 0d 06 35 1b 20 c9  |ith_sprite..5. .|
0000b970  20 36 3a f2 63 6c 6f 6e  69 6e 67 5f 62 72 75 73  | 6:.cloning_brus|
0000b980  68 28 31 36 29 0d 06 36  17 20 c9 20 37 2c 38 3a  |h(16)..6. . 7,8:|
0000b990  f2 62 6f 72 64 65 72 5f  6d 65 6e 75 0d 06 37 28  |.border_menu..7(|
0000b9a0  20 c9 20 39 2c 31 30 3a  f2 70 69 70 65 5f 62 6f  | . 9,10:.pipe_bo|
0000b9b0  72 64 65 72 5f 6d 65 6e  75 28 6d 65 6e 75 5f 62  |rder_menu(menu_b|
0000b9c0  6f 78 25 29 0d 06 38 29  20 c9 20 31 31 3a f2 74  |ox%)..8) . 11:.t|
0000b9d0  78 5f 74 65 73 74 5f 74  6f 6e 65 5f 6d 65 6e 75  |x_test_tone_menu|
0000b9e0  3a 6d 65 6e 75 5f 62 6f  78 25 3d 31 31 0d 06 39  |:menu_box%=11..9|
0000b9f0  31 20 c9 20 31 32 3a 61  75 74 6f 5f 73 61 76 65  |1 . 12:auto_save|
0000ba00  25 3d ac 28 61 75 74 6f  5f 73 61 76 65 25 29 3a  |%=.(auto_save%):|
0000ba10  6d 65 6e 75 5f 72 65 64  72 61 77 25 3d b9 0d 06  |menu_redraw%=...|
0000ba20  3a 34 20 c9 20 31 33 3a  58 34 25 3d ac 28 58 34  |:4 . 13:X4%=.(X4|
0000ba30  25 29 3a f2 74 78 5f 70  61 72 61 6d 73 5f 73 65  |%):.tx_params_se|
0000ba40  74 75 70 3a 6d 65 6e 75  5f 72 65 64 72 61 77 25  |tup:menu_redraw%|
0000ba50  3d b9 0d 06 3b 2b 20 c9  20 31 34 3a 62 79 70 61  |=...;+ . 14:bypa|
0000ba60  73 73 25 3d ac 28 62 79  70 61 73 73 25 29 3a 6d  |ss%=.(bypass%):m|
0000ba70  65 6e 75 5f 72 65 64 72  61 77 25 3d b9 0d 06 3c  |enu_redraw%=...<|
0000ba80  19 20 c9 20 31 35 3a f2  6f 6e 5f 6c 69 6e 65 5f  |. . 15:.on_line_|
0000ba90  6d 61 6e 75 61 6c 0d 06  3d 1b 20 c9 20 31 36 3a  |manual..=. . 16:|
0000baa0  f2 72 65 70 65 61 74 65  72 5f 63 6f 6e 74 72 6f  |.repeater_contro|
0000bab0  6c 0d 06 3e 31 20 c9 20  31 37 3a 62 65 61 63 6f  |l..>1 . 17:beaco|
0000bac0  6e 5f 6f 6e 25 3d ac 28  62 65 61 63 6f 6e 5f 6f  |n_on%=.(beacon_o|
0000bad0  6e 25 29 3a 6d 65 6e 75  5f 72 65 64 72 61 77 25  |n%):menu_redraw%|
0000bae0  3d b9 0d 06 3f 39 20 c9  20 31 38 3a e7 20 63 61  |=...?9 . 18:. ca|
0000baf0  6c 6c 24 3d 22 47 33 53  49 44 22 20 8c 20 63 61  |ll$="G3SID" . ca|
0000bb00  6c 6c 24 3d 22 47 30 57  59 52 22 20 8b 20 63 61  |ll$="G0WYR" . ca|
0000bb10  6c 6c 24 3d 22 47 33 53  49 44 22 0d 06 40 1e 20  |ll$="G3SID"..@. |
0000bb20  20 20 20 20 20 20 20 20  e7 20 63 61 6c 6c 24 3d  |        . call$=|
0000bb30  22 47 30 57 59 52 22 20  8c 0d 06 41 47 20 20 20  |"G0WYR" ...AG   |
0000bb40  20 20 20 20 20 20 20 ff  28 22 4c 4f 41 44 20 3c  |       .("LOAD <|
0000bb50  50 73 63 61 6e 24 44 69  72 3e 2e 52 65 73 6f 75  |Pscan$Dir>.Resou|
0000bb60  72 63 65 73 2e 47 30 57  59 52 2e 50 73 63 61 6e  |rces.G0WYR.Pscan|
0000bb70  54 58 20 22 2b c3 7e 74  78 5f 63 6f 64 65 25 29  |TX "+.~tx_code%)|
0000bb80  0d 06 42 0e 20 20 20 20  20 20 20 20 20 cc 0d 06  |..B.         ...|
0000bb90  43 41 20 20 20 20 20 20  20 20 20 20 ff 28 22 4c  |CA          .("L|
0000bba0  4f 41 44 20 3c 50 73 63  61 6e 24 44 69 72 3e 2e  |OAD <Pscan$Dir>.|
0000bbb0  52 65 73 6f 75 72 63 65  73 2e 50 73 63 61 6e 54  |Resources.PscanT|
0000bbc0  58 20 22 2b c3 7e 74 78  5f 63 6f 64 65 25 29 0d  |X "+.~tx_code%).|
0000bbd0  06 44 0e 20 20 20 20 20  20 20 20 20 cd 0d 06 45  |.D.         ...E|
0000bbe0  15 20 20 20 20 20 20 20  20 20 f2 64 69 73 6d 69  |.         .dismi|
0000bbf0  6e 69 0d 06 46 06 20 cb  0d 06 47 44 20 fd 20 28  |ni..F. ...GD . (|
0000bc00  6d 65 6e 75 5f 62 6f 78  25 3c 31 31 20 84 20 6d  |menu_box%<11 . m|
0000bc10  65 6e 75 5f 62 6f 78 25  3e 31 34 29 20 80 20 6d  |enu_box%>14) . m|
0000bc20  65 6e 75 5f 62 6f 78 25  3c 3e 31 37 20 80 20 6d  |enu_box%<>17 . m|
0000bc30  65 6e 75 5f 62 6f 78 25  3c 3e 39 39 0d 06 48 06  |enu_box%<>99..H.|
0000bc40  20 e1 0d 06 49 04 0d 06  4a 19 20 dd 20 f2 74 78  | ...I...J. . .tx|
0000bc50  5f 74 65 73 74 5f 74 6f  6e 65 5f 6d 65 6e 75 0d  |_test_tone_menu.|
0000bc60  06 4b 06 20 f5 0d 06 4c  1d 20 6d 65 6e 75 24 28  |.K. ...L. menu$(|
0000bc70  30 29 3d 22 54 58 20 74  65 73 74 20 74 6f 6e 65  |0)="TX test tone|
0000bc80  73 22 0d 06 4d 37 20 4e  3d 31 3a e3 20 46 3d 31  |s"..M7 N=1:. F=1|
0000bc90  30 30 30 20 b8 20 31 37  30 30 20 88 31 30 30 3a  |000 . 1700 .100:|
0000bca0  6d 65 6e 75 24 28 4e 29  3d c3 20 46 2b 22 20 48  |menu$(N)=. F+" H|
0000bcb0  7a 22 3a 4e 2b 3d 31 3a  ed 0d 06 4e 17 20 6d 65  |z":N+=1:...N. me|
0000bcc0  6e 75 24 28 39 29 3d 22  31 37 35 30 20 48 7a 22  |nu$(9)="1750 Hz"|
0000bcd0  0d 06 4f 38 20 4e 3d 31  30 3a e3 20 46 3d 31 38  |..O8 N=10:. F=18|
0000bce0  30 30 20 b8 20 32 34 30  30 20 88 31 30 30 3a 6d  |00 . 2400 .100:m|
0000bcf0  65 6e 75 24 28 4e 29 3d  c3 20 46 2b 22 20 48 7a  |enu$(N)=. F+" Hz|
0000bd00  22 3a 4e 2b 3d 31 3a ed  0d 06 50 21 20 6d 65 6e  |":N+=1:...P! men|
0000bd10  75 24 28 31 37 29 3d 22  2a 22 3a f2 6d 65 6e 75  |u$(17)="*":.menu|
0000bd20  28 30 2c 39 30 2c 2d 31  29 0d 06 51 13 20 c8 8e  |(0,90,-1)..Q. ..|
0000bd30  20 6d 65 6e 75 5f 62 6f  78 25 20 ca 0d 06 52 37  | menu_box% ...R7|
0000bd40  20 c9 20 31 2c 32 2c 33  2c 34 2c 35 2c 36 2c 37  | . 1,2,3,4,5,6,7|
0000bd50  2c 38 3a f2 74 78 5f 74  65 73 74 5f 74 6f 6e 65  |,8:.tx_test_tone|
0000bd60  28 39 30 30 2b 6d 65 6e  75 5f 62 6f 78 25 2a 31  |(900+menu_box%*1|
0000bd70  30 30 29 0d 06 53 1c 20  c9 20 39 3a f2 74 78 5f  |00)..S. . 9:.tx_|
0000bd80  74 65 73 74 5f 74 6f 6e  65 28 31 37 35 30 29 0d  |test_tone(1750).|
0000bd90  06 54 42 20 c9 20 31 30  2c 31 31 2c 31 32 2c 31  |.TB . 10,11,12,1|
0000bda0  33 2c 31 34 2c 31 35 2c  31 36 3a f2 74 78 5f 74  |3,14,15,16:.tx_t|
0000bdb0  65 73 74 5f 74 6f 6e 65  28 31 38 30 30 2b 28 6d  |est_tone(1800+(m|
0000bdc0  65 6e 75 5f 62 6f 78 25  2d 31 30 29 2a 31 30 30  |enu_box%-10)*100|
0000bdd0  29 0d 06 55 06 20 cb 0d  06 56 13 20 fd 20 6d 65  |)..U. ...V. . me|
0000bde0  6e 75 5f 62 6f 78 25 3d  39 39 0d 06 57 06 20 e1  |nu_box%=99..W. .|
0000bdf0  0d 06 58 04 0d 06 59 11  20 dd 20 f2 67 72 61 62  |..X...Y. . .grab|
0000be00  5f 6d 65 6e 75 0d 06 5a  23 20 e6 33 2c 36 33 20  |_menu..Z# .3,63 |
0000be10  c8 9c 31 39 32 3a c8 93  20 c8 90 20 31 30 32 38  |..192:.. .. 1028|
0000be20  2c 34 2c 35 32 2c 35 30  0d 06 5b 06 20 f5 0d 06  |,4,52,50..[. ...|
0000be30  5c 22 20 6d 65 6e 75 24  28 30 29 3d 22 20 20 47  |\" menu$(0)="  G|
0000be40  72 61 62 20 73 63 72 65  65 6e 20 61 72 65 61 22  |rab screen area"|
0000be50  0d 06 5d 22 20 6d 65 6e  75 24 28 32 29 3d 22 20  |..]" menu$(2)=" |
0000be60  20 47 72 61 62 20 73 63  72 65 65 6e 20 61 72 65  | Grab screen are|
0000be70  61 22 0d 06 5e 24 20 6d  65 6e 75 24 28 33 29 3d  |a"..^$ menu$(3)=|
0000be80  22 20 20 47 72 61 62 20  65 6e 74 69 72 65 20 73  |"  Grab entire s|
0000be90  63 72 65 65 6e 22 0d 06  5f 2b 20 e7 20 70 6c 6f  |creen".._+ . plo|
0000bea0  74 5f 62 6f 72 64 65 72  25 3d 31 20 74 24 3d bd  |t_border%=1 t$=.|
0000beb0  31 32 38 2b 22 20 22 20  8b 20 74 24 3d 22 20 20  |128+" " . t$="  |
0000bec0  22 0d 06 60 22 20 6d 65  6e 75 24 28 34 29 3d 74  |"..`" menu$(4)=t|
0000bed0  24 2b 22 50 6c 69 6e 74  68 20 6f 70 74 69 6f 6e  |$+"Plinth option|
0000bee0  73 3e 22 0d 06 61 2b 20  e7 20 70 6c 6f 74 5f 62  |s>"..a+ . plot_b|
0000bef0  6f 72 64 65 72 25 3d 32  20 74 24 3d bd 31 32 38  |order%=2 t$=.128|
0000bf00  2b 22 20 22 20 8b 20 74  24 3d 22 20 20 22 0d 06  |+" " . t$="  "..|
0000bf10  62 22 20 6d 65 6e 75 24  28 35 29 3d 74 24 2b 22  |b" menu$(5)=t$+"|
0000bf20  42 6f 72 64 65 72 20 6f  70 74 69 6f 6e 73 3e 22  |Border options>"|
0000bf30  0d 06 63 29 20 e7 20 70  6c 6f 74 5f 73 68 61 64  |..c) . plot_shad|
0000bf40  6f 77 25 20 74 24 3d bd  31 32 38 2b 22 20 22 20  |ow% t$=.128+" " |
0000bf50  8b 20 74 24 3d 22 20 20  22 0d 06 64 22 20 6d 65  |. t$="  "..d" me|
0000bf60  6e 75 24 28 36 29 3d 74  24 2b 22 53 68 61 64 6f  |nu$(6)=t$+"Shado|
0000bf70  77 20 6f 70 74 69 6f 6e  73 3e 22 0d 06 65 1e 20  |w options>"..e. |
0000bf80  6d 65 6e 75 24 28 37 29  3d 22 20 20 51 75 61 64  |menu$(7)="  Quad|
0000bf90  20 64 69 73 70 6c 61 79  22 0d 06 66 1e 20 6d 65  | display"..f. me|
0000bfa0  6e 75 24 28 38 29 3d 22  20 20 51 75 61 64 20 62  |nu$(8)="  Quad b|
0000bfb0  6f 72 64 65 72 3e 22 0d  06 67 24 20 6d 65 6e 75  |order>"..g$ menu|
0000bfc0  24 28 39 29 3d 22 20 20  50 6c 6f 74 20 65 6e 74  |$(9)="  Plot ent|
0000bfd0  69 72 65 20 73 63 72 65  65 6e 22 0d 06 68 26 20  |ire screen"..h& |
0000bfe0  6d 65 6e 75 24 28 31 30  29 3d 22 20 20 50 6c 6f  |menu$(10)="  Plo|
0000bff0  74 20 61 72 65 61 20 2d  20 66 6c 69 70 70 65 64  |t area - flipped|
0000c000  22 0d 06 69 25 20 6d 65  6e 75 24 28 31 31 29 3d  |"..i% menu$(11)=|
0000c010  22 20 20 50 6c 6f 74 20  61 72 65 61 20 2d 20 6e  |"  Plot area - n|
0000c020  6f 72 6d 61 6c 22 0d 06  6a 22 20 6d 65 6e 75 24  |ormal"..j" menu$|
0000c030  28 31 32 29 3d 22 2a 22  3a f2 6d 65 6e 75 28 34  |(12)="*":.menu(4|
0000c040  39 34 2c 39 30 2c 30 29  0d 06 6b 13 20 c8 8e 20  |94,90,0)..k. .. |
0000c050  6d 65 6e 75 5f 62 6f 78  25 20 ca 0d 06 6c 11 20  |menu_box% ...l. |
0000c060  c9 20 31 3a f2 64 69 73  6d 69 6e 69 0d 06 6d 1b  |. 1:.dismini..m.|
0000c070  20 c9 20 32 3a f2 67 72  61 62 5f 72 65 63 74 61  | . 2:.grab_recta|
0000c080  6e 67 6c 65 28 30 29 0d  06 6e 26 20 c9 20 33 3a  |ngle(0)..n& . 3:|
0000c090  f2 67 72 61 62 5f 72 65  63 74 61 6e 67 6c 65 28  |.grab_rectangle(|
0000c0a0  2d 31 29 3a 65 6e 74 69  72 65 25 3d b9 0d 06 6f  |-1):entire%=...o|
0000c0b0  35 20 c9 20 34 3a f2 70  6c 6f 74 5f 62 6f 72 64  |5 . 4:.plot_bord|
0000c0c0  65 72 5f 6d 65 6e 75 3a  6d 65 6e 75 5f 62 6f 78  |er_menu:menu_box|
0000c0d0  25 3d 34 3a 6d 65 6e 75  5f 72 65 64 72 61 77 25  |%=4:menu_redraw%|
0000c0e0  3d b9 0d 06 70 37 20 c9  20 35 3a f2 70 6c 6f 74  |=...p7 . 5:.plot|
0000c0f0  5f 62 6f 72 64 65 72 39  37 5f 6d 65 6e 75 3a 6d  |_border97_menu:m|
0000c100  65 6e 75 5f 62 6f 78 25  3d 35 3a 6d 65 6e 75 5f  |enu_box%=5:menu_|
0000c110  72 65 64 72 61 77 25 3d  b9 0d 06 71 35 20 c9 20  |redraw%=...q5 . |
0000c120  36 3a f2 70 6c 6f 74 5f  73 68 61 64 6f 77 5f 6d  |6:.plot_shadow_m|
0000c130  65 6e 75 3a 6d 65 6e 75  5f 62 6f 78 25 3d 36 3a  |enu:menu_box%=6:|
0000c140  6d 65 6e 75 5f 72 65 64  72 61 77 25 3d b9 0d 06  |menu_redraw%=...|
0000c150  72 16 20 c9 20 37 3a f2  71 75 61 64 5f 64 69 73  |r. . 7:.quad_dis|
0000c160  70 6c 61 79 0d 06 73 1a  20 c9 20 38 3a f2 71 75  |play..s. . 8:.qu|
0000c170  61 64 5f 62 6f 72 64 65  72 5f 6d 65 6e 75 0d 06  |ad_border_menu..|
0000c180  74 06 20 cb 0d 06 75 14  20 e7 20 6d 65 6e 75 5f  |t. ...u. . menu_|
0000c190  62 6f 78 25 3d 39 20 8c  0d 06 76 34 20 e7 20 65  |box%=9 ...v4 . e|
0000c1a0  6e 74 69 72 65 25 20 8c  20 f2 70 6c 6f 74 5f 67  |ntire% . .plot_g|
0000c1b0  72 61 62 62 65 64 5f 61  72 65 61 28 31 29 20 8b  |rabbed_area(1) .|
0000c1c0  20 6d 65 6e 75 5f 62 6f  78 25 3d 34 0d 06 77 06  | menu_box%=4..w.|
0000c1d0  20 cd 0d 06 78 2c 20 e7  20 6d 65 6e 75 5f 62 6f  | ...x, . menu_bo|
0000c1e0  78 25 3d 31 30 20 8c 20  f2 70 6c 6f 74 5f 67 72  |x%=10 . .plot_gr|
0000c1f0  61 62 62 65 64 5f 61 72  65 61 28 2d 31 29 0d 06  |abbed_area(-1)..|
0000c200  79 2b 20 e7 20 6d 65 6e  75 5f 62 6f 78 25 3d 31  |y+ . menu_box%=1|
0000c210  31 20 8c 20 f2 70 6c 6f  74 5f 67 72 61 62 62 65  |1 . .plot_grabbe|
0000c220  64 5f 61 72 65 61 28 30  29 0d 06 7a 41 20 fd 20  |d_area(0)..zA . |
0000c230  6d 65 6e 75 5f 62 6f 78  25 3c 3e 34 20 80 20 6d  |menu_box%<>4 . m|
0000c240  65 6e 75 5f 62 6f 78 25  3c 3e 35 20 80 20 6d 65  |enu_box%<>5 . me|
0000c250  6e 75 5f 62 6f 78 25 3c  3e 36 20 80 20 6d 65 6e  |nu_box%<>6 . men|
0000c260  75 5f 62 6f 78 25 3c 3e  39 39 0d 06 7b 1e 20 e7  |u_box%<>99..{. .|
0000c270  20 6d 65 6e 75 5f 62 6f  78 25 3d 33 20 8c 20 65  | menu_box%=3 . e|
0000c280  6e 74 69 72 65 25 3d b9  0d 06 7c 1e 20 e7 20 6d  |ntire%=...|. . m|
0000c290  65 6e 75 5f 62 6f 78 25  3d 32 20 8c 20 65 6e 74  |enu_box%=2 . ent|
0000c2a0  69 72 65 25 3d 30 0d 06  7d 06 20 e1 0d 06 7e 04  |ire%=0..}. ...~.|
0000c2b0  0d 06 7f 18 20 dd 20 f2  70 6c 6f 74 5f 73 68 61  |.... . .plot_sha|
0000c2c0  64 6f 77 5f 6d 65 6e 75  0d 06 80 24 20 6d 65 6e  |dow_menu...$ men|
0000c2d0  75 24 28 30 29 3d 22 50  6c 6f 74 20 73 68 61 64  |u$(0)="Plot shad|
0000c2e0  6f 77 20 6f 70 74 69 6f  6e 73 22 20 0d 06 81 22  |ow options" ..."|
0000c2f0  20 6d 65 6e 75 24 28 31  29 3d 22 52 65 61 6c 20  | menu$(1)="Real |
0000c300  73 68 61 64 6f 77 20 65  66 66 65 63 74 22 0d 06  |shadow effect"..|
0000c310  82 19 20 6d 65 6e 75 24  28 32 29 3d 22 4e 6f 20  |.. menu$(2)="No |
0000c320  73 68 61 64 6f 77 22 0d  06 83 20 20 6d 65 6e 75  |shadow"...  menu|
0000c330  24 28 33 29 3d 22 2a 22  3a f2 6d 65 6e 75 28 30  |$(3)="*":.menu(0|
0000c340  2c 39 30 2c 2d 31 29 0d  06 84 23 20 e7 20 6d 65  |,90,-1)...# . me|
0000c350  6e 75 5f 62 6f 78 25 3d  31 20 8c 20 70 6c 6f 74  |nu_box%=1 . plot|
0000c360  5f 73 68 61 64 6f 77 25  3d 31 0d 06 85 23 20 e7  |_shadow%=1...# .|
0000c370  20 6d 65 6e 75 5f 62 6f  78 25 3d 32 20 8c 20 70  | menu_box%=2 . p|
0000c380  6c 6f 74 5f 73 68 61 64  6f 77 25 3d 30 0d 06 86  |lot_shadow%=0...|
0000c390  06 20 e1 0d 06 87 04 0d  06 88 1a 20 dd 20 f2 70  |. ......... . .p|
0000c3a0  6c 6f 74 5f 62 6f 72 64  65 72 39 37 5f 6d 65 6e  |lot_border97_men|
0000c3b0  75 0d 06 89 20 20 6d 65  6e 75 24 28 30 29 3d 22  |u...  menu$(0)="|
0000c3c0  42 6f 72 64 65 72 20 6f  70 74 69 6f 6e 73 20 20  |Border options  |
0000c3d0  22 0d 06 8a 15 20 6d 65  6e 75 24 28 31 29 3d 22  |".... menu$(1)="|
0000c3e0  57 68 69 74 65 22 0d 06  8b 16 20 6d 65 6e 75 24  |White".... menu$|
0000c3f0  28 32 29 3d 22 59 65 6c  6c 6f 77 22 0d 06 8c 14  |(2)="Yellow"....|
0000c400  20 6d 65 6e 75 24 28 33  29 3d 22 43 79 61 6e 22  | menu$(3)="Cyan"|
0000c410  0d 06 8d 15 20 6d 65 6e  75 24 28 34 29 3d 22 47  |.... menu$(4)="G|
0000c420  72 65 65 6e 22 0d 06 8e  17 20 6d 65 6e 75 24 28  |reen".... menu$(|
0000c430  35 29 3d 22 4d 61 67 65  6e 74 61 22 0d 06 8f 13  |5)="Magenta"....|
0000c440  20 6d 65 6e 75 24 28 36  29 3d 22 52 65 64 22 0d  | menu$(6)="Red".|
0000c450  06 90 14 20 6d 65 6e 75  24 28 37 29 3d 22 42 6c  |... menu$(7)="Bl|
0000c460  75 65 22 0d 06 91 1a 20  6d 65 6e 75 24 28 38 29  |ue".... menu$(8)|
0000c470  3d 22 50 75 72 70 6c 65  2d 72 65 64 22 0d 06 92  |="Purple-red"...|
0000c480  1d 20 6d 65 6e 75 24 28  39 29 3d 22 4d 61 67 65  |. menu$(9)="Mage|
0000c490  6e 74 61 2d 67 72 65 65  6e 22 0d 06 93 1b 20 6d  |nta-green".... m|
0000c4a0  65 6e 75 24 28 31 30 29  3d 22 47 72 65 65 6e 2d  |enu$(10)="Green-|
0000c4b0  67 6f 6c 64 22 0d 06 94  1f 20 6d 65 6e 75 24 28  |gold".... menu$(|
0000c4c0  31 31 29 3d 22 4d 75 6c  74 69 2d 63 6f 6c 6f 75  |11)="Multi-colou|
0000c4d0  72 20 31 22 0d 06 95 1f  20 6d 65 6e 75 24 28 31  |r 1".... menu$(1|
0000c4e0  32 29 3d 22 4d 75 6c 74  69 2d 63 6f 6c 6f 75 72  |2)="Multi-colour|
0000c4f0  20 32 22 0d 06 96 1f 20  6d 65 6e 75 24 28 31 33  | 2".... menu$(13|
0000c500  29 3d 22 4d 75 6c 74 69  2d 63 6f 6c 6f 75 72 20  |)="Multi-colour |
0000c510  33 22 0d 06 97 1f 20 6d  65 6e 75 24 28 31 34 29  |3".... menu$(14)|
0000c520  3d 22 4d 75 6c 74 69 2d  63 6f 6c 6f 75 72 20 34  |="Multi-colour 4|
0000c530  22 0d 06 98 1a 20 6d 65  6e 75 24 28 31 35 29 3d  |".... menu$(15)=|
0000c540  22 4e 6f 20 62 6f 72 64  65 72 22 0d 06 99 21 20  |"No border"...! |
0000c550  6d 65 6e 75 24 28 31 36  29 3d 22 2a 22 3a f2 6d  |menu$(16)="*":.m|
0000c560  65 6e 75 28 30 2c 39 30  2c 2d 31 29 0d 06 9a 13  |enu(0,90,-1)....|
0000c570  20 c8 8e 20 6d 65 6e 75  5f 62 6f 78 25 20 ca 0d  | .. menu_box% ..|
0000c580  06 9b 3b 20 c9 20 31 3a  70 62 72 25 3d 31 32 38  |..; . 1:pbr%=128|
0000c590  3a 70 62 67 25 3d 31 32  38 3a 70 62 62 25 3d 31  |:pbg%=128:pbb%=1|
0000c5a0  32 38 3a 70 62 72 69 25  3d 38 3a 70 62 67 69 25  |28:pbri%=8:pbgi%|
0000c5b0  3d 38 3a 70 62 62 69 25  3d 38 0d 06 9c 39 20 c9  |=8:pbbi%=8...9 .|
0000c5c0  20 32 3a 70 62 72 25 3d  31 32 38 3a 70 62 67 25  | 2:pbr%=128:pbg%|
0000c5d0  3d 31 32 38 3a 70 62 62  25 3d 30 3a 70 62 72 69  |=128:pbb%=0:pbri|
0000c5e0  25 3d 38 3a 70 62 67 69  25 3d 38 3a 70 62 62 69  |%=8:pbgi%=8:pbbi|
0000c5f0  25 3d 30 0d 06 9d 39 20  c9 20 33 3a 70 62 72 25  |%=0...9 . 3:pbr%|
0000c600  3d 30 3a 70 62 67 25 3d  31 32 38 3a 70 62 62 25  |=0:pbg%=128:pbb%|
0000c610  3d 31 32 38 3a 70 62 72  69 25 3d 30 3a 70 62 67  |=128:pbri%=0:pbg|
0000c620  69 25 3d 38 3a 70 62 62  69 25 3d 38 0d 06 9e 37  |i%=8:pbbi%=8...7|
0000c630  20 c9 20 34 3a 70 62 72  25 3d 30 3a 70 62 67 25  | . 4:pbr%=0:pbg%|
0000c640  3d 31 32 38 3a 70 62 62  25 3d 30 3a 70 62 72 69  |=128:pbb%=0:pbri|
0000c650  25 3d 30 3a 70 62 67 69  25 3d 38 3a 70 62 62 69  |%=0:pbgi%=8:pbbi|
0000c660  25 3d 30 0d 06 9f 39 20  c9 20 35 3a 70 62 72 25  |%=0...9 . 5:pbr%|
0000c670  3d 31 32 38 3a 70 62 67  25 3d 30 3a 70 62 62 25  |=128:pbg%=0:pbb%|
0000c680  3d 31 32 38 3a 70 62 72  69 25 3d 38 3a 70 62 67  |=128:pbri%=8:pbg|
0000c690  69 25 3d 30 3a 70 62 62  69 25 3d 38 0d 06 a0 37  |i%=0:pbbi%=8...7|
0000c6a0  20 c9 20 36 3a 70 62 72  25 3d 31 32 38 3a 70 62  | . 6:pbr%=128:pb|
0000c6b0  67 25 3d 30 3a 70 62 62  25 3d 30 3a 70 62 72 69  |g%=0:pbb%=0:pbri|
0000c6c0  25 3d 38 3a 70 62 67 69  25 3d 30 3a 70 62 62 69  |%=8:pbgi%=0:pbbi|
0000c6d0  25 3d 30 0d 06 a1 37 20  c9 20 37 3a 70 62 72 25  |%=0...7 . 7:pbr%|
0000c6e0  3d 30 3a 70 62 67 25 3d  30 3a 70 62 62 25 3d 31  |=0:pbg%=0:pbb%=1|
0000c6f0  32 38 3a 70 62 72 69 25  3d 30 3a 70 62 67 69 25  |28:pbri%=0:pbgi%|
0000c700  3d 30 3a 70 62 62 69 25  3d 38 0d 06 a2 38 20 c9  |=0:pbbi%=8...8 .|
0000c710  20 38 3a 70 62 72 25 3d  31 32 38 3a 70 62 67 25  | 8:pbr%=128:pbg%|
0000c720  3d 30 3a 70 62 62 25 3d  36 34 3a 70 62 72 69 25  |=0:pbb%=64:pbri%|
0000c730  3d 38 3a 70 62 67 69 25  3d 30 3a 70 62 62 69 25  |=8:pbgi%=0:pbbi%|
0000c740  3d 38 0d 06 a3 39 20 c9  20 39 3a 70 62 72 25 3d  |=8...9 . 9:pbr%=|
0000c750  36 34 3a 70 62 67 25 3d  31 32 38 3a 70 62 62 25  |64:pbg%=128:pbb%|
0000c760  3d 36 34 3a 70 62 72 69  25 3d 38 3a 70 62 67 69  |=64:pbri%=8:pbgi|
0000c770  25 3d 38 3a 70 62 62 69  25 3d 38 0d 06 a4 3a 20  |%=8:pbbi%=8...: |
0000c780  c9 20 31 30 3a 70 62 72  25 3d 31 32 38 3a 70 62  |. 10:pbr%=128:pb|
0000c790  67 25 3d 38 30 3a 70 62  62 25 3d 33 32 3a 70 62  |g%=80:pbb%=32:pb|
0000c7a0  72 69 25 3d 38 3a 70 62  67 69 25 3d 38 3a 70 62  |ri%=8:pbgi%=8:pb|
0000c7b0  62 69 25 3d 30 0d 06 a5  39 20 c9 20 31 31 3a 70  |bi%=0...9 . 11:p|
0000c7c0  62 72 25 3d 36 34 3a 70  62 67 25 3d 33 32 3a 70  |br%=64:pbg%=32:p|
0000c7d0  62 62 25 3d 36 34 3a 70  62 72 69 25 3d 34 3a 70  |bb%=64:pbri%=4:p|
0000c7e0  62 67 69 25 3d 34 3a 70  62 62 69 25 3d 38 0d 06  |bgi%=4:pbbi%=8..|
0000c7f0  a6 3a 20 c9 20 31 32 3a  70 62 72 25 3d 30 3a 70  |.: . 12:pbr%=0:p|
0000c800  62 67 25 3d 31 32 38 3a  70 62 62 25 3d 36 34 3a  |bg%=128:pbb%=64:|
0000c810  70 62 72 69 25 3d 34 3a  70 62 67 69 25 3d 38 3a  |pbri%=4:pbgi%=8:|
0000c820  70 62 62 69 25 3d 31 32  0d 06 a7 3c 20 c9 20 31  |pbbi%=12...< . 1|
0000c830  33 3a 70 62 72 25 3d 31  32 38 3a 70 62 67 25 3d  |3:pbr%=128:pbg%=|
0000c840  31 32 38 3a 70 62 62 25  3d 36 34 3a 70 62 72 69  |128:pbb%=64:pbri|
0000c850  25 3d 34 3a 70 62 67 69  25 3d 38 3a 70 62 62 69  |%=4:pbgi%=8:pbbi|
0000c860  25 3d 31 32 0d 06 a8 3b  20 c9 20 31 34 3a 70 62  |%=12...; . 14:pb|
0000c870  72 25 3d 31 32 38 3a 70  62 67 25 3d 31 32 38 3a  |r%=128:pbg%=128:|
0000c880  70 62 62 25 3d 36 34 3a  70 62 72 69 25 3d 34 3a  |pbb%=64:pbri%=4:|
0000c890  70 62 67 69 25 3d 38 3a  70 62 62 69 25 3d 38 0d  |pbgi%=8:pbbi%=8.|
0000c8a0  06 a9 18 20 c9 20 31 35  3a 70 6c 6f 74 5f 62 6f  |... . 15:plot_bo|
0000c8b0  72 64 65 72 25 3d 30 0d  06 aa 06 20 cb 0d 06 ab  |rder%=0.... ....|
0000c8c0  32 20 e7 20 6d 65 6e 75  5f 62 6f 78 25 3e 30 20  |2 . menu_box%>0 |
0000c8d0  80 20 6d 65 6e 75 5f 62  6f 78 25 3c 31 35 20 8c  |. menu_box%<15 .|
0000c8e0  20 70 6c 6f 74 5f 62 6f  72 64 65 72 25 3d 32 0d  | plot_border%=2.|
0000c8f0  06 ac 06 20 e1 0d 06 ad  04 0d 06 ae 18 20 dd 20  |... ......... . |
0000c900  f2 70 6c 6f 74 5f 62 6f  72 64 65 72 5f 6d 65 6e  |.plot_border_men|
0000c910  75 0d 06 af 20 20 6d 65  6e 75 24 28 30 29 3d 22  |u...  menu$(0)="|
0000c920  50 6c 69 6e 74 68 20 6f  70 74 69 6f 6e 73 20 20  |Plinth options  |
0000c930  22 0d 06 b0 15 20 6d 65  6e 75 24 28 31 29 3d 22  |".... menu$(1)="|
0000c940  57 68 69 74 65 22 0d 06  b1 16 20 6d 65 6e 75 24  |White".... menu$|
0000c950  28 32 29 3d 22 59 65 6c  6c 6f 77 22 0d 06 b2 14  |(2)="Yellow"....|
0000c960  20 6d 65 6e 75 24 28 33  29 3d 22 43 79 61 6e 22  | menu$(3)="Cyan"|
0000c970  0d 06 b3 15 20 6d 65 6e  75 24 28 34 29 3d 22 47  |.... menu$(4)="G|
0000c980  72 65 65 6e 22 0d 06 b4  17 20 6d 65 6e 75 24 28  |reen".... menu$(|
0000c990  35 29 3d 22 4d 61 67 65  6e 74 61 22 0d 06 b5 13  |5)="Magenta"....|
0000c9a0  20 6d 65 6e 75 24 28 36  29 3d 22 52 65 64 22 0d  | menu$(6)="Red".|
0000c9b0  06 b6 14 20 6d 65 6e 75  24 28 37 29 3d 22 42 6c  |... menu$(7)="Bl|
0000c9c0  75 65 22 0d 06 b7 15 20  6d 65 6e 75 24 28 38 29  |ue".... menu$(8)|
0000c9d0  3d 22 42 6c 61 63 6b 22  0d 06 b8 1f 20 6d 65 6e  |="Black".... men|
0000c9e0  75 24 28 39 29 3d 22 43  6f 6c 6f 75 72 20 73 65  |u$(9)="Colour se|
0000c9f0  6c 65 63 74 6f 72 22 0d  06 b9 1a 20 6d 65 6e 75  |lector".... menu|
0000ca00  24 28 31 30 29 3d 22 4e  6f 20 70 6c 69 6e 74 68  |$(10)="No plinth|
0000ca10  22 0d 06 ba 21 20 6d 65  6e 75 24 28 31 31 29 3d  |"...! menu$(11)=|
0000ca20  22 2a 22 3a f2 6d 65 6e  75 28 30 2c 39 30 2c 2d  |"*":.menu(0,90,-|
0000ca30  31 29 0d 06 bb 13 20 c8  8e 20 6d 65 6e 75 5f 62  |1).... .. menu_b|
0000ca40  6f 78 25 20 ca 0d 06 bc  23 20 c9 20 31 3a 70 62  |ox% ....# . 1:pb|
0000ca50  72 25 3d 32 35 35 3a 70  62 67 25 3d 32 35 35 3a  |r%=255:pbg%=255:|
0000ca60  70 62 62 25 3d 32 35 35  0d 06 bd 21 20 c9 20 32  |pbb%=255...! . 2|
0000ca70  3a 70 62 72 25 3d 32 35  35 3a 70 62 67 25 3d 32  |:pbr%=255:pbg%=2|
0000ca80  35 35 3a 70 62 62 25 3d  30 0d 06 be 21 20 c9 20  |55:pbb%=0...! . |
0000ca90  33 3a 70 62 72 25 3d 30  3a 70 62 67 25 3d 32 35  |3:pbr%=0:pbg%=25|
0000caa0  35 3a 70 62 62 25 3d 32  35 35 0d 06 bf 1f 20 c9  |5:pbb%=255.... .|
0000cab0  20 34 3a 70 62 72 25 3d  30 3a 70 62 67 25 3d 32  | 4:pbr%=0:pbg%=2|
0000cac0  35 35 3a 70 62 62 25 3d  30 0d 06 c0 21 20 c9 20  |55:pbb%=0...! . |
0000cad0  35 3a 70 62 72 25 3d 32  35 35 3a 70 62 67 25 3d  |5:pbr%=255:pbg%=|
0000cae0  30 3a 70 62 62 25 3d 32  35 35 0d 06 c1 1f 20 c9  |0:pbb%=255.... .|
0000caf0  20 36 3a 70 62 72 25 3d  32 35 35 3a 70 62 67 25  | 6:pbr%=255:pbg%|
0000cb00  3d 30 3a 70 62 62 25 3d  30 0d 06 c2 1f 20 c9 20  |=0:pbb%=0.... . |
0000cb10  37 3a 70 62 72 25 3d 30  3a 70 62 67 25 3d 30 3a  |7:pbr%=0:pbg%=0:|
0000cb20  70 62 62 25 3d 32 35 35  0d 06 c3 1d 20 c9 20 38  |pbb%=255.... . 8|
0000cb30  3a 70 62 72 25 3d 30 3a  70 62 67 25 3d 30 3a 70  |:pbr%=0:pbg%=0:p|
0000cb40  62 62 25 3d 30 0d 06 c4  36 20 c9 20 39 3a f2 72  |bb%=0...6 . 9:.r|
0000cb50  67 62 5f 73 6c 69 64 65  72 73 28 30 29 3a 70 62  |gb_sliders(0):pb|
0000cb60  72 25 3d 72 65 64 25 3a  70 62 67 25 3d 67 72 6e  |r%=red%:pbg%=grn|
0000cb70  25 3a 70 62 62 25 3d 62  6c 75 25 0d 06 c5 18 20  |%:pbb%=blu%.... |
0000cb80  c9 20 31 30 3a 70 6c 6f  74 5f 62 6f 72 64 65 72  |. 10:plot_border|
0000cb90  25 3d 30 0d 06 c6 06 20  cb 0d 06 c7 32 20 e7 20  |%=0.... ....2 . |
0000cba0  6d 65 6e 75 5f 62 6f 78  25 3e 30 20 80 20 6d 65  |menu_box%>0 . me|
0000cbb0  6e 75 5f 62 6f 78 25 3c  31 30 20 8c 20 70 6c 6f  |nu_box%<10 . plo|
0000cbc0  74 5f 62 6f 72 64 65 72  25 3d 31 0d 06 c8 06 20  |t_border%=1.... |
0000cbd0  e1 0d 06 c9 04 0d 06 ca  12 20 dd 20 f2 70 61 69  |......... . .pai|
0000cbe0  6e 74 62 72 75 73 68 0d  06 cb 24 20 f2 64 69 73  |ntbrush...$ .dis|
0000cbf0  70 6c 61 79 5f 6d 65 6d  6f 72 79 3a f2 77 61 69  |play_memory:.wai|
0000cc00  74 5f 6e 6f 5f 62 75 74  74 6f 6e 0d 06 cc 06 20  |t_no_button.... |
0000cc10  f5 0d 06 cd 16 20 f5 3a  c8 97 20 58 2c 59 2c 42  |..... .:.. X,Y,B|
0000cc20  3a fd 20 42 3c 3e 30 0d  06 ce 0c 20 e7 20 59 3e  |:. B<>0.... . Y>|
0000cc30  38 20 8c 0d 06 cf 33 20  e7 20 42 3d 34 20 8c 20  |8 ....3 . B=4 . |
0000cc40  e6 20 72 65 64 25 2c 67  72 6e 25 2c 62 6c 75 25  |. red%,grn%,blu%|
0000cc50  3a c8 8f 20 c8 90 20 58  2c 59 2c 62 72 75 73 68  |:.. .. X,Y,brush|
0000cc60  5f 73 69 7a 65 25 0d 06  d0 3c 20 e7 20 42 3d 32  |_size%...< . B=2|
0000cc70  20 8c 20 f2 75 70 6c 6f  61 64 5f 6d 65 6d 6f 72  | . .upload_memor|
0000cc80  79 3a f2 72 67 62 5f 73  6c 69 64 65 72 73 28 2d  |y:.rgb_sliders(-|
0000cc90  31 29 3a f2 64 69 73 70  6c 61 79 5f 6d 65 6d 6f  |1):.display_memo|
0000cca0  72 79 0d 06 d1 0c 20 e7  20 42 3d 31 20 8c 0d 06  |ry.... . B=1 ...|
0000ccb0  d2 20 20 52 47 42 25 3d  b0 58 2c 59 29 3a 72 65  |.  RGB%=.X,Y):re|
0000ccc0  64 25 3d 28 52 47 42 25  80 33 31 29 2a 38 0d 06  |d%=(RGB%.31)*8..|
0000ccd0  d3 31 20 67 72 6e 25 3d  28 28 52 47 42 25 3e 3e  |.1 grn%=((RGB%>>|
0000cce0  35 29 80 33 31 29 2a 38  3a 62 6c 75 25 3d 28 28  |5).31)*8:blu%=((|
0000ccf0  52 47 42 25 3e 3e 31 30  29 80 33 31 29 2a 38 0d  |RGB%>>10).31)*8.|
0000cd00  06 d4 06 20 cd 0d 06 d5  06 20 cd 0d 06 d6 0a 20  |... ..... ..... |
0000cd10  fd 20 59 3c 39 0d 06 d7  1c 20 f2 75 70 6d 69 6e  |. Y<9.... .upmin|
0000cd20  69 3a f2 77 61 69 74 5f  6e 6f 5f 62 75 74 74 6f  |i:.wait_no_butto|
0000cd30  6e 0d 06 d8 06 20 e1 0d  06 d9 04 0d 06 da 15 20  |n.... ......... |
0000cd40  dd 20 f2 74 65 73 74 5f  70 61 74 74 65 72 6e 73  |. .test_patterns|
0000cd50  0d 06 db 22 20 e6 33 2c  36 33 20 c8 9c 31 39 32  |..." .3,63 ..192|
0000cd60  3a c8 93 20 c8 90 20 37  37 32 2c 34 2c 35 32 2c  |:.. .. 772,4,52,|
0000cd70  35 30 0d 06 dc 06 20 f5  0d 06 dd 1f 20 6d 65 6e  |50.... ..... men|
0000cd80  75 24 28 30 29 3d 22 20  20 54 65 73 74 20 70 61  |u$(0)="  Test pa|
0000cd90  74 74 65 72 6e 73 22 0d  06 de 23 20 6d 65 6e 75  |tterns"...# menu|
0000cda0  24 28 32 29 3d 22 20 20  33 32 20 73 74 65 70 20  |$(2)="  32 step |
0000cdb0  67 72 65 79 73 63 61 6c  65 22 0d 06 df 23 20 6d  |greyscale"...# m|
0000cdc0  65 6e 75 24 28 33 29 3d  22 20 20 31 36 20 73 74  |enu$(3)="  16 st|
0000cdd0  65 70 20 67 72 65 79 73  63 61 6c 65 22 0d 06 e0  |ep greyscale"...|
0000cde0  1b 20 6d 65 6e 75 24 28  34 29 3d 22 20 20 54 65  |. menu$(4)="  Te|
0000cdf0  73 74 20 43 61 72 64 22  0d 06 e1 1d 20 6d 65 6e  |st Card".... men|
0000ce00  75 24 28 35 29 3d 22 20  20 43 6f 6c 6f 75 72 20  |u$(5)="  Colour |
0000ce10  42 61 72 73 22 0d 06 e2  28 20 6d 65 6e 75 24 28  |Bars"...( menu$(|
0000ce20  36 29 3d 22 20 20 54 4f  50 20 67 72 65 79 73 63  |6)="  TOP greysc|
0000ce30  61 6c 65 20 2d 20 74 79  70 65 20 31 22 0d 06 e3  |ale - type 1"...|
0000ce40  29 20 6d 65 6e 75 24 28  37 29 3d 22 20 20 54 4f  |) menu$(7)="  TO|
0000ce50  50 20 67 72 65 79 73 63  61 6c 65 20 2d 20 74 79  |P greyscale - ty|
0000ce60  70 65 20 32 20 22 0d 06  e4 27 20 6d 65 6e 75 24  |pe 2 "...' menu$|
0000ce70  28 38 29 3d 22 20 20 54  4f 50 20 67 72 65 79 73  |(8)="  TOP greys|
0000ce80  63 61 6c 65 20 2d 20 73  68 6f 72 74 22 0d 06 e5  |cale - short"...|
0000ce90  29 20 e7 20 68 65 61 64  65 72 5f 74 65 78 74 25  |) . header_text%|
0000cea0  20 6d 24 3d bd 31 32 38  2b 22 20 22 20 8b 20 6d  | m$=.128+" " . m|
0000ceb0  24 3d 22 20 20 22 0d 06  e6 25 20 6d 65 6e 75 24  |$="  "...% menu$|
0000cec0  28 39 29 3d 6d 24 2b 22  48 65 61 64 65 72 20 74  |(9)=m$+"Header t|
0000ced0  65 78 74 20 6f 6e 2f 6f  66 66 22 0d 06 e7 26 20  |ext on/off"...& |
0000cee0  6d 65 6e 75 24 28 31 30  29 3d 22 20 20 48 61 6d  |menu$(10)="  Ham|
0000cef0  63 6f 6c 6f 72 20 46 41  58 20 68 65 61 64 65 72  |color FAX header|
0000cf00  22 0d 06 e8 28 20 6d 65  6e 75 24 28 31 31 29 3d  |"...( menu$(11)=|
0000cf10  22 20 20 4d 6f 6e 6f 63  68 72 6f 6d 65 20 46 41  |"  Monochrome FA|
0000cf20  58 20 68 65 61 64 65 72  22 0d 06 e9 20 20 6d 65  |X header"...  me|
0000cf30  6e 75 24 28 31 32 29 3d  22 20 20 43 68 65 71 75  |nu$(12)="  Chequ|
0000cf40  65 72 20 62 6f 61 72 64  22 0d 06 ea 1d 20 6d 65  |er board".... me|
0000cf50  6e 75 24 28 31 33 29 3d  22 20 20 53 74 61 72 20  |nu$(13)="  Star |
0000cf60  66 69 65 6c 64 22 0d 06  eb 21 20 6d 65 6e 75 24  |field"...! menu$|
0000cf70  28 31 34 29 3d 22 20 20  4f 70 65 6e 69 6e 67 20  |(14)="  Opening |
0000cf80  73 63 72 65 65 6e 22 0d  06 ec 27 20 6d 65 6e 75  |screen"...' menu|
0000cf90  24 28 31 35 29 3d 22 20  20 52 65 70 65 61 74 65  |$(15)="  Repeate|
0000cfa0  72 20 62 65 61 63 6f 6e  20 70 61 67 65 22 0d 06  |r beacon page"..|
0000cfb0  ed 22 20 6d 65 6e 75 24  28 31 36 29 3d 22 2a 22  |." menu$(16)="*"|
0000cfc0  3a f2 6d 65 6e 75 28 34  39 34 2c 39 30 2c 30 29  |:.menu(494,90,0)|
0000cfd0  0d 06 ee 13 20 c8 8e 20  6d 65 6e 75 5f 62 6f 78  |.... .. menu_box|
0000cfe0  25 20 ca 0d 06 ef 11 20  c9 20 31 3a f2 64 69 73  |% ..... . 1:.dis|
0000cff0  6d 69 6e 69 0d 06 f0 15  20 c9 20 32 3a f2 67 72  |mini.... . 2:.gr|
0000d000  65 79 73 63 61 6c 65 33  32 0d 06 f1 15 20 c9 20  |eyscale32.... . |
0000d010  33 3a f2 74 6f 70 73 63  61 6c 65 28 31 29 0d 06  |3:.topscale(1)..|
0000d020  f2 13 20 c9 20 34 3a f2  74 65 73 74 5f 63 61 72  |.. . 4:.test_car|
0000d030  64 0d 06 f3 15 20 c9 20  35 3a f2 63 6f 6c 6f 75  |d.... . 5:.colou|
0000d040  72 5f 62 61 72 73 0d 06  f4 15 20 c9 20 36 3a f2  |r_bars.... . 6:.|
0000d050  74 6f 70 73 63 61 6c 65  28 30 29 0d 06 f5 16 20  |topscale(0).... |
0000d060  c9 20 37 3a f2 74 6f 70  73 63 61 6c 65 32 28 30  |. 7:.topscale2(0|
0000d070  29 0d 06 f6 16 20 c9 20  38 3a f2 74 6f 70 73 63  |).... . 8:.topsc|
0000d080  61 6c 65 32 28 31 29 0d  06 f7 34 20 c9 20 39 3a  |ale2(1)...4 . 9:|
0000d090  68 65 61 64 65 72 5f 74  65 78 74 25 3d ac 28 68  |header_text%=.(h|
0000d0a0  65 61 64 65 72 5f 74 65  78 74 25 29 3a 6d 65 6e  |eader_text%):men|
0000d0b0  75 5f 72 65 64 72 61 77  25 3d b9 0d 06 f8 18 20  |u_redraw%=..... |
0000d0c0  c9 20 31 30 3a f2 66 61  78 5f 68 65 61 64 65 72  |. 10:.fax_header|
0000d0d0  28 30 29 0d 06 f9 19 20  c9 20 31 31 3a f2 66 61  |(0).... . 11:.fa|
0000d0e0  78 5f 68 65 61 64 65 72  28 2d 31 29 0d 06 fa 12  |x_header(-1)....|
0000d0f0  20 c9 20 31 32 3a f2 63  68 65 71 75 65 72 0d 06  | . 12:.chequer..|
0000d100  fb 1d 20 c9 20 31 33 3a  f2 73 74 61 72 5f 66 69  |.. . 13:.star_fi|
0000d110  65 6c 64 3a f2 75 70 6d  69 6e 69 0d 06 fc 1a 20  |eld:.upmini.... |
0000d120  c9 20 31 34 3a f2 73 70  6c 61 73 68 32 3a f2 75  |. 14:.splash2:.u|
0000d130  70 6d 69 6e 69 0d 06 fd  1f 20 c9 20 31 35 3a f2  |pmini.... . 15:.|
0000d140  72 65 70 65 61 74 65 72  5f 62 65 61 63 6f 6e 5f  |repeater_beacon_|
0000d150  74 65 78 74 0d 06 fe 06  20 cb 0d 06 ff 13 20 fd  |text.... ..... .|
0000d160  20 6d 65 6e 75 5f 62 6f  78 25 3c 3e 39 0d 07 00  | menu_box%<>9...|
0000d170  06 20 e1 0d 07 01 04 0d  07 02 13 20 dd 20 f2 63  |. ......... . .c|
0000d180  6f 6c 6f 75 72 5f 62 61  72 73 0d 07 03 09 20 f7  |olour_bars.... .|
0000d190  20 2b 30 0d 07 04 22 20  e3 20 58 25 3d 30 20 b8  | +0..." . X%=0 .|
0000d1a0  20 31 31 32 30 20 88 31  36 30 3a f3 20 72 25 2c  | 1120 .160:. r%,|
0000d1b0  67 25 2c 62 25 0d 07 05  25 20 e6 20 72 25 2c 67  |g%,b%...% . r%,g|
0000d1c0  25 2c 62 25 3a c8 93 20  c8 90 20 58 25 2c 30 2c  |%,b%:.. .. X%,0,|
0000d1d0  31 36 30 2c 31 30 32 34  3a ed 0d 07 06 38 20 dc  |160,1024:....8 .|
0000d1e0  20 32 35 35 2c 32 35 35  2c 32 35 35 2c 32 35 35  | 255,255,255,255|
0000d1f0  2c 32 35 35 2c 30 2c 30  2c 32 35 35 2c 32 35 35  |,255,0,0,255,255|
0000d200  2c 30 2c 32 35 35 2c 30  2c 32 35 35 2c 30 2c 32  |,0,255,0,255,0,2|
0000d210  35 35 0d 07 07 1c 20 dc  20 32 35 35 2c 30 2c 30  |55.... . 255,0,0|
0000d220  2c 30 2c 30 2c 32 35 35  2c 30 2c 30 2c 30 0d 07  |,0,0,255,0,0,0..|
0000d230  08 0c 20 f2 75 70 6d 69  6e 69 0d 07 09 06 20 e1  |.. .upmini.... .|
0000d240  0d 07 0a 04 0d 07 0b 0f  20 dd 20 f2 63 68 65 71  |........ . .cheq|
0000d250  75 65 72 0d 07 0c 20 20  e6 20 30 2c 30 2c 30 3a  |uer...  . 0,0,0:|
0000d260  c8 93 20 c8 90 20 30 2c  30 2c 31 32 38 30 2c 31  |.. .. 0,0,1280,1|
0000d270  30 32 34 0d 07 0d 12 20  e6 20 32 35 35 2c 32 35  |024.... . 255,25|
0000d280  35 2c 32 35 35 0d 07 0e  17 20 e3 20 58 25 3d 30  |5,255.... . X%=0|
0000d290  20 b8 20 31 32 38 30 20  88 33 32 30 0d 07 0f 1a  | . 1280 .320....|
0000d2a0  20 c8 93 20 c8 90 20 58  25 2c 30 2c 31 36 30 2c  | .. .. X%,0,160,|
0000d2b0  31 30 32 34 3a ed 0d 07  10 14 20 e6 20 33 2c 32  |1024:..... . 3,2|
0000d2c0  35 35 2c 32 35 35 2c 32  35 35 0d 07 11 17 20 e3  |55,255,255.... .|
0000d2d0  20 59 25 3d 30 20 b8 20  31 30 32 34 20 88 33 32  | Y%=0 . 1024 .32|
0000d2e0  30 0d 07 12 18 20 c8 93  20 c8 90 20 30 2c 59 25  |0.... .. .. 0,Y%|
0000d2f0  2c 31 32 38 30 2c 31 36  30 0d 07 13 23 20 ed 3a  |,1280,160...# .:|
0000d300  f2 75 70 6c 6f 61 64 5f  6d 65 6d 6f 72 79 3a f2  |.upload_memory:.|
0000d310  74 6f 70 73 63 61 6c 65  32 28 30 29 0d 07 14 06  |topscale2(0)....|
0000d320  20 e1 0d 07 15 04 0d 07  16 0e 20 dd 20 f2 75 70  | ......... . .up|
0000d330  6d 69 6e 69 0d 07 17 1d  20 f2 75 70 6c 6f 61 64  |mini.... .upload|
0000d340  5f 6d 65 6d 6f 72 79 3a  f2 6d 69 6e 69 5f 70 61  |_memory:.mini_pa|
0000d350  64 0d 07 18 06 20 e1 0d  07 19 04 0d 07 1a 0f 20  |d.... ......... |
0000d360  dd 20 f2 64 69 73 6d 69  6e 69 0d 07 1b 1e 20 f2  |. .dismini.... .|
0000d370  64 69 73 70 6c 61 79 5f  6d 65 6d 6f 72 79 3a f2  |display_memory:.|
0000d380  6d 69 6e 69 5f 70 61 64  0d 07 1c 06 20 e1 0d 07  |mini_pad.... ...|
0000d390  1d 04 0d 07 1e 14 20 dd  20 f2 6d 6f 75 73 65 5f  |...... . .mouse_|
0000d3a0  63 72 6f 73 73 31 0d 07  1f 2a 20 6d 6f 75 73 65  |cross1...* mouse|
0000d3b0  31 25 3f 26 30 31 3d 32  3a 6d 6f 75 73 65 31 25  |1%?&01=2:mouse1%|
0000d3c0  21 26 30 36 3d 6d 6f 75  73 65 31 25 2b 26 30 41  |!&06=mouse1%+&0A|
0000d3d0  0d 07 20 1d 20 c8 99 20  22 4f 53 5f 57 6f 72 64  |.. . .. "OS_Word|
0000d3e0  22 2c 26 31 35 2c 6d 6f  75 73 65 31 25 0d 07 21  |",&15,mouse1%..!|
0000d3f0  06 20 e1 0d 07 22 14 20  dd 20 f2 6d 6f 75 73 65  |. ...". . .mouse|
0000d400  5f 63 72 6f 73 73 32 0d  07 23 2a 20 6d 6f 75 73  |_cross2..#* mous|
0000d410  65 32 25 3f 26 30 31 3d  32 3a 6d 6f 75 73 65 32  |e2%?&01=2:mouse2|
0000d420  25 21 26 30 36 3d 6d 6f  75 73 65 32 25 2b 26 30  |%!&06=mouse2%+&0|
0000d430  41 0d 07 24 1d 20 c8 99  20 22 4f 53 5f 57 6f 72  |A..$. .. "OS_Wor|
0000d440  64 22 2c 26 31 35 2c 6d  6f 75 73 65 32 25 0d 07  |d",&15,mouse2%..|
0000d450  25 06 20 e1 0d 07 26 0e  20 dd 20 f2 6d 6f 75 73  |%. ...&. . .mous|
0000d460  65 33 0d 07 27 2a 20 6d  6f 75 73 65 33 25 3f 26  |e3..'* mouse3%?&|
0000d470  30 31 3d 32 3a 6d 6f 75  73 65 33 25 21 26 30 36  |01=2:mouse3%!&06|
0000d480  3d 6d 6f 75 73 65 33 25  2b 26 30 41 0d 07 28 1d  |=mouse3%+&0A..(.|
0000d490  20 c8 99 20 22 4f 53 5f  57 6f 72 64 22 2c 26 31  | .. "OS_Word",&1|
0000d4a0  35 2c 6d 6f 75 73 65 33  25 0d 07 29 2d 20 c8 97  |5,mouse3%..)- ..|
0000d4b0  20 ee 20 32 3a c8 97 20  fb 20 31 2c 30 2c 32 35  | . 2:.. . 1,0,25|
0000d4c0  35 2c 32 35 35 3a c8 97  20 fb 20 33 2c 34 38 2c  |5,255:.. . 3,48,|
0000d4d0  34 38 2c 31 38 34 0d 07  2a 06 20 e1 0d 07 2b 04  |48,184..*. ...+.|
0000d4e0  0d 07 2c 11 20 dd 20 f2  72 65 70 61 69 72 51 52  |..,. . .repairQR|
0000d4f0  4d 0d 07 2d 1a 20 e7 20  ac 28 a4 68 69 67 68 5f  |M..-. . .(.high_|
0000d500  72 65 73 5f 6d 6f 64 65  29 20 8c 0d 07 2e 17 20  |res_mode) ..... |
0000d510  48 25 3d 32 3a f2 6d 6f  75 73 65 5f 63 72 6f 73  |H%=2:.mouse_cros|
0000d520  73 32 0d 07 2f 06 20 cc  0d 07 30 17 20 48 25 3d  |s2../. ...0. H%=|
0000d530  31 3a f2 6d 6f 75 73 65  5f 63 72 6f 73 73 31 0d  |1:.mouse_cross1.|
0000d540  07 31 06 20 cd 0d 07 32  26 20 c8 97 20 ee 20 32  |.1. ...2& .. . 2|
0000d550  3a 4d 43 25 3d 32 35 35  3a c8 97 20 fb 20 31 2c  |:MC%=255:.. . 1,|
0000d560  4d 43 25 2c 4d 43 25 2c  4d 43 25 0d 07 33 2a 20  |MC%,MC%,MC%..3* |
0000d570  c8 99 20 22 4f 53 5f 42  79 74 65 22 2c 31 36 31  |.. "OS_Byte",161|
0000d580  2c 31 39 34 20 b8 2c 2c  73 74 65 70 25 3a c8 97  |,194 .,,step%:..|
0000d590  20 88 20 48 25 0d 07 34  26 20 f2 64 69 73 70 6c  | . H%..4& .displ|
0000d5a0  61 79 5f 6d 65 6d 6f 72  79 3a f5 3a f2 77 61 69  |ay_memory:.:.wai|
0000d5b0  74 5f 6e 6f 5f 62 75 74  74 6f 6e 0d 07 35 16 20  |t_no_button..5. |
0000d5c0  f5 3a c8 97 20 58 2c 59  2c 42 3a fd 20 42 3c 3e  |.:.. X,Y,B:. B<>|
0000d5d0  30 0d 07 36 0d 20 e7 20  48 25 3d 32 20 8c 0d 07  |0..6. . H%=2 ...|
0000d5e0  37 1c 20 58 3d 28 58 20  81 20 34 29 2a 34 3a 59  |7. X=(X . 4)*4:Y|
0000d5f0  3d 28 59 20 81 20 34 29  2a 34 0d 07 38 06 20 cc  |=(Y . 4)*4..8. .|
0000d600  0d 07 39 1c 20 58 3d 28  58 20 81 20 32 29 2a 32  |..9. X=(X . 2)*2|
0000d610  3a 59 3d 28 59 20 81 20  32 29 2a 32 0d 07 3a 06  |:Y=(Y . 2)*2..:.|
0000d620  20 cd 0d 07 3b 21 20 f2  77 61 69 74 5f 6e 6f 5f  | ...;! .wait_no_|
0000d630  62 75 74 74 6f 6e 3a e6  20 33 2c 36 33 20 c8 9c  |button:. 3,63 ..|
0000d640  31 39 32 0d 07 3c 2d 20  e7 20 42 3d 32 20 8c 20  |192..<- . B=2 . |
0000d650  4d 43 25 3d 4d 43 25 20  82 20 32 35 35 3a c8 97  |MC%=MC% . 255:..|
0000d660  20 fb 20 31 2c 4d 43 25  2c 4d 43 25 2c 4d 43 25  | . 1,MC%,MC%,MC%|
0000d670  0d 07 3d 0c 20 e7 20 42  3d 34 20 8c 0d 07 3e 20  |..=. . B=4 ...> |
0000d680  20 53 58 25 3d 58 3a 53  59 25 3d 59 3a 86 20 53  | SX%=X:SY%=Y:. S|
0000d690  58 25 2c 53 59 25 2c 58  2c 53 59 25 0d 07 3f 21  |X%,SY%,X,SY%..?!|
0000d6a0  20 e7 20 48 25 3d 32 20  8c 20 86 20 53 58 25 2c  | . H%=2 . . SX%,|
0000d6b0  53 59 25 2b 32 2c 58 2c  53 59 25 2b 32 0d 07 40  |SY%+2,X,SY%+2..@|
0000d6c0  06 20 f5 0d 07 41 10 20  f5 3a c8 97 20 58 31 2c  |. ...A. .:.. X1,|
0000d6d0  59 2c 42 0d 07 42 0d 20  e7 20 48 25 3d 32 20 8c  |Y,B..B. . H%=2 .|
0000d6e0  0d 07 43 1e 20 58 31 3d  28 58 31 20 81 20 34 29  |..C. X1=(X1 . 4)|
0000d6f0  2a 34 3a 59 3d 28 59 20  81 20 34 29 2a 34 0d 07  |*4:Y=(Y . 4)*4..|
0000d700  44 06 20 cc 0d 07 45 1e  20 58 31 3d 28 58 31 20  |D. ...E. X1=(X1 |
0000d710  81 20 32 29 2a 32 3a 59  3d 28 59 20 81 20 32 29  |. 2)*2:Y=(Y . 2)|
0000d720  2a 32 0d 07 46 06 20 cd  0d 07 47 13 20 fd 20 58  |*2..F. ...G. . X|
0000d730  31 3c 3e 58 20 84 20 42  3c 3e 30 0d 07 48 25 20  |1<>X . B<>0..H% |
0000d740  86 20 53 58 25 2c 53 59  25 2c 58 2c 53 59 25 3a  |. SX%,SY%,X,SY%:|
0000d750  86 20 53 58 25 2c 53 59  25 2c 58 31 2c 53 59 25  |. SX%,SY%,X1,SY%|
0000d760  0d 07 49 36 20 e7 20 48  25 3d 32 20 8c 20 86 20  |..I6 . H%=2 . . |
0000d770  53 58 25 2c 53 59 25 2b  32 2c 58 2c 53 59 25 2b  |SX%,SY%+2,X,SY%+|
0000d780  32 3a 86 20 53 58 25 2c  53 59 25 2b 32 2c 58 31  |2:. SX%,SY%+2,X1|
0000d790  2c 53 59 25 2b 32 0d 07  4a 10 20 58 3d 58 31 3a  |,SY%+2..J. X=X1:|
0000d7a0  fd 20 42 3c 3e 30 0d 07  4b 15 20 86 20 53 58 25  |. B<>0..K. . SX%|
0000d7b0  2c 53 59 25 2c 58 31 2c  53 59 25 0d 07 4c 22 20  |,SY%,X1,SY%..L" |
0000d7c0  e7 20 48 25 3d 32 20 8c  20 86 20 53 58 25 2c 53  |. H%=2 . . SX%,S|
0000d7d0  59 25 2b 32 2c 58 31 2c  53 59 25 2b 32 0d 07 4d  |Y%+2,X1,SY%+2..M|
0000d7e0  15 20 e7 20 42 3d 34 20  80 20 58 31 3e 53 58 25  |. . B=4 . X1>SX%|
0000d7f0  20 8c 0d 07 4e 22 20 e7  20 48 25 3d 32 20 80 20  | ...N" . H%=2 . |
0000d800  59 3c 3d 53 59 25 20 8c  20 59 6f 66 66 73 65 74  |Y<=SY% . Yoffset|
0000d810  25 3d 2d 32 0d 07 4f 20  20 e7 20 48 25 3d 32 20  |%=-2..O  . H%=2 |
0000d820  80 20 59 3e 53 59 25 20  8c 20 59 6f 66 66 73 65  |. Y>SY% . Yoffse|
0000d830  74 25 3d 35 0d 07 50 22  20 e7 20 48 25 3d 31 20  |t%=5..P" . H%=1 |
0000d840  80 20 59 3c 3d 53 59 25  20 8c 20 59 6f 66 66 73  |. Y<=SY% . Yoffs|
0000d850  65 74 25 3d 2d 31 0d 07  51 20 20 e7 20 48 25 3d  |et%=-1..Q  . H%=|
0000d860  31 20 80 20 59 3e 53 59  25 20 8c 20 59 6f 66 66  |1 . Y>SY% . Yoff|
0000d870  73 65 74 25 3d 32 0d 07  52 2c 20 ec 20 53 58 25  |set%=2..R, . SX%|
0000d880  2c 53 59 25 2b 59 6f 66  66 73 65 74 25 3a ec 20  |,SY%+Yoffset%:. |
0000d890  42 59 20 58 31 2d 53 58  25 2c 59 6f 66 66 73 65  |BY X1-SX%,Yoffse|
0000d8a0  74 25 0d 07 53 11 20 f0  26 42 46 2c 53 58 25 2c  |t%..S. .&BF,SX%,|
0000d8b0  53 59 25 0d 07 54 06 20  cd 0d 07 55 06 20 cd 0d  |SY%..T. ...U. ..|
0000d8c0  07 56 12 20 fd 20 42 3d  31 3a f2 75 70 6d 69 6e  |.V. . B=1:.upmin|
0000d8d0  69 0d 07 57 27 20 c8 97  20 ee 20 31 3a c8 97 20  |i..W' .. . 1:.. |
0000d8e0  fb 20 31 2c 30 2c 32 35  35 2c 32 35 35 3a c8 97  |. 1,0,255,255:..|
0000d8f0  20 88 20 73 74 65 70 25  0d 07 58 06 20 e1 0d 07  | . step%..X. ...|
0000d900  59 04 0d 07 5a 14 20 dd  20 f2 64 69 73 70 6c 61  |Y...Z. . .displa|
0000d910  79 5f 74 65 78 74 0d 07  5b 41 20 f2 64 69 73 70  |y_text..[A .disp|
0000d920  6c 61 79 5f 6d 65 6d 6f  72 79 3a f2 77 61 69 74  |lay_memory:.wait|
0000d930  5f 6e 6f 5f 62 75 74 74  6f 6e 3a 21 63 6f 6c 6f  |_no_button:!colo|
0000d940  75 72 5f 69 6e 63 5f 6f  72 5f 64 65 63 3d 63 6f  |ur_inc_or_dec=co|
0000d950  6c 5f 69 64 65 63 25 0d  07 5c 11 20 e7 20 6f 76  |l_idec%..\. . ov|
0000d960  65 72 6c 61 79 25 20 8c  0d 07 5d 19 20 f2 70 6c  |erlay% ...]. .pl|
0000d970  6f 74 5f 6f 76 65 72 6c  61 79 5f 73 70 72 69 74  |ot_overlay_sprit|
0000d980  65 0d 07 5e 06 20 cc 0d  07 5f 2e 20 21 63 6f 6c  |e..^. ..._. !col|
0000d990  6f 75 72 5f 73 74 6f 72  65 3d 30 3a c8 97 20 c8  |our_store=0:.. .|
0000d9a0  93 20 2d 33 30 30 2c 2d  33 30 30 2c 31 36 30 30  |. -300,-300,1600|
0000d9b0  2c 31 34 30 30 0d 07 60  49 20 e7 20 68 76 24 3d  |,1400..`I . hv$=|
0000d9c0  22 56 22 84 68 76 24 3d  22 76 22 8c 20 21 76 65  |"V".hv$="v". !ve|
0000d9d0  72 74 69 63 61 6c 5f 73  74 61 72 74 3d 28 59 6d  |rtical_start=(Ym|
0000d9e0  61 78 25 2b 34 29 2f 32  20 8b 20 21 76 65 72 74  |ax%+4)/2 . !vert|
0000d9f0  69 63 61 6c 5f 73 74 61  72 74 3d 35 30 30 0d 07  |ical_start=500..|
0000da00  61 04 0d 07 62 06 20 f5  0d 07 63 0e 20 20 c8 97  |a...b. ...c.  ..|
0000da10  20 58 2c 59 2c 42 0d 07  64 30 20 20 61 25 3d 28  | X,Y,B..d0  a%=(|
0000da20  39 36 30 2d 59 29 81 32  2a 31 32 38 30 2b 58 2d  |960-Y).2*1280+X-|
0000da30  32 30 3a 61 25 3d 28 61  25 81 34 29 2a 34 2b 73  |20:a%=(a%.4)*4+s|
0000da40  63 72 65 65 6e 25 0d 07  65 29 20 20 21 63 6f 6c  |creen%..e)  !col|
0000da50  6f 75 72 5f 73 74 6f 72  65 3d 54 43 25 3a 21 63  |our_store=TC%:!c|
0000da60  6f 6c 6f 75 72 5f 6c 69  6d 69 74 3d 54 4c 25 0d  |olour_limit=TL%.|
0000da70  07 66 2c 20 20 21 63 6f  6c 6f 75 72 5f 64 65 63  |.f,  !colour_dec|
0000da80  72 65 6d 65 6e 74 3d 54  44 25 3a 21 63 6f 6c 6f  |rement=TD%:!colo|
0000da90  75 72 5f 68 65 69 67 68  74 3d 32 0d 07 67 21 20  |ur_height=2..g! |
0000daa0  20 21 6f 70 73 74 61 72  74 3d 61 25 3a d6 20 6f  | !opstart=a%:. o|
0000dab0  75 74 70 75 74 5f 73 70  72 69 74 65 0d 07 68 07  |utput_sprite..h.|
0000dac0  20 20 f5 0d 07 69 0f 20  20 20 c8 97 20 78 2c 79  |  ...i.   .. x,y|
0000dad0  2c 42 0d 07 6a 1a 20 20  fd 20 78 3c 3e 58 20 84  |,B..j.  . x<>X .|
0000dae0  20 79 3c 3e 59 20 84 20  42 3c 3e 30 0d 07 6b 15  | y<>Y . B<>0..k.|
0000daf0  20 20 f2 64 69 73 70 6c  61 79 5f 6d 65 6d 6f 72  |  .display_memor|
0000db00  79 0d 07 6c 0b 20 fd 20  42 3c 3e 30 0d 07 6d 19  |y..l. . B<>0..m.|
0000db10  20 21 63 6f 6c 6f 75 72  5f 69 6e 63 5f 6f 72 5f  | !colour_inc_or_|
0000db20  64 65 63 3d 30 0d 07 6e  04 0d 07 6f 0c 20 e7 20  |dec=0..n...o. . |
0000db30  42 3d 34 20 8c 0d 07 70  04 0d 07 71 1b 20 e7 20  |B=4 ...p...q. . |
0000db40  74 65 78 74 5f 62 6c 6f  63 6b 5f 73 68 61 64 6f  |text_block_shado|
0000db50  77 25 20 8c 0d 07 72 35  20 20 21 73 68 61 64 6f  |w% ...r5  !shado|
0000db60  77 5f 73 74 61 72 74 3d  61 25 2d 37 36 38 30 3a  |w_start=a%-7680:|
0000db70  21 6e 75 6d 5f 6c 69 6e  65 73 3d 74 65 78 74 5f  |!num_lines=text_|
0000db80  6c 69 6e 65 73 25 2b 31  32 0d 07 73 28 20 20 21  |lines%+12..s(  !|
0000db90  6e 75 6d 5f 62 79 74 65  73 3d 74 65 78 74 5f 77  |num_bytes=text_w|
0000dba0  69 64 74 68 25 2b 31 36  3a d6 20 73 68 61 64 6f  |idth%+16:. shado|
0000dbb0  77 0d 07 74 45 20 20 73  79 25 3d 61 25 2d 37 36  |w..tE  sy%=a%-76|
0000dbc0  38 30 2d 73 63 72 65 65  6e 25 3a 73 79 25 3d 31  |80-screen%:sy%=1|
0000dbd0  30 32 34 2d 28 73 79 25  81 31 32 38 30 29 2a 32  |024-(sy%.1280)*2|
0000dbe0  3a 73 78 25 3d 28 61 25  2d 73 63 72 65 65 6e 25  |:sx%=(a%-screen%|
0000dbf0  29 83 31 32 38 30 0d 07  75 3a 20 20 e6 20 32 30  |).1280..u:  . 20|
0000dc00  38 2c 32 30 38 2c 32 30  38 3a c8 93 20 c8 90 20  |8,208,208:.. .. |
0000dc10  73 78 25 2c 73 79 25 2c  74 65 78 74 5f 77 69 64  |sx%,sy%,text_wid|
0000dc20  74 68 25 2b 31 34 2c 32  3a e6 20 30 2c 30 2c 30  |th%+14,2:. 0,0,0|
0000dc30  0d 07 76 3d 20 20 c8 93  20 c8 90 20 73 78 25 2c  |..v=  .. .. sx%,|
0000dc40  28 73 79 25 2d 28 28 74  65 78 74 5f 6c 69 6e 65  |(sy%-((text_line|
0000dc50  73 25 2b 31 32 29 2a 32  29 29 2d 32 2c 74 65 78  |s%+12)*2))-2,tex|
0000dc60  74 5f 77 69 64 74 68 25  2b 31 34 2c 32 0d 07 77  |t_width%+14,2..w|
0000dc70  13 20 20 e6 20 31 38 30  2c 31 38 30 2c 31 38 30  |.  . 180,180,180|
0000dc80  0d 07 78 45 20 20 c8 93  20 c8 90 20 73 78 25 2d  |..xE  .. .. sx%-|
0000dc90  32 2c 28 73 79 25 2d 28  28 74 65 78 74 5f 6c 69  |2,(sy%-((text_li|
0000dca0  6e 65 73 25 2b 31 32 29  2a 32 29 29 2d 32 2c 32  |nes%+12)*2))-2,2|
0000dcb0  2c 28 74 65 78 74 5f 6c  69 6e 65 73 25 2b 31 32  |,(text_lines%+12|
0000dcc0  29 2a 32 2b 34 0d 07 79  10 20 20 e6 20 33 32 2c  |)*2+4..y.  . 32,|
0000dcd0  33 32 2c 33 32 0d 07 7a  52 20 20 c8 93 20 c8 90  |32,32..zR  .. ..|
0000dce0  20 73 78 25 2b 74 65 78  74 5f 77 69 64 74 68 25  | sx%+text_width%|
0000dcf0  2b 31 34 2c 28 73 79 25  2d 28 28 74 65 78 74 5f  |+14,(sy%-((text_|
0000dd00  6c 69 6e 65 73 25 2b 31  32 29 2a 32 29 29 2d 32  |lines%+12)*2))-2|
0000dd10  2c 32 2c 28 74 65 78 74  5f 6c 69 6e 65 73 25 2b  |,2,(text_lines%+|
0000dd20  31 32 29 2a 32 2b 32 0d  07 7b 07 20 20 cd 0d 07  |12)*2+2..{.  ...|
0000dd30  7c 04 0d 07 7d 30 20 e7  20 72 65 61 6c 5f 73 68  ||...}0 . real_sh|
0000dd40  61 64 6f 77 31 25 3d 31  20 8c 20 f2 72 65 61 6c  |adow1%=1 . .real|
0000dd50  5f 73 68 61 64 6f 77 31  28 31 30 2c 73 68 61 64  |_shadow1(10,shad|
0000dd60  24 29 0d 07 7e 47 20 e7  20 72 65 61 6c 5f 73 68  |$)..~G . real_sh|
0000dd70  61 64 6f 77 31 25 3d 32  20 84 20 72 65 61 6c 5f  |adow1%=2 . real_|
0000dd80  73 68 61 64 6f 77 31 25  3d 33 20 8c 20 f2 72 65  |shadow1%=3 . .re|
0000dd90  61 6c 5f 73 68 61 64 6f  77 32 28 72 65 61 6c 5f  |al_shadow2(real_|
0000dda0  73 68 61 64 6f 77 31 25  29 0d 07 7f 26 20 e7 20  |shadow1%)...& . |
0000ddb0  73 68 61 64 6f 77 25 20  8c 20 f2 73 68 61 64 6f  |shadow% . .shado|
0000ddc0  77 5f 74 65 78 74 28 35  2c 73 68 61 64 24 29 0d  |w_text(5,shad$).|
0000ddd0  07 80 2c 20 e7 20 73 6f  6c 69 64 25 20 8c 20 f2  |.., . solid% . .|
0000dde0  73 6f 6c 69 64 5f 74 65  78 74 3a 6f 75 74 6c 69  |solid_text:outli|
0000ddf0  6e 65 5f 77 69 64 74 68  25 3d 30 0d 07 81 04 0d  |ne_width%=0.....|
0000de00  07 82 2c 20 e7 20 6f 75  74 6c 69 6e 65 5f 77 69  |.., . outline_wi|
0000de10  64 74 68 25 3d 31 20 84  20 6f 75 74 6c 69 6e 65  |dth%=1 . outline|
0000de20  5f 77 69 64 74 68 25 3d  32 20 8c 0d 07 83 29 20  |_width%=2 ....) |
0000de30  20 21 63 6f 6c 6f 75 72  5f 64 65 63 72 65 6d 65  | !colour_decreme|
0000de40  6e 74 3d 30 3a 21 63 6f  6c 6f 75 72 5f 6c 69 6d  |nt=0:!colour_lim|
0000de50  69 74 3d 30 0d 07 84 31  20 20 77 25 3d 32 35 36  |it=0...1  w%=256|
0000de60  30 2a 6f 75 74 6c 69 6e  65 5f 77 69 64 74 68 25  |0*outline_width%|
0000de70  3a 77 32 25 3d 34 2a 6f  75 74 6c 69 6e 65 5f 77  |:w2%=4*outline_w|
0000de80  69 64 74 68 25 0d 07 85  1e 20 20 e3 20 4a 25 3d  |idth%....  . J%=|
0000de90  61 25 2d 77 25 20 b8 20  61 25 2b 77 25 20 88 31  |a%-w% . a%+w% .1|
0000dea0  32 38 30 0d 07 86 1e 20  20 20 e3 20 4e 25 3d 4a  |280....   . N%=J|
0000deb0  25 2d 77 32 25 20 b8 20  4a 25 2b 77 32 25 20 88  |%-w2% . J%+w2% .|
0000dec0  34 0d 07 87 3f 20 20 20  20 21 6f 70 73 74 61 72  |4...?    !opstar|
0000ded0  74 3d 4e 25 3a 21 63 6f  6c 6f 75 72 5f 73 74 6f  |t=N%:!colour_sto|
0000dee0  72 65 3d 74 65 78 74 5f  6f 75 74 5f 63 6f 6c 25  |re=text_out_col%|
0000def0  3a d6 20 6f 75 74 70 75  74 5f 73 70 72 69 74 65  |:. output_sprite|
0000df00  0d 07 88 08 20 20 20 ed  0d 07 89 07 20 20 ed 0d  |....   .....  ..|
0000df10  07 8a 06 20 cd 0d 07 8b  04 0d 07 8c 19 20 e7 20  |... ......... . |
0000df20  6f 75 74 6c 69 6e 65 5f  77 69 64 74 68 25 3d 33  |outline_width%=3|
0000df30  20 8c 0d 07 8d 39 20 20  f4 20 6e 65 77 20 72 65  | ....9  . new re|
0000df40  6c 69 65 66 20 65 66 66  65 63 74 20 2d 20 6f 75  |lief effect - ou|
0000df50  74 6c 69 6e 65 20 6f 6e  20 74 6f 70 20 61 6e 64  |tline on top and|
0000df60  20 6c 65 66 74 20 65 64  67 65 73 0d 07 8e 29 20  | left edges...) |
0000df70  20 21 63 6f 6c 6f 75 72  5f 64 65 63 72 65 6d 65  | !colour_decreme|
0000df80  6e 74 3d 30 3a 21 63 6f  6c 6f 75 72 5f 6c 69 6d  |nt=0:!colour_lim|
0000df90  69 74 3d 30 0d 07 8f 34  20 20 21 6f 70 73 74 61  |it=0...4  !opsta|
0000dfa0  72 74 3d 61 25 2d 32 35  36 30 2d 34 3a 21 63 6f  |rt=a%-2560-4:!co|
0000dfb0  6c 6f 75 72 5f 73 74 6f  72 65 3d 74 65 78 74 5f  |lour_store=text_|
0000dfc0  6f 75 74 5f 63 6f 6c 25  0d 07 90 15 20 20 d6 20  |out_col%....  . |
0000dfd0  6f 75 74 70 75 74 5f 73  70 72 69 74 65 0d 07 91  |output_sprite...|
0000dfe0  34 20 20 21 6f 70 73 74  61 72 74 3d 61 25 2d 35  |4  !opstart=a%-5|
0000dff0  31 32 30 2d 38 3a 21 63  6f 6c 6f 75 72 5f 73 74  |120-8:!colour_st|
0000e000  6f 72 65 3d 74 65 78 74  5f 6f 75 74 5f 63 6f 6c  |ore=text_out_col|
0000e010  25 0d 07 92 15 20 20 d6  20 6f 75 74 70 75 74 5f  |%....  . output_|
0000e020  73 70 72 69 74 65 0d 07  93 06 20 cd 0d 07 94 04  |sprite.... .....|
0000e030  0d 07 95 34 20 21 6f 70  73 74 61 72 74 3d 61 25  |...4 !opstart=a%|
0000e040  3a 21 63 6f 6c 6f 75 72  5f 73 74 6f 72 65 3d 54  |:!colour_store=T|
0000e050  43 25 3a 21 63 6f 6c 6f  75 72 5f 6c 69 6d 69 74  |C%:!colour_limit|
0000e060  3d 54 4c 25 0d 07 96 37  20 21 63 6f 6c 6f 75 72  |=TL%...7 !colour|
0000e070  5f 64 65 63 72 65 6d 65  6e 74 3d 54 44 25 3a 21  |_decrement=TD%:!|
0000e080  63 6f 6c 6f 75 72 5f 69  6e 63 5f 6f 72 5f 64 65  |colour_inc_or_de|
0000e090  63 3d 63 6f 6c 5f 69 64  65 63 25 0d 07 97 04 0d  |c=col_idec%.....|
0000e0a0  07 98 18 20 e7 20 68 76  24 3d 22 56 22 84 68 76  |... . hv$="V".hv|
0000e0b0  24 3d 22 76 22 20 8c 0d  07 99 21 20 20 21 76 65  |$="v" ....!  !ve|
0000e0c0  72 74 69 63 61 6c 5f 73  74 61 72 74 3d 28 59 6d  |rtical_start=(Ym|
0000e0d0  61 78 25 2b 34 29 2f 32  0d 07 9a 16 20 20 21 63  |ax%+4)/2....  !c|
0000e0e0  6f 6c 6f 75 72 5f 68 65  69 67 68 74 3d 32 0d 07  |olour_height=2..|
0000e0f0  9b 06 20 cc 0d 07 9c 19  20 20 21 76 65 72 74 69  |.. .....  !verti|
0000e100  63 61 6c 5f 73 74 61 72  74 3d 35 30 30 0d 07 9d  |cal_start=500...|
0000e110  2a 20 20 21 63 6f 6c 6f  75 72 5f 68 65 69 67 68  |*  !colour_heigh|
0000e120  74 3d 31 2b 28 a8 28 74  65 78 74 5f 6c 69 6e 65  |t=1+(.(text_line|
0000e130  73 25 2f 34 30 29 29 0d  07 9e 06 20 cd 0d 07 9f  |s%/40)).... ....|
0000e140  04 0d 07 a0 23 20 d6 20  6f 75 74 70 75 74 5f 73  |....# . output_s|
0000e150  70 72 69 74 65 3a f2 75  70 6c 6f 61 64 5f 6d 65  |prite:.upload_me|
0000e160  6d 6f 72 79 0d 07 a1 04  0d 07 a2 16 20 cc 20 f2  |mory........ . .|
0000e170  64 69 73 70 6c 61 79 5f  6d 65 6d 6f 72 79 0d 07  |display_memory..|
0000e180  a3 04 0d 07 a4 06 20 cd  0d 07 a5 06 20 cd 0d 07  |...... ..... ...|
0000e190  a6 18 20 c8 97 20 c8 93  20 30 2c 30 2c 31 32 38  |.. .. .. 0,0,128|
0000e1a0  30 2c 31 30 32 34 0d 07  a7 06 20 e1 0d 07 a8 04  |0,1024.... .....|
0000e1b0  0d 07 a9 20 20 dd 20 f2  73 68 61 64 6f 77 5f 74  |...  . .shadow_t|
0000e1c0  65 78 74 28 73 69 7a 65  25 2c 73 68 61 64 24 29  |ext(size%,shad$)|
0000e1d0  0d 07 aa 22 20 e7 20 6f  75 74 6c 69 6e 65 5f 77  |..." . outline_w|
0000e1e0  69 64 74 68 25 3e 30 20  8c 20 73 69 7a 65 25 2b  |idth%>0 . size%+|
0000e1f0  3d 32 0d 07 ab 3b 20 21  63 6f 6c 6f 75 72 5f 64  |=2...; !colour_d|
0000e200  65 63 72 65 6d 65 6e 74  3d 30 3a 21 63 6f 6c 6f  |ecrement=0:!colo|
0000e210  75 72 5f 6c 69 6d 69 74  3d 30 3a 78 25 3d 73 69  |ur_limit=0:x%=si|
0000e220  7a 65 25 2a 34 3a 73 63  25 3d 53 43 25 0d 07 ac  |ze%*4:sc%=SC%...|
0000e230  27 20 e7 20 73 68 61 64  24 3d 22 42 4c 22 20 84  |' . shad$="BL" .|
0000e240  20 73 68 61 64 24 3d 22  54 4c 22 20 8c 20 78 25  | shad$="TL" . x%|
0000e250  3d 2d 78 25 0d 07 ad 25  20 e3 20 4a 25 3d 61 25  |=-x%...% . J%=a%|
0000e260  2b 28 73 69 7a 65 25 2a  32 35 36 30 29 20 b8 20  |+(size%*2560) . |
0000e270  61 25 20 88 2d 32 35 36  30 0d 07 ae 3b 20 4e 25  |a% .-2560...; N%|
0000e280  3d 4a 25 2b 78 25 3a 21  6f 70 73 74 61 72 74 3d  |=J%+x%:!opstart=|
0000e290  4e 25 3a 21 63 6f 6c 6f  75 72 5f 73 74 6f 72 65  |N%:!colour_store|
0000e2a0  3d 73 63 25 3a d6 20 6f  75 74 70 75 74 5f 73 70  |=sc%:. output_sp|
0000e2b0  72 69 74 65 0d 07 af 0e  20 e7 20 67 72 61 64 25  |rite.... . grad%|
0000e2c0  20 8c 0d 07 b0 2d 20 72  25 3d 73 63 25 80 33 31  | ....- r%=sc%.31|
0000e2d0  3a 67 25 3d 28 73 63 25  3e 3e 35 29 80 33 31 3a  |:g%=(sc%>>5).31:|
0000e2e0  62 25 3d 28 73 63 25 3e  3e 31 30 29 80 33 31 0d  |b%=(sc%>>10).31.|
0000e2f0  07 b1 13 20 e7 20 72 25  3e 31 20 8c 20 72 25 2d  |... . r%>1 . r%-|
0000e300  3d 32 0d 07 b2 13 20 e7  20 67 25 3e 31 20 8c 20  |=2.... . g%>1 . |
0000e310  67 25 2d 3d 32 0d 07 b3  13 20 e7 20 62 25 3e 31  |g%-=2.... . b%>1|
0000e320  20 8c 20 62 25 2d 3d 32  0d 07 b4 1c 20 73 63 25  | . b%-=2.... sc%|
0000e330  3d 28 62 25 3c 3c 31 30  29 2b 28 67 25 3c 3c 35  |=(b%<<10)+(g%<<5|
0000e340  29 2b 72 25 0d 07 b5 06  20 cd 0d 07 b6 2e 20 e7  |)+r%.... ..... .|
0000e350  20 73 68 61 64 24 3d 22  42 4c 22 20 84 20 73 68  | shad$="BL" . sh|
0000e360  61 64 24 3d 22 54 4c 22  20 8c 20 78 25 2b 3d 34  |ad$="TL" . x%+=4|
0000e370  20 8b 20 78 25 2d 3d 34  0d 07 b7 06 20 ed 0d 07  | . x%-=4.... ...|
0000e380  b8 06 20 e1 0d 07 b9 04  0d 07 ba 12 20 dd 20 f2  |.. ......... . .|
0000e390  73 6f 6c 69 64 5f 74 65  78 74 0d 07 bb 37 20 21  |solid_text...7 !|
0000e3a0  63 6f 6c 6f 75 72 5f 64  65 63 72 65 6d 65 6e 74  |colour_decrement|
0000e3b0  3d 30 3a 21 63 6f 6c 6f  75 72 5f 6c 69 6d 69 74  |=0:!colour_limit|
0000e3c0  3d 30 3a 78 25 3d 2d 32  34 3a 73 63 25 3d 54 43  |=0:x%=-24:sc%=TC|
0000e3d0  25 0d 07 bc 30 20 73 74  72 3d 73 63 25 80 33 31  |%...0 str=sc%.31|
0000e3e0  3a 73 74 67 3d 28 73 63  25 3e 3e 35 29 80 33 31  |:stg=(sc%>>5).31|
0000e3f0  3a 73 74 62 3d 28 73 63  25 3e 3e 31 30 29 80 33  |:stb=(sc%>>10).3|
0000e400  31 0d 07 bd 17 20 73 74  72 69 3d 28 73 74 72 2d  |1.... stri=(str-|
0000e410  73 74 72 2f 33 29 2f 38  0d 07 be 17 20 73 74 67  |str/3)/8.... stg|
0000e420  69 3d 28 73 74 67 2d 73  74 67 2f 33 29 2f 38 0d  |i=(stg-stg/3)/8.|
0000e430  07 bf 17 20 73 74 62 69  3d 28 73 74 62 2d 73 74  |... stbi=(stb-st|
0000e440  62 2f 33 29 2f 38 0d 07  c0 22 20 73 74 72 3d 73  |b/3)/8..." str=s|
0000e450  74 72 2f 33 3a 73 74 67  3d 73 74 67 2f 33 3a 73  |tr/3:stg=stg/3:s|
0000e460  74 62 3d 73 74 62 2f 33  0d 07 c1 21 20 e3 20 4a  |tb=stb/3...! . J|
0000e470  25 3d 61 25 2d 28 36 2a  32 35 36 30 29 20 b8 20  |%=a%-(6*2560) . |
0000e480  61 25 20 88 20 32 35 36  30 0d 07 c2 1f 20 73 63  |a% . 2560.... sc|
0000e490  25 3d 28 73 74 62 3c 3c  31 30 29 2b 28 73 74 67  |%=(stb<<10)+(stg|
0000e4a0  3c 3c 35 29 2b 73 74 72  0d 07 c3 3b 20 4e 25 3d  |<<5)+str...; N%=|
0000e4b0  4a 25 2b 78 25 3a 21 6f  70 73 74 61 72 74 3d 4e  |J%+x%:!opstart=N|
0000e4c0  25 3a 21 63 6f 6c 6f 75  72 5f 73 74 6f 72 65 3d  |%:!colour_store=|
0000e4d0  73 63 25 3a d6 20 6f 75  74 70 75 74 5f 73 70 72  |sc%:. output_spr|
0000e4e0  69 74 65 0d 07 c4 2b 20  73 74 72 3d 73 74 72 2b  |ite...+ str=str+|
0000e4f0  73 74 72 69 3a 73 74 67  3d 73 74 67 2b 73 74 67  |stri:stg=stg+stg|
0000e500  69 3a 73 74 62 3d 73 74  62 2b 73 74 62 69 0d 07  |i:stb=stb+stbi..|
0000e510  c5 0a 20 78 25 2b 3d 34  0d 07 c6 06 20 ed 0d 07  |.. x%+=4.... ...|
0000e520  c7 06 20 e1 0d 07 c8 04  0d 07 c9 21 20 dd 20 f2  |.. ........! . .|
0000e530  72 65 61 6c 5f 73 68 61  64 6f 77 31 28 73 69 7a  |real_shadow1(siz|
0000e540  65 25 2c 73 68 61 64 24  29 0d 07 ca 10 20 e3 20  |e%,shad$).... . |
0000e550  4e 25 3d 30 20 b8 20 33  31 0d 07 cb 33 20 67 72  |N%=0 . 31...3 gr|
0000e560  6e 64 61 74 61 3f 4e 25  3d 4e 25 2d 32 3a e7 20  |ndata?N%=N%-2:. |
0000e570  67 72 6e 64 61 74 61 3f  4e 25 3e 33 31 20 8c 20  |grndata?N%>31 . |
0000e580  67 72 6e 64 61 74 61 3f  4e 25 3d 30 0d 07 cc 06  |grndata?N%=0....|
0000e590  20 ed 0d 07 cd 3b 20 21  63 6f 6c 6f 75 72 5f 64  | ....; !colour_d|
0000e5a0  65 63 72 65 6d 65 6e 74  3d 30 3a 21 63 6f 6c 6f  |ecrement=0:!colo|
0000e5b0  75 72 5f 6c 69 6d 69 74  3d 30 3a 78 25 3d 73 69  |ur_limit=0:x%=si|
0000e5c0  7a 65 25 2a 34 3a 73 63  25 3d 53 43 25 0d 07 ce  |ze%*4:sc%=SC%...|
0000e5d0  32 20 21 73 68 61 64 6f  77 5f 74 61 62 6c 65 5f  |2 !shadow_table_|
0000e5e0  61 64 64 72 65 73 73 3d  67 72 6e 64 61 74 61 3a  |address=grndata:|
0000e5f0  21 63 6f 6c 6f 75 72 5f  73 74 6f 72 65 3d 31 0d  |!colour_store=1.|
0000e600  07 cf 27 20 e7 20 73 68  61 64 24 3d 22 42 4c 22  |..' . shad$="BL"|
0000e610  20 84 20 73 68 61 64 24  3d 22 54 4c 22 20 8c 20  | . shad$="TL" . |
0000e620  78 25 3d 2d 78 25 0d 07  d0 2c 20 e3 20 4a 25 3d  |x%=-x%..., . J%=|
0000e630  61 25 2b 28 73 69 7a 65  25 2a 32 35 36 30 29 20  |a%+(size%*2560) |
0000e640  b8 20 61 25 2d 32 35 36  30 2a 30 20 88 2d 32 35  |. a%-2560*0 .-25|
0000e650  36 30 0d 07 d1 29 20 4e  25 3d 4a 25 2b 78 25 3a  |60...) N%=J%+x%:|
0000e660  21 6f 70 73 74 61 72 74  3d 4e 25 3a d6 20 6f 75  |!opstart=N%:. ou|
0000e670  74 70 75 74 5f 73 70 72  69 74 65 0d 07 d2 2e 20  |tput_sprite.... |
0000e680  e7 20 73 68 61 64 24 3d  22 42 4c 22 20 84 20 73  |. shad$="BL" . s|
0000e690  68 61 64 24 3d 22 54 4c  22 20 8c 20 78 25 2b 3d  |had$="TL" . x%+=|
0000e6a0  34 20 8b 20 78 25 2d 3d  34 0d 07 d3 06 20 ed 0d  |4 . x%-=4.... ..|
0000e6b0  07 d4 3f 20 e3 20 4e 25  3d 30 20 b8 20 33 31 3a  |..? . N%=0 . 31:|
0000e6c0  67 72 6e 64 61 74 61 3f  4e 25 3d 4e 25 2d 34 3a  |grndata?N%=N%-4:|
0000e6d0  e7 20 67 72 6e 64 61 74  61 3f 4e 25 3e 33 31 20  |. grndata?N%>31 |
0000e6e0  8c 20 67 72 6e 64 61 74  61 3f 4e 25 3d 30 0d 07  |. grndata?N%=0..|
0000e6f0  d5 06 20 ed 0d 07 d6 2b  20 4e 25 3d 61 25 2d 32  |.. ....+ N%=a%-2|
0000e700  35 36 34 3a 21 6f 70 73  74 61 72 74 3d 4e 25 3a  |564:!opstart=N%:|
0000e710  d6 20 6f 75 74 70 75 74  5f 73 70 72 69 74 65 0d  |. output_sprite.|
0000e720  07 d7 2b 20 4e 25 3d 61  25 2d 35 31 32 38 3a 21  |..+ N%=a%-5128:!|
0000e730  6f 70 73 74 61 72 74 3d  4e 25 3a d6 20 6f 75 74  |opstart=N%:. out|
0000e740  70 75 74 5f 73 70 72 69  74 65 0d 07 d8 2b 20 4e  |put_sprite...+ N|
0000e750  25 3d 61 25 2d 32 35 36  30 3a 21 6f 70 73 74 61  |%=a%-2560:!opsta|
0000e760  72 74 3d 4e 25 3a d6 20  6f 75 74 70 75 74 5f 73  |rt=N%:. output_s|
0000e770  70 72 69 74 65 0d 07 d9  2b 20 4e 25 3d 61 25 2d  |prite...+ N%=a%-|
0000e780  35 31 32 30 3a 21 6f 70  73 74 61 72 74 3d 4e 25  |5120:!opstart=N%|
0000e790  3a d6 20 6f 75 74 70 75  74 5f 73 70 72 69 74 65  |:. output_sprite|
0000e7a0  0d 07 da 2b 20 4e 25 3d  61 25 2d 32 35 35 36 3a  |...+ N%=a%-2556:|
0000e7b0  21 6f 70 73 74 61 72 74  3d 4e 25 3a d6 20 6f 75  |!opstart=N%:. ou|
0000e7c0  74 70 75 74 5f 73 70 72  69 74 65 0d 07 db 2b 20  |tput_sprite...+ |
0000e7d0  4e 25 3d 61 25 2d 35 31  31 36 3a 21 6f 70 73 74  |N%=a%-5116:!opst|
0000e7e0  61 72 74 3d 4e 25 3a d6  20 6f 75 74 70 75 74 5f  |art=N%:. output_|
0000e7f0  73 70 72 69 74 65 0d 07  dc 06 20 e1 0d 07 dd 04  |sprite.... .....|
0000e800  0d 07 de 18 20 dd 20 f2  72 65 61 6c 5f 73 68 61  |.... . .real_sha|
0000e810  64 6f 77 32 28 73 25 29  0d 07 df 22 20 e3 20 4e  |dow2(s%)..." . N|
0000e820  25 3d 30 20 b8 20 33 31  3a 67 72 6e 64 61 74 61  |%=0 . 31:grndata|
0000e830  3f 4e 25 3d 4e 25 2f 32  3a ed 0d 07 e0 28 20 21  |?N%=N%/2:....( !|
0000e840  63 6f 6c 6f 75 72 5f 64  65 63 72 65 6d 65 6e 74  |colour_decrement|
0000e850  3d 30 3a 21 63 6f 6c 6f  75 72 5f 6c 69 6d 69 74  |=0:!colour_limit|
0000e860  3d 30 0d 07 e1 32 20 21  73 68 61 64 6f 77 5f 74  |=0...2 !shadow_t|
0000e870  61 62 6c 65 5f 61 64 64  72 65 73 73 3d 67 72 6e  |able_address=grn|
0000e880  64 61 74 61 3a 21 63 6f  6c 6f 75 72 5f 73 74 6f  |data:!colour_sto|
0000e890  72 65 3d 31 0d 07 e2 35  20 e7 20 73 25 3d 32 20  |re=1...5 . s%=2 |
0000e8a0  21 6f 70 73 74 61 72 74  3d 61 25 2b 31 32 2a 31  |!opstart=a%+12*1|
0000e8b0  32 38 32 20 8b 20 21 6f  70 73 74 61 72 74 3d 61  |282 . !opstart=a|
0000e8c0  25 2b 32 30 2a 31 32 38  32 0d 07 e3 14 20 d6 20  |%+20*1282.... . |
0000e8d0  6f 75 74 70 75 74 5f 73  70 72 69 74 65 0d 07 e4  |output_sprite...|
0000e8e0  06 20 e1 0d 07 e5 04 0d  07 e6 11 20 dd 20 f2 67  |. ......... . .g|
0000e8f0  72 61 62 5f 74 65 78 74  0d 07 e7 1c 20 e7 20 68  |rab_text.... . h|
0000e900  76 32 24 3d 22 56 22 20  84 20 68 76 32 24 3d 22  |v2$="V" . hv2$="|
0000e910  76 22 20 8c 0d 07 e8 1e  20 21 66 74 5f 62 6f 74  |v" ..... !ft_bot|
0000e920  74 6f 6d 3d 73 63 72 65  65 6e 25 2b 26 39 46 42  |tom=screen%+&9FB|
0000e930  30 30 0d 07 e9 06 20 cc  0d 07 ea 1e 20 21 66 74  |00.... ..... !ft|
0000e940  5f 62 6f 74 74 6f 6d 3d  73 63 72 65 65 6e 25 2b  |_bottom=screen%+|
0000e950  26 36 35 45 30 30 0d 07  eb 06 20 cd 0d 07 ec 17  |&65E00.... .....|
0000e960  20 21 66 74 5f 73 63 72  65 65 6e 3d 73 63 72 65  | !ft_screen=scre|
0000e970  65 6e 25 0d 07 ed 13 20  53 25 3d ba 28 66 69 6e  |en%.... S%=.(fin|
0000e980  64 5f 74 6f 70 29 0d 07  ee 16 20 45 25 3d ba 28  |d_top).... E%=.(|
0000e990  66 69 6e 64 5f 62 6f 74  74 6f 6d 29 0d 07 ef 29  |find_bottom)...)|
0000e9a0  20 21 66 74 5f 72 69 67  68 74 3d 53 25 3a 21 66  | !ft_right=S%:!f|
0000e9b0  72 6c 69 6e 65 73 3d 28  45 25 2d 53 25 29 81 31  |rlines=(E%-S%).1|
0000e9c0  32 38 30 2b 31 0d 07 f0  15 20 57 25 3d ba 28 66  |280+1.... W%=.(f|
0000e9d0  69 6e 64 5f 72 69 67 68  74 29 0d 07 f1 36 20 74  |ind_right)...6 t|
0000e9e0  65 78 74 5f 77 69 64 74  68 25 3d 57 25 3a 21 67  |ext_width%=W%:!g|
0000e9f0  65 74 77 69 64 74 68 3d  74 65 78 74 5f 77 69 64  |etwidth=text_wid|
0000ea00  74 68 25 3a 21 67 65 74  73 74 61 72 74 3d 53 25  |th%:!getstart=S%|
0000ea10  0d 07 f2 2f 20 21 67 65  74 73 74 6f 72 65 3d 73  |.../ !getstore=s|
0000ea20  70 72 25 2b 31 36 3a 21  67 65 74 6c 69 6e 65 73  |pr%+16:!getlines|
0000ea30  3d 28 45 25 2d 53 25 29  81 31 32 38 30 2b 31 0d  |=(E%-S%).1280+1.|
0000ea40  07 f3 1a 20 74 65 78 74  5f 6c 69 6e 65 73 25 3d  |... text_lines%=|
0000ea50  21 67 65 74 6c 69 6e 65  73 0d 07 f4 23 20 21 73  |!getlines...# !s|
0000ea60  70 72 25 3d 57 25 3a 73  70 72 25 21 34 3d 28 45  |pr%=W%:spr%!4=(E|
0000ea70  25 2d 53 25 29 81 31 32  38 30 2b 31 0d 07 f5 11  |%-S%).1280+1....|
0000ea80  20 73 70 72 25 21 38 3d  26 34 34 30 30 0d 07 f6  | spr%!8=&4400...|
0000ea90  29 20 e7 20 28 21 67 65  74 6c 69 6e 65 73 29 2a  |) . (!getlines)*|
0000eaa0  28 21 67 65 74 77 69 64  74 68 29 3e 74 78 74 73  |(!getwidth)>txts|
0000eab0  69 7a 65 25 20 8c 0d 07  f7 32 20 20 74 65 78 74  |ize% ....2  text|
0000eac0  31 24 3d 22 22 3a 6f 76  65 72 6c 61 79 25 3d 30  |1$="":overlay%=0|
0000ead0  3a 6d 61 73 6b 5f 63 72  65 61 74 65 64 25 3d 30  |:mask_created%=0|
0000eae0  3a 74 65 78 74 25 3d 30  0d 07 f8 3e 20 20 85 20  |:text%=0...>  . |
0000eaf0  31 39 39 37 2c 22 43 61  70 74 69 6f 6e 20 69 73  |1997,"Caption is|
0000eb00  20 74 6f 6f 20 6c 61 72  67 65 20 66 6f 72 20 61  | too large for a|
0000eb10  76 61 69 6c 61 62 6c 65  20 6f 76 65 72 6c 61 79  |vailable overlay|
0000eb20  20 61 72 65 61 22 0d 07  f9 06 20 cd 0d 07 fa 11  | area".... .....|
0000eb30  20 d6 20 67 65 74 5f 73  63 72 65 65 6e 0d 07 fb  | . get_screen...|
0000eb40  06 20 e1 0d 07 fc 04 0d  07 fd 19 20 dd 20 f2 6d  |. ......... . .m|
0000eb50  79 73 70 72 69 74 65 5f  61 73 73 65 6d 62 6c 65  |ysprite_assemble|
0000eb60  0d 07 fe 14 20 de 20 6d  79 73 70 72 69 74 65 25  |.... . mysprite%|
0000eb70  20 39 36 30 0d 07 ff 04  0d 08 00 38 20 f4 20 52  | 960.......8 . R|
0000eb80  65 67 69 73 74 65 72 73  20 75 73 65 64 20 69 6e  |egisters used in|
0000eb90  20 22 66 69 6e 64 22 20  72 6f 75 74 69 6e 65 73  | "find" routines|
0000eba0  20 61 6e 64 20 2e 67 65  74 5f 73 63 72 65 65 6e  | and .get_screen|
0000ebb0  0d 08 01 33 20 62 61 73  65 32 3d 32 3a 62 61 73  |...3 base2=2:bas|
0000ebc0  65 3d 33 3a 6f 66 66 73  65 74 3d 34 3a 64 61 74  |e=3:offset=4:dat|
0000ebd0  61 3d 35 3a 6c 69 6e 65  73 3d 36 3a 77 68 69 74  |a=5:lines=6:whit|
0000ebe0  65 3d 37 0d 08 02 04 0d  08 03 27 20 f4 20 52 65  |e=7.......' . Re|
0000ebf0  67 69 73 74 65 72 73 20  75 73 65 64 20 69 6e 20  |gisters used in |
0000ec00  2e 6f 75 74 70 75 74 5f  73 70 72 69 74 65 0d 08  |.output_sprite..|
0000ec10  04 35 20 63 6f 6c 6f 75  72 3d 31 3a 62 61 73 65  |.5 colour=1:base|
0000ec20  32 3d 32 3a 74 61 62 6c  65 3d 33 3a 64 61 74 61  |2=2:table=3:data|
0000ec30  33 3d 34 3a 64 61 74 61  31 3d 35 3a 6c 69 6e 65  |3=4:data1=5:line|
0000ec40  73 3d 36 0d 08 05 38 20  6d 61 73 6b 32 3d 37 3a  |s=6...8 mask2=7:|
0000ec50  6d 61 73 6b 31 3d 38 3a  64 61 74 61 32 3d 39 3a  |mask1=8:data2=9:|
0000ec60  73 63 72 6e 31 3d 31 30  3a 73 63 72 6e 32 3d 31  |scrn1=10:scrn2=1|
0000ec70  31 3a 72 65 73 75 6c 74  3d 31 32 0d 08 06 11 20  |1:result=12.... |
0000ec80  e3 20 50 3d 30 20 b8 20  32 20 88 32 0d 08 07 11  |. P=0 . 2 .2....|
0000ec90  20 50 25 3d 6d 79 73 70  72 69 74 65 25 0d 08 08  | P%=mysprite%...|
0000eca0  0b 20 5b 4f 50 54 20 50  0d 08 09 16 20 2e 66 74  |. [OPT P.... .ft|
0000ecb0  5f 73 63 72 65 65 6e 20  45 51 55 44 20 30 0d 08  |_screen EQUD 0..|
0000ecc0  0a 1e 20 2e 66 74 5f 77  68 69 74 65 20 20 45 51  |.. .ft_white  EQ|
0000ecd0  55 44 20 26 37 46 46 46  37 46 46 46 0d 08 0b 16  |UD &7FFF7FFF....|
0000ece0  20 2e 66 74 5f 62 6f 74  74 6f 6d 20 45 51 55 44  | .ft_bottom EQUD|
0000ecf0  20 30 0d 08 0c 16 20 2e  66 74 5f 72 69 67 68 74  | 0.... .ft_right|
0000ed00  20 20 45 51 55 44 20 30  0d 08 0d 16 20 2e 66 72  |  EQUD 0.... .fr|
0000ed10  6c 69 6e 65 73 20 20 20  45 51 55 44 20 30 0d 08  |lines   EQUD 0..|
0000ed20  0e 16 20 2e 67 65 74 77  69 64 74 68 20 20 45 51  |.. .getwidth  EQ|
0000ed30  55 44 20 30 0d 08 0f 16  20 2e 67 65 74 73 74 61  |UD 0.... .getsta|
0000ed40  72 74 20 20 45 51 55 44  20 30 0d 08 10 16 20 2e  |rt  EQUD 0.... .|
0000ed50  67 65 74 73 74 6f 72 65  20 20 45 51 55 44 20 30  |getstore  EQUD 0|
0000ed60  0d 08 11 16 20 2e 67 65  74 6c 69 6e 65 73 20 20  |.... .getlines  |
0000ed70  45 51 55 44 20 30 0d 08  12 16 20 2e 6f 70 73 74  |EQUD 0.... .opst|
0000ed80  61 72 74 20 20 20 45 51  55 44 20 30 0d 08 13 04  |art   EQUD 0....|
0000ed90  0d 08 14 0e 20 2e 66 69  6e 64 5f 74 6f 70 0d 08  |.... .find_top..|
0000eda0  15 47 20 4d 4f 56 20 6f  66 66 73 65 74 2c 23 30  |.G MOV offset,#0|
0000edb0  3a 4c 44 52 20 62 61 73  65 2c 66 74 5f 73 63 72  |:LDR base,ft_scr|
0000edc0  65 65 6e 3a 4c 44 52 20  77 68 69 74 65 2c 66 74  |een:LDR white,ft|
0000edd0  5f 77 68 69 74 65 3a 4d  4f 56 20 6c 69 6e 65 73  |_white:MOV lines|
0000ede0  2c 23 36 34 30 0d 08 16  3f 20 2e 74 6f 70 5f 6c  |,#640...? .top_l|
0000edf0  6f 6f 70 20 4c 44 52 20  64 61 74 61 2c 5b 62 61  |oop LDR data,[ba|
0000ee00  73 65 2c 6f 66 66 73 65  74 5d 3a 43 4d 50 20 64  |se,offset]:CMP d|
0000ee10  61 74 61 2c 77 68 69 74  65 3a 42 45 51 20 66 74  |ata,white:BEQ ft|
0000ee20  65 78 69 74 0d 08 17 37  20 41 44 44 20 6f 66 66  |exit...7 ADD off|
0000ee30  73 65 74 2c 6f 66 66 73  65 74 2c 23 34 3a 43 4d  |set,offset,#4:CM|
0000ee40  50 20 6f 66 66 73 65 74  2c 23 31 32 38 30 3a 42  |P offset,#1280:B|
0000ee50  4e 45 20 74 6f 70 5f 6c  6f 6f 70 0d 08 18 47 20  |NE top_loop...G |
0000ee60  41 44 44 20 62 61 73 65  2c 62 61 73 65 2c 23 31  |ADD base,base,#1|
0000ee70  32 38 30 3a 4d 4f 56 20  6f 66 66 73 65 74 2c 23  |280:MOV offset,#|
0000ee80  30 3a 53 55 42 53 20 6c  69 6e 65 73 2c 6c 69 6e  |0:SUBS lines,lin|
0000ee90  65 73 2c 23 31 3a 42 4e  45 20 74 6f 70 5f 6c 6f  |es,#1:BNE top_lo|
0000eea0  6f 70 0d 08 19 23 20 2e  66 74 65 78 69 74 20 4d  |op...# .ftexit M|
0000eeb0  4f 56 20 52 30 2c 62 61  73 65 3a 4d 4f 56 20 50  |OV R0,base:MOV P|
0000eec0  43 2c 52 31 34 0d 08 1a  04 0d 08 1b 11 20 2e 66  |C,R14........ .f|
0000eed0  69 6e 64 5f 62 6f 74 74  6f 6d 0d 08 1c 47 20 4d  |ind_bottom...G M|
0000eee0  4f 56 20 6f 66 66 73 65  74 2c 23 30 3a 4c 44 52  |OV offset,#0:LDR|
0000eef0  20 62 61 73 65 2c 66 74  5f 62 6f 74 74 6f 6d 3a  | base,ft_bottom:|
0000ef00  4c 44 52 20 77 68 69 74  65 2c 66 74 5f 77 68 69  |LDR white,ft_whi|
0000ef10  74 65 3a 4d 4f 56 20 6c  69 6e 65 73 2c 23 36 34  |te:MOV lines,#64|
0000ef20  30 0d 08 1d 3f 20 2e 62  6f 74 5f 6c 6f 6f 70 20  |0...? .bot_loop |
0000ef30  4c 44 52 20 64 61 74 61  2c 5b 62 61 73 65 2c 6f  |LDR data,[base,o|
0000ef40  66 66 73 65 74 5d 3a 43  4d 50 20 64 61 74 61 2c  |ffset]:CMP data,|
0000ef50  77 68 69 74 65 3a 42 45  51 20 66 62 65 78 69 74  |white:BEQ fbexit|
0000ef60  0d 08 1e 37 20 41 44 44  20 6f 66 66 73 65 74 2c  |...7 ADD offset,|
0000ef70  6f 66 66 73 65 74 2c 23  34 3a 43 4d 50 20 6f 66  |offset,#4:CMP of|
0000ef80  66 73 65 74 2c 23 31 32  38 30 3a 42 4e 45 20 62  |fset,#1280:BNE b|
0000ef90  6f 74 5f 6c 6f 6f 70 0d  08 1f 47 20 53 55 42 20  |ot_loop...G SUB |
0000efa0  62 61 73 65 2c 62 61 73  65 2c 23 31 32 38 30 3a  |base,base,#1280:|
0000efb0  4d 4f 56 20 6f 66 66 73  65 74 2c 23 30 3a 53 55  |MOV offset,#0:SU|
0000efc0  42 53 20 6c 69 6e 65 73  2c 6c 69 6e 65 73 2c 23  |BS lines,lines,#|
0000efd0  31 3a 42 4e 45 20 62 6f  74 5f 6c 6f 6f 70 0d 08  |1:BNE bot_loop..|
0000efe0  20 23 20 2e 66 62 65 78  69 74 20 4d 4f 56 20 52  | # .fbexit MOV R|
0000eff0  30 2c 62 61 73 65 3a 4d  4f 56 20 50 43 2c 52 31  |0,base:MOV PC,R1|
0000f000  34 0d 08 21 04 0d 08 22  10 20 2e 66 69 6e 64 5f  |4..!...". .find_|
0000f010  72 69 67 68 74 0d 08 23  4c 20 4d 4f 56 20 6f 66  |right..#L MOV of|
0000f020  66 73 65 74 2c 23 31 32  36 34 3a 4c 44 52 20 62  |fset,#1264:LDR b|
0000f030  61 73 65 2c 66 74 5f 72  69 67 68 74 3a 4c 44 52  |ase,ft_right:LDR|
0000f040  20 77 68 69 74 65 2c 66  74 5f 77 68 69 74 65 3a  | white,ft_white:|
0000f050  4c 44 52 20 6c 69 6e 65  73 2c 66 72 6c 69 6e 65  |LDR lines,frline|
0000f060  73 0d 08 24 41 20 2e 72  69 67 68 74 5f 6c 6f 6f  |s..$A .right_loo|
0000f070  70 20 4c 44 52 20 64 61  74 61 2c 5b 62 61 73 65  |p LDR data,[base|
0000f080  2c 6f 66 66 73 65 74 5d  3a 43 4d 50 20 64 61 74  |,offset]:CMP dat|
0000f090  61 2c 77 68 69 74 65 3a  42 45 51 20 66 72 65 78  |a,white:BEQ frex|
0000f0a0  69 74 0d 08 25 3b 20 41  44 44 20 62 61 73 65 2c  |it..%; ADD base,|
0000f0b0  62 61 73 65 2c 23 31 32  38 30 3a 53 55 42 53 20  |base,#1280:SUBS |
0000f0c0  6c 69 6e 65 73 2c 6c 69  6e 65 73 2c 23 31 3a 42  |lines,lines,#1:B|
0000f0d0  4e 45 20 72 69 67 68 74  5f 6c 6f 6f 70 0d 08 26  |NE right_loop..&|
0000f0e0  4d 20 4c 44 52 20 62 61  73 65 2c 66 74 5f 72 69  |M LDR base,ft_ri|
0000f0f0  67 68 74 3a 4c 44 52 20  6c 69 6e 65 73 2c 66 72  |ght:LDR lines,fr|
0000f100  6c 69 6e 65 73 3a 53 55  42 53 20 6f 66 66 73 65  |lines:SUBS offse|
0000f110  74 2c 6f 66 66 73 65 74  2c 23 34 3a 42 4e 45 20  |t,offset,#4:BNE |
0000f120  72 69 67 68 74 5f 6c 6f  6f 70 0d 08 27 28 20 2e  |right_loop..'( .|
0000f130  66 72 65 78 69 74 20 41  44 44 20 52 30 2c 6f 66  |frexit ADD R0,of|
0000f140  66 73 65 74 2c 23 38 3a  4d 4f 56 20 50 43 2c 52  |fset,#8:MOV PC,R|
0000f150  31 34 0d 08 28 04 0d 08  29 10 20 2e 67 65 74 5f  |14..(...). .get_|
0000f160  73 63 72 65 65 6e 0d 08  2a 2a 20 4c 44 52 20 6f  |screen..** LDR o|
0000f170  66 66 73 65 74 2c 67 65  74 77 69 64 74 68 3a 4c  |ffset,getwidth:L|
0000f180  44 52 20 62 61 73 65 2c  67 65 74 73 74 61 72 74  |DR base,getstart|
0000f190  0d 08 2b 2a 20 4c 44 52  20 62 61 73 65 32 2c 67  |..+* LDR base2,g|
0000f1a0  65 74 73 74 6f 72 65 3a  4c 44 52 20 6c 69 6e 65  |etstore:LDR line|
0000f1b0  73 2c 67 65 74 6c 69 6e  65 73 0d 08 2c 3d 20 2e  |s,getlines..,= .|
0000f1c0  67 65 74 5f 6c 6f 6f 70  20 4c 44 52 20 64 61 74  |get_loop LDR dat|
0000f1d0  61 2c 5b 62 61 73 65 2c  6f 66 66 73 65 74 5d 3a  |a,[base,offset]:|
0000f1e0  53 54 52 20 64 61 74 61  2c 5b 62 61 73 65 32 2c  |STR data,[base2,|
0000f1f0  6f 66 66 73 65 74 5d 0d  08 2d 27 20 53 55 42 53  |offset]..-' SUBS|
0000f200  20 6f 66 66 73 65 74 2c  6f 66 66 73 65 74 2c 23  | offset,offset,#|
0000f210  34 3a 42 50 4c 20 67 65  74 5f 6c 6f 6f 70 0d 08  |4:BPL get_loop..|
0000f220  2e 2c 20 4c 44 52 20 6f  66 66 73 65 74 2c 67 65  |., LDR offset,ge|
0000f230  74 77 69 64 74 68 3a 41  44 44 20 62 61 73 65 2c  |twidth:ADD base,|
0000f240  62 61 73 65 2c 23 31 32  38 30 0d 08 2f 1b 20 41  |base,#1280../. A|
0000f250  44 44 20 62 61 73 65 32  2c 62 61 73 65 32 2c 6f  |DD base2,base2,o|
0000f260  66 66 73 65 74 0d 08 30  25 20 53 55 42 53 20 6c  |ffset..0% SUBS l|
0000f270  69 6e 65 73 2c 6c 69 6e  65 73 2c 23 31 3a 42 4e  |ines,lines,#1:BN|
0000f280  45 20 67 65 74 5f 6c 6f  6f 70 0d 08 31 0f 20 4d  |E get_loop..1. M|
0000f290  4f 56 20 50 43 2c 52 31  34 0d 08 32 04 0d 08 33  |OV PC,R14..2...3|
0000f2a0  14 20 3b 20 2d 20 2d 20  2d 20 2d 20 2d 20 2d 20  |. ; - - - - - - |
0000f2b0  2d 0d 08 34 04 0d 08 35  13 20 2e 6f 75 74 70 75  |-..4...5. .outpu|
0000f2c0  74 5f 73 70 72 69 74 65  0d 08 36 2c 20 53 54 52  |t_sprite..6, STR|
0000f2d0  20 52 31 33 2c 72 31 33  5f 74 65 6d 70 3a 4c 44  | R13,r13_temp:LD|
0000f2e0  52 20 52 31 33 2c 76 65  72 74 69 63 61 6c 5f 73  |R R13,vertical_s|
0000f2f0  74 61 72 74 0d 08 37 2c  20 4c 44 52 20 52 30 2c  |tart..7, LDR R0,|
0000f300  63 6f 6c 6f 75 72 5f 73  74 6f 72 65 3a 53 54 52  |colour_store:STR|
0000f310  20 52 30 2c 63 6f 6c 6f  75 72 5f 73 74 61 72 74  | R0,colour_start|
0000f320  0d 08 38 2d 20 4c 44 52  20 52 30 2c 63 6f 6c 6f  |..8- LDR R0,colo|
0000f330  75 72 5f 68 65 69 67 68  74 3a 53 54 52 20 52 30  |ur_height:STR R0|
0000f340  2c 63 6f 6c 6f 75 72 5f  6c 69 6e 65 73 0d 08 39  |,colour_lines..9|
0000f350  39 20 4c 44 52 20 62 61  73 65 2c 6f 70 73 74 61  |9 LDR base,opsta|
0000f360  72 74 3a 4c 44 52 20 62  61 73 65 32 2c 67 65 74  |rt:LDR base2,get|
0000f370  73 74 6f 72 65 3a 53 55  42 20 52 30 2c 62 61 73  |store:SUB R0,bas|
0000f380  65 32 2c 23 31 36 0d 08  3a 3b 20 4c 44 52 20 6f  |e2,#16..:; LDR o|
0000f390  66 66 73 65 74 2c 5b 52  30 2c 23 30 5d 3a 4c 44  |ffset,[R0,#0]:LD|
0000f3a0  52 20 6c 69 6e 65 73 2c  5b 52 30 2c 23 34 5d 3a  |R lines,[R0,#4]:|
0000f3b0  4c 44 52 20 6d 61 73 6b  31 2c 5b 52 30 2c 23 38  |LDR mask1,[R0,#8|
0000f3c0  5d 0d 08 3b 1b 20 4d 4f  56 20 6d 61 73 6b 32 2c  |]..;. MOV mask2,|
0000f3d0  6d 61 73 6b 31 2c 41 53  4c 23 31 36 0d 08 3c 04  |mask1,ASL#16..<.|
0000f3e0  0d 08 3d 0c 20 2e 6f 70  6c 6f 6f 70 0d 08 3e 1d  |..=. .oploop..>.|
0000f3f0  20 4c 44 52 20 64 61 74  61 32 2c 5b 62 61 73 65  | LDR data2,[base|
0000f400  32 2c 6f 66 66 73 65 74  5d 0d 08 3f 32 20 4d 4f  |2,offset]..?2 MO|
0000f410  56 20 64 61 74 61 31 2c  64 61 74 61 32 2c 41 53  |V data1,data2,AS|
0000f420  4c 23 31 36 3a 4d 4f 56  20 64 61 74 61 31 2c 64  |L#16:MOV data1,d|
0000f430  61 74 61 31 2c 4c 53 52  23 31 36 0d 08 40 32 20  |ata1,LSR#16..@2 |
0000f440  4d 4f 56 20 64 61 74 61  32 2c 64 61 74 61 32 2c  |MOV data2,data2,|
0000f450  4c 53 52 23 31 36 3a 4d  4f 56 20 64 61 74 61 32  |LSR#16:MOV data2|
0000f460  2c 64 61 74 61 32 2c 41  53 4c 23 31 36 0d 08 41  |,data2,ASL#16..A|
0000f470  1c 20 4c 44 52 20 73 63  72 6e 32 2c 5b 62 61 73  |. LDR scrn2,[bas|
0000f480  65 2c 6f 66 66 73 65 74  5d 0d 08 42 32 20 4d 4f  |e,offset]..B2 MO|
0000f490  56 20 73 63 72 6e 31 2c  73 63 72 6e 32 2c 41 53  |V scrn1,scrn2,AS|
0000f4a0  4c 23 31 36 3a 4d 4f 56  20 73 63 72 6e 31 2c 73  |L#16:MOV scrn1,s|
0000f4b0  63 72 6e 31 2c 4c 53 52  23 31 36 0d 08 43 32 20  |crn1,LSR#16..C2 |
0000f4c0  4d 4f 56 20 73 63 72 6e  32 2c 73 63 72 6e 32 2c  |MOV scrn2,scrn2,|
0000f4d0  4c 53 52 23 31 36 3a 4d  4f 56 20 73 63 72 6e 32  |LSR#16:MOV scrn2|
0000f4e0  2c 73 63 72 6e 32 2c 41  53 4c 23 31 36 0d 08 44  |,scrn2,ASL#16..D|
0000f4f0  04 0d 08 45 39 20 4c 44  52 20 63 6f 6c 6f 75 72  |...E9 LDR colour|
0000f500  2c 63 6f 6c 6f 75 72 5f  73 74 6f 72 65 3a 43 4d  |,colour_store:CM|
0000f510  50 20 63 6f 6c 6f 75 72  2c 23 31 3a 42 4e 45 20  |P colour,#1:BNE |
0000f520  6e 6f 74 5f 73 68 61 64  6f 77 0d 08 46 04 0d 08  |not_shadow..F...|
0000f530  47 36 20 53 54 52 20 52  30 2c 72 30 5f 74 65 6d  |G6 STR R0,r0_tem|
0000f540  70 3a 41 44 52 20 52 30  2c 72 65 67 5f 73 74 6f  |p:ADR R0,reg_sto|
0000f550  72 65 3a 53 54 4d 49 41  20 52 30 2c 7b 52 31 2d  |re:STMIA R0,{R1-|
0000f560  52 31 31 7d 0d 08 48 31  20 4c 44 52 20 74 61 62  |R11}..H1 LDR tab|
0000f570  6c 65 2c 73 68 61 64 6f  77 5f 74 61 62 6c 65 5f  |le,shadow_table_|
0000f580  61 64 64 72 65 73 73 3a  4d 4f 56 20 72 65 73 75  |address:MOV resu|
0000f590  6c 74 2c 23 30 0d 08 49  32 20 43 4d 50 20 64 61  |lt,#0..I2 CMP da|
0000f5a0  74 61 31 2c 6d 61 73 6b  31 3a ec 51 20 72 65 73  |ta1,mask1:.Q res|
0000f5b0  75 6c 74 2c 73 63 72 6e  31 3a 42 45 51 20 6e 65  |ult,scrn1:BEQ ne|
0000f5c0  78 74 5f 68 61 6c 66 0d  08 4a 2a 20 80 20 52 32  |xt_half..J* . R2|
0000f5d0  2c 73 63 72 6e 31 2c 23  33 31 3a 4c 44 52 42 20  |,scrn1,#31:LDRB |
0000f5e0  72 65 73 75 6c 74 2c 5b  74 61 62 6c 65 2c 52 32  |result,[table,R2|
0000f5f0  5d 0d 08 4b 39 20 4d 4f  56 20 52 32 2c 73 63 72  |]..K9 MOV R2,scr|
0000f600  6e 31 2c 4c 53 52 23 35  3a 80 20 52 32 2c 52 32  |n1,LSR#5:. R2,R2|
0000f610  2c 23 33 31 3a 4c 44 52  42 20 64 61 74 61 33 2c  |,#31:LDRB data3,|
0000f620  5b 74 61 62 6c 65 2c 52  32 5d 0d 08 4c 32 20 4d  |[table,R2]..L2 M|
0000f630  4f 56 20 64 61 74 61 33  2c 64 61 74 61 33 2c 4c  |OV data3,data3,L|
0000f640  53 4c 23 35 3a 41 44 44  20 72 65 73 75 6c 74 2c  |SL#5:ADD result,|
0000f650  72 65 73 75 6c 74 2c 64  61 74 61 33 0d 08 4d 3a  |result,data3..M:|
0000f660  20 4d 4f 56 20 52 32 2c  73 63 72 6e 31 2c 4c 53  | MOV R2,scrn1,LS|
0000f670  52 23 31 30 3a 80 20 52  32 2c 52 32 2c 23 33 31  |R#10:. R2,R2,#31|
0000f680  3a 4c 44 52 42 20 64 61  74 61 33 2c 5b 74 61 62  |:LDRB data3,[tab|
0000f690  6c 65 2c 52 32 5d 0d 08  4e 33 20 4d 4f 56 20 64  |le,R2]..N3 MOV d|
0000f6a0  61 74 61 33 2c 64 61 74  61 33 2c 4c 53 4c 23 31  |ata3,data3,LSL#1|
0000f6b0  30 3a 41 44 44 20 72 65  73 75 6c 74 2c 72 65 73  |0:ADD result,res|
0000f6c0  75 6c 74 2c 64 61 74 61  33 0d 08 4f 04 0d 08 50  |ult,data3..O...P|
0000f6d0  4a 20 2e 6e 65 78 74 5f  68 61 6c 66 20 43 4d 50  |J .next_half CMP|
0000f6e0  20 64 61 74 61 32 2c 6d  61 73 6b 32 3a 41 44 44  | data2,mask2:ADD|
0000f6f0  45 51 20 72 65 73 75 6c  74 2c 72 65 73 75 6c 74  |EQ result,result|
0000f700  2c 73 63 72 6e 32 3a 42  45 51 20 73 74 6f 72 65  |,scrn2:BEQ store|
0000f710  5f 72 65 73 75 6c 74 0d  08 51 3a 20 4d 4f 56 20  |_result..Q: MOV |
0000f720  52 32 2c 73 63 72 6e 32  2c 4c 53 52 23 31 36 3a  |R2,scrn2,LSR#16:|
0000f730  80 20 52 32 2c 52 32 2c  23 33 31 3a 4c 44 52 42  |. R2,R2,#31:LDRB|
0000f740  20 64 61 74 61 33 2c 5b  74 61 62 6c 65 2c 52 32  | data3,[table,R2|
0000f750  5d 0d 08 52 33 20 4d 4f  56 20 64 61 74 61 33 2c  |]..R3 MOV data3,|
0000f760  64 61 74 61 33 2c 4c 53  4c 23 31 36 3a 41 44 44  |data3,LSL#16:ADD|
0000f770  20 72 65 73 75 6c 74 2c  72 65 73 75 6c 74 2c 64  | result,result,d|
0000f780  61 74 61 33 0d 08 53 3a  20 4d 4f 56 20 52 32 2c  |ata3..S: MOV R2,|
0000f790  73 63 72 6e 32 2c 4c 53  52 23 32 31 3a 80 20 52  |scrn2,LSR#21:. R|
0000f7a0  32 2c 52 32 2c 23 33 31  3a 4c 44 52 42 20 64 61  |2,R2,#31:LDRB da|
0000f7b0  74 61 33 2c 5b 74 61 62  6c 65 2c 52 32 5d 0d 08  |ta3,[table,R2]..|
0000f7c0  54 33 20 4d 4f 56 20 64  61 74 61 33 2c 64 61 74  |T3 MOV data3,dat|
0000f7d0  61 33 2c 4c 53 4c 23 32  31 3a 41 44 44 20 72 65  |a3,LSL#21:ADD re|
0000f7e0  73 75 6c 74 2c 72 65 73  75 6c 74 2c 64 61 74 61  |sult,result,data|
0000f7f0  33 0d 08 55 3a 20 4d 4f  56 20 52 32 2c 73 63 72  |3..U: MOV R2,scr|
0000f800  6e 32 2c 4c 53 52 23 32  36 3a 80 20 52 32 2c 52  |n2,LSR#26:. R2,R|
0000f810  32 2c 23 33 31 3a 4c 44  52 42 20 64 61 74 61 33  |2,#31:LDRB data3|
0000f820  2c 5b 74 61 62 6c 65 2c  52 32 5d 0d 08 56 33 20  |,[table,R2]..V3 |
0000f830  4d 4f 56 20 64 61 74 61  33 2c 64 61 74 61 33 2c  |MOV data3,data3,|
0000f840  4c 53 4c 23 32 36 3a 41  44 44 20 72 65 73 75 6c  |LSL#26:ADD resul|
0000f850  74 2c 72 65 73 75 6c 74  2c 64 61 74 61 33 0d 08  |t,result,data3..|
0000f860  57 35 20 2e 73 74 6f 72  65 5f 72 65 73 75 6c 74  |W5 .store_result|
0000f870  20 41 44 52 20 52 30 2c  72 65 67 5f 73 74 6f 72  | ADR R0,reg_stor|
0000f880  65 3a 4c 44 4d 49 41 20  52 30 2c 7b 52 31 2d 52  |e:LDMIA R0,{R1-R|
0000f890  31 31 7d 0d 08 58 3a 20  4c 44 52 20 52 30 2c 72  |11}..X: LDR R0,r|
0000f8a0  30 5f 74 65 6d 70 3a 53  54 52 20 72 65 73 75 6c  |0_temp:STR resul|
0000f8b0  74 2c 5b 62 61 73 65 2c  6f 66 66 73 65 74 5d 3a  |t,[base,offset]:|
0000f8c0  42 20 73 68 61 64 6f 77  5f 6a 75 6d 70 0d 08 59  |B shadow_jump..Y|
0000f8d0  04 0d 08 5a 10 20 2e 6e  6f 74 5f 73 68 61 64 6f  |...Z. .not_shado|
0000f8e0  77 0d 08 5b 26 20 43 4d  50 20 63 6f 6c 6f 75 72  |w..[& CMP colour|
0000f8f0  2c 23 32 3a 42 4e 45 20  6e 6f 74 5f 66 69 6c 74  |,#2:BNE not_filt|
0000f900  65 72 5f 74 65 78 74 0d  08 5c 36 20 53 54 52 20  |er_text..\6 STR |
0000f910  52 30 2c 72 30 5f 74 65  6d 70 3a 41 44 52 20 52  |R0,r0_temp:ADR R|
0000f920  30 2c 72 65 67 5f 73 74  6f 72 65 3a 53 54 4d 49  |0,reg_store:STMI|
0000f930  41 20 52 30 2c 7b 52 31  2d 52 31 32 7d 0d 08 5d  |A R0,{R1-R12}..]|
0000f940  1e 20 4c 44 52 20 52 31  2c 63 6f 6c 6f 75 72 5f  |. LDR R1,colour_|
0000f950  66 69 6c 74 65 72 5f 6d  61 73 6b 0d 08 5e 24 20  |filter_mask..^$ |
0000f960  43 4d 50 20 64 61 74 61  31 2c 6d 61 73 6b 31 3a  |CMP data1,mask1:|
0000f970  ec 51 20 72 65 73 75 6c  74 2c 73 63 72 6e 31 0d  |.Q result,scrn1.|
0000f980  08 5f 1a 20 42 49 43 4e  45 20 72 65 73 75 6c 74  |._. BICNE result|
0000f990  2c 73 63 72 6e 31 2c 52  31 0d 08 60 2e 20 43 4d  |,scrn1,R1..`. CM|
0000f9a0  50 20 64 61 74 61 32 2c  6d 61 73 6b 32 3a 41 44  |P data2,mask2:AD|
0000f9b0  44 45 51 20 72 65 73 75  6c 74 2c 72 65 73 75 6c  |DEQ result,resul|
0000f9c0  74 2c 73 63 72 6e 32 0d  08 61 1d 20 4d 4f 56 4e  |t,scrn2..a. MOVN|
0000f9d0  45 20 73 63 72 6e 32 2c  73 63 72 6e 32 2c 4c 53  |E scrn2,scrn2,LS|
0000f9e0  52 23 31 36 0d 08 62 34  20 42 49 43 4e 45 20 52  |R#16..b4 BICNE R|
0000f9f0  38 2c 73 63 72 6e 32 2c  52 31 3a 41 44 44 4e 45  |8,scrn2,R1:ADDNE|
0000fa00  20 72 65 73 75 6c 74 2c  72 65 73 75 6c 74 2c 52  | result,result,R|
0000fa10  38 2c 4c 53 4c 23 31 36  0d 08 63 1d 20 53 54 52  |8,LSL#16..c. STR|
0000fa20  20 72 65 73 75 6c 74 2c  5b 62 61 73 65 2c 6f 66  | result,[base,of|
0000fa30  66 73 65 74 5d 0d 08 64  36 20 41 44 52 20 52 30  |fset]..d6 ADR R0|
0000fa40  2c 72 65 67 5f 73 74 6f  72 65 3a 4c 44 4d 49 41  |,reg_store:LDMIA|
0000fa50  20 52 30 2c 7b 52 31 2d  52 31 32 7d 3a 4c 44 52  | R0,{R1-R12}:LDR|
0000fa60  20 52 30 2c 72 30 5f 74  65 6d 70 0d 08 65 12 20  | R0,r0_temp..e. |
0000fa70  42 20 73 68 61 64 6f 77  5f 6a 75 6d 70 0d 08 66  |B shadow_jump..f|
0000fa80  04 0d 08 67 15 20 2e 6e  6f 74 5f 66 69 6c 74 65  |...g. .not_filte|
0000fa90  72 5f 74 65 78 74 0d 08  68 38 20 43 4d 50 20 64  |r_text..h8 CMP d|
0000faa0  61 74 61 31 2c 6d 61 73  6b 31 3a 4d 4f 56 4e 45  |ata1,mask1:MOVNE|
0000fab0  20 72 65 73 75 6c 74 2c  63 6f 6c 6f 75 72 3a ec  | result,colour:.|
0000fac0  51 20 72 65 73 75 6c 74  2c 73 63 72 6e 31 0d 08  |Q result,scrn1..|
0000fad0  69 36 20 43 4d 50 20 64  61 74 61 32 2c 6d 61 73  |i6 CMP data2,mas|
0000fae0  6b 32 3a 41 44 44 4e 45  20 72 65 73 75 6c 74 2c  |k2:ADDNE result,|
0000faf0  72 65 73 75 6c 74 2c 63  6f 6c 6f 75 72 2c 41 53  |result,colour,AS|
0000fb00  4c 23 31 36 0d 08 6a 37  20 41 44 44 45 51 20 72  |L#16..j7 ADDEQ r|
0000fb10  65 73 75 6c 74 2c 72 65  73 75 6c 74 2c 73 63 72  |esult,result,scr|
0000fb20  6e 32 3a 53 54 52 20 72  65 73 75 6c 74 2c 5b 62  |n2:STR result,[b|
0000fb30  61 73 65 2c 6f 66 66 73  65 74 5d 0d 08 6b 04 0d  |ase,offset]..k..|
0000fb40  08 6c 32 20 2e 73 68 61  64 6f 77 5f 6a 75 6d 70  |.l2 .shadow_jump|
0000fb50  20 53 55 42 53 20 6f 66  66 73 65 74 2c 6f 66 66  | SUBS offset,off|
0000fb60  73 65 74 2c 23 34 3a 42  50 4c 20 6f 70 6c 6f 6f  |set,#4:BPL oploo|
0000fb70  70 0d 08 6d 2b 20 4c 44  52 20 6f 66 66 73 65 74  |p..m+ LDR offset|
0000fb80  2c 5b 52 30 2c 23 30 5d  3a 41 44 44 20 62 61 73  |,[R0,#0]:ADD bas|
0000fb90  65 2c 62 61 73 65 2c 23  31 32 38 30 0d 08 6e 2d  |e,base,#1280..n-|
0000fba0  20 4c 44 52 20 64 61 74  61 31 2c 67 65 74 77 69  | LDR data1,getwi|
0000fbb0  64 74 68 3a 41 44 44 20  62 61 73 65 32 2c 62 61  |dth:ADD base2,ba|
0000fbc0  73 65 32 2c 64 61 74 61  31 0d 08 6f 20 20 43 4d  |se2,data1..o  CM|
0000fbd0  50 20 63 6f 6c 6f 75 72  2c 23 30 3a 42 45 51 20  |P colour,#0:BEQ |
0000fbe0  6e 65 78 74 5f 6c 69 6e  65 0d 08 70 20 20 43 4d  |next_line..p  CM|
0000fbf0  50 20 63 6f 6c 6f 75 72  2c 23 32 3a 42 45 51 20  |P colour,#2:BEQ |
0000fc00  6e 65 78 74 5f 6c 69 6e  65 0d 08 71 04 0d 08 72  |next_line..q...r|
0000fc10  26 20 41 44 52 20 52 39  2c 72 65 67 5f 73 74 6f  |& ADR R9,reg_sto|
0000fc20  72 65 3a 53 54 4d 49 41  20 52 39 2c 7b 52 30 2d  |re:STMIA R9,{R0-|
0000fc30  52 37 7d 0d 08 73 49 20  4c 44 52 20 52 30 2c 63  |R7}..sI LDR R0,c|
0000fc40  6f 6c 6f 75 72 5f 6c 69  6e 65 73 3a 53 55 42 53  |olour_lines:SUBS|
0000fc50  20 52 30 2c 52 30 2c 23  31 3a 53 54 52 20 52 30  | R0,R0,#1:STR R0|
0000fc60  2c 63 6f 6c 6f 75 72 5f  6c 69 6e 65 73 3a 42 4e  |,colour_lines:BN|
0000fc70  45 20 77 72 63 6f 6c 5f  65 78 69 74 0d 08 74 2d  |E wrcol_exit..t-|
0000fc80  20 4c 44 52 20 52 30 2c  63 6f 6c 6f 75 72 5f 68  | LDR R0,colour_h|
0000fc90  65 69 67 68 74 3a 53 54  52 20 52 30 2c 63 6f 6c  |eight:STR R0,col|
0000fca0  6f 75 72 5f 6c 69 6e 65  73 0d 08 75 33 20 4c 44  |our_lines..u3 LD|
0000fcb0  52 20 52 30 2c 63 6f 6c  6f 75 72 5f 69 6e 63 5f  |R R0,colour_inc_|
0000fcc0  6f 72 5f 64 65 63 3a 43  4d 50 20 52 30 2c 23 31  |or_dec:CMP R0,#1|
0000fcd0  3a 42 45 51 20 63 6f 6c  5f 69 6e 63 0d 08 76 4e  |:BEQ col_inc..vN|
0000fce0  20 2e 63 6f 6c 5f 64 65  63 20 4c 44 52 20 52 37  | .col_dec LDR R7|
0000fcf0  2c 63 6f 6c 6f 75 72 5f  64 65 63 72 65 6d 65 6e  |,colour_decremen|
0000fd00  74 3a 53 55 42 20 63 6f  6c 6f 75 72 2c 63 6f 6c  |t:SUB colour,col|
0000fd10  6f 75 72 2c 52 37 3a 4c  44 52 20 52 37 2c 63 6f  |our,R7:LDR R7,co|
0000fd20  6c 6f 75 72 5f 6c 69 6d  69 74 0d 08 77 47 20 43  |lour_limit..wG C|
0000fd30  4d 50 20 63 6f 6c 6f 75  72 2c 52 37 3a 4d 4f 56  |MP colour,R7:MOV|
0000fd40  4c 54 20 63 6f 6c 6f 75  72 2c 52 37 3a 53 54 52  |LT colour,R7:STR|
0000fd50  20 63 6f 6c 6f 75 72 2c  63 6f 6c 6f 75 72 5f 73  | colour,colour_s|
0000fd60  74 6f 72 65 3a 42 20 77  72 63 6f 6c 5f 65 78 69  |tore:B wrcol_exi|
0000fd70  74 0d 08 78 4e 20 2e 63  6f 6c 5f 69 6e 63 20 4c  |t..xN .col_inc L|
0000fd80  44 52 20 52 37 2c 63 6f  6c 6f 75 72 5f 64 65 63  |DR R7,colour_dec|
0000fd90  72 65 6d 65 6e 74 3a 41  44 44 20 63 6f 6c 6f 75  |rement:ADD colou|
0000fda0  72 2c 63 6f 6c 6f 75 72  2c 52 37 3a 4c 44 52 20  |r,colour,R7:LDR |
0000fdb0  52 37 2c 63 6f 6c 6f 75  72 5f 6c 69 6d 69 74 0d  |R7,colour_limit.|
0000fdc0  08 79 3a 20 43 4d 50 20  63 6f 6c 6f 75 72 2c 52  |.y: CMP colour,R|
0000fdd0  37 3a 4d 4f 56 47 54 20  63 6f 6c 6f 75 72 2c 52  |7:MOVGT colour,R|
0000fde0  37 3a 53 54 52 20 63 6f  6c 6f 75 72 2c 63 6f 6c  |7:STR colour,col|
0000fdf0  6f 75 72 5f 73 74 6f 72  65 0d 08 7a 32 20 2e 77  |our_store..z2 .w|
0000fe00  72 63 6f 6c 5f 65 78 69  74 20 41 44 52 20 52 39  |rcol_exit ADR R9|
0000fe10  2c 72 65 67 5f 73 74 6f  72 65 3a 4c 44 4d 49 41  |,reg_store:LDMIA|
0000fe20  20 52 39 2c 7b 52 30 2d  52 37 7d 0d 08 7b 04 0d  | R9,{R0-R7}..{..|
0000fe30  08 7c 0f 20 2e 6e 65 78  74 5f 6c 69 6e 65 0d 08  |.|. .next_line..|
0000fe40  7d 47 20 53 55 42 53 20  52 31 33 2c 52 31 33 2c  |}G SUBS R13,R13,|
0000fe50  23 31 3a 4c 44 52 45 51  20 63 6f 6c 6f 75 72 2c  |#1:LDREQ colour,|
0000fe60  63 6f 6c 6f 75 72 5f 73  74 61 72 74 3a 4c 44 52  |colour_start:LDR|
0000fe70  45 51 20 52 31 33 2c 76  65 72 74 69 63 61 6c 5f  |EQ R13,vertical_|
0000fe80  73 74 61 72 74 0d 08 7e  1e 20 53 54 52 45 51 20  |start..~. STREQ |
0000fe90  63 6f 6c 6f 75 72 2c 63  6f 6c 6f 75 72 5f 73 74  |colour,colour_st|
0000fea0  6f 72 65 0d 08 7f 23 20  53 55 42 53 20 6c 69 6e  |ore...# SUBS lin|
0000feb0  65 73 2c 6c 69 6e 65 73  2c 23 31 3a 42 4e 45 20  |es,lines,#1:BNE |
0000fec0  6f 70 6c 6f 6f 70 0d 08  80 20 20 4c 44 52 20 52  |oploop...  LDR R|
0000fed0  31 33 2c 72 31 33 5f 74  65 6d 70 3a 4d 4f 56 20  |13,r13_temp:MOV |
0000fee0  50 43 2c 52 31 34 0d 08  81 04 0d 08 82 1b 20 2e  |PC,R14........ .|
0000fef0  76 65 72 74 69 63 61 6c  5f 73 74 61 72 74 20 45  |vertical_start E|
0000ff00  51 55 44 20 30 0d 08 83  19 20 2e 63 6f 6c 6f 75  |QUD 0.... .colou|
0000ff10  72 5f 73 74 61 72 74 20  45 51 55 44 20 30 0d 08  |r_start EQUD 0..|
0000ff20  84 19 20 2e 63 6f 6c 6f  75 72 5f 73 74 6f 72 65  |.. .colour_store|
0000ff30  20 45 51 55 44 20 30 0d  08 85 19 20 2e 63 6f 6c  | EQUD 0.... .col|
0000ff40  6f 75 72 5f 6c 69 6d 69  74 20 45 51 55 44 20 30  |our_limit EQUD 0|
0000ff50  0d 08 86 1d 20 2e 63 6f  6c 6f 75 72 5f 64 65 63  |.... .colour_dec|
0000ff60  72 65 6d 65 6e 74 20 45  51 55 44 20 30 0d 08 87  |rement EQUD 0...|
0000ff70  1a 20 2e 63 6f 6c 6f 75  72 5f 68 65 69 67 68 74  |. .colour_height|
0000ff80  20 45 51 55 44 20 30 0d  08 88 19 20 2e 63 6f 6c  | EQUD 0.... .col|
0000ff90  6f 75 72 5f 6c 69 6e 65  73 20 45 51 55 44 20 30  |our_lines EQUD 0|
0000ffa0  0d 08 89 2f 20 2e 63 6f  6c 6f 75 72 5f 66 69 6c  |.../ .colour_fil|
0000ffb0  74 65 72 5f 6d 61 73 6b  20 45 51 55 44 20 25 30  |ter_mask EQUD %0|
0000ffc0  31 31 31 31 31 31 31 31  31 31 30 30 30 30 30 0d  |111111111100000.|
0000ffd0  08 8a 1e 20 2e 63 6f 6c  6f 75 72 5f 69 6e 63 5f  |... .colour_inc_|
0000ffe0  6f 72 5f 64 65 63 20 45  51 55 44 20 30 0d 08 8b  |or_dec EQUD 0...|
0000fff0  15 20 2e 72 31 33 5f 74  65 6d 70 20 45 51 55 44  |. .r13_temp EQUD|
00010000  20 30 0d 08 8c 15 20 2e  72 30 5f 74 65 6d 70 20  | 0.... .r0_temp |
00010010  20 45 51 55 44 20 30 0d  08 8d 40 20 2e 72 65 67  | EQUD 0...@ .reg|
00010020  5f 73 74 6f 72 65 20 45  51 55 44 20 30 3a 45 51  |_store EQUD 0:EQ|
00010030  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
00010040  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
00010050  3a 45 51 55 44 20 30 0d  08 8e 40 20 20 20 20 20  |:EQUD 0...@     |
00010060  20 20 20 20 20 20 20 45  51 55 44 20 30 3a 45 51  |       EQUD 0:EQ|
00010070  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
00010080  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
00010090  3a 45 51 55 44 20 30 0d  08 8f 21 20 2e 73 68 61  |:EQUD 0...! .sha|
000100a0  64 6f 77 5f 74 61 62 6c  65 5f 61 64 64 72 65 73  |dow_table_addres|
000100b0  73 20 45 51 55 44 20 30  0d 08 90 06 20 5d 0d 08  |s EQUD 0.... ]..|
000100c0  91 06 20 ed 0d 08 92 31  20 e7 20 50 25 2d 6d 79  |.. ....1 . P%-my|
000100d0  73 70 72 69 74 65 25 3e  39 36 30 20 8c 20 85 20  |sprite%>960 . . |
000100e0  30 2c 22 43 6f 64 65 20  74 6f 6f 20 6c 6f 6e 67  |0,"Code too long|
000100f0  20 2e 2e 2e 22 0d 08 93  06 20 e1 0d 08 94 04 0d  | ...".... ......|
00010100  08 95 17 20 dd 20 f2 73  61 76 65 5f 74 61 72 67  |... . .save_targ|
00010110  61 28 73 74 24 29 0d 08  96 14 20 f2 64 69 73 70  |a(st$).... .disp|
00010120  6c 61 79 5f 6d 65 6d 6f  72 79 0d 08 97 2d 20 21  |lay_memory...- !|
00010130  74 61 72 67 61 5f 62 61  73 65 3d 6d 65 6d 62 6c  |targa_base=membl|
00010140  6f 63 6b 25 2b 32 30 3a  d6 20 74 61 72 67 61 5f  |ock%+20:. targa_|
00010150  63 6f 6e 76 65 72 74 0d  08 98 18 20 41 25 3d 6d  |convert.... A%=m|
00010160  65 6d 62 6c 6f 63 6b 25  2b 32 3a f7 20 2b 30 0d  |emblock%+2:. +0.|
00010170  08 99 22 20 e3 20 4e 25  3d 41 25 20 b8 20 41 25  |.." . N%=A% . A%|
00010180  2b 31 37 3a f3 20 44 25  3a 3f 4e 25 3d 44 25 3a  |+17:. D%:?N%=D%:|
00010190  ed 0d 08 9a 1f 20 65 6e  64 25 3d 28 6d 65 6d 62  |..... end%=(memb|
000101a0  6c 6f 63 6b 25 2b 32 30  29 2b 36 35 35 33 36 30  |lock%+20)+655360|
000101b0  0d 08 9b 3d 20 21 65 6e  64 25 3d 30 3a 65 6e 64  |...= !end%=0:end|
000101c0  25 21 34 3d 30 3a 24 28  65 6e 64 25 2b 38 29 3d  |%!4=0:$(end%+8)=|
000101d0  22 54 52 55 45 56 49 53  49 4f 4e 2d 54 41 52 47  |"TRUEVISION-TARG|
000101e0  41 2e 22 3a 65 6e 64 25  3f 32 35 3d 30 0d 08 9c  |A.":end%?25=0...|
000101f0  2f 20 dc 20 30 2c 30 2c  32 2c 30 2c 30 2c 30 2c  |/ . 0,0,2,0,0,0,|
00010200  30 2c 30 2c 30 2c 30 2c  30 2c 30 2c 31 32 38 2c  |0,0,0,0,0,0,128,|
00010210  32 2c 30 2c 32 2c 31 36  2c 26 32 30 0d 08 9d 34  |2,0,2,16,&20...4|
00010220  20 c8 99 20 22 4f 53 5f  46 69 6c 65 22 2c 31 30  | .. "OS_File",10|
00010230  2c 73 74 24 2c 26 36 39  44 2c 30 2c 41 25 2c 41  |,st$,&69D,0,A%,A|
00010240  25 2b 26 41 30 30 32 43  3a f4 20 2a 53 41 56 45  |%+&A002C:. *SAVE|
00010250  0d 08 9e 13 20 f2 75 70  6c 6f 61 64 5f 6d 65 6d  |.... .upload_mem|
00010260  6f 72 79 0d 08 9f 06 20  e1 0d 08 a0 04 0d 08 a1  |ory.... ........|
00010270  16 20 dd 20 f2 74 61 72  67 61 5f 61 73 73 65 6d  |. . .targa_assem|
00010280  62 6c 65 0d 08 a2 17 20  de 20 74 61 72 67 61 5f  |ble.... . targa_|
00010290  63 6f 64 65 31 25 20 32  34 30 0d 08 a3 4b 20 62  |code1% 240...K b|
000102a0  61 73 65 3d 30 3a 6f 66  66 73 65 74 3d 31 3a 64  |ase=0:offset=1:d|
000102b0  61 74 61 3d 32 3a 72 65  64 31 3d 33 3a 72 65 64  |ata=2:red1=3:red|
000102c0  32 3d 34 3a 67 72 65 65  6e 31 3d 35 3a 67 72 65  |2=4:green1=5:gre|
000102d0  65 6e 32 3d 36 3a 62 6c  75 65 31 3d 37 3a 62 6c  |en2=6:blue1=7:bl|
000102e0  75 65 32 3d 38 0d 08 a4  16 20 72 65 73 75 6c 74  |ue2=8.... result|
000102f0  3d 39 3a 77 6f 72 64 73  3d 31 30 0d 08 a5 11 20  |=9:words=10.... |
00010300  e3 20 50 3d 30 20 b8 20  32 20 88 32 0d 08 a6 14  |. P=0 . 2 .2....|
00010310  20 50 25 3d 74 61 72 67  61 5f 63 6f 64 65 31 25  | P%=targa_code1%|
00010320  0d 08 a7 0b 20 5b 4f 50  54 20 50 0d 08 a8 17 20  |.... [OPT P.... |
00010330  2e 74 61 72 67 61 5f 62  61 73 65 20 45 51 55 44  |.targa_base EQUD|
00010340  20 30 0d 08 a9 04 0d 08  aa 13 20 2e 74 61 72 67  | 0........ .targ|
00010350  61 5f 63 6f 6e 76 65 72  74 0d 08 ab 38 20 4c 44  |a_convert...8 LD|
00010360  52 20 62 61 73 65 2c 74  61 72 67 61 5f 62 61 73  |R base,targa_bas|
00010370  65 3a 4d 4f 56 20 6f 66  66 73 65 74 2c 23 30 3a  |e:MOV offset,#0:|
00010380  4d 4f 56 20 77 6f 72 64  73 2c 23 31 36 33 38 34  |MOV words,#16384|
00010390  30 0d 08 ac 1e 20 2e 74  61 72 67 61 5f 6c 6f 6f  |0.... .targa_loo|
000103a0  70 20 4d 4f 56 20 72 65  73 75 6c 74 2c 23 30 0d  |p MOV result,#0.|
000103b0  08 ad 40 20 4c 44 52 20  64 61 74 61 2c 5b 62 61  |..@ LDR data,[ba|
000103c0  73 65 2c 6f 66 66 73 65  74 5d 3a 80 20 72 65 64  |se,offset]:. red|
000103d0  31 2c 64 61 74 61 2c 23  33 31 3a 4d 4f 56 20 72  |1,data,#31:MOV r|
000103e0  65 64 31 2c 72 65 64 31  2c 4c 53 4c 23 31 30 0d  |ed1,red1,LSL#10.|
000103f0  08 ae 3e 20 4d 4f 56 20  72 65 64 32 2c 64 61 74  |..> MOV red2,dat|
00010400  61 2c 4c 53 52 23 31 36  3a 80 20 72 65 64 32 2c  |a,LSR#16:. red2,|
00010410  72 65 64 32 2c 23 33 31  3a 4d 4f 56 20 72 65 64  |red2,#31:MOV red|
00010420  32 2c 72 65 64 32 2c 4c  53 4c 23 32 36 0d 08 af  |2,red2,LSL#26...|
00010430  17 20 80 20 67 72 65 65  6e 31 2c 64 61 74 61 2c  |. . green1,data,|
00010440  23 39 39 32 0d 08 b0 49  20 4d 4f 56 20 67 72 65  |#992...I MOV gre|
00010450  65 6e 32 2c 64 61 74 61  2c 4c 53 52 23 31 36 3a  |en2,data,LSR#16:|
00010460  80 20 67 72 65 65 6e 32  2c 67 72 65 65 6e 32 2c  |. green2,green2,|
00010470  23 39 39 32 3a 4d 4f 56  20 67 72 65 65 6e 32 2c  |#992:MOV green2,|
00010480  67 72 65 65 6e 32 2c 4c  53 4c 23 31 36 0d 08 b1  |green2,LSL#16...|
00010490  2c 20 4d 4f 56 20 62 6c  75 65 31 2c 64 61 74 61  |, MOV blue1,data|
000104a0  2c 4c 53 52 23 31 30 3a  80 20 62 6c 75 65 31 2c  |,LSR#10:. blue1,|
000104b0  62 6c 75 65 31 2c 23 33  31 0d 08 b2 43 20 4d 4f  |blue1,#31...C MO|
000104c0  56 20 62 6c 75 65 32 2c  64 61 74 61 2c 4c 53 52  |V blue2,data,LSR|
000104d0  23 32 36 3a 80 20 62 6c  75 65 32 2c 62 6c 75 65  |#26:. blue2,blue|
000104e0  32 2c 23 33 31 3a 4d 4f  56 20 62 6c 75 65 32 2c  |2,#31:MOV blue2,|
000104f0  62 6c 75 65 32 2c 4c 53  4c 23 31 36 0d 08 b3 04  |blue2,LSL#16....|
00010500  0d 08 b4 33 20 41 44 44  20 72 65 73 75 6c 74 2c  |...3 ADD result,|
00010510  72 65 64 31 2c 67 72 65  65 6e 31 3a 41 44 44 20  |red1,green1:ADD |
00010520  72 65 73 75 6c 74 2c 72  65 73 75 6c 74 2c 62 6c  |result,result,bl|
00010530  75 65 31 0d 08 b5 4c 20  41 44 44 20 72 65 73 75  |ue1...L ADD resu|
00010540  6c 74 2c 72 65 73 75 6c  74 2c 72 65 64 32 3a 41  |lt,result,red2:A|
00010550  44 44 20 72 65 73 75 6c  74 2c 72 65 73 75 6c 74  |DD result,result|
00010560  2c 67 72 65 65 6e 32 3a  41 44 44 20 72 65 73 75  |,green2:ADD resu|
00010570  6c 74 2c 72 65 73 75 6c  74 2c 62 6c 75 65 32 0d  |lt,result,blue2.|
00010580  08 b6 32 20 53 54 52 20  72 65 73 75 6c 74 2c 5b  |..2 STR result,[|
00010590  62 61 73 65 2c 6f 66 66  73 65 74 5d 3a 41 44 44  |base,offset]:ADD|
000105a0  20 6f 66 66 73 65 74 2c  6f 66 66 73 65 74 2c 23  | offset,offset,#|
000105b0  34 0d 08 b7 27 20 53 55  42 53 20 77 6f 72 64 73  |4...' SUBS words|
000105c0  2c 77 6f 72 64 73 2c 23  31 3a 42 4e 45 20 74 61  |,words,#1:BNE ta|
000105d0  72 67 61 5f 6c 6f 6f 70  0d 08 b8 0f 20 4d 4f 56  |rga_loop.... MOV|
000105e0  20 50 43 2c 52 31 34 0d  08 b9 04 0d 08 ba 06 20  | PC,R14........ |
000105f0  5d 0d 08 bb 06 20 ed 0d  08 bc 06 20 e1 0d 08 bd  |].... ..... ....|
00010600  04 0d 08 be 15 20 dd 20  f2 66 69 6c 65 72 5f 64  |..... . .filer_d|
00010610  69 73 70 6c 61 79 0d 08  bf 04 0d 08 c0 06 20 f5  |isplay........ .|
00010620  0d 08 c1 2e 20 20 66 69  6c 65 72 5f 69 6e 66 6f  |....  filer_info|
00010630  25 3d 30 3a 62 6f 78 25  3d 30 3a 72 65 66 72 65  |%=0:box%=0:refre|
00010640  73 68 25 3d b9 3a 72 69  67 68 74 25 3d 30 0d 08  |sh%=.:right%=0..|
00010650  c2 29 20 20 e6 20 32 31  36 2c 32 31 36 2c 32 31  |.)  . 216,216,21|
00010660  36 3a c8 93 20 c8 90 20  30 2c 2d 35 30 2c 31 32  |6:.. .. 0,-50,12|
00010670  38 30 2c 31 30 37 34 0d  08 c3 0d 20 20 c8 91 20  |80,1074....  .. |
00010680  30 2c 35 30 0d 08 c4 11  20 20 f2 63 6c 69 63 6b  |0,50....  .click|
00010690  5f 69 6e 66 6f 0d 08 c5  07 20 20 f5 0d 08 c6 0f  |_info....  .....|
000106a0  20 20 20 72 69 67 68 74  25 3d 30 0d 08 c7 13 20  |   right%=0.... |
000106b0  20 20 e7 20 72 65 66 72  65 73 68 25 20 8c 0d 08  |  . refresh% ...|
000106c0  c8 1c 20 20 20 20 f2 70  61 6e 65 6c 6c 65 64 5f  |..    .panelled_|
000106d0  62 61 63 6b 67 72 6f 75  6e 64 0d 08 c9 13 20 20  |background....  |
000106e0  20 20 f2 70 61 74 68 5f  62 6c 6f 63 6b 0d 08 ca  |  .path_block...|
000106f0  17 20 20 20 20 f2 73 68  6f 77 5f 66 69 6c 65 5f  |.    .show_file_|
00010700  6c 69 73 74 0d 08 cb 16  20 20 20 20 f2 6d 61 6b  |list....    .mak|
00010710  65 5f 6d 69 6e 69 5f 70  69 63 0d 08 cc 08 20 20  |e_mini_pic....  |
00010720  20 cd 0d 08 cd 11 20 20  20 72 65 66 72 65 73 68  | .....   refresh|
00010730  25 3d b9 0d 08 ce 04 0d  08 cf 1e 20 20 20 c8 97  |%=.........   ..|
00010740  20 c8 93 20 30 2c 2d 35  30 2c 31 32 38 30 2c 39  | .. 0,-50,1280,9|
00010750  32 36 2b 38 30 0d 08 d0  22 20 20 20 78 31 25 3d  |26+80..."   x1%=|
00010760  30 3a 79 31 25 3d 30 3a  71 75 69 74 25 3d 30 3a  |0:y1%=0:quit%=0:|
00010770  65 78 69 74 25 3d 30 0d  08 d1 16 20 20 20 f2 77  |exit%=0....   .w|
00010780  61 69 74 5f 6e 6f 5f 62  75 74 74 6f 6e 0d 08 d2  |ait_no_button...|
00010790  33 20 20 20 e6 33 2c 36  33 20 c8 9c 31 39 32 3a  |3   .3,63 ..192:|
000107a0  c8 93 20 c8 90 20 78 31  25 2a 32 35 36 2b 35 34  |.. .. x1%*256+54|
000107b0  2c 79 31 25 2a 34 30 2d  32 2c 31 39 38 2c 33 38  |,y1%*40-2,198,38|
000107c0  0d 08 d3 04 0d 08 d4 08  20 20 20 f5 0d 08 d5 04  |........   .....|
000107d0  0d 08 d6 09 20 20 20 20  f5 0d 08 d7 2d 20 20 20  |....    ....-   |
000107e0  20 20 c8 97 20 58 2c 59  2c 42 3a 78 32 25 3d 28  |  .. X,Y,B:x2%=(|
000107f0  58 2d 33 32 29 20 81 20  32 35 36 3a 79 32 25 3d  |X-32) . 256:y2%=|
00010800  59 20 81 20 34 30 0d 08  d8 1a 20 20 20 20 20 f2  |Y . 40....     .|
00010810  63 68 65 63 6b 5f 61 6c  74 5f 73 5f 73 61 76 65  |check_alt_s_save|
00010820  0d 08 d9 24 20 20 20 20  fd 20 78 31 25 3c 3e 78  |...$    . x1%<>x|
00010830  32 25 20 84 20 79 31 25  3c 3e 79 32 25 20 84 20  |2% . y1%<>y2% . |
00010840  42 3c 3e 30 0d 08 da 04  0d 08 db 1c 20 20 20 20  |B<>0........    |
00010850  e7 20 42 3d 31 20 8c 20  42 3d 34 3a 72 69 67 68  |. B=1 . B=4:righ|
00010860  74 25 3d b9 0d 08 dc 04  0d 08 dd 25 20 20 20 20  |t%=........%    |
00010870  e7 20 42 3d 32 20 80 20  66 74 79 70 65 24 28 62  |. B=2 . ftype$(b|
00010880  6f 78 25 29 3c 3e 22 64  69 72 22 20 8c 0d 08 de  |ox%)<>"dir" ....|
00010890  34 20 20 20 20 20 f2 66  69 6c 65 72 5f 69 6e 66  |4     .filer_inf|
000108a0  6f 3a 42 3d 32 3a e6 20  32 31 36 2c 32 31 36 2c  |o:B=2:. 216,216,|
000108b0  32 31 36 3a 71 75 69 74  25 3d b9 3a 79 32 25 3d  |216:quit%=.:y2%=|
000108c0  30 0d 08 df 29 20 20 20  20 20 c8 93 20 c8 90 20  |0...)     .. .. |
000108d0  30 2c 2d 34 30 2c 31 32  38 30 2c 32 36 38 3a f2  |0,-40,1280,268:.|
000108e0  63 6c 69 63 6b 5f 69 6e  66 6f 0d 08 e0 23 20 20  |click_info...#  |
000108f0  20 20 20 e6 33 2c 36 33  3a c8 97 20 c8 93 20 30  |   .3,63:.. .. 0|
00010900  2c 2d 35 30 2c 31 32 38  30 2c 39 32 36 0d 08 e1  |,-50,1280,926...|
00010910  09 20 20 20 20 cd 0d 08  e2 04 0d 08 e3 28 20 20  |.    ........(  |
00010920  20 20 c8 93 20 c8 90 20  78 31 25 2a 32 35 36 2b  |  .. .. x1%*256+|
00010930  35 34 2c 79 31 25 2a 34  30 2d 32 2c 31 39 38 2c  |54,y1%*40-2,198,|
00010940  33 38 0d 08 e4 28 20 20  20 20 c8 93 20 c8 90 20  |38...(    .. .. |
00010950  78 32 25 2a 32 35 36 2b  35 34 2c 79 32 25 2a 34  |x2%*256+54,y2%*4|
00010960  30 2d 32 2c 31 39 38 2c  33 38 0d 08 e5 17 20 20  |0-2,198,38....  |
00010970  20 20 78 31 25 3d 78 32  25 3a 79 31 25 3d 79 32  |  x1%=x2%:y1%=y2|
00010980  25 0d 08 e6 37 20 20 20  20 e7 20 79 32 25 3e 35  |%...7    . y2%>5|
00010990  20 80 20 79 32 25 3c 32  32 20 62 6f 78 25 3d 28  | . y2%<22 box%=(|
000109a0  32 31 2d 79 31 25 29 2b  78 31 25 2a 31 36 20 8b  |21-y1%)+x1%*16 .|
000109b0  20 62 6f 78 25 3d 37 39  0d 08 e7 04 0d 08 e8 19  | box%=79........|
000109c0  20 20 20 20 e7 20 63 61  74 24 28 62 6f 78 25 29  |    . cat$(box%)|
000109d0  3d 22 22 20 8c 0d 08 e9  29 20 20 20 20 20 c8 93  |="" ....)     ..|
000109e0  20 c8 90 20 78 32 25 2a  32 35 36 2b 35 34 2c 79  | .. x2%*256+54,y|
000109f0  32 25 2a 34 30 2d 32 2c  31 39 38 2c 33 38 0d 08  |2%*40-2,198,38..|
00010a00  ea 04 0d 08 eb 0a 20 20  20 20 20 f5 0d 08 ec 2e  |......     .....|
00010a10  20 20 20 20 20 20 c8 97  20 58 2c 59 2c 42 3a 78  |      .. X,Y,B:x|
00010a20  31 25 3d 28 58 2d 33 32  29 20 81 20 32 35 36 3a  |1%=(X-32) . 256:|
00010a30  79 31 25 3d 59 20 81 20  34 30 0d 08 ed 3b 20 20  |y1%=Y . 40...;  |
00010a40  20 20 20 20 e7 20 79 31  25 3e 35 20 80 20 79 31  |    . y1%>5 . y1|
00010a50  25 3c 32 32 20 8c 20 62  6f 78 25 3d 28 32 31 2d  |%<22 . box%=(21-|
00010a60  79 31 25 29 2b 78 31 25  2a 31 36 20 8b 20 62 6f  |y1%)+x1%*16 . bo|
00010a70  78 25 3d 37 39 0d 08 ee  1e 20 20 20 20 20 20 e7  |x%=79....      .|
00010a80  20 42 3d 31 20 8c 20 42  3d 34 3a 72 69 67 68 74  | B=1 . B=4:right|
00010a90  25 3d b9 0d 08 ef 8c 20  20 20 20 20 fd 20 63 61  |%=.....     . ca|
00010aa0  74 24 28 62 6f 78 25 29  3c 3e 22 22 20 84 20 28  |t$(box%)<>"" . (|
00010ab0  42 3d 34 20 80 20 59 3c  32 32 38 29 20 84 20 66  |B=4 . Y<228) . f|
00010ac0  69 6c 65 72 5f 69 6e 66  6f 25 20 20 20 20 20 20  |iler_info%      |
00010ad0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00010ae0  20 20 20 20 20 20 20 20  20 20 84 20 28 42 3d 34  |          . (B=4|
00010af0  20 80 20 59 3e 39 30 30  29 20 84 20 28 42 3d 34  | . Y>900) . (B=4|
00010b00  20 80 20 94 28 58 2d 31  31 34 32 29 3c 31 34 30  | . .(X-1142)<140|
00010b10  20 80 20 94 28 59 2d 32  38 32 29 3c 34 30 29 0d  | . .(Y-282)<40).|
00010b20  08 f0 04 0d 08 f1 21 20  20 20 20 20 e7 20 42 3d  |......!     . B=|
00010b30  34 20 80 20 59 3e 39 30  30 20 80 20 58 3c 31 30  |4 . Y>900 . X<10|
00010b40  36 33 20 8c 0d 08 f2 45  20 20 20 20 20 20 62 69  |63 ....E      bi|
00010b50  67 5f 64 69 72 25 3d 30  3a f2 75 73 65 72 5f 70  |g_dir%=0:.user_p|
00010b60  61 74 68 6e 61 6d 65 28  64 69 72 24 2c 32 36 30  |athname(dir$,260|
00010b70  2c 39 35 30 2c 34 36 2c  b9 29 3a 72 65 66 72 65  |,950,46,.):refre|
00010b80  73 68 25 3d b9 3a 42 3d  34 0d 08 f3 0a 20 20 20  |sh%=.:B=4....   |
00010b90  20 20 cd 0d 08 f4 04 0d  08 f5 2a 20 20 20 20 20  |  ........*     |
00010ba0  e7 20 42 3d 34 20 80 20  59 3e 39 30 30 20 80 20  |. B=4 . Y>900 . |
00010bb0  58 3e 31 30 36 32 20 80  20 58 3c 31 31 31 30 20  |X>1062 . X<1110 |
00010bc0  8c 0d 08 f6 33 20 20 20  20 20 20 62 69 67 5f 64  |....3      big_d|
00010bd0  69 72 25 3d 30 3a f2 6c  69 73 74 5f 50 61 74 68  |ir%=0:.list_Path|
00010be0  6e 61 6d 65 73 3a 72 65  66 72 65 73 68 25 3d b9  |names:refresh%=.|
00010bf0  3a 42 3d 34 0d 08 f7 0a  20 20 20 20 20 cd 0d 08  |:B=4....     ...|
00010c00  f8 04 0d 08 f9 41 20 20  20 20 20 e7 20 94 28 58  |.....A     . .(X|
00010c10  2d 35 32 30 29 3c 32 34  20 80 20 59 3e 2d 33 30  |-520)<24 . Y>-30|
00010c20  20 80 20 59 3c 31 37 30  20 8c 20 f2 6a 70 65 67  | . Y<170 . .jpeg|
00010c30  5f 62 75 74 74 6f 6e 73  3a 72 65 66 72 65 73 68  |_buttons:refresh|
00010c40  25 3d 30 0d 08 fa 3c 20  20 20 20 20 e7 20 63 61  |%=0...<     . ca|
00010c50  74 24 28 62 6f 78 25 29  3c 3e 22 22 20 8c 20 c8  |t$(box%)<>"" . .|
00010c60  93 20 c8 90 20 78 31 25  2a 32 35 36 2b 35 34 2c  |. .. x1%*256+54,|
00010c70  79 31 25 2a 34 30 2d 32  2c 31 39 38 2c 33 38 0d  |y1%*40-2,198,38.|
00010c80  08 fb 3f 20 20 20 20 20  e7 20 42 3d 34 20 80 20  |..?     . B=4 . |
00010c90  94 28 58 2d 31 30 31 32  29 3c 32 32 20 80 20 94  |.(X-1012)<22 . .|
00010ca0  28 59 2d 37 36 29 3c 32  32 20 8c 20 f2 64 72 69  |(Y-76)<22 . .dri|
00010cb0  76 65 30 3a 62 69 67 5f  64 69 72 25 3d 30 0d 08  |ve0:big_dir%=0..|
00010cc0  fc 3f 20 20 20 20 20 e7  20 42 3d 34 20 80 20 94  |.?     . B=4 . .|
00010cd0  28 58 2d 31 30 36 36 29  3c 32 32 20 80 20 94 28  |(X-1066)<22 . .(|
00010ce0  59 2d 37 36 29 3c 32 32  20 8c 20 f2 64 72 69 76  |Y-76)<22 . .driv|
00010cf0  65 31 3a 62 69 67 5f 64  69 72 25 3d 30 0d 08 fd  |e1:big_dir%=0...|
00010d00  3f 20 20 20 20 20 e7 20  42 3d 34 20 80 20 94 28  |?     . B=4 . .(|
00010d10  58 2d 31 31 32 30 29 3c  32 32 20 80 20 94 28 59  |X-1120)<22 . .(Y|
00010d20  2d 37 36 29 3c 32 32 20  8c 20 f2 64 72 69 76 65  |-76)<22 . .drive|
00010d30  34 3a 62 69 67 5f 64 69  72 25 3d 30 0d 08 fe 3f  |4:big_dir%=0...?|
00010d40  20 20 20 20 20 e7 20 42  3d 34 20 80 20 94 28 58  |     . B=4 . .(X|
00010d50  2d 31 31 37 34 29 3c 32  32 20 80 20 94 28 59 2d  |-1174)<22 . .(Y-|
00010d60  37 36 29 3c 32 32 20 8c  20 f2 64 72 69 76 65 35  |76)<22 . .drive5|
00010d70  3a 62 69 67 5f 64 69 72  25 3d 30 0d 08 ff 43 20  |:big_dir%=0...C |
00010d80  20 20 20 20 e7 20 42 3d  34 20 80 20 94 28 58 2d  |    . B=4 . .(X-|
00010d90  31 32 32 38 29 3c 32 32  20 80 20 94 28 59 2d 37  |1228)<22 . .(Y-7|
00010da0  36 29 3c 32 32 20 8c 20  f2 64 72 69 76 65 5f 75  |6)<22 . .drive_u|
00010db0  73 65 72 3a 62 69 67 5f  64 69 72 25 3d 30 0d 09  |ser:big_dir%=0..|
00010dc0  00 38 20 20 20 20 20 e7  20 42 3d 34 20 80 20 94  |.8     . B=4 . .|
00010dd0  28 58 2d 34 30 34 29 3c  32 32 20 80 20 94 28 59  |(X-404)<22 . .(Y|
00010de0  2d 39 34 29 3c 31 33 32  20 8c 20 f2 6d 65 6d 5f  |-94)<132 . .mem_|
00010df0  73 65 6c 65 63 74 0d 09  01 04 0d 09 02 38 20 20  |select.......8  |
00010e00  20 20 20 e7 20 42 3d 34  20 80 20 94 28 58 2d 31  |   . B=4 . .(X-1|
00010e10  32 32 36 29 3c 34 33 20  80 20 94 28 59 2d 32 36  |226)<43 . .(Y-26|
00010e20  36 29 3c 33 34 20 80 20  62 69 67 5f 64 69 72 25  |6)<34 . big_dir%|
00010e30  20 8c 0d 09 03 3f 20 20  20 20 20 20 73 68 6f 77  | ....?      show|
00010e40  6e 5f 64 69 72 24 3d 22  22 3a 73 74 61 72 74 5f  |n_dir$="":start_|
00010e50  65 6e 74 72 79 25 3d 6c  61 73 74 5f 73 74 61 72  |entry%=last_star|
00010e60  74 5f 65 6e 74 72 79 25  2b 37 37 3a 63 25 3d 2d  |t_entry%+77:c%=-|
00010e70  31 0d 09 04 0a 20 20 20  20 20 cc 0d 09 05 28 20  |1....     ....( |
00010e80  20 20 20 20 20 73 74 61  72 74 5f 65 6e 74 72 79  |     start_entry|
00010e90  25 3d 6c 61 73 74 5f 73  74 61 72 74 5f 65 6e 74  |%=last_start_ent|
00010ea0  72 79 25 0d 09 06 0a 20  20 20 20 20 cd 0d 09 07  |ry%....     ....|
00010eb0  04 0d 09 08 3c 20 20 20  20 20 e7 20 42 3d 34 20  |....<     . B=4 |
00010ec0  80 20 94 28 58 2d 31 31  38 34 29 3c 38 36 20 80  |. .(X-1184)<86 .|
00010ed0  20 94 28 59 2d 32 36 36  29 3c 33 34 20 80 20 77  | .(Y-266)<34 . w|
00010ee0  61 73 5f 62 69 67 5f 64  69 72 25 20 8c 0d 09 09  |as_big_dir% ....|
00010ef0  49 20 20 20 20 20 20 73  74 61 72 74 5f 65 6e 74  |I      start_ent|
00010f00  72 79 25 3d 30 3a 6c 61  73 74 5f 73 74 61 72 74  |ry%=0:last_start|
00010f10  5f 65 6e 74 72 79 25 3d  30 3a 73 68 6f 77 6e 5f  |_entry%=0:shown_|
00010f20  64 69 72 24 3d 22 22 3a  77 61 73 5f 62 69 67 5f  |dir$="":was_big_|
00010f30  64 69 72 25 3d 30 0d 09  0a 0a 20 20 20 20 20 cd  |dir%=0....     .|
00010f40  0d 09 0b 04 0d 09 0c 38  20 20 20 20 20 e7 20 42  |.......8     . B|
00010f50  3d 34 20 80 20 94 28 58  2d 31 31 34 32 29 3c 34  |=4 . .(X-1142)<4|
00010f60  33 20 80 20 94 28 59 2d  32 36 36 29 3c 33 34 20  |3 . .(Y-266)<34 |
00010f70  80 20 62 69 67 5f 64 69  72 25 20 8c 0d 09 0d 49  |. big_dir% ....I|
00010f80  20 20 20 20 20 20 73 74  61 72 74 5f 65 6e 74 72  |      start_entr|
00010f90  79 25 3d 30 3a 6c 61 73  74 5f 73 74 61 72 74 5f  |y%=0:last_start_|
00010fa0  65 6e 74 72 79 25 3d 30  3a 73 68 6f 77 6e 5f 64  |entry%=0:shown_d|
00010fb0  69 72 24 3d 22 22 3a 77  61 73 5f 62 69 67 5f 64  |ir$="":was_big_d|
00010fc0  69 72 25 3d 30 0d 09 0e  0a 20 20 20 20 20 cd 0d  |ir%=0....     ..|
00010fd0  09 0f 04 0d 09 10 09 20  20 20 20 cd 0d 09 11 04  |.......    .....|
00010fe0  0d 09 12 1a 20 20 20 fd  20 42 3d 34 20 84 20 66  |....   . B=4 . f|
00010ff0  69 6c 65 72 5f 69 6e 66  6f 25 0d 09 13 04 0d 09  |iler_info%......|
00011000  14 42 20 20 20 e7 20 63  61 74 24 28 62 6f 78 25  |.B   . cat$(box%|
00011010  29 3c 3e 22 22 20 80 20  66 74 79 70 65 24 28 62  |)<>"" . ftype$(b|
00011020  6f 78 25 29 3c 3e 22 64  69 72 22 20 6c 61 73 74  |ox%)<>"dir" last|
00011030  66 69 6c 65 24 3d 63 61  74 24 28 62 6f 78 25 29  |file$=cat$(box%)|
00011040  0d 09 15 04 0d 09 16 25  20 20 20 e7 20 c0 63 61  |.......%   . .ca|
00011050  74 24 28 62 6f 78 25 29  2c 39 29 3d 22 53 53 54  |t$(box%),9)="SST|
00011060  56 66 6f 6e 74 73 22 20  8c 0d 09 17 31 20 20 20  |Vfonts" ....1   |
00011070  20 ff 28 22 46 6f 6e 74  69 6e 73 74 61 6c 6c 20  | .("Fontinstall |
00011080  22 2b 64 69 72 24 2b 22  2e 22 2b 63 61 74 24 28  |"+dir$+"."+cat$(|
00011090  62 6f 78 25 29 2b 22 2e  22 29 0d 09 18 0f 20 20  |box%)+".")....  |
000110a0  20 20 71 75 69 74 25 3d  b9 0d 09 19 08 20 20 20  |  quit%=.....   |
000110b0  cd 0d 09 1a 04 0d 09 1b  30 20 20 20 e7 20 63 61  |........0   . ca|
000110c0  74 24 28 62 6f 78 25 29  3c 3e 22 22 20 80 20 66  |t$(box%)<>"" . f|
000110d0  74 79 70 65 24 28 62 6f  78 25 29 3d 22 70 73 63  |type$(box%)="psc|
000110e0  61 6e 22 20 8c 0d 09 1c  28 20 20 20 20 f2 6c 6f  |an" ....(    .lo|
000110f0  61 64 5f 70 73 63 61 6e  28 64 69 72 24 2b 22 2e  |ad_pscan(dir$+".|
00011100  22 2b 63 61 74 24 28 62  6f 78 25 29 29 0d 09 1d  |"+cat$(box%))...|
00011110  08 20 20 20 cd 0d 09 1e  30 20 20 20 e7 20 63 61  |.   ....0   . ca|
00011120  74 24 28 62 6f 78 25 29  3c 3e 22 22 20 80 20 66  |t$(box%)<>"" . f|
00011130  74 79 70 65 24 28 62 6f  78 25 29 3d 22 74 61 72  |type$(box%)="tar|
00011140  67 61 22 20 8c 0d 09 1f  28 20 20 20 20 f2 6c 6f  |ga" ....(    .lo|
00011150  61 64 5f 74 61 72 67 61  28 64 69 72 24 2b 22 2e  |ad_targa(dir$+".|
00011160  22 2b 63 61 74 24 28 62  6f 78 25 29 29 0d 09 20  |"+cat$(box%)).. |
00011170  08 20 20 20 cd 0d 09 21  31 20 20 20 e7 20 63 61  |.   ...!1   . ca|
00011180  74 24 28 62 6f 78 25 29  3c 3e 22 22 20 80 20 66  |t$(box%)<>"" . f|
00011190  74 79 70 65 24 28 62 6f  78 25 29 3d 22 73 70 72  |type$(box%)="spr|
000111a0  69 74 65 22 20 8c 0d 09  22 29 20 20 20 20 f2 6c  |ite" ...")    .l|
000111b0  6f 61 64 5f 73 70 72 69  74 65 28 64 69 72 24 2b  |oad_sprite(dir$+|
000111c0  22 2e 22 2b 63 61 74 24  28 62 6f 78 25 29 29 0d  |"."+cat$(box%)).|
000111d0  09 23 08 20 20 20 cd 0d  09 24 2f 20 20 20 e7 20  |.#.   ...$/   . |
000111e0  63 61 74 24 28 62 6f 78  25 29 3c 3e 22 22 20 80  |cat$(box%)<>"" .|
000111f0  20 66 74 79 70 65 24 28  62 6f 78 25 29 3d 22 6a  | ftype$(box%)="j|
00011200  70 65 67 22 20 8c 0d 09  25 27 20 20 20 20 f2 6c  |peg" ...%'    .l|
00011210  6f 61 64 5f 6a 70 65 67  28 64 69 72 24 2b 22 2e  |oad_jpeg(dir$+".|
00011220  22 2b 63 61 74 24 28 62  6f 78 25 29 29 0d 09 26  |"+cat$(box%))..&|
00011230  08 20 20 20 cd 0d 09 27  30 20 20 20 e7 20 63 61  |.   ...'0   . ca|
00011240  74 24 28 62 6f 78 25 29  3c 3e 22 22 20 80 20 66  |t$(box%)<>"" . f|
00011250  74 79 70 65 24 28 62 6f  78 25 29 3d 22 70 68 6f  |type$(box%)="pho|
00011260  74 6f 22 20 8c 0d 09 28  44 20 20 20 20 85 20 31  |to" ...(D    . 1|
00011270  39 39 37 2c 22 50 68 6f  74 6f 43 44 20 69 6d 61  |997,"PhotoCD ima|
00011280  67 65 73 20 63 61 6e 6e  6f 74 20 63 75 72 72 65  |ges cannot curre|
00011290  6e 74 6c 79 20 62 65 20  6c 6f 61 64 65 64 20 62  |ntly be loaded b|
000112a0  79 20 50 73 63 61 6e 2e  22 0d 09 29 08 20 20 20  |y Pscan."..).   |
000112b0  cd 0d 09 2a 04 0d 09 2b  25 20 20 20 e7 20 58 3e  |...*...+%   . X>|
000112c0  39 32 30 20 80 20 58 3c  31 32 36 30 20 80 20 59  |920 . X<1260 . Y|
000112d0  3c 32 20 65 78 69 74 25  3d b9 0d 09 2c 3f 20 20  |<2 exit%=...,?  |
000112e0  20 e7 20 66 74 79 70 65  24 28 62 6f 78 25 29 3d  | . ftype$(box%)=|
000112f0  22 64 69 72 22 20 80 20  ac 28 71 75 69 74 25 29  |"dir" . .(quit%)|
00011300  20 64 69 72 24 3d 64 69  72 24 2b 22 2e 22 2b 63  | dir$=dir$+"."+c|
00011310  61 74 24 28 62 6f 78 25  29 0d 09 2d 2b 20 20 20  |at$(box%)..-+   |
00011320  e7 20 94 28 58 2d 31 31  38 34 29 3c 38 30 20 80  |. .(X-1184)<80 .|
00011330  20 94 28 59 2d 31 34 30  29 3c 32 34 20 71 75 69  | .(Y-140)<24 qui|
00011340  74 25 3d b9 0d 09 2e 3f  20 20 20 e7 20 58 3e 31  |t%=....?   . X>1|
00011350  31 34 30 20 80 20 58 3c  31 32 36 36 20 80 20 59  |140 . X<1266 . Y|
00011360  3e 31 37 38 20 80 20 59  3c 32 32 30 20 f2 75 70  |>178 . Y<220 .up|
00011370  5f 6f 6e 65 5f 64 69 72  3a 62 69 67 5f 64 69 72  |_one_dir:big_dir|
00011380  25 3d 30 0d 09 2f 2a 20  20 20 e7 20 58 3e 31 30  |%=0../*   . X>10|
00011390  35 34 20 80 20 58 3c 31  31 32 36 20 80 20 59 3e  |54 . X<1126 . Y>|
000113a0  31 37 34 20 80 20 59 3c  32 32 34 20 8c 0d 09 30  |174 . Y<224 ...0|
000113b0  2a 20 20 20 20 e6 32 31  36 2c 32 31 36 2c 32 31  |*    .216,216,21|
000113c0  36 3a c8 93 20 c8 90 20  34 34 30 2c 2d 34 38 2c  |6:.. .. 440,-48,|
000113d0  39 30 30 2c 32 38 30 0d  09 31 2b 20 20 20 20 f2  |900,280..1+    .|
000113e0  72 65 6e 61 6d 65 28 a3  29 3a 62 69 67 5f 64 69  |rename(.):big_di|
000113f0  72 25 3d 30 3a 73 68 6f  77 6e 5f 64 69 72 24 3d  |r%=0:shown_dir$=|
00011400  22 22 0d 09 32 35 20 20  20 20 e6 32 31 36 2c 32  |""..25    .216,2|
00011410  31 36 2c 32 31 36 3a c8  93 20 c8 90 20 30 2c 2d  |16,216:.. .. 0,-|
00011420  34 34 2c 31 32 38 30 2c  32 37 32 3a f2 63 6c 69  |44,1280,272:.cli|
00011430  63 6b 5f 69 6e 66 6f 0d  09 33 08 20 20 20 cd 0d  |ck_info..3.   ..|
00011440  09 34 3c 20 20 20 e7 20  58 3e 39 31 36 20 80 20  |.4<   . X>916 . |
00011450  58 3c 31 30 34 36 20 80  20 59 3e 31 37 38 20 80  |X<1046 . Y>178 .|
00011460  20 59 3c 32 32 30 20 f2  72 6f 6f 74 5f 64 69 72  | Y<220 .root_dir|
00011470  3a 62 69 67 5f 64 69 72  25 3d 30 0d 09 35 04 0d  |:big_dir%=0..5..|
00011480  09 36 29 20 20 20 e7 20  58 3e 39 32 30 20 80 20  |.6)   . X>920 . |
00011490  58 3c 31 30 38 30 20 80  20 59 3e 31 32 30 20 80  |X<1080 . Y>120 .|
000114a0  20 59 3c 31 36 30 20 8c  0d 09 37 15 20 20 20 20  | Y<160 ...7.    |
000114b0  f2 73 61 76 65 5f 6f 70  74 69 6f 6e 73 0d 09 38  |.save_options..8|
000114c0  40 20 20 20 20 e7 20 ac  28 71 75 69 74 25 29 20  |@    . .(quit%) |
000114d0  e6 32 31 36 2c 32 31 36  2c 32 31 36 3a c8 93 20  |.216,216,216:.. |
000114e0  c8 90 20 30 2c 2d 35 32  2c 31 32 38 30 2c 32 38  |.. 0,-52,1280,28|
000114f0  38 3a f2 63 6c 69 63 6b  5f 69 6e 66 6f 0d 09 39  |8:.click_info..9|
00011500  08 20 20 20 cd 0d 09 3a  04 0d 09 3b 49 20 20 20  |.   ...:...;I   |
00011510  e7 20 72 69 67 68 74 25  20 80 20 62 69 67 5f 64  |. right% . big_d|
00011520  69 72 25 20 73 74 61 72  74 5f 65 6e 74 72 79 25  |ir% start_entry%|
00011530  3d 6c 61 73 74 5f 73 74  61 72 74 5f 65 6e 74 72  |=last_start_entr|
00011540  79 25 3a 73 68 6f 77 6e  5f 64 69 72 24 3d 64 69  |y%:shown_dir$=di|
00011550  72 24 0d 09 3c 04 0d 09  3d 15 20 20 fd 20 71 75  |r$..<...=.  . qu|
00011560  69 74 25 20 84 20 65 78  69 74 25 0d 09 3e 04 0d  |it% . exit%..>..|
00011570  09 3f 1f 20 fd 20 ac 20  66 69 6c 65 72 5f 69 6e  |.?. . . filer_in|
00011580  66 6f 25 20 80 20 ac 20  72 69 67 68 74 25 0d 09  |fo% . . right%..|
00011590  40 04 0d 09 41 27 20 e7  20 71 75 69 74 25 20 80  |@...A' . quit% .|
000115a0  20 62 69 67 5f 64 69 72  25 20 73 68 6f 77 6e 5f  | big_dir% shown_|
000115b0  64 69 72 24 3d 64 69 72  24 0d 09 42 04 0d 09 43  |dir$=dir$..B...C|
000115c0  1f 20 c8 91 20 30 2c 30  3a c8 97 20 c8 93 20 30  |. .. 0,0:.. .. 0|
000115d0  2c 30 2c 31 32 38 30 2c  31 30 32 34 0d 09 44 24  |,0,1280,1024..D$|
000115e0  20 e7 20 65 78 69 74 25  20 8c 20 42 49 47 51 55  | . exit% . BIGQU|
000115f0  49 54 25 3d b9 20 8b 20  f2 64 69 73 6d 69 6e 69  |IT%=. . .dismini|
00011600  0d 09 45 04 0d 09 46 06  20 e1 0d 09 47 04 0d 09  |..E...F. ...G...|
00011610  48 04 0d 09 49 0e 20 dd  20 f2 64 72 69 76 65 30  |H...I. . .drive0|
00011620  0d 09 4a 28 20 64 69 72  24 3d 22 41 44 46 53 3a  |..J( dir$="ADFS:|
00011630  3a 30 2e 24 22 3a 64 72  76 25 3d 30 3a f2 63 6c  |:0.$":drv%=0:.cl|
00011640  69 63 6b 5f 69 6e 66 6f  0d 09 4b 06 20 e1 0d 09  |ick_info..K. ...|
00011650  4c 04 0d 09 4d 0e 20 dd  20 f2 64 72 69 76 65 31  |L...M. . .drive1|
00011660  0d 09 4e 38 20 e7 20 66  6c 6f 70 70 69 65 73 25  |..N8 . floppies%|
00011670  3e 31 20 8c 20 64 69 72  24 3d 22 41 44 46 53 3a  |>1 . dir$="ADFS:|
00011680  3a 31 2e 24 22 3a 64 72  76 25 3d 31 3a f2 63 6c  |:1.$":drv%=1:.cl|
00011690  69 63 6b 5f 69 6e 66 6f  0d 09 4f 06 20 e1 0d 09  |ick_info..O. ...|
000116a0  50 04 0d 09 51 0e 20 dd  20 f2 64 72 69 76 65 34  |P...Q. . .drive4|
000116b0  0d 09 52 28 20 64 69 72  24 3d 22 41 44 46 53 3a  |..R( dir$="ADFS:|
000116c0  3a 34 2e 24 22 3a 64 72  76 25 3d 34 3a f2 63 6c  |:4.$":drv%=4:.cl|
000116d0  69 63 6b 5f 69 6e 66 6f  0d 09 53 06 20 e1 0d 09  |ick_info..S. ...|
000116e0  54 04 0d 09 55 0e 20 dd  20 f2 64 72 69 76 65 35  |T...U. . .drive5|
000116f0  0d 09 56 3b 20 e7 20 68  61 72 64 5f 64 72 69 76  |..V; . hard_driv|
00011700  65 73 25 3e 31 20 8c 20  64 69 72 24 3d 22 41 44  |es%>1 . dir$="AD|
00011710  46 53 3a 3a 35 2e 24 22  3a 64 72 76 25 3d 35 3a  |FS::5.$":drv%=5:|
00011720  f2 63 6c 69 63 6b 5f 69  6e 66 6f 0d 09 57 06 20  |.click_info..W. |
00011730  e1 0d 09 58 04 0d 09 59  12 20 dd 20 f2 64 72 69  |...X...Y. . .dri|
00011740  76 65 5f 75 73 65 72 0d  09 5a 35 20 e7 20 75 64  |ve_user..Z5 . ud|
00011750  5f 70 61 74 68 25 20 8c  20 64 69 72 24 3d 75 73  |_path% . dir$=us|
00011760  65 72 5f 64 72 69 76 65  24 3a 64 72 76 25 3d 36  |er_drive$:drv%=6|
00011770  3a f2 63 6c 69 63 6b 5f  69 6e 66 6f 0d 09 5b 06  |:.click_info..[.|
00011780  20 e1 0d 09 5c 04 0d 09  5d 12 20 dd 20 f2 6d 65  | ...\...]. . .me|
00011790  6d 5f 73 65 6c 65 63 74  0d 09 5e 1a 20 e7 20 94  |m_select..^. . .|
000117a0  28 59 2d 32 31 32 29 3c  31 36 20 8c 20 6d 73 25  |(Y-212)<16 . ms%|
000117b0  3d 30 0d 09 5f 1a 20 e7  20 94 28 59 2d 31 37 38  |=0.._. . .(Y-178|
000117c0  29 3c 31 36 20 8c 20 6d  73 25 3d 31 0d 09 60 1a  |)<16 . ms%=1..`.|
000117d0  20 e7 20 94 28 59 2d 31  34 34 29 3c 31 36 20 8c  | . .(Y-144)<16 .|
000117e0  20 6d 73 25 3d 32 0d 09  61 1a 20 e7 20 94 28 59  | ms%=2..a. . .(Y|
000117f0  2d 31 31 30 29 3c 31 36  20 8c 20 6d 73 25 3d 33  |-110)<16 . ms%=3|
00011800  0d 09 62 19 20 e7 20 94  28 59 2d 37 36 29 3c 31  |..b. . .(Y-76)<1|
00011810  36 20 8c 20 6d 73 25 3d  34 0d 09 63 19 20 e7 20  |6 . ms%=4..c. . |
00011820  94 28 59 2d 34 32 29 3c  31 36 20 8c 20 6d 73 25  |.(Y-42)<16 . ms%|
00011830  3d 35 0d 09 64 18 20 e7  20 94 28 59 2d 38 29 3c  |=5..d. . .(Y-8)<|
00011840  31 36 20 8c 20 6d 73 25  3d 36 0d 09 65 1a 20 e7  |16 . ms%=6..e. .|
00011850  20 94 28 59 2d 2d 32 36  29 3c 31 36 20 8c 20 6d  | .(Y--26)<16 . m|
00011860  73 25 3d 37 0d 09 66 16  20 e7 20 6d 73 25 3c 6d  |s%=7..f. . ms%<m|
00011870  65 6d 6f 72 69 65 73 25  20 8c 0d 09 67 0d 20 4d  |emories% ...g. M|
00011880  45 4d 25 3d 6d 73 25 0d  09 68 0e 20 c8 8e 20 4d  |EM%=ms%..h. .. M|
00011890  45 4d 25 20 ca 0d 09 69  18 20 c9 20 30 3a 6d 65  |EM% ...i. . 0:me|
000118a0  6d 62 6c 6f 63 6b 25 3d  6d 65 6d 31 25 0d 09 6a  |mblock%=mem1%..j|
000118b0  18 20 c9 20 31 3a 6d 65  6d 62 6c 6f 63 6b 25 3d  |. . 1:memblock%=|
000118c0  6d 65 6d 32 25 0d 09 6b  18 20 c9 20 32 3a 6d 65  |mem2%..k. . 2:me|
000118d0  6d 62 6c 6f 63 6b 25 3d  6d 65 6d 33 25 0d 09 6c  |mblock%=mem3%..l|
000118e0  18 20 c9 20 33 3a 6d 65  6d 62 6c 6f 63 6b 25 3d  |. . 3:memblock%=|
000118f0  6d 65 6d 34 25 0d 09 6d  18 20 c9 20 34 3a 6d 65  |mem4%..m. . 4:me|
00011900  6d 62 6c 6f 63 6b 25 3d  6d 65 6d 35 25 0d 09 6e  |mblock%=mem5%..n|
00011910  18 20 c9 20 35 3a 6d 65  6d 62 6c 6f 63 6b 25 3d  |. . 5:memblock%=|
00011920  6d 65 6d 36 25 0d 09 6f  18 20 c9 20 36 3a 6d 65  |mem6%..o. . 6:me|
00011930  6d 62 6c 6f 63 6b 25 3d  6d 65 6d 37 25 0d 09 70  |mblock%=mem7%..p|
00011940  18 20 c9 20 37 3a 6d 65  6d 62 6c 6f 63 6b 25 3d  |. . 7:memblock%=|
00011950  6d 65 6d 38 25 0d 09 71  06 20 cb 0d 09 72 06 20  |mem8%..q. ...r. |
00011960  cd 0d 09 73 1e 20 f2 6d  61 6b 65 5f 6d 69 6e 69  |...s. .make_mini|
00011970  5f 70 69 63 3a 72 65 66  72 65 73 68 25 3d 30 0d  |_pic:refresh%=0.|
00011980  09 74 06 20 e1 0d 09 75  04 0d 09 76 14 20 dd 20  |.t. ...u...v. . |
00011990  f2 61 72 65 5f 79 6f 75  5f 73 75 72 65 0d 09 77  |.are_you_sure..w|
000119a0  23 20 f2 72 61 69 73 65  64 5f 62 6c 6f 63 6b 28  |# .raised_block(|
000119b0  37 35 34 2c 2d 31 36 2c  35 30 38 2c 32 33 36 29  |754,-16,508,236)|
000119c0  0d 09 78 24 20 e6 20 32  30 30 2c 30 2c 30 3a c8  |..x$ . 200,0,0:.|
000119d0  93 20 c8 90 20 37 35 34  2c 2d 31 36 2c 35 30 38  |. .. 754,-16,508|
000119e0  2c 32 33 36 0d 09 79 33  20 f2 77 72 69 74 65 32  |,236..y3 .write2|
000119f0  28 22 44 65 6c 65 74 65  20 66 69 6c 65 20 3a 20  |("Delete file : |
00011a00  22 2b 63 61 74 24 28 62  6f 78 25 29 2c 38 33 30  |"+cat$(box%),830|
00011a10  2c 32 31 32 2c 31 29 0d  09 7a 28 20 f2 77 72 69  |,212,1)..z( .wri|
00011a20  74 65 32 28 22 41 72 65  20 79 6f 75 20 73 75 72  |te2("Are you sur|
00011a30  65 20 3f 22 2c 38 38 34  2c 31 34 36 2c 31 29 0d  |e ?",884,146,1).|
00011a40  09 7b 20 20 f2 72 61 69  73 65 64 5f 62 6c 6f 63  |.{  .raised_bloc|
00011a50  6b 28 38 33 32 2c 38 2c  31 34 30 2c 35 30 29 0d  |k(832,8,140,50).|
00011a60  09 7c 21 20 f2 72 61 69  73 65 64 5f 62 6c 6f 63  |.|! .raised_bloc|
00011a70  6b 28 31 30 33 34 2c 38  2c 31 34 30 2c 35 30 29  |k(1034,8,140,50)|
00011a80  0d 09 7d 1c 20 f2 77 72  69 74 65 32 28 22 59 45  |..}. .write2("YE|
00011a90  53 22 2c 38 36 32 2c 36  38 2c 34 29 0d 09 7e 1c  |S",862,68,4)..~.|
00011aa0  20 f2 77 72 69 74 65 32  28 22 4e 4f 22 2c 31 30  | .write2("NO",10|
00011ab0  37 34 2c 36 38 2c 34 29  0d 09 7f 1a 20 c8 97 20  |74,68,4).... .. |
00011ac0  c8 93 20 37 35 34 2c 2d  31 36 2c 35 30 38 2c 32  |.. 754,-16,508,2|
00011ad0  33 36 0d 09 80 2b 20 f2  77 61 69 74 5f 6e 6f 5f  |36...+ .wait_no_|
00011ae0  62 75 74 74 6f 6e 3a f5  3a c8 97 20 58 2c 59 2c  |button:.:.. X,Y,|
00011af0  42 3a fd 20 42 3d 34 20  84 20 42 3d 31 0d 09 81  |B:. B=4 . B=1...|
00011b00  33 20 e7 20 94 28 58 2d  39 30 34 29 3c 37 34 20  |3 . .(X-904)<74 |
00011b10  80 20 94 28 59 2d 33 34  29 3c 33 30 20 8c 20 73  |. .(Y-34)<30 . s|
00011b20  75 72 65 25 3d b9 20 8b  20 73 75 72 65 25 3d 30  |ure%=. . sure%=0|
00011b30  0d 09 82 06 20 e1 0d 09  83 04 0d 09 84 15 20 dd  |.... ......... .|
00011b40  20 f2 72 65 6e 61 6d 65  28 66 6c 61 67 25 29 0d  | .rename(flag%).|
00011b50  09 85 44 20 f4 20 49 66  20 66 6c 61 67 25 3d 54  |..D . If flag%=T|
00011b60  52 55 45 20 74 68 65 6e  20 72 65 6e 61 6d 65 2c  |RUE then rename,|
00011b70  20 69 66 20 46 41 4c 53  45 20 74 68 65 6e 20 63  | if FALSE then c|
00011b80  72 65 61 74 65 20 6e 65  77 20 64 69 72 65 63 74  |reate new direct|
00011b90  6f 72 79 0d 09 86 23 20  f2 72 61 69 73 65 64 5f  |ory...# .raised_|
00011ba0  62 6c 6f 63 6b 28 37 35  34 2c 2d 31 36 2c 35 31  |block(754,-16,51|
00011bb0  32 2c 32 33 36 29 0d 09  87 13 20 72 65 6e 61 6d  |2,236).... renam|
00011bc0  65 5f 71 75 69 74 25 3d  30 0d 09 88 26 20 e6 20  |e_quit%=0...& . |
00011bd0  32 30 30 2c 31 30 30 2c  30 3a c8 93 20 c8 90 20  |200,100,0:.. .. |
00011be0  37 35 34 2c 2d 31 36 2c  35 30 38 2c 32 33 36 0d  |754,-16,508,236.|
00011bf0  09 89 26 20 e6 20 32 35  35 2c 32 35 35 2c 32 35  |..& . 255,255,25|
00011c00  35 3a c8 93 20 c8 90 20  38 37 32 2c 39 36 2c 32  |5:.. .. 872,96,2|
00011c10  34 30 2c 34 30 0d 09 8a  11 20 20 e7 20 66 6c 61  |40,40....  . fla|
00011c20  67 25 3d b9 20 8c 0d 09  8b 18 20 20 72 65 6e 61  |g%=. .....  rena|
00011c30  6d 65 24 3d 63 61 74 24  28 62 6f 78 25 29 0d 09  |me$=cat$(box%)..|
00011c40  8c 30 20 20 f2 77 72 69  74 65 32 28 22 45 6e 74  |.0  .write2("Ent|
00011c50  65 72 20 6e 65 77 20 66  69 6c 65 6e 61 6d 65 20  |er new filename |
00011c60  3a 2d 22 2c 38 33 34 2c  32 31 32 2c 31 29 0d 09  |:-",834,212,1)..|
00011c70  8d 06 20 cc 0d 09 8e 16  20 20 72 65 6e 61 6d 65  |.. .....  rename|
00011c80  24 3d 22 6e 65 77 64 69  72 22 0d 09 8f 35 20 20  |$="newdir"...5  |
00011c90  f2 77 72 69 74 65 32 28  22 45 6e 74 65 72 20 6e  |.write2("Enter n|
00011ca0  65 77 20 64 69 72 65 63  74 6f 72 79 20 6e 61 6d  |ew directory nam|
00011cb0  65 3a 2d 22 2c 38 31 30  2c 32 31 32 2c 31 29 0d  |e:-",810,212,1).|
00011cc0  09 90 06 20 cd 0d 09 91  23 20 f2 77 72 69 74 65  |... ....# .write|
00011cd0  32 28 72 65 6e 61 6d 65  24 2b 22 7c 22 2c 38 38  |2(rename$+"|",88|
00011ce0  30 2c 31 35 30 2c 30 29  0d 09 92 20 20 f2 72 61  |0,150,0)...  .ra|
00011cf0  69 73 65 64 5f 62 6c 6f  63 6b 28 38 33 32 2c 38  |ised_block(832,8|
00011d00  2c 31 34 30 2c 35 30 29  0d 09 93 21 20 f2 72 61  |,140,50)...! .ra|
00011d10  69 73 65 64 5f 62 6c 6f  63 6b 28 31 30 33 34 2c  |ised_block(1034,|
00011d20  38 2c 31 34 30 2c 35 30  29 0d 09 94 1f 20 f2 77  |8,140,50).... .w|
00011d30  72 69 74 65 32 28 22 43  41 4e 43 45 4c 22 2c 38  |rite2("CANCEL",8|
00011d40  34 34 2c 36 38 2c 34 29  0d 09 95 1c 20 f2 77 72  |44,68,4).... .wr|
00011d50  69 74 65 32 28 22 4f 4b  22 2c 31 30 37 34 2c 36  |ite2("OK",1074,6|
00011d60  38 2c 34 29 0d 09 96 1a  20 c8 97 20 c8 93 20 37  |8,4).... .. .. 7|
00011d70  35 34 2c 2d 31 36 2c 35  30 38 2c 32 33 36 0d 09  |54,-16,508,236..|
00011d80  97 20 20 f2 77 61 69 74  5f 6e 6f 5f 62 75 74 74  |.  .wait_no_butt|
00011d90  6f 6e 3a f5 20 fd 20 bf  28 31 29 3d 22 22 0d 09  |on:. . .(1)=""..|
00011da0  98 06 20 f5 0d 09 99 07  20 20 f5 0d 09 9a 17 20  |.. .....  ..... |
00011db0  20 20 c8 97 20 58 2c 59  2c 42 3a 4b 24 3d bf 28  |  .. X,Y,B:K$=.(|
00011dc0  31 29 0d 09 9b 1a 20 20  fd 20 42 3d 34 20 84 20  |1)....  . B=4 . |
00011dd0  42 3d 31 20 84 20 4b 24  3c 3e 22 22 0d 09 9c 11  |B=1 . K$<>""....|
00011de0  20 20 e7 20 42 3d 31 20  8c 20 42 3d 34 0d 09 9d  |  . B=1 . B=4...|
00011df0  17 20 20 e7 20 4b 24 3d  bd 38 20 8c 20 4b 24 3d  |.  . K$=.8 . K$=|
00011e00  bd 31 32 37 0d 09 9e 22  20 20 e7 20 97 28 4b 24  |.127..."  . .(K$|
00011e10  29 3d 31 32 37 20 80 20  a9 28 72 65 6e 61 6d 65  |)=127 . .(rename|
00011e20  24 29 3e 30 20 8c 0d 09  9f 2b 20 20 20 4c 25 3d  |$)>0 ....+   L%=|
00011e30  a9 28 72 65 6e 61 6d 65  24 29 3a 72 65 6e 61 6d  |.(rename$):renam|
00011e40  65 24 3d c0 72 65 6e 61  6d 65 24 2c 4c 25 2d 31  |e$=.rename$,L%-1|
00011e50  29 0d 09 a0 28 20 20 20  e6 20 32 35 35 2c 32 35  |)...(   . 255,25|
00011e60  35 2c 32 35 35 3a c8 93  20 c8 90 20 38 37 32 2c  |5,255:.. .. 872,|
00011e70  39 36 2c 32 34 30 2c 34  30 0d 09 a1 25 20 20 20  |96,240,40...%   |
00011e80  f2 77 72 69 74 65 32 28  72 65 6e 61 6d 65 24 2b  |.write2(rename$+|
00011e90  22 7c 22 2c 38 38 30 2c  31 35 30 2c 30 29 0d 09  |"|",880,150,0)..|
00011ea0  a2 07 20 20 cd 0d 09 a3  12 20 20 e7 20 97 28 4b  |..  .....  . .(K|
00011eb0  24 29 3d 32 31 20 8c 0d  09 a4 33 20 20 20 72 65  |$)=21 ....3   re|
00011ec0  6e 61 6d 65 24 3d 22 22  3a e6 20 32 35 35 2c 32  |name$="":. 255,2|
00011ed0  35 35 2c 32 35 35 3a c8  93 20 c8 90 20 38 37 32  |55,255:.. .. 872|
00011ee0  2c 39 36 2c 32 34 30 2c  34 30 0d 09 a5 25 20 20  |,96,240,40...%  |
00011ef0  20 f2 77 72 69 74 65 32  28 72 65 6e 61 6d 65 24  | .write2(rename$|
00011f00  2b 22 7c 22 2c 38 38 30  2c 31 35 30 2c 30 29 0d  |+"|",880,150,0).|
00011f10  09 a6 07 20 20 cd 0d 09  a7 2e 20 20 e7 20 a9 28  |...  .....  . .(|
00011f20  72 65 6e 61 6d 65 24 29  3c 31 30 20 80 20 97 28  |rename$)<10 . .(|
00011f30  4b 24 29 3e 33 31 20 80  20 97 28 4b 24 29 3c 31  |K$)>31 . .(K$)<1|
00011f40  32 33 20 8c 0d 09 a8 34  20 20 20 72 65 6e 61 6d  |23 ....4   renam|
00011f50  65 24 2b 3d 4b 24 3a e6  20 32 35 35 2c 32 35 35  |e$+=K$:. 255,255|
00011f60  2c 32 35 35 3a c8 93 20  c8 90 20 38 37 32 2c 39  |,255:.. .. 872,9|
00011f70  36 2c 32 34 30 2c 34 30  0d 09 a9 25 20 20 20 f2  |6,240,40...%   .|
00011f80  77 72 69 74 65 32 28 72  65 6e 61 6d 65 24 2b 22  |write2(rename$+"|
00011f90  7c 22 2c 38 38 30 2c 31  35 30 2c 30 29 0d 09 aa  ||",880,150,0)...|
00011fa0  07 20 20 cd 0d 09 ab 13  20 fd 20 42 3d 34 20 84  |.  ..... . B=4 .|
00011fb0  20 4b 24 3d bd 31 33 0d  09 ac 35 20 e7 20 28 42  | K$=.13...5 . (B|
00011fc0  3d 34 20 80 20 28 94 28  58 2d 31 31 30 34 29 3c  |=4 . (.(X-1104)<|
00011fd0  37 34 20 80 20 94 28 59  2d 33 34 29 3c 33 30 29  |74 . .(Y-34)<30)|
00011fe0  29 20 84 20 4b 24 3d bd  31 33 20 8c 0d 09 ad 16  |) . K$=.13 .....|
00011ff0  20 20 e7 20 a9 28 72 65  6e 61 6d 65 24 29 3e 30  |  . .(rename$)>0|
00012000  20 8c 0d 09 ae 12 20 20  20 e7 20 66 6c 61 67 25  | .....   . flag%|
00012010  3d b9 20 8c 0d 09 af 4c  20 20 20 20 ff 28 22 52  |=. ....L    .("R|
00012020  45 4e 41 4d 45 20 22 2b  64 69 72 24 2b 22 2e 22  |ENAME "+dir$+"."|
00012030  2b 63 61 74 24 28 62 6f  78 25 29 2b 22 20 22 2b  |+cat$(box%)+" "+|
00012040  64 69 72 24 2b 22 2e 22  2b 72 65 6e 61 6d 65 24  |dir$+"."+rename$|
00012050  29 3a 73 68 6f 77 6e 5f  64 69 72 24 3d 22 2d 22  |):shown_dir$="-"|
00012060  0d 09 b0 08 20 20 20 cc  0d 09 b1 39 20 20 20 20  |....   ....9    |
00012070  ff 28 22 43 44 49 52 20  22 2b 64 69 72 24 2b 22  |.("CDIR "+dir$+"|
00012080  2e 22 2b 72 65 6e 61 6d  65 24 29 3a 64 69 72 24  |."+rename$):dir$|
00012090  3d 64 69 72 24 2b 22 2e  22 2b 72 65 6e 61 6d 65  |=dir$+"."+rename|
000120a0  24 0d 09 b2 08 20 20 20  cd 0d 09 b3 07 20 20 cd  |$....   .....  .|
000120b0  0d 09 b4 06 20 cd 0d 09  b5 06 20 e1 0d 09 b6 04  |.... ..... .....|
000120c0  0d 09 b7 12 20 dd 20 f2  66 69 6c 65 72 5f 69 6e  |.... . .filer_in|
000120d0  66 6f 0d 09 b8 27 20 e6  20 32 31 36 2c 32 31 36  |fo...' . 216,216|
000120e0  2c 32 31 36 3a c8 93 20  c8 90 20 30 2c 2d 35 30  |,216:.. .. 0,-50|
000120f0  2c 31 32 38 30 2c 32 38  32 0d 09 b9 12 20 fb 20  |,1280,282.... . |
00012100  32 34 30 2c 32 34 30 2c  32 34 30 0d 09 ba 3e 20  |240,240,240...> |
00012110  58 25 3d 34 3a 59 25 3d  35 33 3a 43 24 3d 22 22  |X%=4:Y%=53:C$=""|
00012120  3a ef 33 31 2c 58 25 2c  59 25 3a ff 28 22 49 4e  |:.31,X%,Y%:.("IN|
00012130  46 4f 20 22 2b 64 69 72  24 2b 22 2e 22 2b 63 61  |FO "+dir$+"."+ca|
00012140  74 24 28 62 6f 78 25 29  29 0d 09 bb 10 20 f5 3a  |t$(box%)).... .:|
00012150  ef 33 31 2c 58 25 2c 59  25 0d 09 bc 33 20 c8 99  |.31,X%,Y%...3 ..|
00012160  20 22 4f 53 5f 42 79 74  65 22 2c 31 33 35 20 b8  | "OS_Byte",135 .|
00012170  2c 53 56 25 3a e7 20 53  56 25 3e 33 31 20 8c 20  |,SV%:. SV%>31 . |
00012180  43 24 3d 43 24 2b bd 28  53 56 25 29 0d 09 bd 27  |C$=C$+.(SV%)...'|
00012190  20 58 25 2b 3d 31 3a fd  20 58 25 3d 37 30 3a c8  | X%+=1:. X%=70:.|
000121a0  93 20 c8 90 20 30 2c 2d  35 30 2c 31 32 38 30 2c  |. .. 0,-50,1280,|
000121b0  32 38 32 0d 09 be 22 20  f2 72 61 69 73 65 64 5f  |282..." .raised_|
000121c0  62 6c 6f 63 6b 28 31 36  2c 2d 31 36 2c 37 32 30  |block(16,-16,720|
000121d0  2c 32 33 36 29 0d 09 bf  27 20 e6 20 31 36 30 2c  |,236)...' . 160,|
000121e0  32 30 30 2c 32 35 35 3a  c8 93 20 c8 90 20 31 36  |200,255:.. .. 16|
000121f0  2c 2d 31 36 2c 37 32 30  2c 32 33 36 0d 09 c0 26  |,-16,720,236...&|
00012200  20 e6 20 32 35 35 2c 32  35 35 2c 32 35 35 3a c8  | . 255,255,255:.|
00012210  93 20 c8 90 20 33 32 2c  31 36 30 2c 34 30 30 2c  |. .. 32,160,400,|
00012220  34 30 0d 09 c1 33 20 f2  77 72 69 74 65 32 28 22  |40...3 .write2("|
00012230  49 6e 66 6f 20 6f 6e 20  66 69 6c 65 20 3a 20 22  |Info on file : "|
00012240  2b 63 61 74 24 28 62 6f  78 25 29 2c 34 36 2c 32  |+cat$(box%),46,2|
00012250  31 32 2c 30 29 0d 09 c2  1e 20 f2 77 72 69 74 65  |12,0).... .write|
00012260  32 28 c1 43 24 2c 32 32  29 2c 34 34 2c 31 34 36  |2(.C$,22),44,146|
00012270  2c 30 29 0d 09 c3 1f 20  f2 72 61 69 73 65 64 5f  |,0).... .raised_|
00012280  62 6c 6f 63 6b 28 35 32  2c 38 2c 31 37 32 2c 35  |block(52,8,172,5|
00012290  30 29 0d 09 c4 20 20 f2  72 61 69 73 65 64 5f 62  |0)...  .raised_b|
000122a0  6c 6f 63 6b 28 32 39 30  2c 38 2c 31 37 32 2c 35  |lock(290,8,172,5|
000122b0  30 29 0d 09 c5 20 20 f2  72 61 69 73 65 64 5f 62  |0)...  .raised_b|
000122c0  6c 6f 63 6b 28 35 32 38  2c 38 2c 31 37 32 2c 35  |lock(528,8,172,5|
000122d0  30 29 0d 09 c6 1e 20 f2  77 72 69 74 65 32 28 22  |0).... .write2("|
000122e0  44 45 4c 45 54 45 22 2c  37 38 2c 36 38 2c 34 29  |DELETE",78,68,4)|
000122f0  0d 09 c7 1f 20 f2 77 72  69 74 65 32 28 22 43 41  |.... .write2("CA|
00012300  4e 43 45 4c 22 2c 35 35  38 2c 36 38 2c 34 29 0d  |NCEL",558,68,4).|
00012310  09 c8 1f 20 f2 77 72 69  74 65 32 28 22 52 45 4e  |... .write2("REN|
00012320  41 4d 45 22 2c 33 31 34  2c 36 38 2c 34 29 0d 09  |AME",314,68,4)..|
00012330  c9 19 20 c8 97 20 c8 93  20 31 36 2c 2d 31 36 2c  |.. .. .. 16,-16,|
00012340  37 32 30 2c 32 33 36 0d  09 ca 24 20 64 65 6c 65  |720,236...$ dele|
00012350  74 65 25 3d 30 3a 63 61  6e 63 65 6c 25 3d 30 3a  |te%=0:cancel%=0:|
00012360  72 65 6e 61 6d 65 25 3d  30 3a f5 0d 09 cb 1b 20  |rename%=0:..... |
00012370  f5 3a c8 97 20 58 2c 59  2c 42 3a fd 20 42 3d 34  |.:.. X,Y,B:. B=4|
00012380  20 84 20 42 3d 31 0d 09  cc 2b 20 e7 20 94 28 58  | . B=1...+ . .(X|
00012390  2d 31 33 39 29 3c 39 30  20 80 20 94 28 59 2d 33  |-139)<90 . .(Y-3|
000123a0  34 29 3c 33 30 20 8c 20  64 65 6c 65 74 65 25 3d  |4)<30 . delete%=|
000123b0  b9 0d 09 cd 36 20 e7 20  94 28 58 2d 33 37 36 29  |....6 . .(X-376)|
000123c0  3c 39 30 20 80 20 94 28  59 2d 33 34 29 3c 33 30  |<90 . .(Y-34)<30|
000123d0  20 8c 20 f2 72 65 6e 61  6d 65 28 b9 29 3a 63 61  | . .rename(.):ca|
000123e0  6e 63 65 6c 25 3d b9 0d  09 ce 2b 20 e7 20 94 28  |ncel%=....+ . .(|
000123f0  58 2d 36 31 34 29 3c 39  30 20 80 20 94 28 59 2d  |X-614)<90 . .(Y-|
00012400  33 34 29 3c 33 30 20 8c  20 63 61 6e 63 65 6c 25  |34)<30 . cancel%|
00012410  3d b9 0d 09 cf 18 20 fd  20 63 61 6e 63 65 6c 25  |=..... . cancel%|
00012420  20 84 20 64 65 6c 65 74  65 25 0d 09 d0 10 20 e7  | . delete%.... .|
00012430  20 64 65 6c 65 74 65 25  20 8c 0d 09 d1 12 20 f2  | delete% ..... .|
00012440  61 72 65 5f 79 6f 75 5f  73 75 72 65 0d 09 d2 3e  |are_you_sure...>|
00012450  20 e7 20 73 75 72 65 25  20 8c 20 ff 28 22 44 45  | . sure% . .("DE|
00012460  4c 45 54 45 20 22 2b 64  69 72 24 2b 22 2e 22 2b  |LETE "+dir$+"."+|
00012470  63 61 74 24 28 62 6f 78  25 29 29 3a 73 68 6f 77  |cat$(box%)):show|
00012480  6e 5f 64 69 72 24 3d 22  2d 22 0d 09 d3 14 20 cd  |n_dir$="-".... .|
00012490  3a 66 69 6c 65 72 5f 69  6e 66 6f 25 3d b9 0d 09  |:filer_info%=...|
000124a0  d4 18 20 c8 97 20 c8 93  20 30 2c 30 2c 31 32 38  |.. .. .. 0,0,128|
000124b0  30 2c 31 30 32 34 0d 09  d5 14 20 f2 77 61 69 74  |0,1024.... .wait|
000124c0  5f 6e 6f 5f 62 75 74 74  6f 6e 0d 09 d6 06 20 e1  |_no_button.... .|
000124d0  0d 09 d7 04 0d 09 d8 1b  20 dd 20 f2 70 61 6e 65  |........ . .pane|
000124e0  6c 6c 65 64 5f 62 61 63  6b 67 72 6f 75 6e 64 0d  |lled_background.|
000124f0  09 d9 27 20 e6 20 32 31  36 2c 32 31 36 2c 32 31  |..' . 216,216,21|
00012500  36 3a c8 93 20 c8 90 20  30 2c 32 33 34 2c 31 32  |6:.. .. 0,234,12|
00012510  38 30 2c 38 37 38 0d 09  da 34 20 e3 20 59 25 3d  |80,878...4 . Y%=|
00012520  32 33 38 20 b8 20 38 37  38 20 88 34 30 3a e6 20  |238 . 878 .40:. |
00012530  32 30 30 2c 32 30 30 2c  32 30 30 3a 86 20 30 2c  |200,200,200:. 0,|
00012540  59 25 2c 31 32 38 30 2c  59 25 0d 09 db 27 20 e6  |Y%,1280,Y%...' .|
00012550  20 32 33 32 2c 32 33 32  2c 32 33 32 3a 86 20 30  | 232,232,232:. 0|
00012560  2c 59 25 2d 32 2c 31 32  38 30 2c 59 25 2d 32 3a  |,Y%-2,1280,Y%-2:|
00012570  ed 0d 09 dc 37 20 e3 20  58 25 3d 32 35 36 20 b8  |....7 . X%=256 .|
00012580  20 31 30 32 34 20 88 32  35 36 3a e6 20 32 33 32  | 1024 .256:. 232|
00012590  2c 32 33 32 2c 32 33 32  3a 86 20 58 25 2c 32 33  |,232,232:. X%,23|
000125a0  38 2c 58 25 2c 38 37 38  0d 09 dd 28 20 e6 20 32  |8,X%,878...( . 2|
000125b0  30 30 2c 32 30 30 2c 32  30 30 3a 86 20 58 25 2d  |00,200,200:. X%-|
000125c0  32 2c 32 33 38 2c 58 25  2d 32 2c 38 37 38 3a ed  |2,238,X%-2,878:.|
000125d0  0d 09 de 28 20 e6 20 32  31 36 2c 32 31 36 2c 32  |...( . 216,216,2|
000125e0  31 36 3a c8 93 20 c8 90  20 31 30 32 36 2c 32 33  |16:.. .. 1026,23|
000125f0  34 2c 32 36 30 2c 36 30  0d 09 df 04 0d 09 e0 06  |4,260,60........|
00012600  20 e1 0d 09 e1 05 20 0d  09 e2 1f 20 dd 20 f2 77  | ..... .... . .w|
00012610  72 69 74 65 32 28 74 65  78 74 24 2c 78 25 2c 79  |rite2(text$,x%,y|
00012620  25 2c 66 63 25 29 0d 09  e3 1b 20 e7 20 c0 70 61  |%,fc%).... . .pa|
00012630  6e 65 6c 24 2c 35 29 3d  22 50 61 6e 65 6c 22 20  |nel$,5)="Panel" |
00012640  8c 0d 09 e4 10 20 20 e7  20 66 63 25 3e 39 39 20  |.....  . fc%>99 |
00012650  8c 0d 09 e5 23 20 20 70  61 6e 65 6c 24 3d 22 50  |....#  panel$="P|
00012660  61 6e 65 6c 2e 46 69 78  65 64 22 3a 66 63 25 2d  |anel.Fixed":fc%-|
00012670  3d 31 30 30 0d 09 e6 07  20 20 cc 0d 09 e7 1b 20  |=100....  ..... |
00012680  20 70 61 6e 65 6c 24 3d  22 50 61 6e 65 6c 2e 4d  | panel$="Panel.M|
00012690  65 64 69 75 6d 22 0d 09  e8 07 20 20 cd 0d 09 e9  |edium"....  ....|
000126a0  06 20 cd 0d 09 ea 34 20  c8 99 20 22 46 6f 6e 74  |. ....4 .. "Font|
000126b0  5f 46 69 6e 64 46 6f 6e  74 22 2c 2c 70 61 6e 65  |_FindFont",,pane|
000126c0  6c 24 2c 31 32 2a 31 36  2c 31 32 2a 31 36 20 b8  |l$,12*16,12*16 .|
000126d0  20 66 6f 6e 74 32 25 0d  09 eb 0d 20 c8 8e 20 66  | font2%.... .. f|
000126e0  63 25 20 ca 0d 09 ec 47  20 c9 20 30 20 20 20 20  |c% ....G . 0    |
000126f0  3a c8 99 20 22 46 6f 6e  74 5f 53 65 74 50 61 6c  |:.. "Font_SetPal|
00012700  65 74 74 65 22 2c 2c 30  2c 30 2c 30 2c 26 46 46  |ette",,0,0,0,&FF|
00012710  46 46 46 46 30 30 2c 30  2c 26 36 35 37 35 37 32  |FFFF00,0,&657572|
00012720  35 34 20 3a f4 20 42 6c  61 63 6b 0d 09 ed 47 20  |54 :. Black...G |
00012730  c9 20 31 2c 34 2c 36 3a  c8 99 20 22 46 6f 6e 74  |. 1,4,6:.. "Font|
00012740  5f 53 65 74 50 61 6c 65  74 74 65 22 2c 2c 30 2c  |_SetPalette",,0,|
00012750  30 2c 30 2c 30 2c 26 46  46 46 46 46 46 30 30 2c  |0,0,0,&FFFFFF00,|
00012760  26 36 35 37 35 37 32 35  34 20 3a f4 20 57 68 69  |&65757254 :. Whi|
00012770  74 65 0d 09 ee 46 20 c9  20 32 20 20 20 20 3a c8  |te...F . 2    :.|
00012780  99 20 22 46 6f 6e 74 5f  53 65 74 50 61 6c 65 74  |. "Font_SetPalet|
00012790  74 65 22 2c 2c 30 2c 30  2c 30 2c 30 2c 26 43 38  |te",,0,0,0,0,&C8|
000127a0  34 30 30 30 30 30 2c 26  36 35 37 35 37 32 35 34  |400000,&65757254|
000127b0  20 3a f4 20 42 6c 75 65  0d 09 ef 47 20 c9 20 33  | :. Blue...G . 3|
000127c0  20 20 20 20 3a c8 99 20  22 46 6f 6e 74 5f 53 65  |    :.. "Font_Se|
000127d0  74 50 61 6c 65 74 74 65  22 2c 2c 30 2c 30 2c 30  |tPalette",,0,0,0|
000127e0  2c 30 2c 26 38 30 34 30  34 30 30 30 2c 26 36 35  |,0,&80404000,&65|
000127f0  37 35 37 32 35 34 20 3a  f4 20 42 6c 75 65 32 0d  |757254 :. Blue2.|
00012800  09 f0 47 20 c9 20 35 20  20 20 20 3a c8 99 20 22  |..G . 5    :.. "|
00012810  46 6f 6e 74 5f 53 65 74  50 61 6c 65 74 74 65 22  |Font_SetPalette"|
00012820  2c 2c 30 2c 30 2c 30 2c  30 2c 26 46 46 38 30 38  |,,0,0,0,0,&FF808|
00012830  30 30 30 2c 26 36 35 37  35 37 32 35 34 20 3a f4  |000,&65757254 :.|
00012840  20 42 6c 75 65 33 0d 09  f1 45 20 c9 20 37 20 20  | Blue3...E . 7  |
00012850  20 20 3a c8 99 20 22 46  6f 6e 74 5f 53 65 74 50  |  :.. "Font_SetP|
00012860  61 6c 65 74 74 65 22 2c  2c 30 2c 30 2c 30 2c 30  |alette",,0,0,0,0|
00012870  2c 26 30 30 30 30 38 30  30 30 2c 26 36 35 37 35  |,&00008000,&6575|
00012880  37 32 35 34 20 3a f4 20  52 65 64 0d 09 f2 06 20  |7254 :. Red.... |
00012890  cb 0d 09 f3 10 20 70 78  25 3d 30 3a 70 79 25 3d  |..... px%=0:py%=|
000128a0  30 0d 09 f4 24 20 e7 20  66 63 25 3d 34 20 84 20  |0...$ . fc%=4 . |
000128b0  66 63 25 3d 36 20 8c 20  70 78 25 2b 3d 32 3a 70  |fc%=6 . px%+=2:p|
000128c0  79 25 2d 3d 32 0d 09 f5  3b 20 c8 99 20 22 46 6f  |y%-=2...; .. "Fo|
000128d0  6e 74 5f 50 61 69 6e 74  22 2c 66 6f 6e 74 32 25  |nt_Paint",font2%|
000128e0  2c bd 31 32 37 2b 74 65  78 74 24 2c 32 35 36 2b  |,.127+text$,256+|
000128f0  31 36 2c 78 25 2b 70 78  25 2c 79 25 2b 70 79 25  |16,x%+px%,y%+py%|
00012900  0d 09 f6 0e 20 e7 20 66  63 25 3d 34 20 8c 0d 09  |.... . fc%=4 ...|
00012910  f7 36 20 c8 99 20 22 46  6f 6e 74 5f 53 65 74 50  |.6 .. "Font_SetP|
00012920  61 6c 65 74 74 65 22 2c  2c 30 2c 30 2c 30 2c 26  |alette",,0,0,0,&|
00012930  46 46 46 46 46 46 30 30  2c 30 2c 26 36 35 37 35  |FFFFFF00,0,&6575|
00012940  37 32 35 34 0d 09 f8 3f  20 c8 99 20 22 46 6f 6e  |7254...? .. "Fon|
00012950  74 5f 50 61 69 6e 74 22  2c 66 6f 6e 74 32 25 2c  |t_Paint",font2%,|
00012960  bd 31 32 37 2b 74 65 78  74 24 2c 32 35 36 2b 31  |.127+text$,256+1|
00012970  36 2c 78 25 2b 70 78 25  2d 32 2c 79 25 2b 70 79  |6,x%+px%-2,y%+py|
00012980  25 2b 32 0d 09 f9 06 20  cd 0d 09 fa 0e 20 e7 20  |%+2.... ..... . |
00012990  66 63 25 3d 36 20 8c 0d  09 fb 36 20 c8 99 20 22  |fc%=6 ....6 .. "|
000129a0  46 6f 6e 74 5f 53 65 74  50 61 6c 65 74 74 65 22  |Font_SetPalette"|
000129b0  2c 2c 30 2c 30 2c 30 2c  30 2c 26 41 30 41 30 41  |,,0,0,0,0,&A0A0A|
000129c0  30 30 30 2c 26 36 35 37  35 37 32 35 34 0d 09 fc  |000,&65757254...|
000129d0  3f 20 c8 99 20 22 46 6f  6e 74 5f 50 61 69 6e 74  |? .. "Font_Paint|
000129e0  22 2c 66 6f 6e 74 32 25  2c bd 31 32 37 2b 74 65  |",font2%,.127+te|
000129f0  78 74 24 2c 32 35 36 2b  31 36 2c 78 25 2b 70 78  |xt$,256+16,x%+px|
00012a00  25 2d 32 2c 79 25 2b 70  79 25 2b 32 0d 09 fd 06  |%-2,y%+py%+2....|
00012a10  20 cd 0d 09 fe 1e 20 c8  99 20 22 46 6f 6e 74 5f  | ..... .. "Font_|
00012a20  4c 6f 73 65 46 6f 6e 74  22 2c 66 6f 6e 74 32 25  |LoseFont",font2%|
00012a30  0d 09 ff 06 20 e1 0d 0a  00 04 0d 0a 01 12 20 dd  |.... ......... .|
00012a40  20 f2 70 61 74 68 5f 62  6c 6f 63 6b 0d 0a 02 27  | .path_block...'|
00012a50  20 e6 20 32 35 35 2c 32  35 35 2c 32 35 35 3a c8  | . 255,255,255:.|
00012a60  93 20 c8 90 20 31 32 2c  38 39 36 2c 31 32 35 30  |. .. 12,896,1250|
00012a70  2c 35 34 0d 0a 03 27 20  e6 20 31 36 30 2c 31 36  |,54...' . 160,16|
00012a80  30 2c 31 36 30 3a c8 93  20 c8 90 20 31 38 2c 38  |0,160:.. .. 18,8|
00012a90  39 32 2c 31 32 35 30 2c  35 34 0d 0a 04 27 20 e6  |92,1250,54...' .|
00012aa0  20 32 30 30 2c 32 30 30  2c 32 35 35 3a c8 93 20  | 200,200,255:.. |
00012ab0  c8 90 20 31 36 2c 38 39  36 2c 31 32 34 38 2c 35  |.. 16,896,1248,5|
00012ac0  30 0d 0a 05 39 20 c8 99  20 73 70 72 73 77 69 25  |0...9 .. sprswi%|
00012ad0  2c 32 35 36 2b 35 32 2c  73 70 62 25 2c 22 61 63  |,256+52,spb%,"ac|
00012ae0  6f 72 6e 22 2c 31 36 2c  38 38 34 2c 38 2c 30 2c  |orn",16,884,8,0,|
00012af0  74 72 61 6e 73 6c 61 74  65 25 0d 0a 06 23 20 f2  |translate%...# .|
00012b00  77 72 69 74 65 32 28 22  50 61 74 68 6e 61 6d 65  |write2("Pathname|
00012b10  20 3a 22 2c 39 32 2c 39  35 34 2c 34 29 0d 0a 07  | :",92,954,4)...|
00012b20  1e 20 f2 77 72 69 74 65  32 28 64 69 72 24 2c 32  |. .write2(dir$,2|
00012b30  36 34 2c 39 35 34 2c 31  30 30 29 0d 0a 08 3d 20  |64,954,100)...= |
00012b40  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 35  |.. sprswi%,256+5|
00012b50  32 2c 73 70 62 25 2c 22  6c 69 73 74 22 2c 32 36  |2,spb%,"list",26|
00012b60  30 2b 38 30 38 2c 38 39  38 2c 30 2c 30 2c 74 72  |0+808,898,0,0,tr|
00012b70  61 6e 73 6c 61 74 65 25  0d 0a 09 22 20 e6 20 30  |anslate%..." . 0|
00012b80  2c 30 2c 30 3a c8 93 20  32 36 30 2b 38 36 30 2c  |,0,0:.. 260+860,|
00012b90  39 30 30 2c 31 34 30 2c  34 30 0d 0a 0a 06 20 e1  |900,140,40.... .|
00012ba0  0d 0a 0b 04 0d 0a 0c 14  20 dd 20 f2 6a 70 65 67  |........ . .jpeg|
00012bb0  5f 62 75 74 74 6f 6e 73  0d 0a 0d 18 20 e3 20 59  |_buttons.... . Y|
00012bc0  25 3d 31 32 30 20 b8 20  2d 33 30 20 88 2d 35 30  |%=120 . -30 .-50|
00012bd0  0d 0a 0e 39 20 c8 99 20  73 70 72 73 77 69 25 2c  |...9 .. sprswi%,|
00012be0  32 35 36 2b 35 32 2c 73  70 62 25 2c 22 6f 66 66  |256+52,spb%,"off|
00012bf0  22 2c 35 30 30 2c 59 25  2c 38 2c 30 2c 74 72 61  |",500,Y%,8,0,tra|
00012c00  6e 73 6c 61 74 65 25 3a  ed 0d 0a 0f 1a 20 e7 20  |nslate%:..... . |
00012c10  59 3e 31 31 30 20 8c 20  6a 70 65 67 5f 6f 70 74  |Y>110 . jpeg_opt|
00012c20  25 3d 30 0d 0a 10 21 20  e7 20 59 3e 36 30 20 80  |%=0...! . Y>60 .|
00012c30  20 59 3c 31 31 31 20 8c  20 6a 70 65 67 5f 6f 70  | Y<111 . jpeg_op|
00012c40  74 25 3d 31 0d 0a 11 20  20 e7 20 59 3e 31 30 20  |t%=1...  . Y>10 |
00012c50  80 20 59 3c 36 31 20 8c  20 6a 70 65 67 5f 6f 70  |. Y<61 . jpeg_op|
00012c60  74 25 3d 32 0d 0a 12 19  20 e7 20 59 3c 31 31 20  |t%=2.... . Y<11 |
00012c70  8c 20 6a 70 65 67 5f 6f  70 74 25 3d 33 0d 0a 13  |. jpeg_opt%=3...|
00012c80  18 20 59 25 3d 31 32 30  2d 35 30 2a 6a 70 65 67  |. Y%=120-50*jpeg|
00012c90  5f 6f 70 74 25 0d 0a 14  36 20 c8 99 20 73 70 72  |_opt%...6 .. spr|
00012ca0  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
00012cb0  2c 22 6f 6e 22 2c 35 30  30 2c 59 25 2c 38 2c 30  |,"on",500,Y%,8,0|
00012cc0  2c 74 72 61 6e 73 6c 61  74 65 25 0d 0a 15 13 20  |,translate%.... |
00012cd0  c8 8e 20 6a 70 65 67 5f  6f 70 74 25 20 ca 0d 0a  |.. jpeg_opt% ...|
00012ce0  16 18 20 c9 20 30 2c 31  3a 6a 70 65 67 5f 73 63  |.. . 0,1:jpeg_sc|
00012cf0  61 6c 65 25 3d 30 0d 0a  17 19 20 c9 20 32 2c 33  |ale%=0.... . 2,3|
00012d00  3a 6a 70 65 67 5f 73 63  61 6c 65 25 3d 2d 31 0d  |:jpeg_scale%=-1.|
00012d10  0a 18 06 20 cb 0d 0a 19  06 20 e1 0d 0a 1a 04 0d  |... ..... ......|
00012d20  0a 1b 12 20 dd 20 f2 63  6c 69 63 6b 5f 69 6e 66  |... . .click_inf|
00012d30  6f 0d 0a 1c 24 20 20 f2  72 61 69 73 65 64 5f 62  |o...$  .raised_b|
00012d40  6c 6f 63 6b 28 34 36 34  2c 2d 33 36 2c 34 31 30  |lock(464,-36,410|
00012d50  2c 32 35 36 29 0d 0a 1d  31 20 20 f2 77 72 69 74  |,256)...1  .writ|
00012d60  65 32 28 22 4a 50 45 47  20 6c 6f 61 64 69 6e 67  |e2("JPEG loading|
00012d70  20 6f 70 74 69 6f 6e 73  3a 2d 22 2c 34 39 38 2c  | options:-",498,|
00012d80  32 33 32 2c 34 29 0d 0a  1e 17 20 20 59 25 3d 31  |232,4)....  Y%=1|
00012d90  32 30 3a e3 20 79 25 3d  30 20 b8 20 33 0d 0a 1f  |20:. y%=0 . 3...|
00012da0  16 20 20 e7 20 79 25 3d  6a 70 65 67 5f 6f 70 74  |.  . y%=jpeg_opt|
00012db0  25 20 8c 0d 0a 20 38 20  20 20 c8 99 20 73 70 72  |% ... 8   .. spr|
00012dc0  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
00012dd0  2c 22 6f 6e 22 2c 35 30  30 2c 59 25 2c 38 2c 30  |,"on",500,Y%,8,0|
00012de0  2c 74 72 61 6e 73 6c 61  74 65 25 0d 0a 21 07 20  |,translate%..!. |
00012df0  20 cc 0d 0a 22 39 20 20  20 c8 99 20 73 70 72 73  | ..."9   .. sprs|
00012e00  77 69 25 2c 32 35 36 2b  35 32 2c 73 70 62 25 2c  |wi%,256+52,spb%,|
00012e10  22 6f 66 66 22 2c 35 30  30 2c 59 25 2c 38 2c 30  |"off",500,Y%,8,0|
00012e20  2c 74 72 61 6e 73 6c 61  74 65 25 0d 0a 23 07 20  |,translate%..#. |
00012e30  20 cd 0d 0a 24 0e 20 20  59 25 2d 3d 35 30 3a ed  | ...$.  Y%-=50:.|
00012e40  0d 0a 25 2d 20 20 f2 77  72 69 74 65 32 28 22 43  |..%-  .write2("C|
00012e50  72 6f 70 20 74 6f 20 20  36 34 30 20 78 20 34 38  |rop to  640 x 48|
00012e60  30 22 2c 35 34 34 2c 31  37 36 2c 34 29 0d 0a 26  |0",544,176,4)..&|
00012e70  2d 20 20 f2 77 72 69 74  65 32 28 22 43 72 6f 70  |-  .write2("Crop|
00012e80  20 74 6f 20 20 36 34 30  20 78 20 35 31 32 22 2c  | to  640 x 512",|
00012e90  35 34 34 2c 31 32 36 2c  34 29 0d 0a 27 2c 20 20  |544,126,4)..',  |
00012ea0  f2 77 72 69 74 65 32 28  22 53 63 61 6c 65 20 74  |.write2("Scale t|
00012eb0  6f 20 36 34 30 20 78 20  34 38 30 22 2c 35 34 34  |o 640 x 480",544|
00012ec0  2c 37 36 2c 34 29 0d 0a  28 2c 20 20 f2 77 72 69  |,76,4)..(,  .wri|
00012ed0  74 65 32 28 22 53 63 61  6c 65 20 74 6f 20 36 34  |te2("Scale to 64|
00012ee0  30 20 78 20 35 31 32 22  2c 35 34 34 2c 32 36 2c  |0 x 512",544,26,|
00012ef0  34 29 0d 0a 29 04 0d 0a  2a 3d 20 f2 72 61 69 73  |4)..)...*= .rais|
00012f00  65 64 5f 62 6c 6f 63 6b  28 39 32 30 2c 31 38 30  |ed_block(920,180|
00012f10  2c 31 32 30 2c 34 30 29  20 3a f2 77 72 69 74 65  |,120,40) :.write|
00012f20  32 28 22 52 4f 4f 54 22  2c 39 33 34 2c 32 33 34  |2("ROOT",934,234|
00012f30  2c 34 29 0d 0a 2b 3c 20  f2 72 61 69 73 65 64 5f  |,4)..+< .raised_|
00012f40  62 6c 6f 63 6b 28 31 31  34 34 2c 31 38 30 2c 31  |block(1144,180,1|
00012f50  32 30 2c 34 30 29 3a f2  77 72 69 74 65 32 28 22  |20,40):.write2("|
00012f60  55 50 22 2c 31 31 35 30  2c 32 33 34 2c 34 29 0d  |UP",1150,234,4).|
00012f70  0a 2c 22 20 f2 72 61 69  73 65 64 5f 62 6c 6f 63  |.," .raised_bloc|
00012f80  6b 28 39 32 30 2c 31 32  30 2c 31 36 30 2c 34 30  |k(920,120,160,40|
00012f90  29 0d 0a 2d 23 20 f2 72  61 69 73 65 64 5f 62 6c  |)..-# .raised_bl|
00012fa0  6f 63 6b 28 31 31 30 34  2c 31 32 30 2c 31 36 30  |ock(1104,120,160|
00012fb0  2c 34 30 29 0d 0a 2e 22  20 f2 72 61 69 73 65 64  |,40)..." .raised|
00012fc0  5f 62 6c 6f 63 6b 28 39  32 30 2c 2d 34 30 2c 33  |_block(920,-40,3|
00012fd0  34 34 2c 34 30 29 0d 0a  2f 21 20 f2 72 61 69 73  |44,40)../! .rais|
00012fe0  65 64 5f 62 6c 6f 63 6b  28 39 32 30 2c 32 30 2c  |ed_block(920,20,|
00012ff0  33 34 34 2c 38 30 29 0d  0a 30 22 20 e6 20 39 36  |344,80)..0" . 96|
00013000  2c 39 36 2c 39 36 3a 86  20 31 32 30 34 2c 32 30  |,96,96:. 1204,20|
00013010  2c 31 32 30 34 2c 31 30  34 0d 0a 31 25 20 e6 20  |,1204,104..1% . |
00013020  32 35 35 2c 32 35 35 2c  32 35 35 3a 86 20 31 32  |255,255,255:. 12|
00013030  30 38 2c 32 30 2c 31 32  30 38 2c 31 30 34 0d 0a  |08,20,1208,104..|
00013040  32 0f 20 e7 20 64 72 76  25 3d 30 20 8c 0d 0a 33  |2. . drv%=0 ...3|
00013050  36 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |6 .. sprswi%,256|
00013060  2b 35 32 2c 73 70 62 25  2c 22 6f 6e 22 2c 39 39  |+52,spb%,"on",99|
00013070  32 2c 35 34 2c 38 2c 30  2c 74 72 61 6e 73 6c 61  |2,54,8,0,transla|
00013080  74 65 25 0d 0a 34 06 20  cc 0d 0a 35 37 20 c8 99  |te%..4. ...57 ..|
00013090  20 73 70 72 73 77 69 25  2c 32 35 36 2b 35 32 2c  | sprswi%,256+52,|
000130a0  73 70 62 25 2c 22 6f 66  66 22 2c 39 39 32 2c 35  |spb%,"off",992,5|
000130b0  34 2c 38 2c 30 2c 74 72  61 6e 73 6c 61 74 65 25  |4,8,0,translate%|
000130c0  0d 0a 36 06 20 cd 0d 0a  37 0f 20 e7 20 64 72 76  |..6. ...7. . drv|
000130d0  25 3d 31 20 8c 0d 0a 38  37 20 c8 99 20 73 70 72  |%=1 ...87 .. spr|
000130e0  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
000130f0  2c 22 6f 6e 22 2c 31 30  34 36 2c 35 34 2c 38 2c  |,"on",1046,54,8,|
00013100  30 2c 74 72 61 6e 73 6c  61 74 65 25 0d 0a 39 06  |0,translate%..9.|
00013110  20 cc 0d 0a 3a 14 20 e7  20 66 6c 6f 70 70 69 65  | ...:. . floppie|
00013120  73 25 3e 31 20 8c 0d 0a  3b 38 20 c8 99 20 73 70  |s%>1 ...;8 .. sp|
00013130  72 73 77 69 25 2c 32 35  36 2b 35 32 2c 73 70 62  |rswi%,256+52,spb|
00013140  25 2c 22 6f 66 66 22 2c  31 30 34 36 2c 35 34 2c  |%,"off",1046,54,|
00013150  38 2c 30 2c 74 72 61 6e  73 6c 61 74 65 25 0d 0a  |8,0,translate%..|
00013160  3c 06 20 cc 0d 0a 3d 3d  20 c8 99 20 73 70 72 73  |<. ...== .. sprs|
00013170  77 69 25 2c 32 35 36 2b  35 32 2c 73 70 62 25 2c  |wi%,256+52,spb%,|
00013180  22 6f 66 66 5f 67 72 65  79 22 2c 31 30 34 36 2c  |"off_grey",1046,|
00013190  35 34 2c 38 2c 30 2c 74  72 61 6e 73 6c 61 74 65  |54,8,0,translate|
000131a0  25 0d 0a 3e 06 20 cd 0d  0a 3f 06 20 cd 0d 0a 40  |%..>. ...?. ...@|
000131b0  0f 20 e7 20 64 72 76 25  3d 34 20 8c 0d 0a 41 37  |. . drv%=4 ...A7|
000131c0  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
000131d0  35 32 2c 73 70 62 25 2c  22 6f 6e 22 2c 31 31 30  |52,spb%,"on",110|
000131e0  30 2c 35 34 2c 38 2c 30  2c 74 72 61 6e 73 6c 61  |0,54,8,0,transla|
000131f0  74 65 25 0d 0a 42 06 20  cc 0d 0a 43 38 20 c8 99  |te%..B. ...C8 ..|
00013200  20 73 70 72 73 77 69 25  2c 32 35 36 2b 35 32 2c  | sprswi%,256+52,|
00013210  73 70 62 25 2c 22 6f 66  66 22 2c 31 31 30 30 2c  |spb%,"off",1100,|
00013220  35 34 2c 38 2c 30 2c 74  72 61 6e 73 6c 61 74 65  |54,8,0,translate|
00013230  25 0d 0a 44 06 20 cd 0d  0a 45 0f 20 e7 20 64 72  |%..D. ...E. . dr|
00013240  76 25 3d 35 20 8c 0d 0a  46 37 20 c8 99 20 73 70  |v%=5 ...F7 .. sp|
00013250  72 73 77 69 25 2c 32 35  36 2b 35 32 2c 73 70 62  |rswi%,256+52,spb|
00013260  25 2c 22 6f 6e 22 2c 31  31 35 34 2c 35 34 2c 38  |%,"on",1154,54,8|
00013270  2c 30 2c 74 72 61 6e 73  6c 61 74 65 25 0d 0a 47  |,0,translate%..G|
00013280  06 20 cc 0d 0a 48 17 20  e7 20 68 61 72 64 5f 64  |. ...H. . hard_d|
00013290  72 69 76 65 73 25 3e 31  20 8c 0d 0a 49 38 20 c8  |rives%>1 ...I8 .|
000132a0  99 20 73 70 72 73 77 69  25 2c 32 35 36 2b 35 32  |. sprswi%,256+52|
000132b0  2c 73 70 62 25 2c 22 6f  66 66 22 2c 31 31 35 34  |,spb%,"off",1154|
000132c0  2c 35 34 2c 38 2c 30 2c  74 72 61 6e 73 6c 61 74  |,54,8,0,translat|
000132d0  65 25 0d 0a 4a 06 20 cc  0d 0a 4b 3d 20 c8 99 20  |e%..J. ...K= .. |
000132e0  73 70 72 73 77 69 25 2c  32 35 36 2b 35 32 2c 73  |sprswi%,256+52,s|
000132f0  70 62 25 2c 22 6f 66 66  5f 67 72 65 79 22 2c 31  |pb%,"off_grey",1|
00013300  31 35 34 2c 35 34 2c 38  2c 30 2c 74 72 61 6e 73  |154,54,8,0,trans|
00013310  6c 61 74 65 25 0d 0a 4c  06 20 cd 0d 0a 4d 06 20  |late%..L. ...M. |
00013320  cd 0d 0a 4e 0f 20 e7 20  64 72 76 25 3d 36 20 8c  |...N. . drv%=6 .|
00013330  0d 0a 4f 37 20 c8 99 20  73 70 72 73 77 69 25 2c  |..O7 .. sprswi%,|
00013340  32 35 36 2b 35 32 2c 73  70 62 25 2c 22 6f 6e 22  |256+52,spb%,"on"|
00013350  2c 31 32 31 34 2c 35 34  2c 38 2c 30 2c 74 72 61  |,1214,54,8,0,tra|
00013360  6e 73 6c 61 74 65 25 0d  0a 50 06 20 cc 0d 0a 51  |nslate%..P. ...Q|
00013370  11 20 e7 20 75 64 5f 70  61 74 68 25 20 8c 0d 0a  |. . ud_path% ...|
00013380  52 38 20 c8 99 20 73 70  72 73 77 69 25 2c 32 35  |R8 .. sprswi%,25|
00013390  36 2b 35 32 2c 73 70 62  25 2c 22 6f 66 66 22 2c  |6+52,spb%,"off",|
000133a0  31 32 31 34 2c 35 34 2c  38 2c 30 2c 74 72 61 6e  |1214,54,8,0,tran|
000133b0  73 6c 61 74 65 25 0d 0a  53 06 20 cc 0d 0a 54 3d  |slate%..S. ...T=|
000133c0  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
000133d0  35 32 2c 73 70 62 25 2c  22 6f 66 66 5f 67 72 65  |52,spb%,"off_gre|
000133e0  79 22 2c 31 32 31 34 2c  35 34 2c 38 2c 30 2c 74  |y",1214,54,8,0,t|
000133f0  72 61 6e 73 6c 61 74 65  25 0d 0a 55 06 20 cd 0d  |ranslate%..U. ..|
00013400  0a 56 06 20 cd 0d 0a 57  1e 20 f2 77 72 69 74 65  |.V. ...W. .write|
00013410  32 28 22 41 44 46 53 22  2c 39 31 32 2c 31 31 30  |2("ADFS",912,110|
00013420  2c 34 29 0d 0a 58 1e 20  f2 77 72 69 74 65 32 28  |,4)..X. .write2(|
00013430  22 44 72 69 76 65 22 2c  39 31 32 2c 37 30 2c 34  |"Drive",912,70,4|
00013440  29 0d 0a 59 1a 20 f2 77  72 69 74 65 32 28 22 30  |)..Y. .write2("0|
00013450  22 2c 39 39 34 2c 37 30  2c 34 29 0d 0a 5a 1b 20  |",994,70,4)..Z. |
00013460  f2 77 72 69 74 65 32 28  22 31 22 2c 31 30 34 38  |.write2("1",1048|
00013470  2c 37 30 2c 34 29 0d 0a  5b 1b 20 f2 77 72 69 74  |,70,4)..[. .writ|
00013480  65 32 28 22 34 22 2c 31  31 30 32 2c 37 30 2c 34  |e2("4",1102,70,4|
00013490  29 0d 0a 5c 1b 20 f2 77  72 69 74 65 32 28 22 35  |)..\. .write2("5|
000134a0  22 2c 31 31 35 36 2c 37  30 2c 34 29 0d 0a 5d 1c  |",1156,70,4)..].|
000134b0  20 f2 77 72 69 74 65 32  28 22 55 44 22 2c 31 32  | .write2("UD",12|
000134c0  31 30 2c 37 30 2c 34 29  0d 0a 5e 1e 20 f2 77 72  |10,70,4)..^. .wr|
000134d0  69 74 65 32 28 22 53 41  56 45 22 2c 39 35 32 2c  |ite2("SAVE",952,|
000134e0  31 37 34 2c 34 29 0d 0a  5f 21 20 f2 77 72 69 74  |174,4).._! .writ|
000134f0  65 32 28 22 43 41 4e 43  45 4c 22 2c 31 31 32 34  |e2("CANCEL",1124|
00013500  2c 31 37 34 2c 34 29 0d  0a 60 28 20 f2 77 72 69  |,174,4)..`( .wri|
00013510  74 65 32 28 22 51 55 49  54 20 74 6f 20 44 45 53  |te2("QUIT to DES|
00013520  4b 54 4f 50 22 2c 39 37  32 2c 31 34 2c 34 29 0d  |KTOP",972,14,4).|
00013530  0a 61 38 20 c8 99 20 73  70 72 73 77 69 25 2c 32  |.a8 .. sprswi%,2|
00013540  35 36 2b 35 32 2c 73 70  62 25 2c 22 75 70 22 2c  |56+52,spb%,"up",|
00013550  31 32 32 30 2c 31 38 36  2c 38 2c 30 2c 74 72 61  |1220,186,8,0,tra|
00013560  6e 73 6c 61 74 65 25 0d  0a 62 3f 20 c8 99 20 73  |nslate%..b? .. s|
00013570  70 72 73 77 69 25 2c 32  35 36 2b 35 32 2c 73 70  |prswi%,256+52,sp|
00013580  62 25 2c 22 6e 65 77 64  69 72 22 2c 31 30 35 38  |b%,"newdir",1058|
00013590  2c 31 37 36 2c 38 2c 30  2c 74 72 61 6e 73 6c 61  |,176,8,0,transla|
000135a0  74 65 32 35 36 25 0d 0a  63 06 20 e1 0d 0a 64 04  |te256%..c. ...d.|
000135b0  0d 0a 65 14 20 dd 20 f2  73 61 76 65 5f 6f 70 74  |..e. . .save_opt|
000135c0  69 6f 6e 73 0d 0a 66 1e  20 6f 6c 64 5f 73 61 76  |ions..f. old_sav|
000135d0  65 5f 74 79 70 65 24 3d  73 61 76 65 5f 74 79 70  |e_type$=save_typ|
000135e0  65 24 0d 0a 67 19 20 c8  97 20 c8 93 20 30 2c 2d  |e$..g. .. .. 0,-|
000135f0  34 38 2c 31 32 38 30 2c  32 38 30 0d 0a 68 27 20  |48,1280,280..h' |
00013600  e6 20 32 31 36 2c 32 31  36 2c 32 31 36 3a c8 93  |. 216,216,216:..|
00013610  20 c8 90 20 36 30 30 2c  2d 35 30 2c 36 38 30 2c  | .. 600,-50,680,|
00013620  34 34 0d 0a 69 3e 20 f2  72 61 69 73 65 64 5f 62  |44..i> .raised_b|
00013630  6c 6f 63 6b 28 34 34 34  2c 2d 34 34 2c 38 32 30  |lock(444,-44,820|
00013640  2c 32 37 32 29 3a 73 61  76 65 5f 6e 61 6d 65 24  |,272):save_name$|
00013650  3d 22 22 3a 73 61 76 65  5f 71 75 69 74 25 3d 30  |="":save_quit%=0|
00013660  0d 0a 6a 14 20 c8 8e 20  73 61 76 65 5f 74 79 70  |..j. .. save_typ|
00013670  65 24 20 ca 0d 0a 6b 21  20 c9 20 22 73 70 72 69  |e$ ...k! . "spri|
00013680  74 65 22 20 3a f2 73 61  76 65 5f 62 75 74 74 6f  |te" :.save_butto|
00013690  6e 73 28 31 29 0d 0a 6c  21 20 c9 20 22 74 61 72  |ns(1)..l! . "tar|
000136a0  67 61 31 22 20 3a f2 73  61 76 65 5f 62 75 74 74  |ga1" :.save_butt|
000136b0  6f 6e 73 28 32 29 0d 0a  6d 21 20 c9 20 22 70 73  |ons(2)..m! . "ps|
000136c0  63 61 6e 22 20 20 3a f2  73 61 76 65 5f 62 75 74  |can"  :.save_but|
000136d0  74 6f 6e 73 28 33 29 0d  0a 6e 21 20 c9 20 22 6a  |tons(3)..n! . "j|
000136e0  70 65 67 31 22 20 20 3a  f2 73 61 76 65 5f 62 75  |peg1"  :.save_bu|
000136f0  74 74 6f 6e 73 28 34 29  0d 0a 6f 21 20 c9 20 22  |ttons(4)..o! . "|
00013700  6a 70 65 67 32 22 20 20  3a f2 73 61 76 65 5f 62  |jpeg2"  :.save_b|
00013710  75 74 74 6f 6e 73 28 35  29 0d 0a 70 2c 20 c9 20  |uttons(5)..p, . |
00013720  22 6f 76 65 72 6c 61 79  22 3a e7 20 6f 76 65 72  |"overlay":. over|
00013730  6c 61 79 25 20 f2 73 61  76 65 5f 62 75 74 74 6f  |lay% .save_butto|
00013740  6e 73 28 36 29 0d 0a 71  06 20 cb 0d 0a 72 2b 20  |ns(6)..q. ...r+ |
00013750  f2 77 72 69 74 65 32 28  22 53 70 72 69 74 65 20  |.write2("Sprite |
00013760  20 36 34 30 20 78 20 35  31 32 22 2c 35 31 30 2c  | 640 x 512",510,|
00013770  32 33 34 2c 34 29 0d 0a  73 2b 20 f2 77 72 69 74  |234,4)..s+ .writ|
00013780  65 32 28 22 54 61 72 67  61 20 20 20 36 34 30 20  |e2("Targa   640 |
00013790  78 20 35 31 32 22 2c 35  31 30 2c 31 39 30 2c 34  |x 512",510,190,4|
000137a0  29 0d 0a 74 1f 20 f2 77  72 69 74 65 32 28 22 50  |)..t. .write2("P|
000137b0  73 63 61 6e 22 2c 35 31  30 2c 31 34 36 2c 34 29  |scan",510,146,4)|
000137c0  0d 0a 75 23 20 f2 77 72  69 74 65 32 28 22 33 32  |..u# .write2("32|
000137d0  30 20 78 20 32 35 36 22  2c 36 32 30 2c 31 34 36  |0 x 256",620,146|
000137e0  2c 34 29 0d 0a 76 2b 20  f2 77 72 69 74 65 32 28  |,4)..v+ .write2(|
000137f0  22 4a 50 45 47 20 20 20  20 36 34 30 20 78 20 35  |"JPEG    640 x 5|
00013800  31 32 22 2c 35 31 30 2c  31 30 32 2c 34 29 0d 0a  |12",510,102,4)..|
00013810  77 2a 20 f2 77 72 69 74  65 32 28 22 4a 50 45 47  |w* .write2("JPEG|
00013820  20 20 20 20 33 32 30 20  78 20 32 35 36 22 2c 35  |    320 x 256",5|
00013830  31 30 2c 35 38 2c 34 29  0d 0a 78 2c 20 f2 77 72  |10,58,4)..x, .wr|
00013840  69 74 65 32 28 22 53 61  76 65 20 73 70 72 69 74  |ite2("Save sprit|
00013850  65 20 6f 76 65 72 6c 61  79 22 2c 35 31 30 2c 31  |e overlay",510,1|
00013860  34 2c 34 29 0d 0a 79 2a  20 f2 77 72 69 74 65 32  |4,4)..y* .write2|
00013870  28 22 45 6e 74 65 72 20  66 69 6c 65 6e 61 6d 65  |("Enter filename|
00013880  20 3a 22 2c 39 32 30 2c  32 32 34 2c 30 29 0d 0a  | :",920,224,0)..|
00013890  7a 27 20 e6 20 32 35 35  2c 32 35 35 2c 32 35 35  |z' . 255,255,255|
000138a0  3a c8 93 20 c8 90 20 39  32 30 2c 31 32 30 2c 32  |:.. .. 920,120,2|
000138b0  34 30 2c 34 30 0d 0a 7b  1b 20 f2 77 72 69 74 65  |40,40..{. .write|
000138c0  32 28 22 7c 22 2c 39 32  38 2c 31 37 34 2c 30 29  |2("|",928,174,0)|
000138d0  0d 0a 7c 21 20 f2 72 61  69 73 65 64 5f 62 6c 6f  |..|! .raised_blo|
000138e0  63 6b 28 38 36 34 2c 34  30 2c 31 36 30 2c 34 30  |ck(864,40,160,40|
000138f0  29 0d 0a 7d 22 20 f2 72  61 69 73 65 64 5f 62 6c  |)..}" .raised_bl|
00013900  6f 63 6b 28 31 30 36 34  2c 34 30 2c 31 36 30 2c  |ock(1064,40,160,|
00013910  34 30 29 0d 0a 7e 1d 20  f2 77 72 69 74 65 32 28  |40)..~. .write2(|
00013920  22 53 41 56 45 22 2c 38  39 38 2c 39 34 2c 34 29  |"SAVE",898,94,4)|
00013930  0d 0a 7f 20 20 f2 77 72  69 74 65 32 28 22 43 41  |...  .write2("CA|
00013940  4e 43 45 4c 22 2c 31 30  38 34 2c 39 34 2c 34 29  |NCEL",1084,94,4)|
00013950  0d 0a 80 2a 20 e7 20 c0  73 61 76 65 5f 74 79 70  |...* . .save_typ|
00013960  65 24 2c 34 29 3d 22 6a  70 65 67 22 20 8c 20 f2  |e$,4)="jpeg" . .|
00013970  6a 70 65 67 5f 70 61 6e  65 6c 0d 0a 81 06 20 f5  |jpeg_panel.... .|
00013980  0d 0a 82 26 20 f2 77 61  69 74 5f 6e 6f 5f 62 75  |...& .wait_no_bu|
00013990  74 74 6f 6e 3a f5 3a 4b  24 3d bf 28 31 29 3a fd  |tton:.:K$=.(1):.|
000139a0  20 4b 24 3d 22 22 0d 0a  83 2c 20 f5 3a c8 97 20  | K$=""..., .:.. |
000139b0  58 2c 59 2c 42 3a 4b 24  3d bf 28 31 29 3a fd 20  |X,Y,B:K$=.(1):. |
000139c0  42 3d 34 20 84 20 42 3d  31 20 84 20 4b 24 3c 3e  |B=4 . B=1 . K$<>|
000139d0  22 22 0d 0a 84 10 20 e7  20 42 3d 31 20 8c 20 42  |"".... . B=1 . B|
000139e0  3d 34 0d 0a 85 16 20 e7  20 4b 24 3d bd 38 20 8c  |=4.... . K$=.8 .|
000139f0  20 4b 24 3d bd 31 32 37  0d 0a 86 24 20 e7 20 97  | K$=.127...$ . .|
00013a00  28 4b 24 29 3d 31 32 37  20 80 20 a9 28 73 61 76  |(K$)=127 . .(sav|
00013a10  65 5f 6e 61 6d 65 24 29  3e 30 20 8c 0d 0a 87 32  |e_name$)>0 ....2|
00013a20  20 4c 25 3d a9 28 73 61  76 65 5f 6e 61 6d 65 24  | L%=.(save_name$|
00013a30  29 3a 73 61 76 65 5f 6e  61 6d 65 24 3d c0 73 61  |):save_name$=.sa|
00013a40  76 65 5f 6e 61 6d 65 24  2c 4c 25 2d 31 29 0d 0a  |ve_name$,L%-1)..|
00013a50  88 27 20 e6 20 32 35 35  2c 32 35 35 2c 32 35 35  |.' . 255,255,255|
00013a60  3a c8 93 20 c8 90 20 39  32 30 2c 31 32 30 2c 32  |:.. .. 920,120,2|
00013a70  34 30 2c 34 30 0d 0a 89  26 20 f2 77 72 69 74 65  |40,40...& .write|
00013a80  32 28 73 61 76 65 5f 6e  61 6d 65 24 2b 22 7c 22  |2(save_name$+"|"|
00013a90  2c 39 32 38 2c 31 37 34  2c 30 29 0d 0a 8a 06 20  |,928,174,0).... |
00013aa0  cd 0d 0a 8b 11 20 e7 20  97 28 4b 24 29 3d 32 31  |..... . .(K$)=21|
00013ab0  20 8c 0d 0a 8c 35 20 73  61 76 65 5f 6e 61 6d 65  | ....5 save_name|
00013ac0  24 3d 22 22 3a e6 20 32  35 35 2c 32 35 35 2c 32  |$="":. 255,255,2|
00013ad0  35 35 3a c8 93 20 c8 90  20 39 32 30 2c 31 32 30  |55:.. .. 920,120|
00013ae0  2c 32 34 30 2c 34 30 0d  0a 8d 26 20 f2 77 72 69  |,240,40...& .wri|
00013af0  74 65 32 28 73 61 76 65  5f 6e 61 6d 65 24 2b 22  |te2(save_name$+"|
00013b00  7c 22 2c 39 32 38 2c 31  37 34 2c 30 29 0d 0a 8e  ||",928,174,0)...|
00013b10  06 20 cd 0d 0a 8f 3a 20  e7 20 a9 28 73 61 76 65  |. ....: . .(save|
00013b20  5f 6e 61 6d 65 24 29 3c  31 30 20 80 20 97 28 4b  |_name$)<10 . .(K|
00013b30  24 29 3e 33 32 20 80 20  97 28 4b 24 29 3c 31 32  |$)>32 . .(K$)<12|
00013b40  37 20 80 20 4b 24 3c 3e  22 2e 22 20 8c 0d 0a 90  |7 . K$<>"." ....|
00013b50  36 20 73 61 76 65 5f 6e  61 6d 65 24 2b 3d 4b 24  |6 save_name$+=K$|
00013b60  3a e6 20 32 35 35 2c 32  35 35 2c 32 35 35 3a c8  |:. 255,255,255:.|
00013b70  93 20 c8 90 20 39 32 30  2c 31 32 30 2c 32 34 30  |. .. 920,120,240|
00013b80  2c 34 30 0d 0a 91 26 20  f2 77 72 69 74 65 32 28  |,40...& .write2(|
00013b90  73 61 76 65 5f 6e 61 6d  65 24 2b 22 7c 22 2c 39  |save_name$+"|",9|
00013ba0  32 38 2c 31 37 34 2c 30  29 0d 0a 92 06 20 cd 0d  |28,174,0).... ..|
00013bb0  0a 93 0c 20 e7 20 42 3d  34 20 8c 0d 0a 94 33 20  |... . B=4 ....3 |
00013bc0  e7 20 94 28 34 38 30 2d  58 29 3c 32 32 20 80 20  |. .(480-X)<22 . |
00013bd0  94 28 32 30 30 2d 59 29  3c 32 32 20 8c 20 f2 73  |.(200-Y)<22 . .s|
00013be0  61 76 65 5f 62 75 74 74  6f 6e 73 28 31 29 0d 0a  |ave_buttons(1)..|
00013bf0  95 33 20 e7 20 94 28 34  38 30 2d 58 29 3c 32 32  |.3 . .(480-X)<22|
00013c00  20 80 20 94 28 31 35 36  2d 59 29 3c 32 32 20 8c  | . .(156-Y)<22 .|
00013c10  20 f2 73 61 76 65 5f 62  75 74 74 6f 6e 73 28 32  | .save_buttons(2|
00013c20  29 0d 0a 96 33 20 e7 20  94 28 34 38 30 2d 58 29  |)...3 . .(480-X)|
00013c30  3c 32 32 20 80 20 94 28  31 31 32 2d 59 29 3c 32  |<22 . .(112-Y)<2|
00013c40  32 20 8c 20 f2 73 61 76  65 5f 62 75 74 74 6f 6e  |2 . .save_button|
00013c50  73 28 33 29 0d 0a 97 33  20 e7 20 94 28 34 38 30  |s(3)...3 . .(480|
00013c60  2d 58 29 3c 32 32 20 80  20 94 28 36 38 2d 59 29  |-X)<22 . .(68-Y)|
00013c70  3c 32 32 20 20 8c 20 f2  73 61 76 65 5f 62 75 74  |<22  . .save_but|
00013c80  74 6f 6e 73 28 34 29 0d  0a 98 33 20 e7 20 94 28  |tons(4)...3 . .(|
00013c90  34 38 30 2d 58 29 3c 32  32 20 80 20 94 28 32 34  |480-X)<22 . .(24|
00013ca0  2d 59 29 3c 32 32 20 20  8c 20 f2 73 61 76 65 5f  |-Y)<22  . .save_|
00013cb0  62 75 74 74 6f 6e 73 28  35 29 0d 0a 99 3c 20 e7  |buttons(5)...< .|
00013cc0  20 94 28 34 38 30 2d 58  29 3c 32 32 20 80 20 94  | .(480-X)<22 . .|
00013cd0  28 2d 32 30 2d 59 29 3c  32 32 20 80 20 6f 76 65  |(-20-Y)<22 . ove|
00013ce0  72 6c 61 79 25 20 f2 73  61 76 65 5f 62 75 74 74  |rlay% .save_butt|
00013cf0  6f 6e 73 28 36 29 0d 0a  9a 2f 20 e7 20 94 28 31  |ons(6).../ . .(1|
00013d00  31 34 32 2d 58 29 3c 38  30 20 80 20 94 28 36 34  |142-X)<80 . .(64|
00013d10  2d 59 29 3c 32 36 20 8c  20 73 61 76 65 5f 71 75  |-Y)<26 . save_qu|
00013d20  69 74 25 3d b9 0d 0a 9b  39 20 e7 20 94 28 58 2d  |it%=....9 . .(X-|
00013d30  33 39 38 29 3c 32 32 20  80 20 94 28 59 2d 39 34  |398)<22 . .(Y-94|
00013d40  29 3c 31 33 32 20 8c 20  f2 6d 65 6d 5f 73 65 6c  |)<132 . .mem_sel|
00013d50  65 63 74 3a 72 65 66 72  65 73 68 25 3d b9 0d 0a  |ect:refresh%=...|
00013d60  9c 56 20 e7 20 94 28 58  2d 39 36 34 29 3c 32 32  |.V . .(X-964)<22|
00013d70  20 80 20 94 28 59 29 3c  31 38 20 80 20 c0 73 61  | . .(Y)<18 . .sa|
00013d80  76 65 5f 74 79 70 65 24  2c 34 29 3d 22 6a 70 65  |ve_type$,4)="jpe|
00013d90  67 22 20 80 20 6a 70 67  71 25 3e 33 30 20 8c 20  |g" . jpgq%>30 . |
00013da0  6a 70 67 71 25 2d 3d 35  3a f2 6a 70 65 67 5f 70  |jpgq%-=5:.jpeg_p|
00013db0  61 6e 65 6c 0d 0a 9d 57  20 e7 20 94 28 58 2d 31  |anel...W . .(X-1|
00013dc0  31 32 32 29 3c 32 32 20  80 20 94 28 59 29 3c 31  |122)<22 . .(Y)<1|
00013dd0  38 20 80 20 c0 73 61 76  65 5f 74 79 70 65 24 2c  |8 . .save_type$,|
00013de0  34 29 3d 22 6a 70 65 67  22 20 80 20 6a 70 67 71  |4)="jpeg" . jpgq|
00013df0  25 3c 39 35 20 8c 20 6a  70 67 71 25 2b 3d 35 3a  |%<95 . jpgq%+=5:|
00013e00  f2 6a 70 65 67 5f 70 61  6e 65 6c 0d 0a 9e 06 20  |.jpeg_panel.... |
00013e10  cd 0d 0a 9f 34 20 e7 20  28 42 3d 34 20 80 20 28  |....4 . (B=4 . (|
00013e20  94 28 39 34 38 2d 58 29  3c 38 30 20 80 20 94 28  |.(948-X)<80 . .(|
00013e30  36 34 2d 59 29 3c 32 36  29 29 20 84 20 4b 24 3d  |64-Y)<26)) . K$=|
00013e40  bd 31 33 20 8c 0d 0a a0  25 20 20 e6 33 2c 36 33  |.13 ....%  .3,63|
00013e50  20 c8 9c 31 39 32 3a c8  93 20 c8 90 20 38 36 30  | ..192:.. .. 860|
00013e60  2c 33 36 2c 31 36 38 2c  34 38 0d 0a a1 19 20 20  |,36,168,48....  |
00013e70  e7 20 a9 28 73 61 76 65  5f 6e 61 6d 65 24 29 3e  |. .(save_name$)>|
00013e80  30 20 8c 0d 0a a2 14 20  20 20 f2 73 61 76 65 5f  |0 .....   .save_|
00013e90  70 69 63 74 75 72 65 0d  0a a3 07 20 20 cc 0d 0a  |picture....  ...|
00013ea0  a4 22 20 20 20 4b 3d a6  28 32 35 29 3a c8 93 20  |."   K=.(25):.. |
00013eb0  c8 90 20 38 36 30 2c 33  36 2c 31 36 38 2c 34 38  |.. 860,36,168,48|
00013ec0  0d 0a a5 07 20 20 cd 0d  0a a6 06 20 cd 0d 0a a7  |....  ..... ....|
00013ed0  3e 20 e7 20 c0 73 61 76  65 5f 74 79 70 65 24 2c  |> . .save_type$,|
00013ee0  34 29 3d 22 6a 70 65 67  22 20 8c 20 f2 6a 70 65  |4)="jpeg" . .jpe|
00013ef0  67 5f 70 61 6e 65 6c 20  8b 20 f2 62 6c 61 6e 6b  |g_panel . .blank|
00013f00  5f 6a 70 65 67 5f 70 61  6e 65 6c 0d 0a a8 11 20  |_jpeg_panel.... |
00013f10  fd 20 73 61 76 65 5f 71  75 69 74 25 0d 0a a9 35  |. save_quit%...5|
00013f20  20 e7 20 73 61 76 65 5f  74 79 70 65 24 3d 22 6f  | . save_type$="o|
00013f30  76 65 72 6c 61 79 22 20  73 61 76 65 5f 74 79 70  |verlay" save_typ|
00013f40  65 24 3d 6f 6c 64 5f 73  61 76 65 5f 74 79 70 65  |e$=old_save_type|
00013f50  24 0d 0a aa 06 20 e1 0d  0a ab 04 0d 0a ac 18 20  |$.... ......... |
00013f60  dd 20 f2 62 6c 61 6e 6b  5f 6a 70 65 67 5f 70 61  |. .blank_jpeg_pa|
00013f70  6e 65 6c 0d 0a ad 27 20  e6 20 32 30 38 2c 32 30  |nel...' . 208,20|
00013f80  38 2c 32 31 36 3a c8 93  20 c8 90 20 38 39 32 2c  |8,216:.. .. 892,|
00013f90  2d 32 30 2c 33 30 34 2c  34 30 0d 0a ae 06 20 e1  |-20,304,40.... .|
00013fa0  0d 0a af 04 0d 0a b0 12  20 dd 20 f2 6a 70 65 67  |........ . .jpeg|
00013fb0  5f 70 61 6e 65 6c 0d 0a  b1 27 20 e6 20 32 35 35  |_panel...' . 255|
00013fc0  2c 32 35 35 2c 32 35 35  3a c8 93 20 c8 90 20 39  |,255,255:.. .. 9|
00013fd0  39 32 2c 2d 32 30 2c 31  30 34 2c 34 30 0d 0a b2  |92,-20,104,40...|
00013fe0  2c 20 51 24 3d 22 51 20  3d 20 22 2b c3 28 6a 70  |, Q$="Q = "+.(jp|
00013ff0  67 71 25 29 3a f2 77 72  69 74 65 32 28 51 24 2c  |gq%):.write2(Q$,|
00014000  39 38 38 2c 33 32 2c 30  29 0d 0a b3 39 20 c8 99  |988,32,0)...9 ..|
00014010  20 73 70 72 73 77 69 25  2c 32 35 36 2b 35 32 2c  | sprswi%,256+52,|
00014020  73 70 62 25 2c 22 6c 65  66 74 22 2c 39 34 32 2c  |spb%,"left",942,|
00014030  2d 31 38 2c 38 2c 30 2c  74 72 61 6e 73 6c 61 74  |-18,8,0,translat|
00014040  65 25 0d 0a b4 3b 20 c8  99 20 73 70 72 73 77 69  |e%...; .. sprswi|
00014050  25 2c 32 35 36 2b 35 32  2c 73 70 62 25 2c 22 72  |%,256+52,spb%,"r|
00014060  69 67 68 74 22 2c 31 31  30 38 2c 2d 31 38 2c 38  |ight",1108,-18,8|
00014070  2c 30 2c 74 72 61 6e 73  6c 61 74 65 25 0d 0a b5  |,0,translate%...|
00014080  06 20 e1 0d 0a b6 04 0d  0a b7 14 20 dd 20 f2 73  |. ......... . .s|
00014090  61 76 65 5f 70 69 63 74  75 72 65 0d 0a b8 14 20  |ave_picture.... |
000140a0  f2 64 69 73 70 6c 61 79  5f 6d 65 6d 6f 72 79 0d  |.display_memory.|
000140b0  0a b9 11 20 e7 20 a4 73  61 76 65 5f 6f 6b 20 8c  |... . .save_ok .|
000140c0  0d 0a ba 14 20 c8 8e 20  73 61 76 65 5f 74 79 70  |.... .. save_typ|
000140d0  65 24 20 ca 0d 0a bb 34  20 c9 20 22 73 70 72 69  |e$ ....4 . "spri|
000140e0  74 65 22 3a ff 28 22 53  43 52 45 45 4e 53 41 56  |te":.("SCREENSAV|
000140f0  45 20 22 2b 64 69 72 24  2b 22 2e 22 2b 73 61 76  |E "+dir$+"."+sav|
00014100  65 5f 6e 61 6d 65 24 29  0d 0a bc 31 20 c9 20 22  |e_name$)...1 . "|
00014110  74 61 72 67 61 31 22 20  3a f2 73 61 76 65 5f 74  |targa1" :.save_t|
00014120  61 72 67 61 28 64 69 72  24 2b 22 2e 22 2b 73 61  |arga(dir$+"."+sa|
00014130  76 65 5f 6e 61 6d 65 24  29 0d 0a bd 31 20 c9 20  |ve_name$)...1 . |
00014140  22 70 73 63 61 6e 22 20  20 3a f2 73 61 76 65 5f  |"pscan"  :.save_|
00014150  70 73 63 61 6e 28 64 69  72 24 2b 22 2e 22 2b 73  |pscan(dir$+"."+s|
00014160  61 76 65 5f 6e 61 6d 65  24 29 0d 0a be 30 20 c9  |ave_name$)...0 .|
00014170  20 22 6a 70 65 67 31 22  20 20 3a f2 73 61 76 65  | "jpeg1"  :.save|
00014180  5f 6a 70 65 67 28 64 69  72 24 2b 22 2e 22 2b 73  |_jpeg(dir$+"."+s|
00014190  61 76 65 5f 6e 61 6d 65  24 29 0d 0a bf 30 20 c9  |ave_name$)...0 .|
000141a0  20 22 6a 70 65 67 32 22  20 20 3a f2 73 61 76 65  | "jpeg2"  :.save|
000141b0  5f 6a 70 65 67 28 64 69  72 24 2b 22 2e 22 2b 73  |_jpeg(dir$+"."+s|
000141c0  61 76 65 5f 6e 61 6d 65  24 29 0d 0a c0 3b 20 c9  |ave_name$)...; .|
000141d0  20 22 6f 76 65 72 6c 61  79 22 3a c8 99 20 73 70  | "overlay":.. sp|
000141e0  72 73 77 69 25 2c 32 35  36 2b 31 32 2c 73 70 72  |rswi%,256+12,spr|
000141f0  25 2c 64 69 72 24 2b 22  2e 22 2b 73 61 76 65 5f  |%,dir$+"."+save_|
00014200  6e 61 6d 65 24 0d 0a c1  06 20 cb 0d 0a c2 35 20  |name$.... ....5 |
00014210  73 68 6f 77 6e 5f 64 69  72 24 3d 22 2d 22 3a 70  |shown_dir$="-":p|
00014220  61 74 68 24 28 4d 45 4d  25 2b 31 29 3d 64 69 72  |ath$(MEM%+1)=dir|
00014230  24 2b 22 2e 22 2b 73 61  76 65 5f 6e 61 6d 65 24  |$+"."+save_name$|
00014240  0d 0a c3 06 20 cc 0d 0a  c4 67 20 85 20 31 39 39  |.... ....g . 199|
00014250  37 2c 22 54 68 65 72 65  20 69 73 20 61 6c 72 65  |7,"There is alre|
00014260  61 64 79 20 61 20 64 69  72 65 63 74 6f 72 79 20  |ady a directory |
00014270  63 61 6c 6c 65 64 20 22  2b 73 61 76 65 5f 6e 61  |called "+save_na|
00014280  6d 65 24 2b 22 20 2d 20  74 72 79 20 61 67 61 69  |me$+" - try agai|
00014290  6e 20 75 73 69 6e 67 20  61 20 64 69 66 66 65 72  |n using a differ|
000142a0  65 6e 74 20 66 69 6c 65  6e 61 6d 65 22 0d 0a c5  |ent filename"...|
000142b0  06 20 cd 0d 0a c6 19 20  73 61 76 65 5f 71 75 69  |. ..... save_qui|
000142c0  74 25 3d b9 3a 71 75 69  74 25 3d b9 0d 0a c7 06  |t%=.:quit%=.....|
000142d0  20 e1 0d 0a c8 04 0d 0a  c9 0f 20 dd 20 a4 73 61  | ......... . .sa|
000142e0  76 65 5f 6f 6b 0d 0a ca  0b 20 73 6f 6b 25 3d b9  |ve_ok.... sok%=.|
000142f0  0d 0a cb 14 20 e3 20 4e  25 3d 30 20 b8 20 6e 75  |.... . N%=0 . nu|
00014300  6d 25 2d 31 0d 0a cc 20  20 63 31 24 3d 22 22 3a  |m%-1...  c1$="":|
00014310  e3 20 4a 25 3d 31 20 b8  20 a9 28 63 61 74 24 28  |. J%=1 . .(cat$(|
00014320  4e 25 29 29 0d 0a cd 26  20 63 31 24 2b 3d bd 28  |N%))...& c1$+=.(|
00014330  97 28 c1 63 61 74 24 28  4e 25 29 2c 4a 25 2c 31  |.(.cat$(N%),J%,1|
00014340  29 29 20 84 20 33 32 29  3a ed 0d 0a ce 22 20 63  |)) . 32):...." c|
00014350  32 24 3d 22 22 3a e3 20  4a 25 3d 31 20 b8 20 a9  |2$="":. J%=1 . .|
00014360  28 73 61 76 65 5f 6e 61  6d 65 24 29 0d 0a cf 28  |(save_name$)...(|
00014370  20 63 32 24 2b 3d bd 28  97 28 c1 73 61 76 65 5f  | c2$+=.(.(.save_|
00014380  6e 61 6d 65 24 2c 4a 25  2c 31 29 29 20 84 20 33  |name$,J%,1)) . 3|
00014390  32 29 3a ed 0d 0a d0 2a  20 e7 20 63 31 24 3d 63  |2):....* . c1$=c|
000143a0  32 24 20 80 20 66 74 79  70 65 24 28 4e 25 29 3d  |2$ . ftype$(N%)=|
000143b0  22 64 69 72 22 20 8c 20  73 6f 6b 25 3d a3 0d 0a  |"dir" . sok%=...|
000143c0  d1 06 20 ed 0d 0a d2 0a  20 3d 73 6f 6b 25 0d 0a  |.. ..... =sok%..|
000143d0  d3 04 0d 0a d4 18 20 dd  20 f2 73 61 76 65 5f 62  |...... . .save_b|
000143e0  75 74 74 6f 6e 73 28 62  25 29 0d 0a d5 39 20 20  |uttons(b%)...9  |
000143f0  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 35  |.. sprswi%,256+5|
00014400  32 2c 73 70 62 25 2c 22  6f 66 66 22 2c 34 36 30  |2,spb%,"off",460|
00014410  2c 31 38 30 2c 38 2c 30  2c 74 72 61 6e 73 6c 61  |,180,8,0,transla|
00014420  74 65 25 0d 0a d6 39 20  20 c8 99 20 73 70 72 73  |te%...9  .. sprs|
00014430  77 69 25 2c 32 35 36 2b  35 32 2c 73 70 62 25 2c  |wi%,256+52,spb%,|
00014440  22 6f 66 66 22 2c 34 36  30 2c 31 33 36 2c 38 2c  |"off",460,136,8,|
00014450  30 2c 74 72 61 6e 73 6c  61 74 65 25 0d 0a d7 38  |0,translate%...8|
00014460  20 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |  .. sprswi%,256|
00014470  2b 35 32 2c 73 70 62 25  2c 22 6f 66 66 22 2c 34  |+52,spb%,"off",4|
00014480  36 30 2c 39 32 2c 38 2c  30 2c 74 72 61 6e 73 6c  |60,92,8,0,transl|
00014490  61 74 65 25 0d 0a d8 38  20 20 c8 99 20 73 70 72  |ate%...8  .. spr|
000144a0  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
000144b0  2c 22 6f 66 66 22 2c 34  36 30 2c 34 38 2c 38 2c  |,"off",460,48,8,|
000144c0  30 2c 74 72 61 6e 73 6c  61 74 65 25 0d 0a d9 37  |0,translate%...7|
000144d0  20 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |  .. sprswi%,256|
000144e0  2b 35 32 2c 73 70 62 25  2c 22 6f 66 66 22 2c 34  |+52,spb%,"off",4|
000144f0  36 30 2c 34 2c 38 2c 30  2c 74 72 61 6e 73 6c 61  |60,4,8,0,transla|
00014500  74 65 25 0d 0a da 12 20  20 e7 20 6f 76 65 72 6c  |te%....  . overl|
00014510  61 79 25 20 8c 0d 0a db  3a 20 20 20 c8 99 20 73  |ay% ....:   .. s|
00014520  70 72 73 77 69 25 2c 32  35 36 2b 35 32 2c 73 70  |prswi%,256+52,sp|
00014530  62 25 2c 22 6f 66 66 22  2c 34 36 30 2c 2d 34 30  |b%,"off",460,-40|
00014540  2c 38 2c 30 2c 74 72 61  6e 73 6c 61 74 65 25 0d  |,8,0,translate%.|
00014550  0a dc 07 20 20 cc 0d 0a  dd 3f 20 20 20 c8 99 20  |...  ....?   .. |
00014560  73 70 72 73 77 69 25 2c  32 35 36 2b 35 32 2c 73  |sprswi%,256+52,s|
00014570  70 62 25 2c 22 6f 66 66  5f 67 72 65 79 22 2c 34  |pb%,"off_grey",4|
00014580  36 30 2c 2d 34 30 2c 38  2c 30 2c 74 72 61 6e 73  |60,-40,8,0,trans|
00014590  6c 61 74 65 25 0d 0a de  07 20 20 cd 0d 0a df 0d  |late%....  .....|
000145a0  20 20 c8 8e 20 62 25 20  ca 0d 0a e0 3f 20 20 20  |  .. b% ....?   |
000145b0  c9 20 31 20 3a 20 c8 99  20 73 70 72 73 77 69 25  |. 1 : .. sprswi%|
000145c0  2c 32 35 36 2b 35 32 2c  73 70 62 25 2c 22 6f 6e  |,256+52,spb%,"on|
000145d0  22 2c 34 36 30 2c 31 38  30 2c 38 2c 30 2c 74 72  |",460,180,8,0,tr|
000145e0  61 6e 73 6c 61 74 65 25  0d 0a e1 23 20 20 20 20  |anslate%...#    |
000145f0  20 20 20 20 20 20 20 20  73 61 76 65 5f 74 79 70  |        save_typ|
00014600  65 24 3d 22 73 70 72 69  74 65 22 0d 0a e2 3f 20  |e$="sprite"...? |
00014610  20 20 c9 20 32 20 3a 20  c8 99 20 73 70 72 73 77  |  . 2 : .. sprsw|
00014620  69 25 2c 32 35 36 2b 35  32 2c 73 70 62 25 2c 22  |i%,256+52,spb%,"|
00014630  6f 6e 22 2c 34 36 30 2c  31 33 36 2c 38 2c 30 2c  |on",460,136,8,0,|
00014640  74 72 61 6e 73 6c 61 74  65 25 0d 0a e3 23 20 20  |translate%...#  |
00014650  20 20 20 20 20 20 20 20  20 20 73 61 76 65 5f 74  |          save_t|
00014660  79 70 65 24 3d 22 74 61  72 67 61 31 22 0d 0a e4  |ype$="targa1"...|
00014670  3e 20 20 20 c9 20 33 20  3a 20 c8 99 20 73 70 72  |>   . 3 : .. spr|
00014680  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
00014690  2c 22 6f 6e 22 2c 34 36  30 2c 39 32 2c 38 2c 30  |,"on",460,92,8,0|
000146a0  2c 74 72 61 6e 73 6c 61  74 65 25 0d 0a e5 22 20  |,translate%..." |
000146b0  20 20 20 20 20 20 20 20  20 20 20 73 61 76 65 5f  |           save_|
000146c0  74 79 70 65 24 3d 22 70  73 63 61 6e 22 0d 0a e6  |type$="pscan"...|
000146d0  3e 20 20 20 c9 20 34 20  3a 20 c8 99 20 73 70 72  |>   . 4 : .. spr|
000146e0  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
000146f0  2c 22 6f 6e 22 2c 34 36  30 2c 34 38 2c 38 2c 30  |,"on",460,48,8,0|
00014700  2c 74 72 61 6e 73 6c 61  74 65 25 0d 0a e7 22 20  |,translate%..." |
00014710  20 20 20 20 20 20 20 20  20 20 20 73 61 76 65 5f  |           save_|
00014720  74 79 70 65 24 3d 22 6a  70 65 67 31 22 0d 0a e8  |type$="jpeg1"...|
00014730  3d 20 20 20 c9 20 35 20  3a 20 c8 99 20 73 70 72  |=   . 5 : .. spr|
00014740  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 62 25  |swi%,256+52,spb%|
00014750  2c 22 6f 6e 22 2c 34 36  30 2c 34 2c 38 2c 30 2c  |,"on",460,4,8,0,|
00014760  74 72 61 6e 73 6c 61 74  65 25 0d 0a e9 22 20 20  |translate%..."  |
00014770  20 20 20 20 20 20 20 20  20 20 73 61 76 65 5f 74  |          save_t|
00014780  79 70 65 24 3d 22 6a 70  65 67 32 22 0d 0a ea 3f  |ype$="jpeg2"...?|
00014790  20 20 20 c9 20 36 20 3a  20 c8 99 20 73 70 72 73  |   . 6 : .. sprs|
000147a0  77 69 25 2c 32 35 36 2b  35 32 2c 73 70 62 25 2c  |wi%,256+52,spb%,|
000147b0  22 6f 6e 22 2c 34 36 30  2c 2d 34 30 2c 38 2c 30  |"on",460,-40,8,0|
000147c0  2c 74 72 61 6e 73 6c 61  74 65 25 0d 0a eb 24 20  |,translate%...$ |
000147d0  20 20 20 20 20 20 20 20  20 20 20 73 61 76 65 5f  |           save_|
000147e0  74 79 70 65 24 3d 22 6f  76 65 72 6c 61 79 22 0d  |type$="overlay".|
000147f0  0a ec 07 20 20 cb 0d 0a  ed 06 20 e1 0d 0a ee 06  |...  ..... .....|
00014800  20 20 0d 0a ef 16 20 dd  20 f2 73 68 6f 77 5f 66  |  .... . .show_f|
00014810  69 6c 65 5f 6c 69 73 74  0d 0a f0 18 20 e7 20 64  |ile_list.... . d|
00014820  69 72 24 3d 73 68 6f 77  6e 5f 64 69 72 24 20 8c  |ir$=shown_dir$ .|
00014830  0d 0a f1 1a 20 20 f2 73  68 6f 77 5f 6c 61 73 74  |....  .show_last|
00014840  5f 66 69 6c 65 5f 6c 69  73 74 0d 0a f2 06 20 cc  |_file_list.... .|
00014850  0d 0a f3 22 20 e7 20 ac  20 62 69 67 5f 64 69 72  |..." . . big_dir|
00014860  25 20 8c 20 73 74 61 72  74 5f 65 6e 74 72 79 25  |% . start_entry%|
00014870  3d 30 0d 0a f4 23 20 6c  61 73 74 5f 73 74 61 72  |=0...# last_star|
00014880  74 5f 65 6e 74 72 79 25  3d 73 74 61 72 74 5f 65  |t_entry%=start_e|
00014890  6e 74 72 79 25 0d 0a f5  2a 20 e3 20 4e 25 3d 30  |ntry%...* . N%=0|
000148a0  b8 38 30 3a 63 61 74 24  28 4e 25 29 3d 22 22 3a  |.80:cat$(N%)="":|
000148b0  66 74 79 70 65 24 28 4e  25 29 3d 22 22 3a ed 0d  |ftype$(N%)="":..|
000148c0  0a f6 47 20 c8 99 20 22  4f 53 5f 47 42 50 42 22  |..G .. "OS_GBPB"|
000148d0  2c 31 30 2c 64 69 72 24  2c 67 62 70 62 25 2c 37  |,10,dir$,gbpb%,7|
000148e0  37 2c 73 74 61 72 74 5f  65 6e 74 72 79 25 2c 67  |7,start_entry%,g|
000148f0  62 70 62 5f 6c 65 6e 25  2c 30 20 b8 2c 2c 2c 6e  |bpb_len%,0 .,,,n|
00014900  75 6d 25 2c 6f 25 0d 0a  f7 0e 20 e7 20 6f 25 3d  |um%,o%.... . o%=|
00014910  2d 31 20 8c 0d 0a f8 21  20 20 e7 20 62 69 67 5f  |-1 ....!  . big_|
00014920  64 69 72 25 20 8c 20 77  61 73 5f 62 69 67 5f 64  |dir% . was_big_d|
00014930  69 72 25 3d b9 0d 0a f9  10 20 20 62 69 67 5f 64  |ir%=.....  big_d|
00014940  69 72 25 3d a3 0d 0a fa  07 20 20 cc 0d 0a fb 10  |ir%=.....  .....|
00014950  20 20 62 69 67 5f 64 69  72 25 3d b9 0d 0a fc 18  |  big_dir%=.....|
00014960  20 20 73 74 61 72 74 5f  65 6e 74 72 79 25 2b 3d  |  start_entry%+=|
00014970  6e 75 6d 25 0d 0a fd 13  20 20 73 68 6f 77 6e 5f  |num%....  shown_|
00014980  64 69 72 24 3d 22 22 0d  0a fe 07 20 20 cd 0d 0a  |dir$=""....  ...|
00014990  ff 27 20 41 25 3d 67 62  70 62 25 3a 6e 73 25 3d  |.' A%=gbpb%:ns%=|
000149a0  30 3a 43 25 3d 30 3a 50  58 25 3d 35 34 3a 50 59  |0:C%=0:PX%=54:PY|
000149b0  25 3d 38 34 34 0d 0b 00  0f 20 e7 20 6e 75 6d 25  |%=844.... . num%|
000149c0  3e 30 20 8c 0d 0b 01 06  20 f5 0d 0b 02 1c 20 66  |>0 ..... ..... f|
000149d0  74 24 3d c3 7e 21 41 25  3a 66 74 24 3d c1 66 74  |t$=.~!A%:ft$=.ft|
000149e0  24 2c 34 2c 33 29 0d 0b  03 13 20 41 25 3d 41 25  |$,4,3).... A%=A%|
000149f0  2b 32 30 3a 66 24 3d 22  22 0d 0b 04 21 20 f5 3a  |+20:f$=""...! .:|
00014a00  66 24 2b 3d bd 28 3f 41  25 29 3a 41 25 3d 41 25  |f$+=.(?A%):A%=A%|
00014a10  2b 31 3a fd 20 3f 41 25  3d 30 0d 0b 05 44 20 e7  |+1:. ?A%=0...D .|
00014a20  20 66 74 24 3d 22 46 46  44 22 20 8c 20 c8 99 20  | ft$="FFD" . .. |
00014a30  22 4f 53 5f 46 69 6c 65  22 2c 31 35 2c 64 69 72  |"OS_File",15,dir|
00014a40  24 2b 22 2e 22 2b 66 24  20 b8 20 64 25 3a e7 20  |$+"."+f$ . d%:. |
00014a50  64 25 3d 32 20 66 74 24  3d 22 64 69 72 22 0d 0b  |d%=2 ft$="dir"..|
00014a60  06 10 20 e7 20 66 74 24  3c 3e 22 22 20 8c 0d 0b  |.. . ft$<>"" ...|
00014a70  07 13 20 74 79 70 65 24  3d 22 6e 6f 5f 75 73 65  |.. type$="no_use|
00014a80  22 0d 0b 08 20 20 e7 20  66 74 24 3d 22 42 45 38  |"...  . ft$="BE8|
00014a90  22 20 8c 20 74 79 70 65  24 3d 22 70 68 6f 74 6f  |" . type$="photo|
00014aa0  22 0d 0b 09 21 20 e7 20  66 74 24 3d 22 46 46 39  |"...! . ft$="FF9|
00014ab0  22 20 8c 20 74 79 70 65  24 3d 22 73 70 72 69 74  |" . type$="sprit|
00014ac0  65 22 0d 0b 0a 20 20 e7  20 66 74 24 3d 22 36 39  |e"...  . ft$="69|
00014ad0  44 22 20 8c 20 74 79 70  65 24 3d 22 74 61 72 67  |D" . type$="targ|
00014ae0  61 22 0d 0b 0b 20 20 e7  20 66 74 24 3d 22 39 36  |a"...  . ft$="96|
00014af0  41 22 20 8c 20 74 79 70  65 24 3d 22 70 73 63 61  |A" . type$="psca|
00014b00  6e 22 0d 0b 0c 4c 20 e7  20 66 74 24 3d 22 43 38  |n"...L . ft$="C8|
00014b10  35 22 20 84 20 c2 66 24  2c 34 29 3d 22 2f 4a 50  |5" . .f$,4)="/JP|
00014b20  47 22 20 84 20 c2 66 24  2c 33 29 3d 22 2f 4a 50  |G" . .f$,3)="/JP|
00014b30  22 20 84 20 c2 66 24 2c  32 29 3d 22 2f 4a 22 20  |" . .f$,2)="/J" |
00014b40  8c 20 74 79 70 65 24 3d  22 6a 70 65 67 22 0d 0b  |. type$="jpeg"..|
00014b50  0d 1e 20 e7 20 66 74 24  3d 22 64 69 72 22 20 8c  |.. . ft$="dir" .|
00014b60  20 74 79 70 65 24 3d 22  64 69 72 22 0d 0b 0e 23  | type$="dir"...#|
00014b70  20 66 74 79 70 65 24 28  6e 73 25 29 3d 74 79 70  | ftype$(ns%)=typ|
00014b80  65 24 3a 63 61 74 24 28  6e 73 25 29 3d 66 24 0d  |e$:cat$(ns%)=f$.|
00014b90  0b 0f 23 20 63 24 3d 63  61 74 24 28 6e 73 25 29  |..# c$=cat$(ns%)|
00014ba0  3a 64 6f 73 5f 65 78 74  25 3d a7 63 24 2c 22 2f  |:dos_ext%=.c$,"/|
00014bb0  22 29 0d 0b 10 24 20 e7  20 64 6f 73 5f 65 78 74  |")...$ . dos_ext|
00014bc0  25 3e 30 20 63 24 3d c0  63 24 2c 64 6f 73 5f 65  |%>0 c$=.c$,dos_e|
00014bd0  78 74 25 2d 31 29 0d 0b  11 36 20 e7 20 63 61 74  |xt%-1)...6 . cat|
00014be0  24 28 6e 73 25 29 3d 6c  61 73 74 66 69 6c 65 24  |$(ns%)=lastfile$|
00014bf0  20 63 24 3d 63 24 2b 22  20 22 2b bd 31 32 38 20  | c$=c$+" "+.128 |
00014c00  8b 20 63 24 3d 63 24 2b  22 20 20 22 0d 0b 12 1d  |. c$=c$+"  "....|
00014c10  20 f2 77 72 69 74 65 32  28 63 24 2c 50 58 25 2c  | .write2(c$,PX%,|
00014c20  50 59 25 2b 34 36 2c 30  29 0d 0b 13 0f 20 c8 8e  |PY%+46,0).... ..|
00014c30  20 74 79 70 65 24 20 ca  0d 0b 14 1e 20 c9 20 22  | type$ ..... . "|
00014c40  73 70 72 69 74 65 22 3a  69 63 6f 6e 24 3d 22 73  |sprite":icon$="s|
00014c50  6d 5f 66 66 39 22 0d 0b  15 1e 20 c9 20 22 74 61  |m_ff9".... . "ta|
00014c60  72 67 61 22 20 3a 69 63  6f 6e 24 3d 22 73 6d 5f  |rga" :icon$="sm_|
00014c70  36 39 64 22 0d 0b 16 1e  20 c9 20 22 70 73 63 61  |69d".... . "psca|
00014c80  6e 22 20 3a 69 63 6f 6e  24 3d 22 73 6d 5f 39 36  |n" :icon$="sm_96|
00014c90  61 22 0d 0b 17 1e 20 c9  20 22 6a 70 65 67 22 20  |a".... . "jpeg" |
00014ca0  20 3a 69 63 6f 6e 24 3d  22 73 6d 5f 63 38 35 22  | :icon$="sm_c85"|
00014cb0  0d 0b 18 1e 20 c9 20 22  70 68 6f 74 6f 22 20 3a  |.... . "photo" :|
00014cc0  69 63 6f 6e 24 3d 22 73  6d 5f 62 65 38 22 0d 0b  |icon$="sm_be8"..|
00014cd0  19 1b 20 c9 20 22 64 69  72 22 20 20 20 3a 69 63  |.. . "dir"   :ic|
00014ce0  6f 6e 24 3d 22 64 69 72  22 0d 0b 1a 1e 20 c9 20  |on$="dir".... . |
00014cf0  22 6e 6f 5f 75 73 65 22  3a 69 63 6f 6e 24 3d 22  |"no_use":icon$="|
00014d00  6e 6f 5f 75 73 65 22 0d  0b 1b 06 20 cb 0d 0b 1c  |no_use".... ....|
00014d10  3d 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |= .. sprswi%,256|
00014d20  2b 35 32 2c 73 70 62 25  2c 69 63 6f 6e 24 2c 50  |+52,spb%,icon$,P|
00014d30  58 25 2d 34 30 2c 50 59  25 2d 34 2c 30 2c 30 2c  |X%-40,PY%-4,0,0,|
00014d40  74 72 61 6e 73 6c 61 74  65 25 0d 0b 1d 30 20 6e  |translate%...0 n|
00014d50  73 25 2b 3d 31 3a 50 59  25 2d 3d 34 30 3a e7 20  |s%+=1:PY%-=40:. |
00014d60  50 59 25 3c 32 34 34 20  8c 20 50 58 25 2b 3d 32  |PY%<244 . PX%+=2|
00014d70  35 36 3a 50 59 25 3d 38  34 34 0d 0b 1e 06 20 cd  |56:PY%=844.... .|
00014d80  0d 0b 1f 26 20 43 25 2b  3d 31 3a 41 25 2b 3d 31  |...& C%+=1:A%+=1|
00014d90  3a c8 95 20 41 25 2f 34  3c 3e 41 25 81 34 20 41  |:.. A%/4<>A%.4 A|
00014da0  25 2b 3d 31 3a ce 0d 0b  20 0e 20 fd 20 43 25 3d  |%+=1:... . . C%=|
00014db0  6e 75 6d 25 0d 0b 21 06  20 cd 0d 0b 22 30 20 f2  |num%..!. ..."0 .|
00014dc0  77 72 69 74 65 32 28 22  54 6f 74 61 6c 20 66 69  |write2("Total fi|
00014dd0  6c 65 73 20 3d 20 22 2b  c3 20 6e 75 6d 25 2c 31  |les = "+. num%,1|
00014de0  30 32 36 2c 33 37 30 2c  34 29 0d 0b 23 23 20 e7  |026,370,4)..## .|
00014df0  20 ac 20 62 69 67 5f 64  69 72 25 20 8c 20 73 68  | . big_dir% . sh|
00014e00  6f 77 6e 5f 64 69 72 24  3d 64 69 72 24 0d 0b 24  |own_dir$=dir$..$|
00014e10  16 20 64 69 72 5f 65 6e  74 72 69 65 73 25 3d 6e  |. dir_entries%=n|
00014e20  75 6d 25 0d 0b 25 06 20  cd 0d 0b 26 22 20 f2 72  |um%..%. ...&" .r|
00014e30  61 69 73 65 64 5f 62 6c  6f 63 6b 28 31 31 30 34  |aised_block(1104|
00014e40  2c 32 34 30 2c 37 30 2c  34 30 29 0d 0b 27 22 20  |,240,70,40)..'" |
00014e50  f2 72 61 69 73 65 64 5f  62 6c 6f 63 6b 28 31 31  |.raised_block(11|
00014e60  39 32 2c 32 34 30 2c 37  30 2c 34 30 29 0d 0b 28  |92,240,70,40)..(|
00014e70  1b 20 e7 20 62 69 67 5f  64 69 72 25 20 63 25 3d  |. . big_dir% c%=|
00014e80  34 20 8b 20 63 25 3d 36  0d 0b 29 1e 20 f2 77 72  |4 . c%=6..). .wr|
00014e90  69 74 65 32 28 22 3c 3c  22 2c 31 31 30 38 2c 32  |ite2("<<",1108,2|
00014ea0  39 34 2c 63 25 29 0d 0b  2a 1e 20 f2 77 72 69 74  |94,c%)..*. .writ|
00014eb0  65 32 28 22 3e 3e 22 2c  31 32 30 30 2c 32 39 34  |e2(">>",1200,294|
00014ec0  2c 63 25 29 0d 0b 2b 06  20 e1 0d 0b 2c 04 0d 0b  |,c%)..+. ...,...|
00014ed0  2d 1b 20 dd 20 f2 73 68  6f 77 5f 6c 61 73 74 5f  |-. . .show_last_|
00014ee0  66 69 6c 65 5f 6c 69 73  74 0d 0b 2e 17 20 e7 20  |file_list.... . |
00014ef0  64 69 72 5f 65 6e 74 72  69 65 73 25 3e 30 20 8c  |dir_entries%>0 .|
00014f00  0d 0b 2f 19 20 20 43 25  3d 30 3a 50 58 25 3d 35  |../.  C%=0:PX%=5|
00014f10  34 3a 50 59 25 3d 38 34  34 0d 0b 30 07 20 20 f5  |4:PY%=844..0.  .|
00014f20  0d 0b 31 24 20 20 20 63  24 3d 63 61 74 24 28 43  |..1$   c$=cat$(C|
00014f30  25 29 3a 64 6f 73 5f 65  78 74 25 3d a7 63 24 2c  |%):dos_ext%=.c$,|
00014f40  22 2f 22 29 0d 0b 32 26  20 20 20 e7 20 64 6f 73  |"/")..2&   . dos|
00014f50  5f 65 78 74 25 3e 30 20  63 24 3d c0 63 24 2c 64  |_ext%>0 c$=.c$,d|
00014f60  6f 73 5f 65 78 74 25 2d  31 29 0d 0b 33 37 20 20  |os_ext%-1)..37  |
00014f70  20 e7 20 63 61 74 24 28  43 25 29 3d 6c 61 73 74  | . cat$(C%)=last|
00014f80  66 69 6c 65 24 20 63 24  3d 63 24 2b 22 20 22 2b  |file$ c$=c$+" "+|
00014f90  bd 31 32 38 20 8b 20 63  24 3d 63 24 2b 22 20 20  |.128 . c$=c$+"  |
00014fa0  22 0d 0b 34 1f 20 20 20  f2 77 72 69 74 65 32 28  |"..4.   .write2(|
00014fb0  63 24 2c 50 58 25 2c 50  59 25 2b 34 36 2c 30 29  |c$,PX%,PY%+46,0)|
00014fc0  0d 0b 35 17 20 20 20 74  79 70 65 24 3d 66 74 79  |..5.   type$=fty|
00014fd0  70 65 24 28 43 25 29 0d  0b 36 11 20 20 20 c8 8e  |pe$(C%)..6.   ..|
00014fe0  20 74 79 70 65 24 20 ca  0d 0b 37 21 20 20 20 20  | type$ ...7!    |
00014ff0  c9 20 22 73 70 72 69 74  65 22 3a 69 63 6f 6e 24  |. "sprite":icon$|
00015000  3d 22 73 6d 5f 66 66 39  22 0d 0b 38 21 20 20 20  |="sm_ff9"..8!   |
00015010  20 c9 20 22 74 61 72 67  61 22 20 3a 69 63 6f 6e  | . "targa" :icon|
00015020  24 3d 22 73 6d 5f 36 39  64 22 0d 0b 39 21 20 20  |$="sm_69d"..9!  |
00015030  20 20 c9 20 22 70 73 63  61 6e 22 20 3a 69 63 6f  |  . "pscan" :ico|
00015040  6e 24 3d 22 73 6d 5f 39  36 61 22 0d 0b 3a 21 20  |n$="sm_96a"..:! |
00015050  20 20 20 c9 20 22 6a 70  65 67 22 20 20 3a 69 63  |   . "jpeg"  :ic|
00015060  6f 6e 24 3d 22 73 6d 5f  63 38 35 22 0d 0b 3b 21  |on$="sm_c85"..;!|
00015070  20 20 20 20 c9 20 22 70  68 6f 74 6f 22 20 3a 69  |    . "photo" :i|
00015080  63 6f 6e 24 3d 22 73 6d  5f 62 65 38 22 0d 0b 3c  |con$="sm_be8"..<|
00015090  1e 20 20 20 20 c9 20 22  64 69 72 22 20 20 20 3a  |.    . "dir"   :|
000150a0  69 63 6f 6e 24 3d 22 64  69 72 22 0d 0b 3d 21 20  |icon$="dir"..=! |
000150b0  20 20 20 c9 20 22 6e 6f  5f 75 73 65 22 3a 69 63  |   . "no_use":ic|
000150c0  6f 6e 24 3d 22 6e 6f 5f  75 73 65 22 0d 0b 3e 08  |on$="no_use"..>.|
000150d0  20 20 20 cb 0d 0b 3f 3f  20 20 20 c8 99 20 73 70  |   ...??   .. sp|
000150e0  72 73 77 69 25 2c 32 35  36 2b 35 32 2c 73 70 62  |rswi%,256+52,spb|
000150f0  25 2c 69 63 6f 6e 24 2c  50 58 25 2d 34 30 2c 50  |%,icon$,PX%-40,P|
00015100  59 25 2d 34 2c 30 2c 30  2c 74 72 61 6e 73 6c 61  |Y%-4,0,0,transla|
00015110  74 65 25 0d 0b 40 2b 20  20 20 50 59 25 2d 3d 34  |te%..@+   PY%-=4|
00015120  30 3a e7 20 50 59 25 3c  32 34 34 20 8c 20 50 58  |0:. PY%<244 . PX|
00015130  25 2b 3d 32 35 36 3a 50  59 25 3d 38 34 34 0d 0b  |%+=256:PY%=844..|
00015140  41 0c 20 20 20 43 25 2b  3d 31 0d 0b 42 17 20 20  |A.   C%+=1..B.  |
00015150  fd 20 43 25 3d 64 69 72  5f 65 6e 74 72 69 65 73  |. C%=dir_entries|
00015160  25 0d 0b 43 06 20 cd 0d  0b 44 38 20 f2 77 72 69  |%..C. ...D8 .wri|
00015170  74 65 32 28 22 54 6f 74  61 6c 20 66 69 6c 65 73  |te2("Total files|
00015180  20 3d 20 22 2b c3 20 64  69 72 5f 65 6e 74 72 69  | = "+. dir_entri|
00015190  65 73 25 2c 31 30 32 36  2c 33 37 30 2c 34 29 0d  |es%,1026,370,4).|
000151a0  0b 45 06 20 e1 0d 0b 46  04 0d 0b 47 12 20 dd 20  |.E. ...F...G. . |
000151b0  f2 75 70 5f 6f 6e 65 5f  64 69 72 0d 0b 48 16 20  |.up_one_dir..H. |
000151c0  e7 20 c2 64 69 72 24 2c  31 29 3c 3e 22 24 22 20  |. .dir$,1)<>"$" |
000151d0  8c 0d 0b 49 29 20 4e 25  3d a9 28 64 69 72 24 29  |...I) N%=.(dir$)|
000151e0  3a f5 3a 4e 25 2d 3d 31  3a fd 20 c1 64 69 72 24  |:.:N%-=1:. .dir$|
000151f0  2c 4e 25 2c 31 29 3d 22  2e 22 0d 0b 4a 15 20 64  |,N%,1)="."..J. d|
00015200  69 72 24 3d c0 64 69 72  24 2c 4e 25 2d 31 29 0d  |ir$=.dir$,N%-1).|
00015210  0b 4b 06 20 cd 0d 0b 4c  06 20 e1 0d 0b 4d 04 0d  |.K. ...L. ...M..|
00015220  0b 4e 10 20 dd 20 f2 72  6f 6f 74 5f 64 69 72 0d  |.N. . .root_dir.|
00015230  0b 4f 23 20 c8 95 20 c2  64 69 72 24 2c 31 29 3c  |.O# .. .dir$,1)<|
00015240  3e 22 24 22 20 f2 75 70  5f 6f 6e 65 5f 64 69 72  |>"$" .up_one_dir|
00015250  3a ce 0d 0b 50 06 20 e1  0d 0b 51 04 0d 0b 52 20  |:...P. ...Q...R |
00015260  20 dd 20 f2 64 69 73 70  6c 61 79 5f 73 65 70 61  | . .display_sepa|
00015270  72 61 74 69 6f 6e 28 72  67 62 24 29 0d 0b 53 2b  |ration(rgb$)..S+|
00015280  20 f2 64 69 73 70 6c 61  79 5f 6d 65 6d 6f 72 79  | .display_memory|
00015290  3a 21 73 74 61 72 74 5f  61 64 64 72 65 73 73 3d  |:!start_address=|
000152a0  73 63 72 65 65 6e 25 0d  0b 54 0e 20 c8 8e 20 72  |screen%..T. .. r|
000152b0  67 62 24 20 ca 0d 0b 55  20 20 c9 20 22 52 22 3a  |gb$ ...U  . "R":|
000152c0  d6 20 64 69 73 70 6c 61  79 5f 72 65 64 5f 61 73  |. display_red_as|
000152d0  5f 6d 6f 6e 6f 0d 0b 56  22 20 c9 20 22 47 22 3a  |_mono..V" . "G":|
000152e0  d6 20 64 69 73 70 6c 61  79 5f 67 72 65 65 6e 5f  |. display_green_|
000152f0  61 73 5f 6d 6f 6e 6f 0d  0b 57 21 20 c9 20 22 42  |as_mono..W! . "B|
00015300  22 3a d6 20 64 69 73 70  6c 61 79 5f 62 6c 75 65  |":. display_blue|
00015310  5f 61 73 5f 6d 6f 6e 6f  0d 0b 58 06 20 cb 0d 0b  |_as_mono..X. ...|
00015320  59 14 20 f2 77 61 69 74  5f 6e 6f 5f 62 75 74 74  |Y. .wait_no_butt|
00015330  6f 6e 0d 0b 5a 16 20 f5  3a c8 97 20 58 2c 59 2c  |on..Z. .:.. X,Y,|
00015340  42 3a fd 20 42 3c 3e 30  0d 0b 5b 14 20 f2 64 69  |B:. B<>0..[. .di|
00015350  73 70 6c 61 79 5f 6d 65  6d 6f 72 79 0d 0b 5c 06  |splay_memory..\.|
00015360  20 e1 0d 0b 5d 04 0d 0b  5e 16 20 dd 20 f2 72 67  | ...]...^. . .rg|
00015370  62 5f 70 72 6f 63 65 73  73 69 6e 67 0d 0b 5f 22  |b_processing.._"|
00015380  20 e6 33 2c 36 33 20 c8  9c 31 39 32 3a c8 93 20  | .3,63 ..192:.. |
00015390  c8 90 20 38 33 36 2c 34  2c 35 32 2c 35 30 0d 0b  |.. 836,4,52,50..|
000153a0  60 06 20 f5 0d 0b 61 29  20 6d 65 6e 75 24 28 30  |`. ...a) menu$(0|
000153b0  29 3d 22 52 47 42 20 70  72 6f 63 65 73 73 69 6e  |)="RGB processin|
000153c0  67 20 61 6e 64 20 6d 69  73 63 2e 22 20 0d 0b 62  |g and misc." ..b|
000153d0  25 20 6d 65 6e 75 24 28  32 29 3d 22 52 6f 74 61  |% menu$(2)="Rota|
000153e0  74 65 20 52 2d 47 2d 42  20 73 65 71 75 65 6e 63  |te R-G-B sequenc|
000153f0  65 22 0d 0b 63 23 20 6d  65 6e 75 24 28 33 29 3d  |e"..c# menu$(3)=|
00015400  22 53 68 6f 77 20 52 45  44 20 73 65 70 61 72 61  |"Show RED separa|
00015410  74 69 6f 6e 22 0d 0b 64  25 20 6d 65 6e 75 24 28  |tion"..d% menu$(|
00015420  34 29 3d 22 53 68 6f 77  20 47 52 45 45 4e 20 73  |4)="Show GREEN s|
00015430  65 70 61 72 61 74 69 6f  6e 22 0d 0b 65 24 20 6d  |eparation"..e$ m|
00015440  65 6e 75 24 28 35 29 3d  22 53 68 6f 77 20 42 4c  |enu$(5)="Show BL|
00015450  55 45 20 73 65 70 61 72  61 74 69 6f 6e 22 0d 0b  |UE separation"..|
00015460  66 1a 20 6d 65 6e 75 24  28 36 29 3d 22 49 6e 76  |f. menu$(6)="Inv|
00015470  65 72 74 20 52 45 44 22  0d 0b 67 1c 20 6d 65 6e  |ert RED"..g. men|
00015480  75 24 28 37 29 3d 22 49  6e 76 65 72 74 20 47 52  |u$(7)="Invert GR|
00015490  45 45 4e 22 0d 0b 68 1b  20 6d 65 6e 75 24 28 38  |EEN"..h. menu$(8|
000154a0  29 3d 22 49 6e 76 65 72  74 20 42 4c 55 45 22 0d  |)="Invert BLUE".|
000154b0  0b 69 22 20 6d 65 6e 75  24 28 39 29 3d 22 50 69  |.i" menu$(9)="Pi|
000154c0  63 74 75 72 65 20 70 72  6f 63 65 73 73 69 6e 67  |cture processing|
000154d0  22 0d 0b 6a 22 20 6d 65  6e 75 24 28 31 30 29 3d  |"..j" menu$(10)=|
000154e0  22 53 63 61 6c 65 20 70  69 63 74 75 72 65 20 32  |"Scale picture 2|
000154f0  3a 31 22 0d 0b 6b 22 20  6d 65 6e 75 24 28 31 31  |:1"..k" menu$(11|
00015500  29 3d 22 53 63 61 6c 65  20 70 69 63 74 75 72 65  |)="Scale picture|
00015510  20 31 3a 32 22 0d 0b 6c  22 20 6d 65 6e 75 24 28  | 1:2"..l" menu$(|
00015520  31 32 29 3d 22 33 32 30  20 78 20 32 35 36 20 70  |12)="320 x 256 p|
00015530  72 65 76 69 65 77 22 0d  0b 6d 29 20 6d 65 6e 75  |review"..m) menu|
00015540  24 28 31 33 29 3d 22 54  69 6c 65 20 70 65 72 73  |$(13)="Tile pers|
00015550  70 65 63 74 69 76 65 20  65 66 66 65 63 74 3e 22  |pective effect>"|
00015560  0d 0b 6e 20 20 6d 65 6e  75 24 28 31 34 29 3d 22  |..n  menu$(14)="|
00015570  52 6f 74 61 74 65 20 6f  72 20 66 6c 69 70 3e 22  |Rotate or flip>"|
00015580  0d 0b 6f 23 20 6d 65 6e  75 24 28 31 35 29 3d 22  |..o# menu$(15)="|
00015590  46 61 64 65 20 74 6f 70  2d 74 6f 2d 62 6f 74 74  |Fade top-to-bott|
000155a0  6f 6d 22 0d 0b 70 26 20  6d 65 6e 75 24 28 31 36  |om"..p& menu$(16|
000155b0  29 3d 22 53 68 6f 77 20  70 69 78 65 6c 20 52 47  |)="Show pixel RG|
000155c0  42 20 76 61 6c 75 65 73  22 0d 0b 71 21 20 6d 65  |B values"..q! me|
000155d0  6e 75 24 28 31 37 29 3d  22 57 61 76 65 66 6f 72  |nu$(17)="Wavefor|
000155e0  6d 20 6d 6f 6e 69 74 6f  72 22 0d 0b 72 22 20 6d  |m monitor"..r" m|
000155f0  65 6e 75 24 28 31 38 29  3d 22 2a 22 3a f2 6d 65  |enu$(18)="*":.me|
00015600  6e 75 28 34 39 34 2c 39  30 2c 30 29 0d 0b 73 13  |nu(494,90,0)..s.|
00015610  20 6d 65 6e 75 5f 72 65  64 72 61 77 25 3d b9 0d  | menu_redraw%=..|
00015620  0b 74 13 20 c8 8e 20 6d  65 6e 75 5f 62 6f 78 25  |.t. .. menu_box%|
00015630  20 ca 0d 0b 75 18 20 c9  20 31 3a f2 64 69 73 70  | ...u. . 1:.disp|
00015640  6c 61 79 5f 6d 65 6d 6f  72 79 0d 0b 76 38 20 c9  |lay_memory..v8 .|
00015650  20 32 3a f2 64 69 73 70  6c 61 79 5f 6d 65 6d 6f  | 2:.display_memo|
00015660  72 79 3a d6 20 72 67 62  5f 63 6f 72 72 65 63 74  |ry:. rgb_correct|
00015670  69 6f 6e 3a f2 75 70 6c  6f 61 64 5f 6d 65 6d 6f  |ion:.upload_memo|
00015680  72 79 0d 0b 77 21 20 c9  20 33 3a f2 64 69 73 70  |ry..w! . 3:.disp|
00015690  6c 61 79 5f 73 65 70 61  72 61 74 69 6f 6e 28 22  |lay_separation("|
000156a0  52 22 29 0d 0b 78 21 20  c9 20 34 3a f2 64 69 73  |R")..x! . 4:.dis|
000156b0  70 6c 61 79 5f 73 65 70  61 72 61 74 69 6f 6e 28  |play_separation(|
000156c0  22 47 22 29 0d 0b 79 21  20 c9 20 35 3a f2 64 69  |"G")..y! . 5:.di|
000156d0  73 70 6c 61 79 5f 73 65  70 61 72 61 74 69 6f 6e  |splay_separation|
000156e0  28 22 42 22 29 0d 0b 7a  1f 20 c9 20 39 3a f2 70  |("B")..z. . 9:.p|
000156f0  69 63 70 72 6f 5f 70 61  6e 65 6c 28 34 32 30 2c  |icpro_panel(420,|
00015700  31 30 30 29 0d 0b 7b 26  20 c9 20 36 2c 37 2c 38  |100)..{& . 6,7,8|
00015710  3a f2 69 6e 76 65 72 74  5f 63 6f 6c 6f 75 72 28  |:.invert_colour(|
00015720  6d 65 6e 75 5f 62 6f 78  25 29 0d 0b 7c 13 20 c9  |menu_box%)..|. .|
00015730  20 31 30 3a f2 7a 6f 6f  6d 5f 70 69 63 0d 0b 7d  | 10:.zoom_pic..}|
00015740  12 20 c9 20 31 31 3a f2  71 75 61 72 74 65 72 0d  |. . 11:.quarter.|
00015750  0b 7e 16 20 c9 20 31 32  3a f2 75 6e 64 6f 5f 64  |.~. . 12:.undo_d|
00015760  69 74 68 65 72 0d 0b 7f  14 20 c9 20 31 33 3a f2  |ither.... . 13:.|
00015770  70 65 72 70 5f 6d 65 6e  75 0d 0b 80 14 20 c9 20  |perp_menu.... . |
00015780  31 34 3a f2 74 72 61 6e  5f 6d 65 6e 75 0d 0b 81  |14:.tran_menu...|
00015790  16 20 c9 20 31 35 3a f2  73 63 72 65 65 6e 5f 66  |. . 15:.screen_f|
000157a0  61 64 65 0d 0b 82 14 20  c9 20 31 36 3a f2 70 69  |ade.... . 16:.pi|
000157b0  78 65 6c 5f 72 67 62 0d  0b 83 1b 20 c9 20 31 37  |xel_rgb.... . 17|
000157c0  3a f2 77 61 76 65 66 6f  72 6d 5f 6d 6f 6e 69 74  |:.waveform_monit|
000157d0  6f 72 0d 0b 84 06 20 cb  0d 0b 85 12 20 fd 20 6d  |or.... ..... . m|
000157e0  65 6e 75 5f 62 6f 78 25  3d 31 0d 0b 86 0e 20 f2  |enu_box%=1.... .|
000157f0  6d 69 6e 69 5f 70 61 64  0d 0b 87 06 20 e1 0d 0b  |mini_pad.... ...|
00015800  88 04 0d 0b 89 19 20 dd  20 f2 69 6e 76 65 72 74  |...... . .invert|
00015810  5f 63 6f 6c 6f 75 72 28  63 25 29 0d 0b 8a 10 20  |_colour(c%).... |
00015820  e3 20 4e 25 3d 30 20 b8  20 33 31 0d 0b 8b 2e 20  |. N%=0 . 31.... |
00015830  e7 20 63 25 3d 36 20 8c  20 72 65 64 64 61 74 61  |. c%=6 . reddata|
00015840  3f 4e 25 3d 33 31 2d 4e  25 20 8b 20 72 65 64 64  |?N%=31-N% . redd|
00015850  61 74 61 3f 4e 25 3d 4e  25 0d 0b 8c 2e 20 e7 20  |ata?N%=N%.... . |
00015860  63 25 3d 37 20 8c 20 67  72 6e 64 61 74 61 3f 4e  |c%=7 . grndata?N|
00015870  25 3d 33 31 2d 4e 25 20  8b 20 67 72 6e 64 61 74  |%=31-N% . grndat|
00015880  61 3f 4e 25 3d 4e 25 0d  0b 8d 2e 20 e7 20 63 25  |a?N%=N%.... . c%|
00015890  3d 38 20 8c 20 62 6c 75  64 61 74 61 3f 4e 25 3d  |=8 . bludata?N%=|
000158a0  33 31 2d 4e 25 20 8b 20  62 6c 75 64 61 74 61 3f  |31-N% . bludata?|
000158b0  4e 25 3d 4e 25 0d 0b 8e  16 20 ed 3a f2 64 69 73  |N%=N%.... .:.dis|
000158c0  70 6c 61 79 5f 6d 65 6d  6f 72 79 0d 0b 8f 40 20  |play_memory...@ |
000158d0  21 73 74 61 72 74 5f 61  64 64 72 65 73 73 3d 73  |!start_address=s|
000158e0  63 72 65 65 6e 25 3a 21  70 69 63 70 72 6f 5f 62  |creen%:!picpro_b|
000158f0  79 74 65 73 3d 31 32 38  30 3a 21 70 69 63 70 72  |ytes=1280:!picpr|
00015900  6f 5f 6c 69 6e 65 73 3d  35 31 32 0d 0b 90 46 20  |o_lines=512...F |
00015910  21 72 65 64 5f 61 64 64  72 65 73 73 3d 72 65 64  |!red_address=red|
00015920  64 61 74 61 3a 21 67 72  65 65 6e 5f 61 64 64 72  |data:!green_addr|
00015930  65 73 73 3d 67 72 6e 64  61 74 61 3a 21 62 6c 75  |ess=grndata:!blu|
00015940  65 5f 61 64 64 72 65 73  73 3d 62 6c 75 64 61 74  |e_address=bludat|
00015950  61 0d 0b 91 25 20 d6 20  70 69 63 74 75 72 65 5f  |a...% . picture_|
00015960  70 72 6f 63 65 73 73 3a  f2 75 70 6c 6f 61 64 5f  |process:.upload_|
00015970  6d 65 6d 6f 72 79 0d 0b  92 06 20 e1 0d 0b 93 04  |memory.... .....|
00015980  0d 0b 94 1b 20 dd 20 f2  72 6f 74 61 74 65 5f 72  |.... . .rotate_r|
00015990  67 62 5f 61 73 73 65 6d  62 6c 65 0d 0b 95 32 20  |gb_assemble...2 |
000159a0  62 61 73 65 3d 33 3a 6f  66 66 73 65 74 3d 34 3a  |base=3:offset=4:|
000159b0  64 61 74 61 3d 35 3a 62  6c 75 65 5f 6d 61 73 6b  |data=5:blue_mask|
000159c0  3d 36 3a 72 67 62 5f 6d  61 73 6b 3d 37 0d 0b 96  |=6:rgb_mask=7...|
000159d0  14 20 6d 61 73 6b 31 3d  38 3a 6d 61 73 6b 32 3d  |. mask1=8:mask2=|
000159e0  39 0d 0b 97 13 20 de 20  72 67 62 5f 63 6f 64 65  |9.... . rgb_code|
000159f0  20 32 30 30 0d 0b 98 11  20 e3 20 50 3d 30 20 b8  | 200.... . P=0 .|
00015a00  20 32 20 88 32 0d 0b 99  10 20 50 25 3d 72 67 62  | 2 .2.... P%=rgb|
00015a10  5f 63 6f 64 65 0d 0b 9a  0b 20 5b 4f 50 54 20 50  |_code.... [OPT P|
00015a20  0d 0b 9b 1d 20 2e 72 67  62 5f 73 63 72 6e 5f 61  |.... .rgb_scrn_a|
00015a30  64 64 72 65 73 73 20 45  51 55 44 20 30 0d 0b 9c  |ddress EQUD 0...|
00015a40  39 20 2e 72 67 62 5f 62  6c 75 5f 6d 61 73 6b 20  |9 .rgb_blu_mask |
00015a50  45 51 55 44 20 25 30 31  31 31 31 31 30 30 30 30  |EQUD %0111110000|
00015a60  30 30 30 30 30 30 30 31  31 31 31 31 30 30 30 30  |0000000111110000|
00015a70  30 30 30 30 30 30 0d 0b  9d 39 20 2e 72 67 62 5f  |000000...9 .rgb_|
00015a80  72 67 62 5f 6d 61 73 6b  20 45 51 55 44 20 25 31  |rgb_mask EQUD %1|
00015a90  30 30 30 30 30 30 30 30  30 30 31 31 31 31 31 31  |0000000000111111|
00015aa0  30 30 30 30 30 30 30 30  30 30 31 31 31 31 31 0d  |000000000011111.|
00015ab0  0b 9e 39 20 2e 63 6f 72  72 5f 6d 61 73 6b 31 20  |..9 .corr_mask1 |
00015ac0  20 20 45 51 55 44 20 25  31 31 31 31 31 31 30 30  |  EQUD %11111100|
00015ad0  30 30 30 30 30 30 30 30  31 31 31 31 31 31 30 30  |0000000011111100|
00015ae0  30 30 30 30 30 30 30 30  0d 0b 9f 39 20 2e 63 6f  |00000000...9 .co|
00015af0  72 72 5f 6d 61 73 6b 32  20 20 20 45 51 55 44 20  |rr_mask2   EQUD |
00015b00  25 30 30 30 30 30 30 31  31 31 31 31 31 31 31 31  |%000000111111111|
00015b10  31 30 30 30 30 30 30 31  31 31 31 31 31 31 31 31  |1000000111111111|
00015b20  31 0d 0b a0 04 0d 0b a1  15 20 2e 72 6f 74 61 74  |1........ .rotat|
00015b30  65 5f 72 67 62 5f 63 6f  64 65 0d 0b a2 2c 20 4c  |e_rgb_code..., L|
00015b40  44 52 20 62 61 73 65 2c  72 67 62 5f 73 63 72 6e  |DR base,rgb_scrn|
00015b50  5f 61 64 64 72 65 73 73  3a 4d 4f 56 20 6f 66 66  |_address:MOV off|
00015b60  73 65 74 2c 23 30 0d 0b  a3 39 20 4c 44 52 20 62  |set,#0...9 LDR b|
00015b70  6c 75 65 5f 6d 61 73 6b  2c 72 67 62 5f 62 6c 75  |lue_mask,rgb_blu|
00015b80  5f 6d 61 73 6b 3a 4c 44  52 20 72 67 62 5f 6d 61  |_mask:LDR rgb_ma|
00015b90  73 6b 2c 72 67 62 5f 72  67 62 5f 6d 61 73 6b 0d  |sk,rgb_rgb_mask.|
00015ba0  0b a4 04 0d 0b a5 0e 20  2e 72 67 62 5f 6c 6f 6f  |....... .rgb_loo|
00015bb0  70 0d 0b a6 40 20 4c 44  52 20 64 61 74 61 2c 5b  |p...@ LDR data,[|
00015bc0  62 61 73 65 2c 6f 66 66  73 65 74 5d 3a 80 20 52  |base,offset]:. R|
00015bd0  30 2c 64 61 74 61 2c 62  6c 75 65 5f 6d 61 73 6b  |0,data,blue_mask|
00015be0  3a 4d 4f 56 20 52 30 2c  52 30 2c 4c 53 52 23 31  |:MOV R0,R0,LSR#1|
00015bf0  30 0d 0b a7 2f 20 4d 4f  56 20 64 61 74 61 2c 64  |0.../ MOV data,d|
00015c00  61 74 61 2c 4c 53 4c 23  35 3a 42 49 43 20 64 61  |ata,LSL#5:BIC da|
00015c10  74 61 2c 64 61 74 61 2c  72 67 62 5f 6d 61 73 6b  |ta,data,rgb_mask|
00015c20  0d 0b a8 15 20 41 44 44  20 64 61 74 61 2c 64 61  |.... ADD data,da|
00015c30  74 61 2c 52 30 0d 0b a9  30 20 53 54 52 20 64 61  |ta,R0...0 STR da|
00015c40  74 61 2c 5b 62 61 73 65  2c 6f 66 66 73 65 74 5d  |ta,[base,offset]|
00015c50  3a 41 44 44 20 6f 66 66  73 65 74 2c 6f 66 66 73  |:ADD offset,offs|
00015c60  65 74 2c 23 34 0d 0b aa  24 20 43 4d 50 20 6f 66  |et,#4...$ CMP of|
00015c70  66 73 65 74 2c 23 36 35  35 33 36 30 3a 42 4e 45  |fset,#655360:BNE|
00015c80  20 72 67 62 5f 6c 6f 6f  70 0d 0b ab 0f 20 4d 4f  | rgb_loop.... MO|
00015c90  56 20 50 43 2c 52 31 34  0d 0b ac 04 0d 0b ad 14  |V PC,R14........|
00015ca0  20 2e 72 67 62 5f 63 6f  72 72 65 63 74 69 6f 6e  | .rgb_correction|
00015cb0  0d 0b ae 2c 20 4c 44 52  20 62 61 73 65 2c 72 67  |..., LDR base,rg|
00015cc0  62 5f 73 63 72 6e 5f 61  64 64 72 65 73 73 3a 4d  |b_scrn_address:M|
00015cd0  4f 56 20 6f 66 66 73 65  74 2c 23 30 0d 0b af 2e  |OV offset,#0....|
00015ce0  20 4c 44 52 20 6d 61 73  6b 31 2c 63 6f 72 72 5f  | LDR mask1,corr_|
00015cf0  6d 61 73 6b 31 3a 4c 44  52 20 6d 61 73 6b 32 2c  |mask1:LDR mask2,|
00015d00  63 6f 72 72 5f 6d 61 73  6b 32 0d 0b b0 13 20 2e  |corr_mask2.... .|
00015d10  72 67 62 5f 63 6f 72 72  5f 6c 6f 6f 70 0d 0b b1  |rgb_corr_loop...|
00015d20  43 20 4c 44 52 20 64 61  74 61 2c 5b 62 61 73 65  |C LDR data,[base|
00015d30  2c 6f 66 66 73 65 74 5d  3a 4d 4f 56 20 64 61 74  |,offset]:MOV dat|
00015d40  61 2c 64 61 74 61 2c 4c  53 52 23 35 3a 42 49 43  |a,data,LSR#5:BIC|
00015d50  20 64 61 74 61 2c 64 61  74 61 2c 6d 61 73 6b 31  | data,data,mask1|
00015d60  0d 0b b2 41 20 41 44 44  20 62 61 73 65 2c 62 61  |...A ADD base,ba|
00015d70  73 65 2c 23 31 32 38 30  3a 4c 44 52 20 52 30 2c  |se,#1280:LDR R0,|
00015d80  5b 62 61 73 65 2c 6f 66  66 73 65 74 5d 3a 53 55  |[base,offset]:SU|
00015d90  42 20 62 61 73 65 2c 62  61 73 65 2c 23 31 32 38  |B base,base,#128|
00015da0  30 0d 0b b3 25 20 4d 4f  56 20 52 30 2c 52 30 2c  |0...% MOV R0,R0,|
00015db0  4c 53 4c 23 31 30 3a 42  49 43 20 52 30 2c 52 30  |LSL#10:BIC R0,R0|
00015dc0  2c 6d 61 73 6b 32 0d 0b  b4 41 20 41 44 44 20 64  |,mask2...A ADD d|
00015dd0  61 74 61 2c 64 61 74 61  2c 52 30 3a 53 54 52 20  |ata,data,R0:STR |
00015de0  64 61 74 61 2c 5b 62 61  73 65 2c 6f 66 66 73 65  |data,[base,offse|
00015df0  74 5d 3a 41 44 44 20 6f  66 66 73 65 74 2c 6f 66  |t]:ADD offset,of|
00015e00  66 73 65 74 2c 23 34 0d  0b b5 29 20 43 4d 50 20  |fset,#4...) CMP |
00015e10  6f 66 66 73 65 74 2c 23  36 35 35 33 36 30 3a 42  |offset,#655360:B|
00015e20  4e 45 20 72 67 62 5f 63  6f 72 72 5f 6c 6f 6f 70  |NE rgb_corr_loop|
00015e30  0d 0b b6 0f 20 4d 4f 56  20 50 43 2c 52 31 34 0d  |.... MOV PC,R14.|
00015e40  0b b7 06 20 5d 0d 0b b8  20 20 ed 3a 21 72 67 62  |... ]...  .:!rgb|
00015e50  5f 73 63 72 6e 5f 61 64  64 72 65 73 73 3d 73 63  |_scrn_address=sc|
00015e60  72 65 65 6e 25 0d 0b b9  06 20 e1 0d 0b ba 04 0d  |reen%.... ......|
00015e70  0b bb 18 20 dd 20 f2 73  61 76 65 5f 6a 70 65 67  |... . .save_jpeg|
00015e80  28 64 65 73 74 24 29 0d  0b bc 3b 20 ff 28 22 43  |(dest$)...; .("C|
00015e90  72 65 61 74 65 20 3c 50  73 63 61 6e 24 44 69 72  |reate <Pscan$Dir|
00015ea0  3e 2e 4a 50 45 47 2e 4a  50 45 47 73 63 72 61 70  |>.JPEG.JPEGscrap|
00015eb0  2e 73 63 72 61 70 66 69  6c 65 20 46 30 30 30 30  |.scrapfile F0000|
00015ec0  22 29 0d 0b bd 16 20 c8  99 20 22 48 6f 75 72 67  |").... .. "Hourg|
00015ed0  6c 61 73 73 5f 4f 6e 22  0d 0b be 33 20 73 6f 75  |lass_On"...3 sou|
00015ee0  72 63 65 24 3d 22 3c 50  73 63 61 6e 24 44 69 72  |rce$="<Pscan$Dir|
00015ef0  3e 2e 4a 50 45 47 2e 4a  50 45 47 73 63 72 61 70  |>.JPEG.JPEGscrap|
00015f00  2e 73 63 72 61 70 66 69  6c 65 22 0d 0b bf 1b 20  |.scrapfile".... |
00015f10  e7 20 73 61 76 65 5f 74  79 70 65 24 3d 22 6a 70  |. save_type$="jp|
00015f20  65 67 31 22 20 8c 0d 0b  c0 19 20 f2 73 61 76 65  |eg1" ..... .save|
00015f30  5f 74 61 72 67 61 28 73  6f 75 72 63 65 24 29 0d  |_targa(source$).|
00015f40  0b c1 06 20 cc 0d 0b c2  1a 20 f2 73 6d 61 6c 6c  |... ..... .small|
00015f50  5f 74 61 72 67 61 28 73  6f 75 72 63 65 24 29 0d  |_targa(source$).|
00015f60  0b c3 06 20 cd 0d 0b c4  19 20 71 24 3d 22 2d 51  |... ..... q$="-Q|
00015f70  20 22 2b c3 20 6a 70 67  71 25 2b 22 20 22 0d 0b  | "+. jpgq%+" "..|
00015f80  c5 4a 20 c8 99 20 22 57  69 6d 70 5f 53 74 61 72  |.J .. "Wimp_Star|
00015f90  74 54 61 73 6b 22 2c 22  3c 50 73 63 61 6e 24 44  |tTask","<Pscan$D|
00015fa0  69 72 3e 2e 4a 50 45 47  2e 63 6a 70 65 67 20 2d  |ir>.JPEG.cjpeg -|
00015fb0  54 20 22 2b 71 24 2b 73  6f 75 72 63 65 24 2b 22  |T "+q$+source$+"|
00015fc0  20 22 2b 64 65 73 74 24  0d 0b c6 20 20 ff 28 22  | "+dest$...  .("|
00015fd0  53 45 54 54 59 50 45 20  22 2b 64 65 73 74 24 2b  |SETTYPE "+dest$+|
00015fe0  22 20 4a 50 45 47 22 29  0d 0b c7 19 20 ff 28 22  |" JPEG").... .("|
00015ff0  44 45 4c 45 54 45 20 22  2b 73 6f 75 72 63 65 24  |DELETE "+source$|
00016000  29 0d 0b c8 1d 20 c8 99  20 22 4f 53 5f 42 79 74  |).... .. "OS_Byt|
00016010  65 22 2c 32 32 39 2c 30  2c 30 3a ef 32 36 0d 0b  |e",229,0,0:.26..|
00016020  c9 17 20 c8 99 20 22 48  6f 75 72 67 6c 61 73 73  |.. .. "Hourglass|
00016030  5f 4f 66 66 22 0d 0b ca  06 20 e1 0d 0b cb 04 0d  |_Off".... ......|
00016040  0b cc 1a 20 dd 20 f2 6c  6f 61 64 5f 6a 70 65 67  |... . .load_jpeg|
00016050  28 73 6f 75 72 63 65 24  29 0d 0b cd 23 20 c8 99  |(source$)...# ..|
00016060  20 22 48 6f 75 72 67 6c  61 73 73 5f 4f 6e 22 3a  | "Hourglass_On":|
00016070  c8 91 20 30 2c 30 3a db  3a 54 3d 91 0d 0b ce 21  |.. 0,0:.:T=....!|
00016080  20 6a 70 65 67 5f 6c 65  6e 25 3d a4 66 69 6c 65  | jpeg_len%=.file|
00016090  5f 6c 65 6e 28 73 6f 75  72 63 65 24 29 0d 0b cf  |_len(source$)...|
000160a0  40 20 e7 20 6a 70 65 67  5f 6c 65 6e 25 3e 36 35  |@ . jpeg_len%>65|
000160b0  35 33 36 30 20 8c 20 85  20 31 39 39 37 2c 22 46  |5360 . . 1997,"F|
000160c0  69 6c 65 20 74 6f 6f 20  6c 6f 6e 67 20 2d 20 6c  |ile too long - l|
000160d0  69 6d 69 74 20 69 73 20  36 34 30 6b 22 0d 0b d0  |imit is 640k"...|
000160e0  2c 20 ff 28 22 4c 4f 41  44 20 22 2b 73 6f 75 72  |, .("LOAD "+sour|
000160f0  63 65 24 2b 22 20 22 2b  c3 7e 28 6d 65 6d 62 6c  |ce$+" "+.~(membl|
00016100  6f 63 6b 25 2b 32 30 29  29 0d 0b d1 34 20 c8 99  |ock%+20))...4 ..|
00016110  20 22 4a 50 45 47 5f 49  6e 66 6f 22 2c 2c 6d 65  | "JPEG_Info",,me|
00016120  6d 62 6c 6f 63 6b 25 2b  32 30 2c 36 35 35 33 36  |mblock%+20,65536|
00016130  30 20 b8 20 2c 2c 78 73  25 2c 79 73 25 0d 0b d2  |0 . ,,xs%,ys%...|
00016140  2c 20 6a 70 65 67 73 63  61 6c 65 25 21 30 3d 31  |, jpegscale%!0=1|
00016150  30 30 30 30 30 3a 6a 70  65 67 73 63 61 6c 65 25  |00000:jpegscale%|
00016160  21 34 3d 31 30 30 30 30  30 0d 0b d3 37 20 6a 70  |!4=100000...7 jp|
00016170  65 67 73 63 61 6c 65 25  21 38 3d 31 30 30 30 30  |egscale%!8=10000|
00016180  30 3a 6a 70 65 67 73 63  61 6c 65 25 21 31 32 3d  |0:jpegscale%!12=|
00016190  31 30 30 30 30 30 3a 78  25 3d 30 3a 79 25 3d 30  |100000:x%=0:y%=0|
000161a0  0d 0b d4 14 20 e7 20 6a  70 65 67 5f 73 63 61 6c  |.... . jpeg_scal|
000161b0  65 25 20 8c 0d 0b d5 24  20 e7 20 6a 70 65 67 5f  |e% ....$ . jpeg_|
000161c0  6f 70 74 25 3d 32 20 8c  20 57 25 3d 34 38 30 20  |opt%=2 . W%=480 |
000161d0  8b 20 57 25 3d 35 31 32  0d 0b d6 2c 20 e7 20 78  |. W%=512..., . x|
000161e0  73 25 3c 36 34 30 20 8c  20 6a 70 65 67 73 63 61  |s%<640 . jpegsca|
000161f0  6c 65 25 21 30 3d 36 34  30 2f 78 73 25 2a 31 30  |le%!0=640/xs%*10|
00016200  30 30 30 30 0d 0b d7 2c  20 e7 20 78 73 25 3e 36  |0000..., . xs%>6|
00016210  34 30 20 8c 20 6a 70 65  67 73 63 61 6c 65 25 21  |40 . jpegscale%!|
00016220  38 3d 78 73 25 2f 36 34  30 2a 31 30 30 30 30 30  |8=xs%/640*100000|
00016230  0d 0b d8 2a 20 e7 20 79  73 25 3c 57 25 20 8c 20  |...* . ys%<W% . |
00016240  6a 70 65 67 73 63 61 6c  65 25 21 34 3d 57 25 2f  |jpegscale%!4=W%/|
00016250  79 73 25 2a 31 30 30 30  30 30 0d 0b d9 2b 20 e7  |ys%*100000...+ .|
00016260  20 79 73 25 3e 57 25 20  8c 20 6a 70 65 67 73 63  | ys%>W% . jpegsc|
00016270  61 6c 65 25 21 31 32 3d  79 73 25 2f 57 25 2a 31  |ale%!12=ys%/W%*1|
00016280  30 30 30 30 30 0d 0b da  06 20 cc 0d 0b db 24 20  |00000.... ....$ |
00016290  e7 20 6a 70 65 67 5f 6f  70 74 25 3d 30 20 8c 20  |. jpeg_opt%=0 . |
000162a0  57 25 3d 34 38 30 20 8b  20 57 25 3d 35 31 32 0d  |W%=480 . W%=512.|
000162b0  0b dc 19 20 78 25 3d 36  34 30 2d 78 73 25 3a 79  |... x%=640-xs%:y|
000162c0  25 3d 57 25 2d 79 73 25  0d 0b dd 06 20 cd 0d 0b  |%=W%-ys%.... ...|
000162d0  de 43 20 c8 99 20 22 4a  50 45 47 5f 50 6c 6f 74  |.C .. "JPEG_Plot|
000162e0  53 63 61 6c 65 64 22 2c  6d 65 6d 62 6c 6f 63 6b  |Scaled",memblock|
000162f0  25 2b 32 30 2c 78 25 2c  79 25 2c 6a 70 65 67 73  |%+20,x%,y%,jpegs|
00016300  63 61 6c 65 25 2c 6a 70  65 67 5f 6c 65 6e 25 2c  |cale%,jpeg_len%,|
00016310  31 0d 0b df 31 20 54 24  3d c0 c3 28 28 91 2d 54  |1...1 T$=..((.-T|
00016320  29 2f 31 30 30 29 2c 34  29 3a e7 20 57 25 3d 34  |)/100),4):. W%=4|
00016330  38 30 20 8c 20 f2 74 6f  70 73 63 61 6c 65 32 28  |80 . .topscale2(|
00016340  32 29 0d 0b e0 3e 20 f2  75 70 6c 6f 61 64 5f 6d  |2)...> .upload_m|
00016350  65 6d 6f 72 79 3a 71 75  69 74 25 3d b9 3a 6a 70  |emory:quit%=.:jp|
00016360  65 67 5f 69 6e 66 6f 25  3d b9 3a 70 61 74 68 24  |eg_info%=.:path$|
00016370  28 4d 45 4d 25 2b 31 29  3d 73 6f 75 72 63 65 24  |(MEM%+1)=source$|
00016380  0d 0b e1 17 20 c8 99 20  22 48 6f 75 72 67 6c 61  |.... .. "Hourgla|
00016390  73 73 5f 4f 66 66 22 0d  0b e2 06 20 e1 0d 0b e3  |ss_Off".... ....|
000163a0  04 0d 0b e4 1b 20 dd 20  f2 6c 6f 61 64 5f 70 73  |..... . .load_ps|
000163b0  63 61 6e 28 73 6f 75 72  63 65 24 29 0d 0b e5 14  |can(source$)....|
000163c0  20 61 25 3d 6d 65 6d 62  6c 6f 63 6b 25 2b 32 30  | a%=memblock%+20|
000163d0  0d 0b e6 20 20 ff 28 22  4c 4f 41 44 20 22 2b 73  |...  .("LOAD "+s|
000163e0  6f 75 72 63 65 24 2b 22  20 22 2b c3 7e 61 25 29  |ource$+" "+.~a%)|
000163f0  0d 0b e7 35 20 21 74 61  72 67 61 5f 73 63 72 65  |...5 !targa_scre|
00016400  65 6e 3d 73 63 72 65 65  6e 25 3a 21 74 61 72 67  |en=screen%:!targ|
00016410  61 5f 6d 65 6d 6f 72 79  3d 6d 65 6d 62 6c 6f 63  |a_memory=membloc|
00016420  6b 25 2b 32 30 0d 0b e8  2e 20 d6 20 64 65 63 6f  |k%+20.... . deco|
00016430  64 65 5f 70 73 63 61 6e  5f 39 36 61 3a f2 75 70  |de_pscan_96a:.up|
00016440  6c 6f 61 64 5f 6d 65 6d  6f 72 79 3a 71 75 69 74  |load_memory:quit|
00016450  25 3d b9 0d 0b e9 1a 20  70 61 74 68 24 28 4d 45  |%=..... path$(ME|
00016460  4d 25 2b 31 29 3d 73 6f  75 72 63 65 24 0d 0b ea  |M%+1)=source$...|
00016470  06 20 e1 0d 0b eb 04 0d  0b ec 1c 20 dd 20 f2 6c  |. ......... . .l|
00016480  6f 61 64 5f 73 70 72 69  74 65 28 73 6f 75 72 63  |oad_sprite(sourc|
00016490  65 24 29 0d 0b ed 12 20  c8 97 20 6d 78 25 2c 6d  |e$).... .. mx%,m|
000164a0  79 25 2c 64 25 0d 0b ee  13 20 63 68 25 3d ad 28  |y%,d%.... ch%=.(|
000164b0  73 6f 75 72 63 65 24 29  0d 0b ef 2b 20 e3 20 4e  |source$)...+ . N|
000164c0  25 3d 32 38 20 b8 20 33  35 3a cf 23 63 68 25 3d  |%=28 . 35:.#ch%=|
000164d0  4e 25 3a 67 62 70 62 25  3f 4e 25 3d 9a 23 63 68  |N%:gbpb%?N%=.#ch|
000164e0  25 3a ed 0d 0b f0 1c 20  cf 23 63 68 25 3d 35 35  |%:..... .#ch%=55|
000164f0  3a 4d 25 3d 9a 23 63 68  25 3a d9 23 63 68 25 0d  |:M%=.#ch%:.#ch%.|
00016500  0b f1 15 20 c8 91 20 30  2c 30 3a 6c 6f 61 64 65  |... .. 0,0:loade|
00016510  64 25 3d 30 0d 0b f2 28  20 e7 20 28 67 62 70 62  |d%=0...( . (gbpb|
00016520  25 21 33 32 29 3d 35 31  31 20 80 20 28 67 62 70  |%!32)=511 . (gbp|
00016530  62 25 21 32 38 29 3d 33  31 39 20 8c 0d 0b f3 1d  |b%!28)=319 .....|
00016540  20 ff 28 22 53 43 52 45  45 4e 4c 4f 41 44 20 22  | .("SCREENLOAD "|
00016550  2b 73 6f 75 72 63 65 24  29 0d 0b f4 22 20 87 3a  |+source$)..." .:|
00016560  c8 96 3a f2 75 70 6c 6f  61 64 5f 6d 65 6d 6f 72  |..:.upload_memor|
00016570  79 3a 6c 6f 61 64 65 64  25 3d b9 0d 0b f5 06 20  |y:loaded%=..... |
00016580  cd 0d 0b f6 28 20 e7 20  28 67 62 70 62 25 21 33  |....( . (gbpb%!3|
00016590  32 29 3d 34 37 39 20 80  20 28 67 62 70 62 25 21  |2)=479 . (gbpb%!|
000165a0  32 38 29 3d 33 31 39 20  8c 0d 0b f7 2d 20 e7 20  |28)=319 ....- . |
000165b0  73 63 72 65 65 6e 5f 6c  69 6e 65 73 25 3d 35 31  |screen_lines%=51|
000165c0  32 20 8c 20 4e 25 3d 34  30 39 30 34 20 8b 20 4e  |2 . N%=40904 . N|
000165d0  25 3d 31 32 32 34 0d 0b  f8 2a 20 ff 28 22 4c 4f  |%=1224...* .("LO|
000165e0  41 44 20 22 2b 73 6f 75  72 63 65 24 2b 22 20 22  |AD "+source$+" "|
000165f0  2b c3 7e 28 73 63 72 65  65 6e 25 2b 4e 25 29 29  |+.~(screen%+N%))|
00016600  0d 0b f9 2b 20 f2 75 70  6c 6f 61 64 5f 6d 65 6d  |...+ .upload_mem|
00016610  6f 72 79 3a f2 74 6f 70  73 63 61 6c 65 32 28 30  |ory:.topscale2(0|
00016620  29 3a 6c 6f 61 64 65 64  25 3d b9 0d 0b fa 06 20  |):loaded%=..... |
00016630  cd 0d 0b fb 28 20 e7 20  ac 28 6c 6f 61 64 65 64  |....( . .(loaded|
00016640  25 29 20 8c 20 f2 6c 6f  61 64 5f 6f 76 65 72 6c  |%) . .load_overl|
00016650  61 79 5f 73 70 72 69 74  65 0d 0b fc 26 20 e7 20  |ay_sprite...& . |
00016660  6c 6f 61 64 65 64 25 20  8c 20 70 61 74 68 24 28  |loaded% . path$(|
00016670  4d 45 4d 25 2b 31 29 3d  73 6f 75 72 63 65 24 0d  |MEM%+1)=source$.|
00016680  0b fd 17 20 71 75 69 74  25 3d b9 3a 2a 50 4f 49  |... quit%=.:*POI|
00016690  4e 54 45 52 20 31 0d 0b  fe 14 20 c8 97 20 b8 20  |NTER 1.... .. . |
000166a0  6d 78 25 2c 6d 79 25 2b  35 30 0d 0b ff 06 20 e1  |mx%,my%+50.... .|
000166b0  0d 0c 00 04 0d 0c 01 1b  20 dd 20 f2 6c 6f 61 64  |........ . .load|
000166c0  5f 74 61 72 67 61 28 73  6f 75 72 63 65 24 29 0d  |_targa(source$).|
000166d0  0c 02 13 20 61 25 3d 6d  65 6d 62 6c 6f 63 6b 25  |... a%=memblock%|
000166e0  2b 32 0d 0c 03 20 20 ff  28 22 4c 4f 41 44 20 22  |+2...  .("LOAD "|
000166f0  2b 73 6f 75 72 63 65 24  2b 22 20 22 2b c3 7e 61  |+source$+" "+.~a|
00016700  25 29 0d 0c 04 35 20 21  74 61 72 67 61 5f 62 61  |%)...5 !targa_ba|
00016710  73 65 3d 6d 65 6d 62 6c  6f 63 6b 25 2b 32 30 3a  |se=memblock%+20:|
00016720  d6 20 74 61 72 67 61 5f  63 6f 6e 76 65 72 74 3a  |. targa_convert:|
00016730  71 75 69 74 25 3d b9 0d  0c 05 10 20 e7 20 61 25  |quit%=..... . a%|
00016740  3f 31 33 3d 31 20 8c 0d  0c 06 34 20 21 74 61 72  |?13=1 ....4 !tar|
00016750  67 61 5f 73 63 72 65 65  6e 3d 73 63 72 65 65 6e  |ga_screen=screen|
00016760  25 3a 21 74 61 72 67 61  5f 6d 65 6d 6f 72 79 3d  |%:!targa_memory=|
00016770  21 74 61 72 67 61 5f 62  61 73 65 0d 0c 07 28 20  |!targa_base...( |
00016780  d6 20 64 65 63 6f 64 65  5f 73 6d 61 6c 6c 5f 74  |. decode_small_t|
00016790  61 72 67 61 3a f2 75 70  6c 6f 61 64 5f 6d 65 6d  |arga:.upload_mem|
000167a0  6f 72 79 0d 0c 08 06 20  cd 0d 0c 09 1a 20 70 61  |ory.... ..... pa|
000167b0  74 68 24 28 4d 45 4d 25  2b 31 29 3d 73 6f 75 72  |th$(MEM%+1)=sour|
000167c0  63 65 24 0d 0c 0a 06 20  e1 0d 0c 0b 04 0d 0c 0c  |ce$.... ........|
000167d0  17 20 dd 20 f2 73 61 76  65 5f 70 73 63 61 6e 28  |. . .save_pscan(|
000167e0  73 74 24 29 0d 0c 0d 12  20 e7 20 ac 20 62 79 70  |st$).... . . byp|
000167f0  61 73 73 25 20 8c 0d 0c  0e 8a 20 e7 20 21 73 63  |ass% ..... . !sc|
00016800  72 65 65 6e 25 3c 3e 26  38 30 30 30 38 30 30 30  |reen%<>&80008000|
00016810  20 8c 20 85 20 31 39 39  36 2c 22 54 68 69 73 20  | . . 1996,"This |
00016820  70 69 63 74 75 72 65 20  77 61 73 20 6e 6f 74 20  |picture was not |
00016830  72 65 63 65 69 76 65 64  20 69 6e 20 61 20 33 32  |received in a 32|
00016840  30 20 78 20 32 35 36 20  53 53 54 56 20 6d 6f 64  |0 x 256 SSTV mod|
00016850  65 20 73 6f 20 69 74 20  63 61 6e 6e 6f 74 20 62  |e so it cannot b|
00016860  65 20 73 61 76 65 64 20  69 6e 20 50 73 63 61 6e  |e saved in Pscan|
00016870  20 66 6f 72 6d 61 74 22  2b bd 31 33 2b bd 31 33  | format"+.13+.13|
00016880  0d 0c 0f 06 20 cd 0d 0c  10 35 20 21 74 61 72 67  |.... ....5 !targ|
00016890  61 5f 73 63 72 65 65 6e  3d 73 63 72 65 65 6e 25  |a_screen=screen%|
000168a0  3a 21 74 61 72 67 61 5f  6d 65 6d 6f 72 79 3d 6d  |:!targa_memory=m|
000168b0  65 6d 62 6c 6f 63 6b 25  2b 32 30 0d 0c 11 35 20  |emblock%+20...5 |
000168c0  f2 64 69 73 70 6c 61 79  5f 6d 65 6d 6f 72 79 3a  |.display_memory:|
000168d0  21 70 73 63 61 6e 5f 74  65 6d 70 3d 31 3a d6 20  |!pscan_temp=1:. |
000168e0  6d 61 6b 65 5f 73 6d 61  6c 6c 5f 74 61 72 67 61  |make_small_targa|
000168f0  0d 0c 12 14 20 41 25 3d  6d 65 6d 62 6c 6f 63 6b  |.... A%=memblock|
00016900  25 2b 32 30 0d 0c 13 34  20 c8 99 20 22 4f 53 5f  |%+20...4 .. "OS_|
00016910  46 69 6c 65 22 2c 31 30  2c 73 74 24 2c 26 39 36  |File",10,st$,&96|
00016920  41 2c 30 2c 41 25 2c 41  25 2b 26 32 38 30 30 30  |A,0,A%,A%+&28000|
00016930  3a f4 20 2a 53 41 56 45  0d 0c 14 13 20 f2 75 70  |:. *SAVE.... .up|
00016940  6c 6f 61 64 5f 6d 65 6d  6f 72 79 0d 0c 15 06 20  |load_memory.... |
00016950  e1 0d 0c 16 04 0d 0c 17  18 20 dd 20 f2 73 6d 61  |......... . .sma|
00016960  6c 6c 5f 74 61 72 67 61  28 73 74 24 29 0d 0c 18  |ll_targa(st$)...|
00016970  35 20 21 74 61 72 67 61  5f 73 63 72 65 65 6e 3d  |5 !targa_screen=|
00016980  73 63 72 65 65 6e 25 3a  21 74 61 72 67 61 5f 6d  |screen%:!targa_m|
00016990  65 6d 6f 72 79 3d 6d 65  6d 62 6c 6f 63 6b 25 2b  |emory=memblock%+|
000169a0  32 30 0d 0c 19 35 20 f2  64 69 73 70 6c 61 79 5f  |20...5 .display_|
000169b0  6d 65 6d 6f 72 79 3a 21  70 73 63 61 6e 5f 74 65  |memory:!pscan_te|
000169c0  6d 70 3d 30 3a d6 20 6d  61 6b 65 5f 73 6d 61 6c  |mp=0:. make_smal|
000169d0  6c 5f 74 61 72 67 61 0d  0c 1a 2d 20 21 74 61 72  |l_targa...- !tar|
000169e0  67 61 5f 62 61 73 65 3d  6d 65 6d 62 6c 6f 63 6b  |ga_base=memblock|
000169f0  25 2b 32 30 3a d6 20 74  61 72 67 61 5f 63 6f 6e  |%+20:. targa_con|
00016a00  76 65 72 74 0d 0c 1b 13  20 41 25 3d 6d 65 6d 62  |vert.... A%=memb|
00016a10  6c 6f 63 6b 25 2b 32 0d  0c 1c 09 20 f7 20 2b 30  |lock%+2.... . +0|
00016a20  0d 0c 1d 22 20 e3 20 4e  25 3d 41 25 20 b8 20 41  |..." . N%=A% . A|
00016a30  25 2b 31 37 3a f3 20 44  25 3a 3f 4e 25 3d 44 25  |%+17:. D%:?N%=D%|
00016a40  3a ed 0d 0c 1e 1f 20 65  6e 64 25 3d 28 6d 65 6d  |:..... end%=(mem|
00016a50  62 6c 6f 63 6b 25 2b 32  30 29 2b 31 36 33 38 34  |block%+20)+16384|
00016a60  30 0d 0c 1f 3d 20 21 65  6e 64 25 3d 30 3a 65 6e  |0...= !end%=0:en|
00016a70  64 25 21 34 3d 30 3a 24  28 65 6e 64 25 2b 38 29  |d%!4=0:$(end%+8)|
00016a80  3d 22 54 52 55 45 56 49  53 49 4f 4e 2d 54 41 52  |="TRUEVISION-TAR|
00016a90  47 41 2e 22 3a 65 6e 64  25 3f 32 35 3d 30 0d 0c  |GA.":end%?25=0..|
00016aa0  20 2e 20 dc 20 30 2c 30  2c 32 2c 30 2c 30 2c 30  | . . 0,0,2,0,0,0|
00016ab0  2c 30 2c 30 2c 30 2c 30  2c 30 2c 30 2c 36 34 2c  |,0,0,0,0,0,0,64,|
00016ac0  31 2c 30 2c 31 2c 31 36  2c 26 32 30 0d 0c 21 34  |1,0,1,16,&20..!4|
00016ad0  20 c8 99 20 22 4f 53 5f  46 69 6c 65 22 2c 31 30  | .. "OS_File",10|
00016ae0  2c 73 74 24 2c 26 36 39  44 2c 30 2c 41 25 2c 41  |,st$,&69D,0,A%,A|
00016af0  25 2b 26 32 38 30 32 43  3a f4 20 2a 53 41 56 45  |%+&2802C:. *SAVE|
00016b00  0d 0c 22 13 20 f2 75 70  6c 6f 61 64 5f 6d 65 6d  |..". .upload_mem|
00016b10  6f 72 79 0d 0c 23 06 20  e1 0d 0c 24 05 20 0d 0c  |ory..#. ...$. ..|
00016b20  25 21 20 dd 20 f2 6d 61  6b 65 5f 73 6d 61 6c 6c  |%! . .make_small|
00016b30  5f 74 61 72 67 61 5f 61  73 73 65 6d 62 6c 65 0d  |_targa_assemble.|
00016b40  0c 26 38 20 62 61 73 65  31 3d 33 3a 62 61 73 65  |.&8 base1=3:base|
00016b50  32 3d 34 3a 6f 66 66 73  65 74 31 3d 35 3a 6f 66  |2=4:offset1=5:of|
00016b60  66 73 65 74 32 3d 36 3a  64 61 74 61 31 3d 37 3a  |fset2=6:data1=7:|
00016b70  64 61 74 61 32 3d 38 0d  0c 27 2b 20 6d 61 73 6b  |data2=8..'+ mask|
00016b80  3d 39 3a 6d 61 73 6b 32  3d 31 30 3a 6c 69 6e 65  |=9:mask2=10:line|
00016b90  73 3d 31 31 3a 70 73 63  61 6e 5f 66 6c 61 67 3d  |s=11:pscan_flag=|
00016ba0  31 32 0d 0c 28 17 20 de  20 74 61 72 67 61 5f 63  |12..(. . targa_c|
00016bb0  6f 64 65 32 25 20 36 34  30 0d 0c 29 11 20 e3 20  |ode2% 640..). . |
00016bc0  50 3d 30 20 b8 20 32 20  88 32 0d 0c 2a 14 20 50  |P=0 . 2 .2..*. P|
00016bd0  25 3d 74 61 72 67 61 5f  63 6f 64 65 32 25 0d 0c  |%=targa_code2%..|
00016be0  2b 0b 20 5b 4f 50 54 20  50 0d 0c 2c 39 20 2e 74  |+. [OPT P..,9 .t|
00016bf0  61 72 67 61 5f 6d 61 73  6b 20 20 20 45 51 55 44  |arga_mask   EQUD|
00016c00  20 25 30 30 30 30 30 30  30 30 30 30 30 30 30 30  | %00000000000000|
00016c10  30 30 31 31 31 31 31 31  31 31 31 31 31 31 31 31  |0011111111111111|
00016c20  31 31 0d 0c 2d 39 20 2e  74 61 72 67 61 5f 6d 61  |11..-9 .targa_ma|
00016c30  73 6b 32 20 20 45 51 55  44 20 25 31 31 31 31 31  |sk2  EQUD %11111|
00016c40  31 31 31 31 31 31 31 31  31 31 31 30 30 30 30 30  |1111111111100000|
00016c50  30 30 30 30 30 30 30 30  30 30 30 0d 0c 2e 19 20  |00000000000.... |
00016c60  2e 70 73 63 61 6e 5f 74  65 6d 70 20 20 20 45 51  |.pscan_temp   EQ|
00016c70  55 44 20 30 0d 0c 2f 19  20 2e 74 61 72 67 61 5f  |UD 0../. .targa_|
00016c80  73 63 72 65 65 6e 20 45  51 55 44 20 30 0d 0c 30  |screen EQUD 0..0|
00016c90  19 20 2e 74 61 72 67 61  5f 6d 65 6d 6f 72 79 20  |. .targa_memory |
00016ca0  45 51 55 44 20 30 0d 0c  31 39 20 2e 67 72 65 65  |EQUD 0..19 .gree|
00016cb0  6e 5f 6d 61 73 6b 20 20  20 45 51 55 44 20 25 31  |n_mask   EQUD %1|
00016cc0  31 31 31 31 31 31 31 31  31 31 31 31 31 31 31 31  |1111111111111111|
00016cd0  30 30 30 30 30 31 31 31  31 31 30 30 30 30 30 0d  |000001111100000.|
00016ce0  0c 32 04 0d 0c 33 16 20  2e 6d 61 6b 65 5f 73 6d  |.2...3. .make_sm|
00016cf0  61 6c 6c 5f 74 61 72 67  61 0d 0c 34 4c 20 4c 44  |all_targa..4L LD|
00016d00  52 20 62 61 73 65 31 2c  74 61 72 67 61 5f 73 63  |R base1,targa_sc|
00016d10  72 65 65 6e 3a 4c 44 52  20 62 61 73 65 32 2c 74  |reen:LDR base2,t|
00016d20  61 72 67 61 5f 6d 65 6d  6f 72 79 3a 4c 44 52 20  |arga_memory:LDR |
00016d30  70 73 63 61 6e 5f 66 6c  61 67 2c 70 73 63 61 6e  |pscan_flag,pscan|
00016d40  5f 74 65 6d 70 0d 0c 35  45 20 4c 44 52 20 6d 61  |_temp..5E LDR ma|
00016d50  73 6b 2c 74 61 72 67 61  5f 6d 61 73 6b 3a 4d 4f  |sk,targa_mask:MO|
00016d60  56 20 6f 66 66 73 65 74  31 2c 23 30 3a 4d 4f 56  |V offset1,#0:MOV|
00016d70  20 6f 66 66 73 65 74 32  2c 23 30 3a 4d 4f 56 20  | offset2,#0:MOV |
00016d80  6c 69 6e 65 73 2c 23 32  35 36 0d 0c 36 04 0d 0c  |lines,#256..6...|
00016d90  37 15 20 2e 6d 61 6b 65  5f 74 61 72 67 61 5f 6c  |7. .make_targa_l|
00016da0  6f 6f 70 0d 0c 38 42 20  4c 44 52 20 52 31 2c 5b  |oop..8B LDR R1,[|
00016db0  62 61 73 65 31 2c 6f 66  66 73 65 74 31 5d 3a 80  |base1,offset1]:.|
00016dc0  20 64 61 74 61 31 2c 52  31 2c 6d 61 73 6b 3a 41  | data1,R1,mask:A|
00016dd0  44 44 20 6f 66 66 73 65  74 31 2c 6f 66 66 73 65  |DD offset1,offse|
00016de0  74 31 2c 23 34 0d 0c 39  2b 20 4c 44 52 20 52 32  |t1,#4..9+ LDR R2|
00016df0  2c 5b 62 61 73 65 31 2c  6f 66 66 73 65 74 31 5d  |,[base1,offset1]|
00016e00  3a 80 20 64 61 74 61 32  2c 52 32 2c 6d 61 73 6b  |:. data2,R2,mask|
00016e10  0d 0c 3a 2e 20 4d 4f 56  20 64 61 74 61 32 2c 64  |..:. MOV data2,d|
00016e20  61 74 61 32 2c 4c 53 4c  23 31 36 3a 41 44 44 20  |ata2,LSL#16:ADD |
00016e30  52 30 2c 64 61 74 61 31  2c 64 61 74 61 32 0d 0c  |R0,data1,data2..|
00016e40  3b 25 20 43 4d 50 20 70  73 63 61 6e 5f 66 6c 61  |;% CMP pscan_fla|
00016e50  67 2c 23 30 3a 42 45 51  20 6a 75 73 74 5f 74 61  |g,#0:BEQ just_ta|
00016e60  72 67 61 0d 0c 3c 04 0d  0c 3d 29 20 4d 4f 56 20  |rga..<...=) MOV |
00016e70  64 61 74 61 31 2c 52 31  2c 4c 53 52 23 35 3a 80  |data1,R1,LSR#5:.|
00016e80  20 64 61 74 61 31 2c 64  61 74 61 31 2c 23 33 31  | data1,data1,#31|
00016e90  0d 0c 3e 2a 20 4d 4f 56  20 64 61 74 61 32 2c 52  |..>* MOV data2,R|
00016ea0  31 2c 4c 53 52 23 32 31  3a 80 20 64 61 74 61 32  |1,LSR#21:. data2|
00016eb0  2c 64 61 74 61 32 2c 23  33 31 0d 0c 3f 42 20 43  |,data2,#31..?B C|
00016ec0  4d 50 20 64 61 74 61 31  2c 64 61 74 61 32 3a 84  |MP data1,data2:.|
00016ed0  52 4e 45 20 52 30 2c 52  30 2c 23 25 30 30 30 30  |RNE R0,R0,#%0000|
00016ee0  30 30 30 30 30 30 30 30  30 30 30 30 31 30 30 30  |0000000000001000|
00016ef0  30 30 30 30 30 30 30 30  30 30 30 30 0d 0c 40 29  |000000000000..@)|
00016f00  20 4d 4f 56 20 64 61 74  61 31 2c 52 32 2c 4c 53  | MOV data1,R2,LS|
00016f10  52 23 35 3a 80 20 64 61  74 61 31 2c 64 61 74 61  |R#5:. data1,data|
00016f20  31 2c 23 33 31 0d 0c 41  2a 20 4d 4f 56 20 64 61  |1,#31..A* MOV da|
00016f30  74 61 32 2c 52 32 2c 4c  53 52 23 32 31 3a 80 20  |ta2,R2,LSR#21:. |
00016f40  64 61 74 61 32 2c 64 61  74 61 32 2c 23 33 31 0d  |data2,data2,#31.|
00016f50  0c 42 42 20 43 4d 50 20  64 61 74 61 31 2c 64 61  |.BB CMP data1,da|
00016f60  74 61 32 3a 84 52 4e 45  20 52 30 2c 52 30 2c 23  |ta2:.RNE R0,R0,#|
00016f70  25 31 30 30 30 30 30 30  30 30 30 30 30 30 30 30  |%100000000000000|
00016f80  30 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30  |0000000000000000|
00016f90  30 0d 0c 43 04 0d 0c 44  10 20 2e 6a 75 73 74 5f  |0..C...D. .just_|
00016fa0  74 61 72 67 61 0d 0c 45  49 20 53 54 52 20 52 30  |targa..EI STR R0|
00016fb0  2c 5b 62 61 73 65 32 2c  6f 66 66 73 65 74 32 5d  |,[base2,offset2]|
00016fc0  3a 41 44 44 20 6f 66 66  73 65 74 32 2c 6f 66 66  |:ADD offset2,off|
00016fd0  73 65 74 32 2c 23 34 3a  41 44 44 20 6f 66 66 73  |set2,#4:ADD offs|
00016fe0  65 74 31 2c 6f 66 66 73  65 74 31 2c 23 34 0d 0c  |et1,offset1,#4..|
00016ff0  46 29 20 43 4d 50 20 6f  66 66 73 65 74 32 2c 23  |F) CMP offset2,#|
00017000  36 34 30 3a 42 4e 45 20  6d 61 6b 65 5f 74 61 72  |640:BNE make_tar|
00017010  67 61 5f 6c 6f 6f 70 0d  0c 47 2f 20 41 44 44 20  |ga_loop..G/ ADD |
00017020  62 61 73 65 31 2c 62 61  73 65 31 2c 23 32 35 36  |base1,base1,#256|
00017030  30 3a 41 44 44 20 62 61  73 65 32 2c 62 61 73 65  |0:ADD base2,base|
00017040  32 2c 23 36 34 30 0d 0c  48 4a 20 4d 4f 56 20 6f  |2,#640..HJ MOV o|
00017050  66 66 73 65 74 31 2c 23  30 3a 4d 4f 56 20 6f 66  |ffset1,#0:MOV of|
00017060  66 73 65 74 32 2c 23 30  3a 53 55 42 53 20 6c 69  |fset2,#0:SUBS li|
00017070  6e 65 73 2c 6c 69 6e 65  73 2c 23 31 3a 42 4e 45  |nes,lines,#1:BNE|
00017080  20 6d 61 6b 65 5f 74 61  72 67 61 5f 6c 6f 6f 70  | make_targa_loop|
00017090  0d 0c 49 0f 20 4d 4f 56  20 50 43 2c 52 31 34 0d  |..I. MOV PC,R14.|
000170a0  0c 4a 04 0d 0c 4b 32 20  3b 20 2d 2d 2d 2d 2d 2d  |.J...K2 ; ------|
000170b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000170d0  2d 2d 2d 2d 2d 0d 0c 4c  04 0d 0c 4d 18 20 2e 64  |-----..L...M. .d|
000170e0  65 63 6f 64 65 5f 73 6d  61 6c 6c 5f 74 61 72 67  |ecode_small_targ|
000170f0  61 0d 0c 4e 32 20 4c 44  52 20 62 61 73 65 31 2c  |a..N2 LDR base1,|
00017100  74 61 72 67 61 5f 73 63  72 65 65 6e 3a 4c 44 52  |targa_screen:LDR|
00017110  20 62 61 73 65 32 2c 74  61 72 67 61 5f 6d 65 6d  | base2,targa_mem|
00017120  6f 72 79 0d 0c 4f 2e 20  4c 44 52 20 6d 61 73 6b  |ory..O. LDR mask|
00017130  2c 74 61 72 67 61 5f 6d  61 73 6b 3a 4c 44 52 20  |,targa_mask:LDR |
00017140  6d 61 73 6b 32 2c 74 61  72 67 61 5f 6d 61 73 6b  |mask2,targa_mask|
00017150  32 0d 0c 50 31 20 4d 4f  56 20 6f 66 66 73 65 74  |2..P1 MOV offset|
00017160  31 2c 23 30 3a 4d 4f 56  20 6f 66 66 73 65 74 32  |1,#0:MOV offset2|
00017170  2c 23 30 3a 4d 4f 56 20  6c 69 6e 65 73 2c 23 32  |,#0:MOV lines,#2|
00017180  35 36 0d 0c 51 04 0d 0c  52 17 20 2e 64 65 63 6f  |56..Q...R. .deco|
00017190  64 65 5f 74 61 72 67 61  5f 6c 6f 6f 70 0d 0c 53  |de_targa_loop..S|
000171a0  42 20 4c 44 52 20 52 30  2c 5b 62 61 73 65 32 2c  |B LDR R0,[base2,|
000171b0  6f 66 66 73 65 74 32 5d  3a 80 20 64 61 74 61 31  |offset2]:. data1|
000171c0  2c 52 30 2c 6d 61 73 6b  3a 4d 4f 56 20 64 61 74  |,R0,mask:MOV dat|
000171d0  61 32 2c 64 61 74 61 31  2c 4c 53 4c 23 31 36 0d  |a2,data1,LSL#16.|
000171e0  0c 54 4a 20 41 44 44 20  64 61 74 61 32 2c 64 61  |.TJ ADD data2,da|
000171f0  74 61 32 2c 64 61 74 61  31 3a 53 54 52 20 64 61  |ta2,data1:STR da|
00017200  74 61 32 2c 5b 62 61 73  65 31 2c 6f 66 66 73 65  |ta2,[base1,offse|
00017210  74 31 5d 3a 41 44 44 20  62 61 73 65 31 2c 62 61  |t1]:ADD base1,ba|
00017220  73 65 31 2c 23 31 32 38  30 0d 0c 55 4b 20 53 54  |se1,#1280..UK ST|
00017230  52 20 64 61 74 61 32 2c  5b 62 61 73 65 31 2c 6f  |R data2,[base1,o|
00017240  66 66 73 65 74 31 5d 3a  53 55 42 20 62 61 73 65  |ffset1]:SUB base|
00017250  31 2c 62 61 73 65 31 2c  23 31 32 38 30 3a 41 44  |1,base1,#1280:AD|
00017260  44 20 6f 66 66 73 65 74  31 2c 6f 66 66 73 65 74  |D offset1,offset|
00017270  31 2c 23 34 0d 0c 56 04  0d 0c 57 43 20 4c 44 52  |1,#4..V...WC LDR|
00017280  20 52 30 2c 5b 62 61 73  65 32 2c 6f 66 66 73 65  | R0,[base2,offse|
00017290  74 32 5d 3a 80 20 64 61  74 61 31 2c 52 30 2c 6d  |t2]:. data1,R0,m|
000172a0  61 73 6b 32 3a 4d 4f 56  20 64 61 74 61 32 2c 64  |ask2:MOV data2,d|
000172b0  61 74 61 31 2c 4c 53 52  23 31 36 0d 0c 58 4a 20  |ata1,LSR#16..XJ |
000172c0  41 44 44 20 64 61 74 61  32 2c 64 61 74 61 32 2c  |ADD data2,data2,|
000172d0  64 61 74 61 31 3a 53 54  52 20 64 61 74 61 32 2c  |data1:STR data2,|
000172e0  5b 62 61 73 65 31 2c 6f  66 66 73 65 74 31 5d 3a  |[base1,offset1]:|
000172f0  41 44 44 20 62 61 73 65  31 2c 62 61 73 65 31 2c  |ADD base1,base1,|
00017300  23 31 32 38 30 0d 0c 59  4b 20 53 54 52 20 64 61  |#1280..YK STR da|
00017310  74 61 32 2c 5b 62 61 73  65 31 2c 6f 66 66 73 65  |ta2,[base1,offse|
00017320  74 31 5d 3a 53 55 42 20  62 61 73 65 31 2c 62 61  |t1]:SUB base1,ba|
00017330  73 65 31 2c 23 31 32 38  30 3a 41 44 44 20 6f 66  |se1,#1280:ADD of|
00017340  66 73 65 74 31 2c 6f 66  66 73 65 74 31 2c 23 34  |fset1,offset1,#4|
00017350  0d 0c 5a 42 20 41 44 44  20 6f 66 66 73 65 74 32  |..ZB ADD offset2|
00017360  2c 6f 66 66 73 65 74 32  2c 23 34 3a 43 4d 50 20  |,offset2,#4:CMP |
00017370  6f 66 66 73 65 74 32 2c  23 36 34 30 3a 42 4e 45  |offset2,#640:BNE|
00017380  20 64 65 63 6f 64 65 5f  74 61 72 67 61 5f 6c 6f  | decode_targa_lo|
00017390  6f 70 0d 0c 5b 04 0d 0c  5c 2f 20 41 44 44 20 62  |op..[...\/ ADD b|
000173a0  61 73 65 32 2c 62 61 73  65 32 2c 23 36 34 30 3a  |ase2,base2,#640:|
000173b0  41 44 44 20 62 61 73 65  31 2c 62 61 73 65 31 2c  |ADD base1,base1,|
000173c0  23 32 35 36 30 0d 0c 5d  4c 20 4d 4f 56 20 6f 66  |#2560..]L MOV of|
000173d0  66 73 65 74 31 2c 23 30  3a 4d 4f 56 20 6f 66 66  |fset1,#0:MOV off|
000173e0  73 65 74 32 2c 23 30 3a  53 55 42 53 20 6c 69 6e  |set2,#0:SUBS lin|
000173f0  65 73 2c 6c 69 6e 65 73  2c 23 31 3a 42 4e 45 20  |es,lines,#1:BNE |
00017400  64 65 63 6f 64 65 5f 74  61 72 67 61 5f 6c 6f 6f  |decode_targa_loo|
00017410  70 0d 0c 5e 0f 20 4d 4f  56 20 50 43 2c 52 31 34  |p..^. MOV PC,R14|
00017420  0d 0c 5f 04 0d 0c 60 32  20 3b 20 2d 2d 2d 2d 2d  |.._...`2 ; -----|
00017430  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00017450  2d 2d 2d 2d 2d 2d 0d 0c  61 04 0d 0c 62 16 20 2e  |------..a...b. .|
00017460  64 65 63 6f 64 65 5f 70  73 63 61 6e 5f 39 36 61  |decode_pscan_96a|
00017470  0d 0c 63 04 0d 0c 64 32  20 4c 44 52 20 62 61 73  |..c...d2 LDR bas|
00017480  65 31 2c 74 61 72 67 61  5f 73 63 72 65 65 6e 3a  |e1,targa_screen:|
00017490  4c 44 52 20 62 61 73 65  32 2c 74 61 72 67 61 5f  |LDR base2,targa_|
000174a0  6d 65 6d 6f 72 79 0d 0c  65 2e 20 4c 44 52 20 6d  |memory..e. LDR m|
000174b0  61 73 6b 2c 74 61 72 67  61 5f 6d 61 73 6b 3a 4c  |ask,targa_mask:L|
000174c0  44 52 20 6d 61 73 6b 32  2c 74 61 72 67 61 5f 6d  |DR mask2,targa_m|
000174d0  61 73 6b 32 0d 0c 66 31  20 4d 4f 56 20 6f 66 66  |ask2..f1 MOV off|
000174e0  73 65 74 31 2c 23 30 3a  4d 4f 56 20 6f 66 66 73  |set1,#0:MOV offs|
000174f0  65 74 32 2c 23 30 3a 4d  4f 56 20 6c 69 6e 65 73  |et2,#0:MOV lines|
00017500  2c 23 32 35 36 0d 0c 67  04 0d 0c 68 17 20 2e 64  |,#256..g...h. .d|
00017510  65 63 6f 64 65 5f 70 73  63 61 6e 5f 6c 6f 6f 70  |ecode_pscan_loop|
00017520  0d 0c 69 2b 20 4c 44 52  20 52 30 2c 5b 62 61 73  |..i+ LDR R0,[bas|
00017530  65 32 2c 6f 66 66 73 65  74 32 5d 3a 80 20 64 61  |e2,offset2]:. da|
00017540  74 61 31 2c 52 30 2c 6d  61 73 6b 0d 0c 6a 30 20  |ta1,R0,mask..j0 |
00017550  54 53 54 20 64 61 74 61  31 2c 23 25 31 30 30 30  |TST data1,#%1000|
00017560  30 30 30 30 30 30 30 30  30 30 30 30 3a 42 45 51  |000000000000:BEQ|
00017570  20 6e 6f 5f 64 69 74 68  65 72 31 0d 0c 6b 40 20  | no_dither1..k@ |
00017580  4d 4f 56 20 52 30 2c 64  61 74 61 31 2c 4c 53 52  |MOV R0,data1,LSR|
00017590  23 35 3a 80 20 52 30 2c  52 30 2c 23 33 31 3a 53  |#5:. R0,R0,#31:S|
000175a0  55 42 20 52 30 2c 52 30  2c 23 31 3a 4d 4f 56 20  |UB R0,R0,#1:MOV |
000175b0  52 30 2c 52 30 2c 4c 53  4c 23 35 0d 0c 6c 44 20  |R0,R0,LSL#5..lD |
000175c0  4c 44 52 20 52 31 2c 67  72 65 65 6e 5f 6d 61 73  |LDR R1,green_mas|
000175d0  6b 3a 42 49 43 20 52 31  2c 64 61 74 61 31 2c 52  |k:BIC R1,data1,R|
000175e0  31 3a 41 44 44 20 52 30  2c 52 30 2c 52 31 3a 4d  |1:ADD R0,R0,R1:M|
000175f0  4f 56 20 52 30 2c 52 30  2c 4c 53 4c 23 31 36 0d  |OV R0,R0,LSL#16.|
00017600  0c 6d 23 20 41 44 44 20  52 30 2c 64 61 74 61 31  |.m# ADD R0,data1|
00017610  2c 52 30 3a 42 20 73 74  6f 72 65 5f 77 6f 72 64  |,R0:B store_word|
00017620  73 31 0d 0c 6e 10 20 2e  6e 6f 5f 64 69 74 68 65  |s1..n. .no_dithe|
00017630  72 31 0d 0c 6f 2e 20 4d  4f 56 20 64 61 74 61 32  |r1..o. MOV data2|
00017640  2c 64 61 74 61 31 2c 4c  53 4c 23 31 36 3a 41 44  |,data1,LSL#16:AD|
00017650  44 20 52 30 2c 64 61 74  61 31 2c 64 61 74 61 32  |D R0,data1,data2|
00017660  0d 0c 70 12 20 2e 73 74  6f 72 65 5f 77 6f 72 64  |..p. .store_word|
00017670  73 31 0d 0c 71 2c 20 53  54 52 20 52 30 2c 5b 62  |s1..q, STR R0,[b|
00017680  61 73 65 31 2c 6f 66 66  73 65 74 31 5d 3a 4d 4f  |ase1,offset1]:MO|
00017690  56 20 52 30 2c 52 30 2c  52 4f 52 23 31 36 0d 0c  |V R0,R0,ROR#16..|
000176a0  72 31 20 41 44 44 20 62  61 73 65 31 2c 62 61 73  |r1 ADD base1,bas|
000176b0  65 31 2c 23 31 32 38 30  3a 53 54 52 20 52 30 2c  |e1,#1280:STR R0,|
000176c0  5b 62 61 73 65 31 2c 6f  66 66 73 65 74 31 5d 0d  |[base1,offset1].|
000176d0  0c 73 31 20 53 55 42 20  62 61 73 65 31 2c 62 61  |.s1 SUB base1,ba|
000176e0  73 65 31 2c 23 31 32 38  30 3a 41 44 44 20 6f 66  |se1,#1280:ADD of|
000176f0  66 73 65 74 31 2c 6f 66  66 73 65 74 31 2c 23 34  |fset1,offset1,#4|
00017700  0d 0c 74 04 0d 0c 75 43  20 4c 44 52 20 52 30 2c  |..t...uC LDR R0,|
00017710  5b 62 61 73 65 32 2c 6f  66 66 73 65 74 32 5d 3a  |[base2,offset2]:|
00017720  80 20 64 61 74 61 31 2c  52 30 2c 6d 61 73 6b 32  |. data1,R0,mask2|
00017730  3a 4d 4f 56 20 64 61 74  61 31 2c 64 61 74 61 31  |:MOV data1,data1|
00017740  2c 4c 53 52 23 31 36 0d  0c 76 30 20 54 53 54 20  |,LSR#16..v0 TST |
00017750  64 61 74 61 31 2c 23 25  31 30 30 30 30 30 30 30  |data1,#%10000000|
00017760  30 30 30 30 30 30 30 30  3a 42 45 51 20 6e 6f 5f  |00000000:BEQ no_|
00017770  64 69 74 68 65 72 32 0d  0c 77 40 20 4d 4f 56 20  |dither2..w@ MOV |
00017780  52 30 2c 64 61 74 61 31  2c 4c 53 52 23 35 3a 80  |R0,data1,LSR#5:.|
00017790  20 52 30 2c 52 30 2c 23  33 31 3a 53 55 42 20 52  | R0,R0,#31:SUB R|
000177a0  30 2c 52 30 2c 23 31 3a  4d 4f 56 20 52 30 2c 52  |0,R0,#1:MOV R0,R|
000177b0  30 2c 4c 53 4c 23 35 0d  0c 78 44 20 4c 44 52 20  |0,LSL#5..xD LDR |
000177c0  52 31 2c 67 72 65 65 6e  5f 6d 61 73 6b 3a 42 49  |R1,green_mask:BI|
000177d0  43 20 52 31 2c 64 61 74  61 31 2c 52 31 3a 41 44  |C R1,data1,R1:AD|
000177e0  44 20 52 30 2c 52 30 2c  52 31 3a 4d 4f 56 20 52  |D R0,R0,R1:MOV R|
000177f0  30 2c 52 30 2c 4c 53 4c  23 31 36 0d 0c 79 23 20  |0,R0,LSL#16..y# |
00017800  41 44 44 20 52 30 2c 64  61 74 61 31 2c 52 30 3a  |ADD R0,data1,R0:|
00017810  42 20 73 74 6f 72 65 5f  77 6f 72 64 73 32 0d 0c  |B store_words2..|
00017820  7a 10 20 2e 6e 6f 5f 64  69 74 68 65 72 32 0d 0c  |z. .no_dither2..|
00017830  7b 2e 20 4d 4f 56 20 64  61 74 61 32 2c 64 61 74  |{. MOV data2,dat|
00017840  61 31 2c 4c 53 4c 23 31  36 3a 41 44 44 20 52 30  |a1,LSL#16:ADD R0|
00017850  2c 64 61 74 61 31 2c 64  61 74 61 32 0d 0c 7c 12  |,data1,data2..|.|
00017860  20 2e 73 74 6f 72 65 5f  77 6f 72 64 73 32 0d 0c  | .store_words2..|
00017870  7d 2c 20 53 54 52 20 52  30 2c 5b 62 61 73 65 31  |}, STR R0,[base1|
00017880  2c 6f 66 66 73 65 74 31  5d 3a 4d 4f 56 20 52 30  |,offset1]:MOV R0|
00017890  2c 52 30 2c 52 4f 52 23  31 36 0d 0c 7e 31 20 41  |,R0,ROR#16..~1 A|
000178a0  44 44 20 62 61 73 65 31  2c 62 61 73 65 31 2c 23  |DD base1,base1,#|
000178b0  31 32 38 30 3a 53 54 52  20 52 30 2c 5b 62 61 73  |1280:STR R0,[bas|
000178c0  65 31 2c 6f 66 66 73 65  74 31 5d 0d 0c 7f 31 20  |e1,offset1]...1 |
000178d0  53 55 42 20 62 61 73 65  31 2c 62 61 73 65 31 2c  |SUB base1,base1,|
000178e0  23 31 32 38 30 3a 41 44  44 20 6f 66 66 73 65 74  |#1280:ADD offset|
000178f0  31 2c 6f 66 66 73 65 74  31 2c 23 34 0d 0c 80 42  |1,offset1,#4...B|
00017900  20 41 44 44 20 6f 66 66  73 65 74 32 2c 6f 66 66  | ADD offset2,off|
00017910  73 65 74 32 2c 23 34 3a  43 4d 50 20 6f 66 66 73  |set2,#4:CMP offs|
00017920  65 74 32 2c 23 36 34 30  3a 42 4e 45 20 64 65 63  |et2,#640:BNE dec|
00017930  6f 64 65 5f 70 73 63 61  6e 5f 6c 6f 6f 70 0d 0c  |ode_pscan_loop..|
00017940  81 04 0d 0c 82 2f 20 41  44 44 20 62 61 73 65 32  |...../ ADD base2|
00017950  2c 62 61 73 65 32 2c 23  36 34 30 3a 41 44 44 20  |,base2,#640:ADD |
00017960  62 61 73 65 31 2c 62 61  73 65 31 2c 23 32 35 36  |base1,base1,#256|
00017970  30 0d 0c 83 4c 20 4d 4f  56 20 6f 66 66 73 65 74  |0...L MOV offset|
00017980  31 2c 23 30 3a 4d 4f 56  20 6f 66 66 73 65 74 32  |1,#0:MOV offset2|
00017990  2c 23 30 3a 53 55 42 53  20 6c 69 6e 65 73 2c 6c  |,#0:SUBS lines,l|
000179a0  69 6e 65 73 2c 23 31 3a  42 4e 45 20 64 65 63 6f  |ines,#1:BNE deco|
000179b0  64 65 5f 70 73 63 61 6e  5f 6c 6f 6f 70 0d 0c 84  |de_pscan_loop...|
000179c0  0f 20 4d 4f 56 20 50 43  2c 52 31 34 0d 0c 85 08  |. MOV PC,R14....|
000179d0  20 5d 3a ed 0d 0c 86 06  20 e1 0d 0c 87 04 0d 0c  | ]:..... .......|
000179e0  88 11 20 dd 20 f2 74 65  73 74 5f 63 61 72 64 0d  |.. . .test_card.|
000179f0  0c 89 33 20 e6 30 2c 30  2c 30 3a c8 93 20 c8 90  |..3 .0,0,0:.. ..|
00017a00  20 30 2c 30 2c 31 32 37  39 2c 31 30 32 34 3a e3  | 0,0,1279,1024:.|
00017a10  20 58 25 3d 34 30 20 b8  20 31 32 30 30 20 88 31  | X%=40 . 1200 .1|
00017a20  36 30 0d 0c 8a 26 20 e6  20 32 35 35 2c 32 35 35  |60...& . 255,255|
00017a30  2c 32 35 35 3a c8 93 20  c8 90 20 58 25 2c 30 2c  |,255:.. .. X%,0,|
00017a40  37 38 2c 39 36 30 3a ed  0d 0c 8b 17 20 e3 20 59  |78,960:..... . Y|
00017a50  25 3d 33 32 20 b8 20 39  30 30 20 88 31 33 38 0d  |%=32 . 900 .138.|
00017a60  0c 8c 19 20 c8 93 20 c8  90 20 30 2c 59 25 2c 31  |... .. .. 0,Y%,1|
00017a70  32 38 30 2c 36 34 3a ed  0d 0c 8d 27 20 e6 20 31  |280,64:....' . 1|
00017a80  32 38 2c 31 32 38 2c 31  32 38 3a c8 93 20 c8 90  |28,128,128:.. ..|
00017a90  20 34 38 2c 34 30 2c 31  31 38 32 2c 38 37 36 0d  | 48,40,1182,876.|
00017aa0  0c 8e 26 20 e6 20 32 35  35 2c 32 35 35 2c 32 35  |..& . 255,255,25|
00017ab0  35 3a e3 20 58 25 3d 31  31 36 20 b8 20 31 31 36  |5:. X%=116 . 116|
00017ac0  32 20 88 38 30 0d 0c 8f  18 20 c8 93 20 c8 90 20  |2 .80.... .. .. |
00017ad0  58 25 2c 34 30 2c 36 2c  38 38 30 3a ed 0d 0c 90  |X%,40,6,880:....|
00017ae0  2b 20 e3 20 59 25 3d 39  34 20 b8 20 38 36 30 20  |+ . Y%=94 . 860 |
00017af0  88 36 39 3a c8 93 20 c8  90 20 34 30 2c 59 25 2c  |.69:.. .. 40,Y%,|
00017b00  31 31 39 38 2c 36 3a ed  0d 0c 91 09 20 f7 20 2b  |1198,6:..... . +|
00017b10  30 0d 0c 92 24 20 e3 20  58 25 3d 31 32 34 20 b8  |0...$ . X%=124 .|
00017b20  20 31 30 32 32 20 88 31  32 38 3a f3 20 72 25 2c  | 1022 .128:. r%,|
00017b30  67 25 2c 62 25 0d 0c 93  26 20 e6 20 72 25 2c 67  |g%,b%...& . r%,g|
00017b40  25 2c 62 25 3a c8 93 20  c8 90 20 58 25 2c 34 34  |%,b%:.. .. X%,44|
00017b50  36 2c 31 33 34 2c 31 39  38 3a ed 0d 0c 94 24 20  |6,134,198:....$ |
00017b60  e6 20 32 35 35 2c 32 35  35 2c 32 35 35 3a 86 20  |. 255,255,255:. |
00017b70  31 32 34 2c 34 34 38 2c  31 32 34 2c 36 34 34 0d  |124,448,124,644.|
00017b80  0c 95 28 20 67 25 3d 36  3a e3 20 58 25 3d 31 32  |..( g%=6:. X%=12|
00017b90  36 20 b8 20 31 31 34 30  20 88 33 32 3a e6 20 67  |6 . 1140 .32:. g|
00017ba0  25 2c 67 25 2c 67 25 0d  0c 96 34 20 c8 93 20 c8  |%,g%,g%...4 .. .|
00017bb0  90 20 58 25 2c 36 35 34  2c 33 36 2c 31 32 38 3a  |. X%,654,36,128:|
00017bc0  67 25 2b 3d 38 3a ed 3a  86 20 31 31 35 32 2c 36  |g%+=8:.:. 1152,6|
00017bd0  35 36 2c 31 31 35 32 2c  37 39 30 0d 0c 97 1e 20  |56,1152,790.... |
00017be0  e6 20 30 2c 30 2c 30 3a  86 20 31 32 34 2c 36 35  |. 0,0,0:. 124,65|
00017bf0  36 2c 31 32 34 2c 37 38  32 0d 0c 98 16 20 72 25  |6,124,782.... r%|
00017c00  3d 38 30 3a 67 25 3d 30  3a 62 25 3d 31 35 36 0d  |=80:g%=0:b%=156.|
00017c10  0c 99 31 20 e3 20 59 25  3d 37 39 32 20 b8 20 38  |..1 . Y%=792 . 8|
00017c20  35 34 20 88 32 3a e6 20  72 25 2c 67 25 2c 62 25  |54 .2:. r%,g%,b%|
00017c30  3a 86 20 33 36 34 2c 59  25 2c 39 31 34 2c 59 25  |:. 364,Y%,914,Y%|
00017c40  0d 0c 9a 18 20 72 25 2b  3d 33 3a 67 25 2b 3d 33  |.... r%+=3:g%+=3|
00017c50  3a 62 25 2b 3d 33 3a ed  0d 0c 9b 31 20 e3 20 59  |:b%+=3:....1 . Y|
00017c60  25 3d 38 35 36 20 b8 20  39 31 36 20 88 32 3a e6  |%=856 . 916 .2:.|
00017c70  20 72 25 2c 67 25 2c 62  25 3a 86 20 33 36 34 2c  | r%,g%,b%:. 364,|
00017c80  59 25 2c 39 31 34 2c 59  25 0d 0c 9c 18 20 72 25  |Y%,914,Y%.... r%|
00017c90  2d 3d 33 3a 67 25 2d 3d  33 3a 62 25 2d 3d 33 3a  |-=3:g%-=3:b%-=3:|
00017ca0  ed 0d 0c 9d 42 20 57 25  3d a4 74 65 78 74 5f 77  |....B W%=.text_w|
00017cb0  69 64 74 68 28 22 48 6f  6d 65 72 74 6f 6e 2e 42  |idth("Homerton.B|
00017cc0  6f 6c 64 22 2c 63 61 6c  6c 24 2c 35 34 2c 34 36  |old",call$,54,46|
00017cd0  29 3a 58 25 3d 33 36 34  2b 28 35 34 38 2d 57 25  |):X%=364+(548-W%|
00017ce0  29 2f 32 0d 0c 9e 34 20  f2 77 72 69 74 65 28 22  |)/2...4 .write("|
00017cf0  48 6f 6d 65 72 74 6f 6e  2e 42 6f 6c 64 22 2c 63  |Homerton.Bold",c|
00017d00  61 6c 6c 24 2c 58 25 2b  31 30 2c 38 30 38 2c 35  |all$,X%+10,808,5|
00017d10  34 2c 34 36 2c 30 29 0d  0c 9f 31 20 f2 77 72 69  |4,46,0)...1 .wri|
00017d20  74 65 28 22 48 6f 6d 65  72 74 6f 6e 2e 42 6f 6c  |te("Homerton.Bol|
00017d30  64 22 2c 63 61 6c 6c 24  2c 58 25 2c 38 31 38 2c  |d",call$,X%,818,|
00017d40  35 34 2c 34 36 2c 31 29  0d 0c a0 31 20 e6 20 30  |54,46,1)...1 . 0|
00017d50  2c 30 2c 30 3a c8 93 20  c8 90 20 31 32 34 2c 32  |,0,0:.. .. 124,2|
00017d60  34 30 2c 31 30 33 30 2c  31 32 38 3a e6 20 32 35  |40,1030,128:. 25|
00017d70  35 2c 32 35 35 2c 32 35  35 0d 0c a1 2d 20 e3 20  |5,255,255...- . |
00017d80  58 25 3d 31 35 32 20 b8  20 35 30 30 20 88 36 34  |X%=152 . 500 .64|
00017d90  3a c8 93 20 c8 90 20 58  25 2c 32 34 30 2c 33 30  |:.. .. X%,240,30|
00017da0  2c 31 32 38 3a ed 0d 0c  a2 2d 20 e3 20 58 25 3d  |,128:....- . X%=|
00017db0  35 32 34 20 b8 20 38 34  34 20 88 33 32 3a c8 93  |524 . 844 .32:..|
00017dc0  20 c8 90 20 58 25 2c 32  34 30 2c 31 34 2c 31 32  | .. X%,240,14,12|
00017dd0  38 3a ed 0d 0c a3 2d 20  e3 20 58 25 3d 38 36 38  |8:....- . X%=868|
00017de0  20 b8 20 31 31 35 30 20  88 31 36 3a c8 93 20 c8  | . 1150 .16:.. .|
00017df0  90 20 58 25 2c 32 34 30  2c 36 2c 31 32 38 3a ed  |. X%,240,6,128:.|
00017e00  0d 0c a4 2a 20 67 25 3d  32 35 34 3a e3 20 58 25  |...* g%=254:. X%|
00017e10  3d 31 32 34 20 b8 20 31  31 34 30 20 88 33 32 3a  |=124 . 1140 .32:|
00017e20  e6 20 67 25 2c 67 25 2c  67 25 0d 0c a5 20 20 c8  |. g%,g%,g%...  .|
00017e30  93 20 c8 90 20 58 25 2c  31 30 32 2c 33 38 2c 31  |. .. X%,102,38,1|
00017e40  32 38 3a 67 25 2d 3d 38  3a ed 0d 0c a6 21 20 e6  |28:g%-=8:....! .|
00017e50  20 30 2c 30 2c 30 3a c8  93 20 c8 90 20 31 31 35  | 0,0,0:.. .. 115|
00017e60  30 2c 31 30 34 2c 32 2c  31 32 36 0d 0c a7 21 20  |0,104,2,126...! |
00017e70  f2 75 70 6c 6f 61 64 5f  6d 65 6d 6f 72 79 3a f2  |.upload_memory:.|
00017e80  74 6f 70 73 63 61 6c 65  32 28 30 29 0d 0c a8 38  |topscale2(0)...8|
00017e90  20 dc 20 32 35 35 2c 32  35 35 2c 32 35 35 2c 32  | . 255,255,255,2|
00017ea0  35 35 2c 32 35 35 2c 30  2c 30 2c 32 35 35 2c 32  |55,255,0,0,255,2|
00017eb0  35 35 2c 30 2c 32 35 35  2c 30 2c 32 35 35 2c 30  |55,0,255,0,255,0|
00017ec0  2c 32 35 35 0d 0c a9 1c  20 dc 20 32 35 35 2c 30  |,255.... . 255,0|
00017ed0  2c 30 2c 30 2c 30 2c 32  35 35 2c 30 2c 30 2c 30  |,0,0,0,255,0,0,0|
00017ee0  0d 0c aa 06 20 e1 0d 0c  ab 04 0d 0c ac 17 20 dd  |.... ......... .|
00017ef0  20 f2 66 61 78 5f 68 65  61 64 65 72 28 62 77 25  | .fax_header(bw%|
00017f00  29 0d 0c ad 28 20 f2 64  69 73 70 6c 61 79 5f 6d  |)...( .display_m|
00017f10  65 6d 6f 72 79 3a ef 32  33 2c 31 37 2c 37 2c 36  |emory:.23,17,7,6|
00017f20  2c 31 36 3b 31 36 3b 30  3b 0d 0c ae 26 20 e6 20  |,16;16;0;...& . |
00017f30  32 35 35 2c 32 35 35 2c  32 35 35 3a c8 93 20 c8  |255,255,255:.. .|
00017f40  90 20 30 2c 39 36 30 2c  31 32 38 30 2c 36 34 0d  |. 0,960,1280,64.|
00017f50  0c af 0e 20 e7 20 ac 20  62 77 25 20 8c 0d 0c b0  |... . . bw% ....|
00017f60  21 20 e6 20 32 35 35 2c  30 2c 30 3a c8 93 20 c8  |! . 255,0,0:.. .|
00017f70  90 20 36 34 2c 39 36 38  2c 36 34 2c 34 38 0d 0c  |. 64,968,64,48..|
00017f80  b1 22 20 e6 20 30 2c 32  35 35 2c 30 3a c8 93 20  |." . 0,255,0:.. |
00017f90  c8 90 20 31 32 38 2c 39  36 38 2c 36 34 2c 34 38  |.. 128,968,64,48|
00017fa0  0d 0c b2 22 20 e6 20 30  2c 30 2c 32 35 35 3a c8  |..." . 0,0,255:.|
00017fb0  93 20 c8 90 20 31 39 32  2c 39 36 38 2c 36 34 2c  |. .. 192,968,64,|
00017fc0  34 38 0d 0c b3 1e 20 e6  20 30 2c 30 2c 30 3a ef  |48.... . 0,0,0:.|
00017fd0  35 3a ec 20 38 30 2c 31  30 30 34 3a f1 22 52 22  |5:. 80,1004:."R"|
00017fe0  0d 0c b4 14 20 ec 20 31  34 34 2c 31 30 30 34 3a  |.... . 144,1004:|
00017ff0  f1 22 47 22 0d 0c b5 14  20 ec 20 32 30 38 2c 31  |."G".... . 208,1|
00018000  30 30 34 3a f1 22 42 22  0d 0c b6 40 20 f2 77 72  |004:."B"...@ .wr|
00018010  69 74 65 28 22 48 6f 6d  65 72 74 6f 6e 2e 42 6f  |ite("Homerton.Bo|
00018020  6c 64 22 2c 63 61 6c 6c  24 2b 22 20 63 6f 6c 6f  |ld",call$+" colo|
00018030  75 72 20 46 41 58 22 2c  35 37 30 2c 39 37 36 2c  |ur FAX",570,976,|
00018040  31 36 2c 32 30 2c 32 29  0d 0c b7 06 20 cc 0d 0c  |16,20,2).... ...|
00018050  b8 3e 20 f2 77 72 69 74  65 28 22 48 6f 6d 65 72  |.> .write("Homer|
00018060  74 6f 6e 2e 42 6f 6c 64  22 2c 63 61 6c 6c 24 2b  |ton.Bold",call$+|
00018070  22 20 6d 6f 6e 6f 20 46  41 58 22 2c 35 37 30 2c  |" mono FAX",570,|
00018080  39 37 36 2c 31 36 2c 32  30 2c 32 29 0d 0c b9 1f  |976,16,20,2)....|
00018090  20 e6 20 30 2c 30 2c 30  3a e3 20 58 25 3d 36 34  | . 0,0,0:. X%=64|
000180a0  20 b8 20 32 35 32 20 88  20 31 36 0d 0c ba 18 20  | . 252 . 16.... |
000180b0  c8 93 20 c8 90 20 58 25  2c 39 36 38 2c 36 2c 34  |.. .. X%,968,6,4|
000180c0  38 3a ed 0d 0c bb 15 20  c8 93 20 36 34 2c 39 36  |8:..... .. 64,96|
000180d0  38 2c 31 38 32 2c 34 38  0d 0c bc 06 20 cd 0d 0c  |8,182,48.... ...|
000180e0  bd 43 20 f2 77 72 69 74  65 28 22 48 6f 6d 65 72  |.C .write("Homer|
000180f0  74 6f 6e 2e 42 6f 6c 64  22 2c c1 91 24 2c 35 2c  |ton.Bold",..$,5,|
00018100  36 29 2b 22 27 22 2b c1  91 24 2c 31 34 2c 32 29  |6)+"'"+..$,14,2)|
00018110  2c 39 37 30 2c 39 37 36  2c 31 36 2c 32 30 2c 32  |,970,976,16,20,2|
00018120  29 0d 0c be 3c 20 c8 99  20 73 70 72 73 77 69 25  |)...< .. sprswi%|
00018130  2c 32 35 36 2b 35 32 2c  73 70 62 25 2c 22 61 63  |,256+52,spb%,"ac|
00018140  6f 72 6e 32 22 2c 31 31  39 36 2c 39 36 30 2c 38  |orn2",1196,960,8|
00018150  2c 30 2c 74 72 61 6e 73  6c 61 74 65 25 0d 0c bf  |,0,translate%...|
00018160  11 20 ef 34 3a 87 3a c8  96 3a 67 25 3d 30 0d 0c  |. .4:.:..:g%=0..|
00018170  c0 16 20 e3 20 58 25 3d  32 38 30 20 b8 20 35 32  |.. . X%=280 . 52|
00018180  38 20 88 38 0d 0c c1 21  20 e6 20 67 25 2c 67 25  |8 .8...! . g%,g%|
00018190  2c 67 25 3a c8 93 20 c8  90 20 58 25 2c 39 36 38  |,g%:.. .. X%,968|
000181a0  2c 38 2c 34 38 0d 0c c2  0c 20 67 25 2b 3d 38 3a  |,8,48.... g%+=8:|
000181b0  ed 0d 0c c3 30 20 e6 20  30 2c 30 2c 30 3a c8 93  |....0 . 0,0,0:..|
000181c0  20 32 37 38 2c 39 36 36  2c 32 35 38 2c 35 32 3a  | 278,966,258,52:|
000181d0  c8 93 20 32 37 36 2c 39  36 34 2c 32 36 32 2c 35  |.. 276,964,262,5|
000181e0  36 0d 0c c4 16 20 ef 32  33 2c 31 37 2c 37 2c 36  |6.... .23,17,7,6|
000181f0  2c 38 3b 38 3b 30 3b 0d  0c c5 0c 20 f2 75 70 6d  |,8;8;0;.... .upm|
00018200  69 6e 69 0d 0c c6 06 20  e1 0d 0c c7 04 0d 0c c8  |ini.... ........|
00018210  1c 20 dd 20 f2 67 72 61  62 5f 72 65 63 74 61 6e  |. . .grab_rectan|
00018220  67 6c 65 28 61 6c 6c 25  29 0d 0c c9 24 20 f2 64  |gle(all%)...$ .d|
00018230  69 73 70 6c 61 79 5f 6d  65 6d 6f 72 79 3a f2 77  |isplay_memory:.w|
00018240  61 69 74 5f 6e 6f 5f 62  75 74 74 6f 6e 0d 0c ca  |ait_no_button...|
00018250  0d 20 e7 20 61 6c 6c 25  20 8c 0d 0c cb 3a 20 58  |. . all% ....: X|
00018260  3d 31 32 38 30 3a 59 3d  30 3a 58 31 3d 30 3a 59  |=1280:Y=0:X1=0:Y|
00018270  31 3d 31 30 32 34 3a 70  6c 6f 74 5f 62 6f 72 64  |1=1024:plot_bord|
00018280  65 72 25 3d 30 3a 70 6c  6f 74 5f 73 68 61 64 6f  |er%=0:plot_shado|
00018290  77 25 3d 30 0d 0c cc 06  20 cc 0d 0c cd 1b 20 f2  |w%=0.... ..... .|
000182a0  67 72 61 62 5f 72 65 63  74 61 6e 67 6c 65 5f 63  |grab_rectangle_c|
000182b0  75 72 73 6f 72 0d 0c ce  06 20 cd 0d 0c cf 16 20  |ursor.... ..... |
000182c0  47 57 25 3d 58 2d 58 31  3a 47 48 25 3d 59 31 2d  |GW%=X-X1:GH%=Y1-|
000182d0  59 0d 0c d0 1d 20 41 25  3d 28 28 31 30 32 34 2d  |Y.... A%=((1024-|
000182e0  59 31 29 81 32 29 2a 31  32 38 30 2b 58 31 0d 0c  |Y1).2)*1280+X1..|
000182f0  d1 10 20 41 25 3d 41 25  2d 41 25 20 83 34 0d 0c  |.. A%=A%-A% .4..|
00018300  d2 19 20 41 25 3d 41 25  2b 28 6d 65 6d 62 6c 6f  |.. A%=A%+(memblo|
00018310  63 6b 25 2b 32 30 29 0d  0c d3 1a 20 47 4c 25 3d  |ck%+20).... GL%=|
00018320  28 59 31 2d 59 29 81 32  3a 47 42 25 3d 58 2d 58  |(Y1-Y).2:GB%=X-X|
00018330  31 0d 0c d4 37 20 21 73  6f 75 72 63 65 5f 73 74  |1...7 !source_st|
00018340  61 72 74 3d 41 25 3a 21  6e 75 6d 5f 6c 69 6e 65  |art=A%:!num_line|
00018350  73 3d 47 4c 25 2b 34 3a  21 6e 75 6d 5f 62 79 74  |s=GL%+4:!num_byt|
00018360  65 73 3d 47 42 25 2b 38  0d 0c d5 0d 20 f2 64 69  |es=GB%+8.... .di|
00018370  73 6d 69 6e 69 0d 0c d6  06 20 e1 0d 0c d7 04 0d  |smini.... ......|
00018380  0c d8 1d 20 dd 20 f2 67  72 61 62 5f 72 65 63 74  |... . .grab_rect|
00018390  61 6e 67 6c 65 5f 63 75  72 73 6f 72 0d 0c d9 20  |angle_cursor... |
000183a0  20 f5 3a c8 97 20 58 2c  59 2c 42 3a fd 20 42 3c  | .:.. X,Y,B:. B<|
000183b0  3e 30 3a 58 31 3d 58 3a  59 31 3d 59 0d 0c da 0c  |>0:X1=X:Y1=Y....|
000183c0  20 e7 20 42 3d 34 20 8c  0d 0c db 14 20 f2 77 61  | . B=4 ..... .wa|
000183d0  69 74 5f 6e 6f 5f 62 75  74 74 6f 6e 0d 0c dc 19  |it_no_button....|
000183e0  20 e6 33 2c 36 33 20 c8  9c 30 3a f5 3a c8 97 20  | .3,63 ..0:.:.. |
000183f0  58 2c 59 2c 42 0d 0c dd  17 20 c8 93 20 58 31 2c  |X,Y,B.... .. X1,|
00018400  59 31 2c 58 2d 58 31 2c  59 2d 59 31 0d 0c de 23  |Y1,X-X1,Y-Y1...#|
00018410  20 f5 3a c8 97 20 78 2c  79 2c 62 3a fd 20 78 3c  | .:.. x,y,b:. x<|
00018420  3e 58 20 84 20 79 3c 3e  59 20 84 20 62 3d 34 0d  |>X . y<>Y . b=4.|
00018430  0c df 17 20 c8 93 20 58  31 2c 59 31 2c 58 2d 58  |... .. X1,Y1,X-X|
00018440  31 2c 59 2d 59 31 0d 0c  e0 10 20 fd 20 42 3d 34  |1,Y-Y1.... . B=4|
00018450  20 84 20 62 3d 34 0d 0c  e1 17 20 c8 93 20 58 31  | . b=4.... .. X1|
00018460  2c 59 31 2c 58 2d 58 31  2c 59 2d 59 31 0d 0c e2  |,Y1,X-X1,Y-Y1...|
00018470  15 20 e7 20 58 3c 58 31  20 8c 20 c8 94 20 58 2c  |. . X<X1 . .. X,|
00018480  58 31 0d 0c e3 15 20 e7  20 59 31 3c 59 20 8c 20  |X1.... . Y1<Y . |
00018490  c8 94 20 59 31 2c 59 0d  0c e4 06 20 cd 0d 0c e5  |.. Y1,Y.... ....|
000184a0  06 20 e1 0d 0c e6 04 0d  0c e7 19 20 dd 20 f2 67  |. ......... . .g|
000184b0  72 61 62 5f 71 75 61 72  74 65 72 5f 61 72 65 61  |rab_quarter_area|
000184c0  0d 0c e8 1e 20 58 31 3d  33 32 30 3a 59 31 3d 37  |.... X1=320:Y1=7|
000184d0  36 36 3a 58 3d 39 36 30  3a 59 3d 32 38 38 0d 0c  |66:X=960:Y=288..|
000184e0  e9 2f 20 47 57 25 3d 58  2d 58 31 3a 47 48 25 3d  |./ GW%=X-X1:GH%=|
000184f0  59 31 2d 59 3a 41 25 3d  28 28 31 30 32 34 2d 59  |Y1-Y:A%=((1024-Y|
00018500  31 29 81 32 29 2a 31 32  38 30 2b 58 31 0d 0c ea  |1).2)*1280+X1...|
00018510  25 20 41 25 3d 41 25 2d  41 25 20 83 34 3a 41 25  |% A%=A%-A% .4:A%|
00018520  3d 41 25 2b 28 6d 65 6d  62 6c 6f 63 6b 25 2b 32  |=A%+(memblock%+2|
00018530  30 29 0d 0c eb 1a 20 47  4c 25 3d 28 59 31 2d 59  |0).... GL%=(Y1-Y|
00018540  29 81 32 3a 47 42 25 3d  58 2d 58 31 0d 0c ec 37  |).2:GB%=X-X1...7|
00018550  20 21 73 6f 75 72 63 65  5f 73 74 61 72 74 3d 41  | !source_start=A|
00018560  25 3a 21 6e 75 6d 5f 6c  69 6e 65 73 3d 47 4c 25  |%:!num_lines=GL%|
00018570  2b 34 3a 21 6e 75 6d 5f  62 79 74 65 73 3d 47 42  |+4:!num_bytes=GB|
00018580  25 2b 38 0d 0c ed 22 20  70 6c 6f 74 5f 62 6f 72  |%+8..." plot_bor|
00018590  64 65 72 25 3d 30 3a 70  6c 6f 74 5f 73 68 61 64  |der%=0:plot_shad|
000185a0  6f 77 25 3d 30 0d 0c ee  06 20 e1 0d 0c ef 04 0d  |ow%=0.... ......|
000185b0  0c f0 21 20 dd 20 f2 70  6c 6f 74 5f 67 72 61 62  |..! . .plot_grab|
000185c0  62 65 64 5f 61 72 65 61  28 66 6c 69 70 78 25 29  |bed_area(flipx%)|
000185d0  0d 0c f1 11 20 e7 20 66  6c 69 70 78 25 3d 31 20  |.... . flipx%=1 |
000185e0  8c 0d 0c f2 43 20 20 21  6e 75 6d 5f 6c 69 6e 65  |....C  !num_line|
000185f0  73 3d 35 31 32 3a 21 6e  75 6d 5f 62 79 74 65 73  |s=512:!num_bytes|
00018600  3d 31 32 38 30 3a 21 64  65 73 74 5f 73 74 61 72  |=1280:!dest_star|
00018610  74 3d 73 63 72 65 65 6e  25 3a d6 20 67 65 74 5f  |t=screen%:. get_|
00018620  61 72 65 61 0d 0c f3 07  20 20 cc 0d 0c f4 17 20  |area....  ..... |
00018630  20 e7 20 47 57 25 3d 30  20 84 20 47 48 25 3d 30  | . GW%=0 . GH%=0|
00018640  20 8c 0d 0c f5 16 20 20  20 f2 64 69 73 70 6c 61  | .....   .displa|
00018650  79 5f 6d 65 6d 6f 72 79  0d 0c f6 08 20 20 20 cc  |y_memory....   .|
00018660  0d 0c f7 2f 20 20 20 f2  64 69 73 70 6c 61 79 5f  |.../   .display_|
00018670  6d 65 6d 6f 72 79 3a f2  77 61 69 74 5f 6e 6f 5f  |memory:.wait_no_|
00018680  62 75 74 74 6f 6e 3a c8  97 20 58 2c 59 2c 42 0d  |button:.. X,Y,B.|
00018690  0c f8 1e 20 20 20 e6 20  33 2c 36 33 3a c8 93 20  |...   . 3,63:.. |
000186a0  58 2c 59 2c 47 57 25 2c  47 48 25 3a f5 0d 0c f9  |X,Y,GW%,GH%:....|
000186b0  2a 20 20 20 f5 3a c8 97  20 58 31 2c 59 31 2c 42  |*   .:.. X1,Y1,B|
000186c0  3a fd 20 58 3c 3e 58 31  20 84 20 59 3c 3e 59 31  |:. X<>X1 . Y<>Y1|
000186d0  20 84 20 42 3c 3e 30 0d  0c fa 26 20 20 20 c8 93  | . B<>0...&   ..|
000186e0  20 58 2c 59 2c 47 57 25  2c 47 48 25 3a c8 93 20  | X,Y,GW%,GH%:.. |
000186f0  58 31 2c 59 31 2c 47 57  25 2c 47 48 25 0d 0c fb  |X1,Y1,GW%,GH%...|
00018700  17 20 20 20 58 3d 58 31  3a 59 3d 59 31 3a fd 20  |.   X=X1:Y=Y1:. |
00018710  42 3c 3e 30 0d 0c fc 0f  20 20 20 e7 20 42 3c 3e  |B<>0....   . B<>|
00018720  34 20 8c 0d 0c fd 17 20  20 20 20 f2 64 69 73 70  |4 .....    .disp|
00018730  6c 61 79 5f 6d 65 6d 6f  72 79 0d 0c fe 09 20 20  |lay_memory....  |
00018740  20 20 cc 0d 0c ff 17 20  20 20 20 f2 64 69 73 70  |  .....    .disp|
00018750  6c 61 79 5f 6d 65 6d 6f  72 79 0d 0d 00 1c 20 20  |lay_memory....  |
00018760  20 20 c8 95 20 58 2f 34  3c 3e 58 20 81 20 34 3a  |  .. X/4<>X . 4:|
00018770  58 2b 3d 31 3a ce 0d 0d  01 26 20 20 20 20 59 3d  |X+=1:....&    Y=|
00018780  59 2b 47 48 25 3a 41 25  3d 28 28 31 30 32 34 2d  |Y+GH%:A%=((1024-|
00018790  59 29 81 32 29 2a 31 32  38 30 2b 58 0d 0d 02 29  |Y).2)*1280+X...)|
000187a0  20 20 20 20 e7 20 70 6c  6f 74 5f 73 68 61 64 6f  |    . plot_shado|
000187b0  77 25 3d 31 20 f2 67 72  61 64 61 74 65 64 5f 73  |w%=1 .gradated_s|
000187c0  68 61 64 6f 77 0d 0d 03  4d 20 20 20 20 e7 20 70  |hadow...M    . p|
000187d0  6c 6f 74 5f 62 6f 72 64  65 72 25 3d 31 20 f2 70  |lot_border%=1 .p|
000187e0  6c 69 6e 74 68 28 58 31  2d 32 30 2c 59 31 2d 32  |linth(X1-20,Y1-2|
000187f0  30 2c 47 57 25 2b 34 34  2c 47 48 25 2b 34 30 2c  |0,GW%+44,GH%+40,|
00018800  33 32 2c 70 62 72 25 2c  70 62 67 25 2c 70 62 62  |32,pbr%,pbg%,pbb|
00018810  25 29 0d 0d 04 5d 20 20  20 20 e7 20 70 6c 6f 74  |%)...]    . plot|
00018820  5f 62 6f 72 64 65 72 25  3d 32 20 f2 70 6c 69 6e  |_border%=2 .plin|
00018830  74 68 32 28 58 31 2d 33  30 2c 59 31 2d 33 30 2c  |th2(X1-30,Y1-30,|
00018840  47 57 25 2b 36 34 2c 47  48 25 2b 36 30 2c 70 62  |GW%+64,GH%+60,pb|
00018850  72 25 2c 70 62 67 25 2c  70 62 62 25 2c 70 62 72  |r%,pbg%,pbb%,pbr|
00018860  69 25 2c 70 62 67 69 25  2c 70 62 62 69 25 29 0d  |i%,pbgi%,pbbi%).|
00018870  0d 05 09 20 20 20 20 cd  0d 0d 06 3c 20 20 20 20  |...    ....<    |
00018880  21 6e 75 6d 5f 6c 69 6e  65 73 3d 47 4c 25 3a 21  |!num_lines=GL%:!|
00018890  6e 75 6d 5f 62 79 74 65  73 3d 47 42 25 3a 21 64  |num_bytes=GB%:!d|
000188a0  65 73 74 5f 73 74 61 72  74 3d 73 63 72 65 65 6e  |est_start=screen|
000188b0  25 2b 41 25 0d 0d 07 30  20 20 20 20 e7 20 66 6c  |%+A%...0    . fl|
000188c0  69 70 78 25 20 8c 20 d6  20 67 65 74 5f 61 72 65  |ipx% . . get_are|
000188d0  61 5f 66 6c 69 70 78 20  8b 20 d6 20 67 65 74 5f  |a_flipx . . get_|
000188e0  61 72 65 61 0d 0d 08 08  20 20 20 cd 0d 0d 09 07  |area....   .....|
000188f0  20 20 cd 0d 0d 0a 06 20  cd 0d 0d 0b 0c 20 f2 75  |  ..... ..... .u|
00018900  70 6d 69 6e 69 0d 0d 0c  06 20 e1 0d 0d 0d 04 0d  |pmini.... ......|
00018910  0d 0e 17 20 dd 20 f2 67  72 61 64 61 74 65 64 5f  |... . .gradated_|
00018920  73 68 61 64 6f 77 0d 0d  0f 46 20 21 72 65 64 5f  |shadow...F !red_|
00018930  61 64 64 72 65 73 73 3d  72 65 64 64 61 74 61 3a  |address=reddata:|
00018940  21 67 72 65 65 6e 5f 61  64 64 72 65 73 73 3d 67  |!green_address=g|
00018950  72 6e 64 61 74 61 3a 21  62 6c 75 65 5f 61 64 64  |rndata:!blue_add|
00018960  72 65 73 73 3d 62 6c 75  64 61 74 61 0d 0d 10 2e  |ress=bludata....|
00018970  20 21 70 69 63 70 72 6f  5f 6c 69 6e 65 73 3d 47  | !picpro_lines=G|
00018980  4c 25 2b 32 30 3a 21 70  69 63 70 72 6f 5f 62 79  |L%+20:!picpro_by|
00018990  74 65 73 3d 47 42 25 2b  32 34 0d 0d 11 29 20 21  |tes=GB%+24...) !|
000189a0  73 74 61 72 74 5f 61 64  64 72 65 73 73 3d 73 63  |start_address=sc|
000189b0  72 65 65 6e 25 2b 41 25  2b 32 38 2b 31 32 38 30  |reen%+A%+28+1280|
000189c0  2a 31 32 0d 0d 12 10 20  e3 20 4e 25 3d 30 20 b8  |*12.... . N%=0 .|
000189d0  20 33 31 0d 0d 13 33 20  72 65 64 64 61 74 61 3f  | 31...3 reddata?|
000189e0  4e 25 3d 4e 25 2d 32 3a  e7 20 72 65 64 64 61 74  |N%=N%-2:. reddat|
000189f0  61 3f 4e 25 3e 33 31 20  8c 20 72 65 64 64 61 74  |a?N%>31 . reddat|
00018a00  61 3f 4e 25 3d 30 0d 0d  14 33 20 67 72 6e 64 61  |a?N%=0...3 grnda|
00018a10  74 61 3f 4e 25 3d 4e 25  2d 32 3a e7 20 67 72 6e  |ta?N%=N%-2:. grn|
00018a20  64 61 74 61 3f 4e 25 3e  33 31 20 8c 20 67 72 6e  |data?N%>31 . grn|
00018a30  64 61 74 61 3f 4e 25 3d  30 0d 0d 15 33 20 62 6c  |data?N%=0...3 bl|
00018a40  75 64 61 74 61 3f 4e 25  3d 4e 25 2d 32 3a e7 20  |udata?N%=N%-2:. |
00018a50  62 6c 75 64 61 74 61 3f  4e 25 3e 33 31 20 8c 20  |bludata?N%>31 . |
00018a60  62 6c 75 64 61 74 61 3f  4e 25 3d 30 0d 0d 16 06  |bludata?N%=0....|
00018a70  20 ed 0d 0d 17 22 20 e3  20 4e 25 3d 31 20 b8 20  | ...." . N%=1 . |
00018a80  31 30 3a d6 20 70 69 63  74 75 72 65 5f 70 72 6f  |10:. picture_pro|
00018a90  63 65 73 73 0d 0d 18 2b  20 21 73 74 61 72 74 5f  |cess...+ !start_|
00018aa0  61 64 64 72 65 73 73 3d  28 21 73 74 61 72 74 5f  |address=(!start_|
00018ab0  61 64 64 72 65 73 73 29  2d 32 35 36 34 3a ed 0d  |address)-2564:..|
00018ac0  0d 19 06 20 e1 0d 0d 1a  04 0d 0d 1b 13 20 dd 20  |... ......... . |
00018ad0  f2 73 63 72 65 65 6e 5f  66 61 64 65 0d 0d 1c 14  |.screen_fade....|
00018ae0  20 f2 64 69 73 70 6c 61  79 5f 6d 65 6d 6f 72 79  | .display_memory|
00018af0  0d 0d 1d 46 20 21 72 65  64 5f 61 64 64 72 65 73  |...F !red_addres|
00018b00  73 3d 72 65 64 64 61 74  61 3a 21 67 72 65 65 6e  |s=reddata:!green|
00018b10  5f 61 64 64 72 65 73 73  3d 67 72 6e 64 61 74 61  |_address=grndata|
00018b20  3a 21 62 6c 75 65 5f 61  64 64 72 65 73 73 3d 62  |:!blue_address=b|
00018b30  6c 75 64 61 74 61 0d 0d  1e 42 20 e3 20 4e 25 3d  |ludata...B . N%=|
00018b40  31 20 b8 20 33 31 3a 72  65 64 64 61 74 61 3f 4e  |1 . 31:reddata?N|
00018b50  25 3d 4e 25 2d 31 3a 67  72 6e 64 61 74 61 3f 4e  |%=N%-1:grndata?N|
00018b60  25 3d 4e 25 2d 31 3a 62  6c 75 64 61 74 61 3f 4e  |%=N%-1:bludata?N|
00018b70  25 3d 4e 25 2d 31 3a ed  0d 0d 1f 28 20 72 65 64  |%=N%-1:....( red|
00018b80  64 61 74 61 3f 30 3d 30  3a 67 72 6e 64 61 74 61  |data?0=0:grndata|
00018b90  3f 30 3d 30 3a 62 6c 75  64 61 74 61 3f 30 3d 30  |?0=0:bludata?0=0|
00018ba0  0d 0d 20 23 20 4c 25 3d  35 31 32 3a 21 70 69 63  |.. # L%=512:!pic|
00018bb0  70 72 6f 5f 62 79 74 65  73 3d 31 32 38 30 3a 4f  |pro_bytes=1280:O|
00018bc0  25 3d 30 0d 0d 21 10 20  e3 20 4e 25 3d 31 20 b8  |%=0..!. . N%=1 .|
00018bd0  20 31 36 0d 0d 22 41 20  21 70 69 63 70 72 6f 5f  | 16.."A !picpro_|
00018be0  6c 69 6e 65 73 3d 4c 25  3a 21 73 74 61 72 74 5f  |lines=L%:!start_|
00018bf0  61 64 64 72 65 73 73 3d  73 63 72 65 65 6e 25 2b  |address=screen%+|
00018c00  4f 25 3a d6 20 70 69 63  74 75 72 65 5f 70 72 6f  |O%:. picture_pro|
00018c10  63 65 73 73 0d 0d 23 17  20 4c 25 2d 3d 33 32 3a  |cess..#. L%-=32:|
00018c20  4f 25 2b 3d 34 30 39 36  30 3a ed 0d 0d 24 15 20  |O%+=40960:...$. |
00018c30  f2 75 70 6c 6f 61 64 5f  6d 65 6d 6f 72 79 3a e1  |.upload_memory:.|
00018c40  0d 0d 25 04 0d 0d 26 19  20 dd 20 f2 67 65 74 5f  |..%...&. . .get_|
00018c50  61 72 65 61 5f 61 73 73  65 6d 62 6c 65 0d 0d 27  |area_assemble..'|
00018c60  13 20 de 20 67 65 74 5f  63 6f 64 65 20 33 32 30  |. . get_code 320|
00018c70  0d 0d 28 49 20 62 61 73  65 31 3d 34 3a 62 61 73  |..(I base1=4:bas|
00018c80  65 32 3d 35 3a 6f 66 66  73 65 74 3d 36 3a 6c 69  |e2=5:offset=6:li|
00018c90  6e 65 73 3d 37 3a 62 79  74 65 73 3d 38 3a 64 61  |nes=7:bytes=8:da|
00018ca0  74 61 3d 39 3a 63 6c 65  61 72 3d 31 30 3a 73 68  |ta=9:clear=10:sh|
00018cb0  61 64 74 79 70 65 3d 31  31 0d 0d 29 0f 20 6f 66  |adtype=11..). of|
00018cc0  66 73 65 74 32 3d 31 32  0d 0d 2a 11 20 e3 20 50  |fset2=12..*. . P|
00018cd0  3d 30 20 b8 20 32 20 88  32 0d 0d 2b 10 20 50 25  |=0 . 2 .2..+. P%|
00018ce0  3d 67 65 74 5f 63 6f 64  65 0d 0d 2c 0b 20 5b 4f  |=get_code..,. [O|
00018cf0  50 54 20 50 0d 0d 2d 19  20 2e 73 6f 75 72 63 65  |PT P..-. .source|
00018d00  5f 73 74 61 72 74 20 45  51 55 44 20 30 0d 0d 2e  |_start EQUD 0...|
00018d10  17 20 2e 64 65 73 74 5f  73 74 61 72 74 20 45 51  |. .dest_start EQ|
00018d20  55 44 20 30 0d 0d 2f 16  20 2e 6e 75 6d 5f 62 79  |UD 0../. .num_by|
00018d30  74 65 73 20 45 51 55 44  20 30 0d 0d 30 16 20 2e  |tes EQUD 0..0. .|
00018d40  6e 75 6d 5f 6c 69 6e 65  73 20 45 51 55 44 20 30  |num_lines EQUD 0|
00018d50  0d 0d 31 19 20 2e 73 68  61 64 6f 77 5f 73 74 61  |..1. .shadow_sta|
00018d60  72 74 20 45 51 55 44 20  30 0d 0d 32 18 20 2e 73  |rt EQUD 0..2. .s|
00018d70  68 61 64 6f 77 5f 66 6c  61 67 20 45 51 55 44 20  |hadow_flag EQUD |
00018d80  30 0d 0d 33 17 20 2e 63  6c 65 61 72 5f 6d 61 73  |0..3. .clear_mas|
00018d90  6b 20 45 51 55 44 20 30  0d 0d 34 04 0d 0d 35 0e  |k EQUD 0..4...5.|
00018da0  20 2e 67 65 74 5f 61 72  65 61 0d 0d 36 30 20 4c  | .get_area..60 L|
00018db0  44 52 20 62 61 73 65 31  2c 73 6f 75 72 63 65 5f  |DR base1,source_|
00018dc0  73 74 61 72 74 3a 4c 44  52 20 62 61 73 65 32 2c  |start:LDR base2,|
00018dd0  64 65 73 74 5f 73 74 61  72 74 0d 0d 37 3a 20 4c  |dest_start..7: L|
00018de0  44 52 20 62 79 74 65 73  2c 6e 75 6d 5f 62 79 74  |DR bytes,num_byt|
00018df0  65 73 3a 4d 4f 56 20 6f  66 66 73 65 74 2c 23 30  |es:MOV offset,#0|
00018e00  3a 4c 44 52 20 6c 69 6e  65 73 2c 6e 75 6d 5f 6c  |:LDR lines,num_l|
00018e10  69 6e 65 73 0d 0d 38 13  20 2e 67 65 74 5f 61 72  |ines..8. .get_ar|
00018e20  65 61 5f 6c 6f 6f 70 0d  0d 39 34 20 4c 44 52 20  |ea_loop..94 LDR |
00018e30  64 61 74 61 2c 5b 62 61  73 65 31 2c 6f 66 66 73  |data,[base1,offs|
00018e40  65 74 5d 3a 53 54 52 20  64 61 74 61 2c 5b 62 61  |et]:STR data,[ba|
00018e50  73 65 32 2c 6f 66 66 73  65 74 5d 0d 0d 3a 3c 20  |se2,offset]..:< |
00018e60  41 44 44 20 6f 66 66 73  65 74 2c 6f 66 66 73 65  |ADD offset,offse|
00018e70  74 2c 23 34 3a 43 4d 50  20 6f 66 66 73 65 74 2c  |t,#4:CMP offset,|
00018e80  62 79 74 65 73 3a 42 4c  54 20 67 65 74 5f 61 72  |bytes:BLT get_ar|
00018e90  65 61 5f 6c 6f 6f 70 0d  0d 3b 3e 20 41 44 44 20  |ea_loop..;> ADD |
00018ea0  62 61 73 65 31 2c 62 61  73 65 31 2c 23 31 32 38  |base1,base1,#128|
00018eb0  30 3a 41 44 44 20 62 61  73 65 32 2c 62 61 73 65  |0:ADD base2,base|
00018ec0  32 2c 23 31 32 38 30 3a  4d 4f 56 20 6f 66 66 73  |2,#1280:MOV offs|
00018ed0  65 74 2c 23 30 0d 0d 3c  2a 20 53 55 42 53 20 6c  |et,#0..<* SUBS l|
00018ee0  69 6e 65 73 2c 6c 69 6e  65 73 2c 23 31 3a 42 4e  |ines,lines,#1:BN|
00018ef0  45 20 67 65 74 5f 61 72  65 61 5f 6c 6f 6f 70 0d  |E get_area_loop.|
00018f00  0d 3d 0f 20 4d 4f 56 20  50 43 2c 52 31 34 0d 0d  |.=. MOV PC,R14..|
00018f10  3e 04 0d 0d 3f 14 20 2e  67 65 74 5f 61 72 65 61  |>...?. .get_area|
00018f20  5f 66 6c 69 70 78 0d 0d  40 30 20 4c 44 52 20 62  |_flipx..@0 LDR b|
00018f30  61 73 65 31 2c 73 6f 75  72 63 65 5f 73 74 61 72  |ase1,source_star|
00018f40  74 3a 4c 44 52 20 62 61  73 65 32 2c 64 65 73 74  |t:LDR base2,dest|
00018f50  5f 73 74 61 72 74 0d 0d  41 4c 20 4c 44 52 20 62  |_start..AL LDR b|
00018f60  79 74 65 73 2c 6e 75 6d  5f 62 79 74 65 73 3a 4d  |ytes,num_bytes:M|
00018f70  4f 56 20 6f 66 66 73 65  74 2c 23 30 3a 4d 4f 56  |OV offset,#0:MOV|
00018f80  20 6f 66 66 73 65 74 32  2c 62 79 74 65 73 3a 4c  | offset2,bytes:L|
00018f90  44 52 20 6c 69 6e 65 73  2c 6e 75 6d 5f 6c 69 6e  |DR lines,num_lin|
00018fa0  65 73 0d 0d 42 19 20 2e  67 65 74 5f 61 72 65 61  |es..B. .get_area|
00018fb0  5f 66 6c 69 70 78 5f 6c  6f 6f 70 0d 0d 43 4a 20  |_flipx_loop..CJ |
00018fc0  4c 44 52 20 64 61 74 61  2c 5b 62 61 73 65 31 2c  |LDR data,[base1,|
00018fd0  6f 66 66 73 65 74 5d 3a  4d 4f 56 20 64 61 74 61  |offset]:MOV data|
00018fe0  2c 64 61 74 61 2c 52 4f  52 23 31 36 3a 53 54 52  |,data,ROR#16:STR|
00018ff0  20 64 61 74 61 2c 5b 62  61 73 65 32 2c 6f 66 66  | data,[base2,off|
00019000  73 65 74 32 5d 0d 0d 44  30 20 53 55 42 20 6f 66  |set2]..D0 SUB of|
00019010  66 73 65 74 32 2c 6f 66  66 73 65 74 32 2c 23 34  |fset2,offset2,#4|
00019020  3a 41 44 44 20 6f 66 66  73 65 74 2c 6f 66 66 73  |:ADD offset,offs|
00019030  65 74 2c 23 34 0d 0d 45  2d 20 43 4d 50 20 6f 66  |et,#4..E- CMP of|
00019040  66 73 65 74 2c 62 79 74  65 73 3a 42 4c 54 20 67  |fset,bytes:BLT g|
00019050  65 74 5f 61 72 65 61 5f  66 6c 69 70 78 5f 6c 6f  |et_area_flipx_lo|
00019060  6f 70 0d 0d 46 30 20 41  44 44 20 62 61 73 65 31  |op..F0 ADD base1|
00019070  2c 62 61 73 65 31 2c 23  31 32 38 30 3a 41 44 44  |,base1,#1280:ADD|
00019080  20 62 61 73 65 32 2c 62  61 73 65 32 2c 23 31 32  | base2,base2,#12|
00019090  38 30 0d 0d 47 24 20 4d  4f 56 20 6f 66 66 73 65  |80..G$ MOV offse|
000190a0  74 2c 23 30 3a 4d 4f 56  20 6f 66 66 73 65 74 32  |t,#0:MOV offset2|
000190b0  2c 62 79 74 65 73 0d 0d  48 30 20 53 55 42 53 20  |,bytes..H0 SUBS |
000190c0  6c 69 6e 65 73 2c 6c 69  6e 65 73 2c 23 31 3a 42  |lines,lines,#1:B|
000190d0  4e 45 20 67 65 74 5f 61  72 65 61 5f 66 6c 69 70  |NE get_area_flip|
000190e0  78 5f 6c 6f 6f 70 0d 0d  49 0f 20 4d 4f 56 20 50  |x_loop..I. MOV P|
000190f0  43 2c 52 31 34 0d 0d 4a  04 0d 0d 4b 0c 20 2e 73  |C,R14..J...K. .s|
00019100  68 61 64 6f 77 0d 0d 4c  3e 20 4c 44 52 20 62 61  |hadow..L> LDR ba|
00019110  73 65 31 2c 73 68 61 64  6f 77 5f 73 74 61 72 74  |se1,shadow_start|
00019120  3a 4d 4f 56 20 6f 66 66  73 65 74 2c 23 30 3a 4c  |:MOV offset,#0:L|
00019130  44 52 20 63 6c 65 61 72  2c 63 6c 65 61 72 5f 6d  |DR clear,clear_m|
00019140  61 73 6b 0d 0d 4d 1d 20  4c 44 52 20 73 68 61 64  |ask..M. LDR shad|
00019150  74 79 70 65 2c 73 68 61  64 6f 77 5f 66 6c 61 67  |type,shadow_flag|
00019160  0d 0d 4e 2c 20 4c 44 52  20 62 79 74 65 73 2c 6e  |..N, LDR bytes,n|
00019170  75 6d 5f 62 79 74 65 73  3a 4c 44 52 20 6c 69 6e  |um_bytes:LDR lin|
00019180  65 73 2c 6e 75 6d 5f 6c  69 6e 65 73 0d 0d 4f 29  |es,num_lines..O)|
00019190  20 2e 73 68 61 64 6f 77  5f 6c 6f 6f 70 20 4c 44  | .shadow_loop LD|
000191a0  52 20 64 61 74 61 2c 5b  62 61 73 65 31 2c 6f 66  |R data,[base1,of|
000191b0  66 73 65 74 5d 0d 0d 50  27 20 43 4d 50 20 73 68  |fset]..P' CMP sh|
000191c0  61 64 74 79 70 65 2c 23  30 3a ec 51 20 64 61 74  |adtype,#0:.Q dat|
000191d0  61 2c 64 61 74 61 2c 4c  53 52 23 31 0d 0d 51 30  |a,data,LSR#1..Q0|
000191e0  20 42 49 43 20 64 61 74  61 2c 64 61 74 61 2c 63  | BIC data,data,c|
000191f0  6c 65 61 72 3a 53 54 52  20 64 61 74 61 2c 5b 62  |lear:STR data,[b|
00019200  61 73 65 31 2c 6f 66 66  73 65 74 5d 0d 0d 52 3a  |ase1,offset]..R:|
00019210  20 41 44 44 20 6f 66 66  73 65 74 2c 6f 66 66 73  | ADD offset,offs|
00019220  65 74 2c 23 34 3a 43 4d  50 20 6f 66 66 73 65 74  |et,#4:CMP offset|
00019230  2c 62 79 74 65 73 3a 42  4c 54 20 73 68 61 64 6f  |,bytes:BLT shado|
00019240  77 5f 6c 6f 6f 70 0d 0d  53 28 20 41 44 44 20 62  |w_loop..S( ADD b|
00019250  61 73 65 31 2c 62 61 73  65 31 2c 23 31 32 38 30  |ase1,base1,#1280|
00019260  3a 4d 4f 56 20 6f 66 66  73 65 74 2c 23 30 0d 0d  |:MOV offset,#0..|
00019270  54 28 20 53 55 42 53 20  6c 69 6e 65 73 2c 6c 69  |T( SUBS lines,li|
00019280  6e 65 73 2c 23 31 3a 42  4e 45 20 73 68 61 64 6f  |nes,#1:BNE shado|
00019290  77 5f 6c 6f 6f 70 0d 0d  55 0f 20 4d 4f 56 20 50  |w_loop..U. MOV P|
000192a0  43 2c 52 31 34 0d 0d 56  06 20 5d 0d 0d 57 06 20  |C,R14..V. ]..W. |
000192b0  ed 0d 0d 58 06 20 e1 0d  0d 59 04 0d 0d 5a 28 20  |...X. ...Y...Z( |
000192c0  dd 20 f2 64 6f 75 62 6c  65 5f 67 72 61 64 5f 62  |. .double_grad_b|
000192d0  61 63 6b 28 52 2c 47 2c  42 2c 52 49 2c 47 49 2c  |ack(R,G,B,RI,GI,|
000192e0  42 49 29 0d 0d 5b 10 20  72 3d 52 3a 67 3d 47 3a  |BI)..[. r=R:g=G:|
000192f0  62 3d 42 0d 0d 5c 14 20  e3 20 59 25 3d 30 20 b8  |b=B..\. . Y%=0 .|
00019300  20 35 30 38 20 88 32 0d  0d 5d 1e 20 e6 20 72 2c  | 508 .2..]. . r,|
00019310  67 2c 62 3a c8 93 20 c8  90 20 30 2c 59 25 2c 31  |g,b:.. .. 0,Y%,1|
00019320  32 37 39 2c 32 0d 0d 5e  18 20 72 2b 3d 52 49 3a  |279,2..^. r+=RI:|
00019330  67 2b 3d 47 49 3a 62 2b  3d 42 49 3a ed 0d 0d 5f  |g+=GI:b+=BI:..._|
00019340  11 20 e7 20 72 3d 2d 31  20 8c 20 72 3d 31 0d 0d  |. . r=-1 . r=1..|
00019350  60 11 20 e7 20 67 3d 2d  31 20 8c 20 67 3d 31 0d  |`. . g=-1 . g=1.|
00019360  0d 61 11 20 e7 20 62 3d  2d 31 20 8c 20 62 3d 31  |.a. . b=-1 . b=1|
00019370  0d 0d 62 14 20 e7 20 72  3d 32 35 36 20 8c 20 72  |..b. . r=256 . r|
00019380  3d 32 35 34 0d 0d 63 14  20 e7 20 67 3d 32 35 36  |=254..c. . g=256|
00019390  20 8c 20 67 3d 32 35 34  0d 0d 64 14 20 e7 20 62  | . g=254..d. . b|
000193a0  3d 32 35 36 20 8c 20 62  3d 32 35 34 0d 0d 65 17  |=256 . b=254..e.|
000193b0  20 e3 20 59 25 3d 35 31  30 20 b8 20 31 30 31 38  | . Y%=510 . 1018|
000193c0  20 88 32 0d 0d 66 1e 20  e6 20 72 2c 67 2c 62 3a  | .2..f. . r,g,b:|
000193d0  c8 93 20 c8 90 20 30 2c  59 25 2c 31 32 37 39 2c  |.. .. 0,Y%,1279,|
000193e0  34 0d 0d 67 18 20 72 2d  3d 52 49 3a 67 2d 3d 47  |4..g. r-=RI:g-=G|
000193f0  49 3a 62 2d 3d 42 49 3a  ed 0d 0d 68 21 20 e7 20  |I:b-=BI:...h! . |
00019400  ac 28 6d 65 72 67 65 25  29 20 8c 20 f2 75 70 6c  |.(merge%) . .upl|
00019410  6f 61 64 5f 6d 65 6d 6f  72 79 0d 0d 69 06 20 e1  |oad_memory..i. .|
00019420  0d 0d 6a 04 0d 0d 6b 28  20 dd 20 f2 73 69 6e 67  |..j...k( . .sing|
00019430  6c 65 5f 67 72 61 64 5f  62 61 63 6b 28 52 2c 47  |le_grad_back(R,G|
00019440  2c 42 2c 52 49 2c 47 49  2c 42 49 29 0d 0d 6c 15  |,B,RI,GI,BI)..l.|
00019450  20 e3 20 59 3d 31 30 32  30 20 b8 20 30 20 88 2d  | . Y=1020 . 0 .-|
00019460  34 0d 0d 6d 1d 20 e6 20  52 2c 47 2c 42 3a c8 93  |4..m. . R,G,B:..|
00019470  20 c8 90 20 30 2c 59 2c  31 32 38 30 2c 34 0d 0d  | .. 0,Y,1280,4..|
00019480  6e 18 20 52 2b 3d 52 49  3a 47 2b 3d 47 49 3a 42  |n. R+=RI:G+=GI:B|
00019490  2b 3d 42 49 3a ed 0d 0d  6f 21 20 e7 20 ac 28 6d  |+=BI:...o! . .(m|
000194a0  65 72 67 65 25 29 20 8c  20 f2 75 70 6c 6f 61 64  |erge%) . .upload|
000194b0  5f 6d 65 6d 6f 72 79 0d  0d 70 06 20 e1 0d 0d 71  |_memory..p. ...q|
000194c0  04 0d 0d 72 27 20 dd 20  a4 74 65 78 74 5f 77 69  |...r' . .text_wi|
000194d0  64 74 68 28 66 6f 6e 74  24 2c 74 65 78 74 24 2c  |dth(font$,text$,|
000194e0  78 70 25 2c 79 70 25 29  0d 0d 73 29 20 e7 20 66  |xp%,yp%)..s) . f|
000194f0  6f 6e 74 25 3c 3e 2d 31  20 c8 99 20 22 46 6f 6e  |ont%<>-1 .. "Fon|
00019500  74 5f 4c 6f 73 65 46 6f  6e 74 22 2c 66 6f 6e 74  |t_LoseFont",font|
00019510  25 0d 0d 74 34 20 c8 99  20 22 46 6f 6e 74 5f 46  |%..t4 .. "Font_F|
00019520  69 6e 64 46 6f 6e 74 22  2c 2c 66 6f 6e 74 24 2c  |indFont",,font$,|
00019530  31 36 2a 78 70 25 2c 31  36 2a 79 70 25 20 b8 20  |16*xp%,16*yp% . |
00019540  66 6f 6e 74 25 0d 0d 75  33 20 c8 99 20 22 46 6f  |font%..u3 .. "Fo|
00019550  6e 74 5f 43 6f 6e 76 65  72 74 74 6f 70 6f 69 6e  |nt_Converttopoin|
00019560  74 73 22 2c 2c 31 32 38  30 2c 31 30 32 34 20 b8  |ts",,1280,1024 .|
00019570  2c 78 70 25 2c 79 70 25  0d 0d 76 3b 20 c8 99 20  |,xp%,yp%..v; .. |
00019580  22 46 6f 6e 74 5f 53 74  72 69 6e 67 57 69 64 74  |"Font_StringWidt|
00019590  68 22 2c 2c 74 65 78 74  24 2c 78 70 25 2c 79 70  |h",,text$,xp%,yp|
000195a0  25 2c 2d 31 2c 31 30 30  20 b8 2c 2c 78 32 25 2c  |%,-1,100 .,,x2%,|
000195b0  79 32 25 0d 0d 77 2d 20  c8 99 20 22 46 6f 6e 74  |y2%..w- .. "Font|
000195c0  5f 43 6f 6e 76 65 72 74  74 6f 4f 53 22 2c 2c 78  |_ConverttoOS",,x|
000195d0  32 25 2c 79 32 25 20 b8  2c 78 32 25 2c 79 32 25  |2%,y2% .,x2%,y2%|
000195e0  0d 0d 78 09 20 3d 78 32  25 0d 0d 79 04 0d 0d 7a  |..x. =x2%..y...z|
000195f0  1a 20 dd 20 f2 72 67 62  5f 73 6c 69 64 65 72 73  |. . .rgb_sliders|
00019600  28 66 6c 61 67 25 29 0d  0d 7b 20 20 58 25 3d 33  |(flag%)..{  X%=3|
00019610  38 30 3a 59 25 3d 33 30  34 3a 57 25 3d 34 36 30  |80:Y%=304:W%=460|
00019620  3a 48 25 3d 32 34 30 0d  0d 7c 1c 20 72 65 64 31  |:H%=240..|. red1|
00019630  25 3d 30 3a 67 72 6e 31  25 3d 30 3a 62 6c 75 31  |%=0:grn1%=0:blu1|
00019640  25 3d 30 0d 0d 7d 1e 20  e7 20 66 6c 61 67 25 20  |%=0..}. . flag% |
00019650  8c 20 59 32 25 3d 31 34  30 20 8b 20 59 32 25 3d  |. Y2%=140 . Y2%=|
00019660  30 0d 0d 7e 27 20 f2 72  61 69 73 65 64 5f 62 6c  |0..~' .raised_bl|
00019670  6f 63 6b 28 58 25 2c 59  25 2d 59 32 25 2c 57 25  |ock(X%,Y%-Y2%,W%|
00019680  2c 48 25 2b 59 32 25 29  0d 0d 7f 1d 20 e3 20 59  |,H%+Y2%).... . Y|
00019690  59 25 3d 59 25 2b 35 36  20 b8 20 59 25 2b 31 34  |Y%=Y%+56 . Y%+14|
000196a0  38 20 88 34 34 0d 0d 80  1f 20 f2 62 6f 78 65 73  |8 .44.... .boxes|
000196b0  28 58 25 2b 31 36 2c 59  59 25 2c 32 36 32 2c 33  |(X%+16,YY%,262,3|
000196c0  32 2c 30 29 0d 0d 81 20  20 ed 3a c8 97 20 c8 93  |2,0)...  .:.. ..|
000196d0  20 58 25 2c 59 25 2d 59  32 25 2c 57 25 2c 48 25  | X%,Y%-Y2%,W%,H%|
000196e0  2b 59 32 25 0d 0d 82 26  20 f2 72 61 69 73 65 64  |+Y2%...& .raised|
000196f0  5f 62 6c 6f 63 6b 28 58  25 2b 33 34 36 2c 59 25  |_block(X%+346,Y%|
00019700  2b 35 36 2c 38 38 2c 34  34 29 0d 0d 83 23 20 f2  |+56,88,44)...# .|
00019710  62 6f 78 65 73 28 58 25  2b 33 34 30 2c 59 25 2b  |boxes(X%+340,Y%+|
00019720  31 32 30 2c 31 30 30 2c  35 36 2c 30 29 0d 0d 84  |120,100,56,0)...|
00019730  37 20 f2 77 72 69 74 65  32 28 22 50 73 63 61 6e  |7 .write2("Pscan|
00019740  20 33 32 4b 20 63 6f 6c  6f 75 72 20 73 65 6c 65  | 32K colour sele|
00019750  63 74 6f 72 22 2c 58 25  2b 38 2c 59 25 2b 32 30  |ctor",X%+8,Y%+20|
00019760  30 2c 34 29 0d 0d 85 39  20 f2 77 72 69 74 65 32  |0,4)...9 .write2|
00019770  28 22 44 72 61 67 20 73  6c 69 64 65 72 73 20 74  |("Drag sliders t|
00019780  6f 20 64 65 66 69 6e 65  20 63 6f 6c 6f 75 72 22  |o define colour"|
00019790  2c 58 25 2b 38 2c 59 25  2b 38 2c 34 29 0d 0d 86  |,X%+8,Y%+8,4)...|
000197a0  21 20 f2 77 72 69 74 65  32 28 22 4f 4b 22 2c 58  |! .write2("OK",X|
000197b0  25 2b 33 36 32 2c 59 25  2b 36 32 2c 34 29 0d 0d  |%+362,Y%+62,4)..|
000197c0  87 0e 20 e7 20 66 6c 61  67 25 20 8c 0d 0d 88 3c  |.. . flag% ....<|
000197d0  20 f2 77 72 69 74 65 32  28 22 43 6c 69 63 6b 20  | .write2("Click |
000197e0  6f 6e 20 72 65 71 75 69  72 65 64 20 62 72 75 73  |on required brus|
000197f0  68 20 73 69 7a 65 22 2c  58 25 2b 38 2c 59 25 2b  |h size",X%+8,Y%+|
00019800  38 2d 59 32 25 2c 34 29  0d 0d 89 09 20 52 25 3d  |8-Y2%,4).... R%=|
00019810  34 0d 0d 8a 20 20 e3 20  58 58 25 3d 58 25 2b 31  |4...  . XX%=X%+1|
00019820  36 20 b8 20 58 25 2b 33  32 32 20 88 20 37 36 2e  |6 . X%+322 . 76.|
00019830  35 0d 0d 8b 30 20 e6 20  31 32 38 2c 30 2c 30 3a  |5...0 . 128,0,0:|
00019840  c8 8f 20 c8 90 20 58 58  25 2b 34 38 2c 59 25 2d  |.. .. XX%+48,Y%-|
00019850  59 32 25 2b 39 32 2c 52  25 3a 52 25 3d 52 25 2b  |Y2%+92,R%:R%=R%+|
00019860  34 0d 0d 8c 28 20 f2 62  6f 78 65 73 28 58 58 25  |4...( .boxes(XX%|
00019870  2b 31 36 2c 59 25 2d 59  32 25 2b 36 30 2c 36 34  |+16,Y%-Y2%+60,64|
00019880  2c 36 34 2c 2d 31 29 3a  ed 0d 0d 8d 06 20 cd 0d  |,64,-1):..... ..|
00019890  0d 8e 29 20 e6 20 32 35  35 2c 30 2c 30 3a c8 93  |..) . 255,0,0:..|
000198a0  20 c8 90 20 58 25 2b 32  30 2c 59 25 2b 31 34 38  | .. X%+20,Y%+148|
000198b0  2c 72 65 64 25 2c 32 34  0d 0d 8f 29 20 e6 20 30  |,red%,24...) . 0|
000198c0  2c 32 35 35 2c 30 3a c8  93 20 c8 90 20 58 25 2b  |,255,0:.. .. X%+|
000198d0  32 30 2c 59 25 2b 31 30  34 2c 67 72 6e 25 2c 32  |20,Y%+104,grn%,2|
000198e0  34 0d 0d 90 28 20 e6 20  30 2c 30 2c 32 35 35 3a  |4...( . 0,0,255:|
000198f0  c8 93 20 c8 90 20 58 25  2b 32 30 2c 59 25 2b 36  |.. .. X%+20,Y%+6|
00019900  30 2c 62 6c 75 25 2c 32  34 0d 0d 91 14 20 f2 77  |0,blu%,24.... .w|
00019910  61 69 74 5f 6e 6f 5f 62  75 74 74 6f 6e 0d 0d 92  |ait_no_button...|
00019920  06 20 f5 0d 0d 93 2f 20  e6 20 72 65 64 25 2c 67  |. ..../ . red%,g|
00019930  72 6e 25 2c 62 6c 75 25  3a c8 93 20 c8 90 20 58  |rn%,blu%:.. .. X|
00019940  25 2b 33 34 34 2c 59 25  2b 31 32 34 2c 39 32 2c  |%+344,Y%+124,92,|
00019950  34 38 0d 0d 94 14 20 e7  20 72 65 64 25 3c 3e 72  |48.... . red%<>r|
00019960  65 64 31 25 20 8c 0d 0d  95 2c 20 e6 20 32 30 38  |ed1% ...., . 208|
00019970  2c 32 30 38 2c 32 31 36  3a c8 93 20 c8 90 20 58  |,208,216:.. .. X|
00019980  25 2b 32 38 36 2c 59 25  2b 31 34 34 2c 34 30 2c  |%+286,Y%+144,40,|
00019990  33 30 0d 0d 96 2e 20 72  65 64 24 3d c3 28 72 65  |30.... red$=.(re|
000199a0  64 25 2f 38 29 3a e7 20  a9 20 72 65 64 24 3c 32  |d%/8):. . red$<2|
000199b0  20 8c 20 72 65 64 24 3d  22 30 22 2b 72 65 64 24  | . red$="0"+red$|
000199c0  0d 0d 97 2d 20 f2 77 72  69 74 65 32 28 72 65 64  |...- .write2(red|
000199d0  24 2c 58 25 2b 32 37 38  2c 59 25 2b 31 34 32 2c  |$,X%+278,Y%+142,|
000199e0  34 29 3a 72 65 64 31 25  3d 72 65 64 25 0d 0d 98  |4):red1%=red%...|
000199f0  06 20 cd 0d 0d 99 14 20  e7 20 67 72 6e 25 3c 3e  |. ..... . grn%<>|
00019a00  67 72 6e 31 25 20 8c 0d  0d 9a 2c 20 e6 20 32 30  |grn1% ...., . 20|
00019a10  38 2c 32 30 38 2c 32 31  36 3a c8 93 20 c8 90 20  |8,208,216:.. .. |
00019a20  58 25 2b 32 38 36 2c 59  25 2b 31 30 30 2c 34 30  |X%+286,Y%+100,40|
00019a30  2c 33 30 0d 0d 9b 2e 20  67 72 6e 24 3d c3 28 67  |,30.... grn$=.(g|
00019a40  72 6e 25 2f 38 29 3a e7  20 a9 20 67 72 6e 24 3c  |rn%/8):. . grn$<|
00019a50  32 20 8c 20 67 72 6e 24  3d 22 30 22 2b 67 72 6e  |2 . grn$="0"+grn|
00019a60  24 0d 0d 9c 2c 20 f2 77  72 69 74 65 32 28 67 72  |$..., .write2(gr|
00019a70  6e 24 2c 58 25 2b 32 37  38 2c 59 25 2b 39 38 2c  |n$,X%+278,Y%+98,|
00019a80  34 29 3a 67 72 6e 31 25  3d 67 72 6e 25 0d 0d 9d  |4):grn1%=grn%...|
00019a90  06 20 cd 0d 0d 9e 14 20  e7 20 62 6c 75 25 3c 3e  |. ..... . blu%<>|
00019aa0  62 6c 75 31 25 20 8c 0d  0d 9f 2b 20 e6 20 32 30  |blu1% ....+ . 20|
00019ab0  38 2c 32 30 38 2c 32 31  36 3a c8 93 20 c8 90 20  |8,208,216:.. .. |
00019ac0  58 25 2b 32 38 36 2c 59  25 2b 35 36 2c 34 30 2c  |X%+286,Y%+56,40,|
00019ad0  33 30 0d 0d a0 2e 20 62  6c 75 24 3d c3 28 62 6c  |30.... blu$=.(bl|
00019ae0  75 25 2f 38 29 3a e7 20  a9 20 62 6c 75 24 3c 32  |u%/8):. . blu$<2|
00019af0  20 8c 20 62 6c 75 24 3d  22 30 22 2b 62 6c 75 24  | . blu$="0"+blu$|
00019b00  0d 0d a1 2c 20 f2 77 72  69 74 65 32 28 62 6c 75  |..., .write2(blu|
00019b10  24 2c 58 25 2b 32 38 30  2c 59 25 2b 35 34 2c 34  |$,X%+280,Y%+54,4|
00019b20  29 3a 62 6c 75 31 25 3d  62 6c 75 25 0d 0d a2 06  |):blu1%=blu%....|
00019b30  20 cd 0d 0d a3 32 20 f5  3a c8 97 20 58 2c 59 2c  | ....2 .:.. X,Y,|
00019b40  42 3a e7 20 42 3c 3e 34  20 8c 20 c8 97 20 c8 93  |B:. B<>4 . .. ..|
00019b50  20 58 25 2c 59 25 2d 59  32 25 2c 57 25 2c 48 25  | X%,Y%-Y2%,W%,H%|
00019b60  2b 59 32 25 0d 0d a4 0a  20 fd 20 42 3d 34 0d 0d  |+Y2%.... . B=4..|
00019b70  a5 1c 20 e7 20 66 6c 61  67 25 20 80 20 94 28 59  |.. . flag% . .(Y|
00019b80  2d 32 35 36 29 3c 32 38  20 8c 0d 0d a6 22 20 e7  |-256)<28 ...." .|
00019b90  20 94 28 58 2d 34 34 34  29 3c 32 38 20 8c 20 62  | .(X-444)<28 . b|
00019ba0  72 75 73 68 5f 73 69 7a  65 25 3d 34 0d 0d a7 22  |rush_size%=4..."|
00019bb0  20 e7 20 94 28 58 2d 35  32 30 29 3c 32 38 20 8c  | . .(X-520)<28 .|
00019bc0  20 62 72 75 73 68 5f 73  69 7a 65 25 3d 38 0d 0d  | brush_size%=8..|
00019bd0  a8 23 20 e7 20 94 28 58  2d 35 39 36 29 3c 32 38  |.# . .(X-596)<28|
00019be0  20 8c 20 62 72 75 73 68  5f 73 69 7a 65 25 3d 31  | . brush_size%=1|
00019bf0  32 0d 0d a9 23 20 e7 20  94 28 58 2d 36 37 34 29  |2...# . .(X-674)|
00019c00  3c 32 38 20 8c 20 62 72  75 73 68 5f 73 69 7a 65  |<28 . brush_size|
00019c10  25 3d 31 36 0d 0d aa 23  20 e7 20 94 28 58 2d 37  |%=16...# . .(X-7|
00019c20  34 38 29 3c 32 38 20 8c  20 62 72 75 73 68 5f 73  |48)<28 . brush_s|
00019c30  69 7a 65 25 3d 32 30 0d  0d ab 06 20 cd 0d 0d ac  |ize%=20.... ....|
00019c40  42 20 e7 20 58 3e 58 25  2b 31 38 20 80 20 58 3c  |B . X>X%+18 . X<|
00019c50  58 25 2b 31 39 2b 32 35  36 20 80 20 59 3e 59 25  |X%+19+256 . Y>Y%|
00019c60  2b 36 30 20 80 20 59 3c  59 25 2b 36 30 2b 32 36  |+60 . Y<Y%+60+26|
00019c70  20 8c 20 f2 62 6c 75 65  5f 73 6c 69 64 65 72 0d  | . .blue_slider.|
00019c80  0d ad 45 20 e7 20 58 3e  58 25 2b 31 38 20 80 20  |..E . X>X%+18 . |
00019c90  58 3c 58 25 2b 31 39 2b  32 35 36 20 80 20 59 3e  |X<X%+19+256 . Y>|
00019ca0  59 25 2b 31 30 34 20 80  20 59 3c 59 25 2b 31 30  |Y%+104 . Y<Y%+10|
00019cb0  34 2b 32 36 20 8c 20 f2  67 72 65 65 6e 5f 73 6c  |4+26 . .green_sl|
00019cc0  69 64 65 72 0d 0d ae 43  20 e7 20 58 3e 58 25 2b  |ider...C . X>X%+|
00019cd0  31 38 20 80 20 58 3c 58  25 2b 31 39 2b 32 35 36  |18 . X<X%+19+256|
00019ce0  20 80 20 59 3e 59 25 2b  31 34 38 20 80 20 59 3c  | . Y>Y%+148 . Y<|
00019cf0  59 25 2b 31 34 38 2b 32  36 20 8c 20 f2 72 65 64  |Y%+148+26 . .red|
00019d00  5f 73 6c 69 64 65 72 0d  0d af 3a 20 72 65 64 25  |_slider...: red%|
00019d10  3d 28 72 65 64 25 20 81  20 38 29 2a 38 3a 67 72  |=(red% . 8)*8:gr|
00019d20  6e 25 3d 28 67 72 6e 25  20 81 20 38 29 2a 38 3a  |n%=(grn% . 8)*8:|
00019d30  62 6c 75 25 3d 28 62 6c  75 25 20 81 20 38 29 2a  |blu%=(blu% . 8)*|
00019d40  38 0d 0d b0 20 20 fd 20  94 28 58 2d 37 36 38 29  |8...  . .(X-768)|
00019d50  3c 34 37 20 80 20 94 28  59 2d 33 38 36 29 3c 33  |<47 . .(Y-386)<3|
00019d60  33 0d 0d b1 28 20 52 47  42 25 3d b0 58 25 2b 33  |3...( RGB%=.X%+3|
00019d70  35 30 2c 59 25 2b 31 32  38 29 3a 6d 65 6e 75 5f  |50,Y%+128):menu_|
00019d80  72 65 64 72 61 77 25 3d  b9 0d 0d b2 28 20 f2 77  |redraw%=....( .w|
00019d90  61 69 74 5f 6e 6f 5f 62  75 74 74 6f 6e 3a c8 97  |ait_no_button:..|
00019da0  20 c8 93 20 30 2c 30 2c  31 32 38 30 2c 31 30 32  | .. 0,0,1280,102|
00019db0  34 0d 0d b3 06 20 e1 0d  0d b4 04 0d 0d b5 13 20  |4.... ......... |
00019dc0  dd 20 f2 62 6c 75 65 5f  73 6c 69 64 65 72 0d 0d  |. .blue_slider..|
00019dd0  b6 11 20 62 6c 75 25 3d  58 2d 31 39 2d 58 25 0d  |.. blu%=X-19-X%.|
00019de0  0d b7 2a 20 e6 20 30 2c  30 2c 32 35 35 3a c8 93  |..* . 0,0,255:..|
00019df0  20 c8 90 20 58 25 2b 32  30 2c 59 25 2b 36 30 2c  | .. X%+20,Y%+60,|
00019e00  62 6c 75 25 2d 32 2c 32  34 0d 0d b8 35 20 e6 20  |blu%-2,24...5 . |
00019e10  32 31 36 2c 32 31 36 2c  32 31 36 3a c8 93 20 c8  |216,216,216:.. .|
00019e20  90 20 58 25 2b 62 6c 75  25 2b 32 32 2c 59 25 2b  |. X%+blu%+22,Y%+|
00019e30  36 30 2c 32 35 32 2d 62  6c 75 25 2c 32 34 0d 0d  |60,252-blu%,24..|
00019e40  b9 18 20 c8 97 20 c8 93  20 58 25 2b 31 39 2c 59  |.. .. .. X%+19,Y|
00019e50  2c 32 35 35 2c 30 0d 0d  ba 06 20 e1 0d 0d bb 04  |,255,0.... .....|
00019e60  0d 0d bc 14 20 dd 20 f2  67 72 65 65 6e 5f 73 6c  |.... . .green_sl|
00019e70  69 64 65 72 0d 0d bd 11  20 67 72 6e 25 3d 58 2d  |ider.... grn%=X-|
00019e80  31 39 2d 58 25 0d 0d be  2b 20 e6 20 30 2c 32 35  |19-X%...+ . 0,25|
00019e90  35 2c 30 3a c8 93 20 c8  90 20 58 25 2b 32 30 2c  |5,0:.. .. X%+20,|
00019ea0  59 25 2b 31 30 34 2c 67  72 6e 25 2d 32 2c 32 34  |Y%+104,grn%-2,24|
00019eb0  0d 0d bf 36 20 e6 20 32  31 36 2c 32 31 36 2c 32  |...6 . 216,216,2|
00019ec0  31 36 3a c8 93 20 c8 90  20 58 25 2b 67 72 6e 25  |16:.. .. X%+grn%|
00019ed0  2b 32 32 2c 59 25 2b 31  30 34 2c 32 35 32 2d 67  |+22,Y%+104,252-g|
00019ee0  72 6e 25 2c 32 34 0d 0d  c0 18 20 c8 97 20 c8 93  |rn%,24.... .. ..|
00019ef0  20 58 25 2b 31 39 2c 59  2c 32 35 35 2c 30 0d 0d  | X%+19,Y,255,0..|
00019f00  c1 06 20 e1 0d 0d c2 04  0d 0d c3 12 20 dd 20 f2  |.. ......... . .|
00019f10  72 65 64 5f 73 6c 69 64  65 72 0d 0d c4 11 20 72  |red_slider.... r|
00019f20  65 64 25 3d 58 2d 31 39  2d 58 25 0d 0d c5 2b 20  |ed%=X-19-X%...+ |
00019f30  e6 20 32 35 35 2c 30 2c  30 3a c8 93 20 c8 90 20  |. 255,0,0:.. .. |
00019f40  58 25 2b 32 30 2c 59 25  2b 31 34 38 2c 72 65 64  |X%+20,Y%+148,red|
00019f50  25 2d 32 2c 32 34 0d 0d  c6 36 20 e6 20 32 31 36  |%-2,24...6 . 216|
00019f60  2c 32 31 36 2c 32 31 36  3a c8 93 20 c8 90 20 58  |,216,216:.. .. X|
00019f70  25 2b 72 65 64 25 2b 32  32 2c 59 25 2b 31 34 38  |%+red%+22,Y%+148|
00019f80  2c 32 35 32 2d 72 65 64  25 2c 32 34 0d 0d c7 18  |,252-red%,24....|
00019f90  20 c8 97 20 c8 93 20 58  25 2b 31 39 2c 59 2c 32  | .. .. X%+19,Y,2|
00019fa0  35 35 2c 30 0d 0d c8 06  20 e1 0d 0d c9 04 0d 0d  |55,0.... .......|
00019fb0  ca 22 20 dd 20 f2 62 6f  78 65 73 28 78 25 2c 79  |." . .boxes(x%,y|
00019fc0  25 2c 77 25 2c 68 25 2c  72 61 69 73 65 64 25 29  |%,w%,h%,raised%)|
00019fd0  0d 0d cb 2b 20 e7 20 72  61 69 73 65 64 25 20 8c  |...+ . raised% .|
00019fe0  20 e6 20 39 36 2c 39 36  2c 39 36 20 8b 20 e6 20  | . 96,96,96 . . |
00019ff0  32 35 35 2c 32 35 35 2c  32 35 35 0d 0d cc 2a 20  |255,255,255...* |
0001a000  c8 93 20 78 25 2c 79 25  2c 77 25 2c 68 25 3a c8  |.. x%,y%,w%,h%:.|
0001a010  93 20 78 25 2b 32 2c 79  25 2b 32 2c 77 25 2d 34  |. x%+2,y%+2,w%-4|
0001a020  2c 68 25 2d 34 0d 0d cd  2b 20 e7 20 72 61 69 73  |,h%-4...+ . rais|
0001a030  65 64 25 20 8c 20 e6 20  32 35 35 2c 32 35 35 2c  |ed% . . 255,255,|
0001a040  32 35 35 20 8b 20 e6 20  39 36 2c 39 36 2c 39 36  |255 . . 96,96,96|
0001a050  0d 0d ce 2c 20 86 20 78  25 2c 79 25 2c 78 25 2c  |..., . x%,y%,x%,|
0001a060  79 25 2b 68 25 3a 86 20  78 25 2c 79 25 2b 68 25  |y%+h%:. x%,y%+h%|
0001a070  2c 78 25 2b 77 25 2c 79  25 2b 68 25 0d 0d cf 3c  |,x%+w%,y%+h%...<|
0001a080  20 86 20 78 25 2b 32 2c  79 25 2b 32 2c 78 25 2b  | . x%+2,y%+2,x%+|
0001a090  32 2c 79 25 2b 68 25 2d  32 3a 86 20 78 25 2b 32  |2,y%+h%-2:. x%+2|
0001a0a0  2c 79 25 2b 68 25 2d 32  2c 78 25 2b 77 25 2d 32  |,y%+h%-2,x%+w%-2|
0001a0b0  2c 79 25 2b 68 25 2d 32  0d 0d d0 06 20 e1 0d 0d  |,y%+h%-2.... ...|
0001a0c0  d1 04 0d 0d d2 12 20 dd  20 f2 66 6c 6f 6f 64 5f  |...... . .flood_|
0001a0d0  66 69 6c 6c 0d 0d d3 1c  20 f2 64 69 73 70 6c 61  |fill.... .displa|
0001a0e0  79 5f 6d 65 6d 6f 72 79  3a 71 75 69 74 25 3d 30  |y_memory:quit%=0|
0001a0f0  0d 0d d4 16 20 f2 77 61  69 74 5f 6e 6f 5f 62 75  |.... .wait_no_bu|
0001a100  74 74 6f 6e 3a f5 0d 0d  d5 16 20 f5 3a c8 97 20  |tton:..... .:.. |
0001a110  58 2c 59 2c 42 3a fd 20  42 3c 3e 30 0d 0d d6 0c  |X,Y,B:. B<>0....|
0001a120  20 e7 20 59 3e 39 20 8c  0d 0d d7 0c 20 e7 20 42  | . Y>9 ..... . B|
0001a130  3d 34 20 8c 0d 0d d8 21  20 52 47 42 25 3d b0 58  |=4 ....! RGB%=.X|
0001a140  2c 59 29 3a 42 72 65 64  25 3d 28 52 47 42 25 80  |,Y):Bred%=(RGB%.|
0001a150  33 31 29 2a 38 0d 0d d9  33 20 42 67 72 6e 25 3d  |31)*8...3 Bgrn%=|
0001a160  28 28 52 47 42 25 3e 3e  35 29 80 33 31 29 2a 38  |((RGB%>>5).31)*8|
0001a170  3a 42 62 6c 75 25 3d 28  28 52 47 42 25 3e 3e 31  |:Bblu%=((RGB%>>1|
0001a180  30 29 80 33 31 29 2a 38  0d 0d da 31 20 e7 20 ac  |0).31)*8...1 . .|
0001a190  20 28 42 72 65 64 25 3d  72 65 64 25 20 80 20 42  | (Bred%=red% . B|
0001a1a0  67 72 6e 25 3d 67 72 6e  25 20 80 20 42 62 6c 75  |grn%=grn% . Bblu|
0001a1b0  25 3d 62 6c 75 25 29 20  8c 0d 0d db 2c 20 72 67  |%=blu%) ...., rg|
0001a1c0  62 25 3d 28 42 62 6c 75  25 3c 3c 32 34 29 2b 28  |b%=(Bblu%<<24)+(|
0001a1d0  42 67 72 6e 25 3c 3c 31  36 29 2b 28 42 72 65 64  |Bgrn%<<16)+(Bred|
0001a1e0  25 3c 3c 38 29 0d 0d dc  15 20 e6 20 72 65 64 25  |%<<8).... . red%|
0001a1f0  2c 67 72 6e 25 2c 62 6c  75 25 0d 0d dd 33 20 c8  |,grn%,blu%...3 .|
0001a200  99 20 22 43 6f 6c 6f 75  72 54 72 61 6e 73 5f 53  |. "ColourTrans_S|
0001a210  65 74 47 43 4f 4c 22 2c  72 67 62 25 2c 30 2c 30  |etGCOL",rgb%,0,0|
0001a220  2c 31 32 38 2c 30 3a c8  90 20 58 2c 59 0d 0d de  |,128,0:.. X,Y...|
0001a230  09 20 cc 20 ef 37 0d 0d  df 06 20 cd 0d 0d e0 06  |. . .7.... .....|
0001a240  20 cd 0d 0d e1 0c 20 e7  20 42 3d 31 20 8c 0d 0d  | ..... . B=1 ...|
0001a250  e2 20 20 52 47 42 25 3d  b0 58 2c 59 29 3a 72 65  |.  RGB%=.X,Y):re|
0001a260  64 25 3d 28 52 47 42 25  80 33 31 29 2a 38 0d 0d  |d%=(RGB%.31)*8..|
0001a270  e3 31 20 67 72 6e 25 3d  28 28 52 47 42 25 3e 3e  |.1 grn%=((RGB%>>|
0001a280  35 29 80 33 31 29 2a 38  3a 62 6c 75 25 3d 28 28  |5).31)*8:blu%=((|
0001a290  52 47 42 25 3e 3e 31 30  29 80 33 31 29 2a 38 0d  |RGB%>>10).31)*8.|
0001a2a0  0d e4 06 20 cd 0d 0d e5  3b 20 e7 20 42 3d 32 20  |... ....; . B=2 |
0001a2b0  8c 20 f2 75 70 6c 6f 61  64 5f 6d 65 6d 6f 72 79  |. .upload_memory|
0001a2c0  3a f2 72 67 62 5f 73 6c  69 64 65 72 73 28 30 29  |:.rgb_sliders(0)|
0001a2d0  3a f2 64 69 73 70 6c 61  79 5f 6d 65 6d 6f 72 79  |:.display_memory|
0001a2e0  0d 0d e6 06 20 cd 0d 0d  e7 23 20 f2 77 61 69 74  |.... ....# .wait|
0001a2f0  5f 6e 6f 5f 62 75 74 74  6f 6e 3a fd 20 59 3c 31  |_no_button:. Y<1|
0001a300  30 20 84 20 71 75 69 74  25 0d 0d e8 0c 20 f2 75  |0 . quit%.... .u|
0001a310  70 6d 69 6e 69 0d 0d e9  06 20 e1 0d 0d ea 04 0d  |pmini.... ......|
0001a320  0d eb 31 20 dd 20 f2 76  65 72 74 69 63 61 6c 5f  |..1 . .vertical_|
0001a330  77 72 69 74 65 28 46 24  2c 74 65 78 74 24 2c 78  |write(F$,text$,x|
0001a340  25 2c 79 25 2c 78 70 25  2c 79 70 25 2c 63 25 29  |%,y%,xp%,yp%,c%)|
0001a350  0d 0d ec 29 20 e7 20 66  6f 6e 74 25 3c 3e 2d 31  |...) . font%<>-1|
0001a360  20 c8 99 20 22 46 6f 6e  74 5f 4c 6f 73 65 46 6f  | .. "Font_LoseFo|
0001a370  6e 74 22 2c 66 6f 6e 74  25 0d 0d ed 31 20 c8 99  |nt",font%...1 ..|
0001a380  20 22 46 6f 6e 74 5f 46  69 6e 64 46 6f 6e 74 22  | "Font_FindFont"|
0001a390  2c 2c 46 24 2c 78 70 25  2a 31 36 2c 79 70 25 2a  |,,F$,xp%*16,yp%*|
0001a3a0  31 36 20 b8 20 66 6f 6e  74 25 0d 0d ee 14 20 59  |16 . font%.... Y|
0001a3b0  6d 61 78 25 3d 30 3a 58  6d 61 78 25 3d 30 0d 0d  |max%=0:Xmax%=0..|
0001a3c0  ef 16 20 e3 20 56 25 3d  31 20 b8 20 a9 28 74 65  |.. . V%=1 . .(te|
0001a3d0  78 74 24 29 0d 0d f0 3a  20 c8 99 20 22 46 6f 6e  |xt$)...: .. "Fon|
0001a3e0  74 5f 43 68 61 72 42 42  6f 78 22 2c 66 6f 6e 74  |t_CharBBox",font|
0001a3f0  25 2c 97 28 c1 74 65 78  74 24 2c 56 25 29 29 2c  |%,.(.text$,V%)),|
0001a400  31 36 20 b8 2c 2c 2c 72  33 25 2c 72 34 25 0d 0d  |16 .,,,r3%,r4%..|
0001a410  f1 1c 20 e7 20 72 33 25  3e 58 6d 61 78 25 20 8c  |.. . r3%>Xmax% .|
0001a420  20 58 6d 61 78 25 3d 72  33 25 0d 0d f2 1c 20 e7  | Xmax%=r3%.... .|
0001a430  20 72 34 25 3e 59 6d 61  78 25 20 8c 20 59 6d 61  | r4%>Ymax% . Yma|
0001a440  78 25 3d 72 34 25 0d 0d  f3 10 20 ed 3a 59 6d 61  |x%=r4%.... .:Yma|
0001a450  78 25 2b 3d 31 36 0d 0d  f4 16 20 e3 20 56 25 3d  |x%+=16.... . V%=|
0001a460  31 20 b8 20 a9 28 74 65  78 74 24 29 0d 0d f5 3f  |1 . .(text$)...?|
0001a470  20 43 48 24 3d c1 74 65  78 74 24 2c 56 25 2c 31  | CH$=.text$,V%,1|
0001a480  29 3a c8 99 20 22 46 6f  6e 74 5f 43 68 61 72 42  |):.. "Font_CharB|
0001a490  42 6f 78 22 2c 66 6f 6e  74 25 2c 97 28 43 48 24  |Box",font%,.(CH$|
0001a4a0  29 2c 31 36 20 b8 2c 2c  2c 77 25 0d 0d f6 18 20  |),16 .,,,w%.... |
0001a4b0  70 78 25 3d 78 25 2b 28  58 6d 61 78 25 2d 77 25  |px%=x%+(Xmax%-w%|
0001a4c0  29 2f 32 0d 0d f7 25 20  f2 77 72 69 74 65 28 46  |)/2...% .write(F|
0001a4d0  24 2c 43 48 24 2c 70 78  25 2c 79 25 2c 78 70 25  |$,CH$,px%,y%,xp%|
0001a4e0  2c 79 70 25 2c 63 25 29  0d 0d f8 14 20 79 25 3d  |,yp%,c%).... y%=|
0001a4f0  79 25 2d 59 6d 61 78 25  2d 34 3a ed 0d 0d f9 06  |y%-Ymax%-4:.....|
0001a500  20 e1 0d 0d fa 04 0d 0d  fb 19 20 dd 20 f2 63 6c  | ......... . .cl|
0001a510  6f 6e 69 6e 67 5f 62 72  75 73 68 28 73 25 29 0d  |oning_brush(s%).|
0001a520  0d fc 24 20 f2 64 69 73  70 6c 61 79 5f 6d 65 6d  |..$ .display_mem|
0001a530  6f 72 79 3a f2 77 61 69  74 5f 6e 6f 5f 62 75 74  |ory:.wait_no_but|
0001a540  74 6f 6e 0d 0d fd 0f 20  f5 3a c8 97 20 58 2c 59  |ton.... .:.. X,Y|
0001a550  2c 42 0d 0d fe 29 20 e6  20 33 2c 36 33 20 c8 9c  |,B...) . 3,63 ..|
0001a560  20 31 39 32 3a c8 93 20  58 2d 73 25 2f 32 2c 59  | 192:.. X-s%/2,Y|
0001a570  2d 73 25 2f 32 2c 73 25  2c 73 25 0d 0d ff 28 20  |-s%/2,s%,s%...( |
0001a580  f5 3a c8 97 20 58 31 2c  59 31 2c 42 3a fd 20 58  |.:.. X1,Y1,B:. X|
0001a590  31 3c 3e 58 20 84 20 59  31 3c 3e 59 20 84 20 42  |1<>X . Y1<>Y . B|
0001a5a0  3c 3e 30 0d 0e 00 2b 20  c8 93 20 58 2d 73 25 2f  |<>0...+ .. X-s%/|
0001a5b0  32 2c 59 2d 73 25 2f 32  2c 73 25 2c 73 25 3a 58  |2,Y-s%/2,s%,s%:X|
0001a5c0  3d 58 31 3a 59 3d 59 31  3a fd 20 42 3d 34 0d 0e  |=X1:Y=Y1:. B=4..|
0001a5d0  01 29 20 53 58 3d 58 31  3a 53 59 3d 59 31 3a c8  |.) SX=X1:SY=Y1:.|
0001a5e0  93 20 53 58 2d 73 25 2f  32 2c 53 59 2d 73 25 2f  |. SX-s%/2,SY-s%/|
0001a5f0  32 2c 73 25 2c 73 25 0d  0e 02 26 20 f2 77 61 69  |2,s%,s%...& .wai|
0001a600  74 5f 6e 6f 5f 62 75 74  74 6f 6e 3a f5 3a c8 97  |t_no_button:.:..|
0001a610  20 58 2c 59 2c 42 3a fd  20 42 3c 3e 30 0d 0e 03  | X,Y,B:. B<>0...|
0001a620  35 20 c8 93 20 53 58 2d  73 25 2f 32 2c 53 59 2d  |5 .. SX-s%/2,SY-|
0001a630  73 25 2f 32 2c 73 25 2c  73 25 3a 58 64 69 66 66  |s%/2,s%,s%:Xdiff|
0001a640  25 3d 58 2d 53 58 3a 59  64 69 66 66 25 3d 59 2d  |%=X-SX:Ydiff%=Y-|
0001a650  53 59 0d 0e 04 1e 20 58  3d 28 58 20 81 20 32 29  |SY.... X=(X . 2)|
0001a660  2a 32 3a 59 3d 28 59 20  81 20 32 29 2a 32 3a f5  |*2:Y=(Y . 2)*2:.|
0001a670  0d 0e 05 29 20 c8 93 20  58 2d 58 64 69 66 66 25  |...) .. X-Xdiff%|
0001a680  2d 73 25 2f 32 2c 59 2d  59 64 69 66 66 25 2d 73  |-s%/2,Y-Ydiff%-s|
0001a690  25 2f 32 2c 73 25 2c 73  25 0d 0e 06 2d 20 f5 3a  |%/2,s%,s%...- .:|
0001a6a0  c8 97 20 58 31 2c 59 31  2c 42 3a 58 31 3d 28 58  |.. X1,Y1,B:X1=(X|
0001a6b0  31 20 81 20 32 29 2a 32  3a 59 31 3d 28 59 31 20  |1 . 2)*2:Y1=(Y1 |
0001a6c0  81 20 32 29 2a 32 0d 0e  07 1b 20 fd 20 58 31 3c  |. 2)*2.... . X1<|
0001a6d0  3e 58 20 84 20 59 31 3c  3e 59 20 84 20 42 3c 3e  |>X . Y1<>Y . B<>|
0001a6e0  30 0d 0e 08 29 20 c8 93  20 58 2d 58 64 69 66 66  |0...) .. X-Xdiff|
0001a6f0  25 2d 73 25 2f 32 2c 59  2d 59 64 69 66 66 25 2d  |%-s%/2,Y-Ydiff%-|
0001a700  73 25 2f 32 2c 73 25 2c  73 25 0d 0e 09 0c 20 e7  |s%/2,s%,s%.... .|
0001a710  20 42 3d 32 20 8c 0d 0e  0a 19 20 73 25 2b 3d 38  | B=2 ..... s%+=8|
0001a720  3a e7 20 73 25 3e 34 38  20 8c 20 73 25 3d 38 0d  |:. s%>48 . s%=8.|
0001a730  0e 0b 14 20 f2 77 61 69  74 5f 6e 6f 5f 62 75 74  |... .wait_no_but|
0001a740  74 6f 6e 0d 0e 0c 06 20  cd 0d 0e 0d 0c 20 e7 20  |ton.... ..... . |
0001a750  42 3d 34 20 8c 0d 0e 0e  22 20 ec 20 58 2d 58 64  |B=4 ...." . X-Xd|
0001a760  69 66 66 25 2d 73 25 2f  32 2c 59 2d 59 64 69 66  |iff%-s%/2,Y-Ydif|
0001a770  66 25 2d 73 25 2f 32 0d  0e 0f 25 20 ec 20 42 59  |f%-s%/2...% . BY|
0001a780  20 73 25 2c 73 25 3a f0  20 26 42 46 2c 58 31 2d  | s%,s%:. &BF,X1-|
0001a790  73 25 2f 32 2c 59 31 2d  73 25 2f 32 0d 0e 10 06  |s%/2,Y1-s%/2....|
0001a7a0  20 cd 0d 0e 11 1c 20 58  3d 58 31 3a 59 3d 59 31  | ..... X=X1:Y=Y1|
0001a7b0  3a fd 20 42 3d 31 3a f2  75 70 6d 69 6e 69 0d 0e  |:. B=1:.upmini..|
0001a7c0  12 06 20 e1 0d 0e 13 04  0d 0e 14 10 20 dd 20 f2  |.. ......... . .|
0001a7d0  64 69 61 67 6f 6e 61 6c  0d 0e 15 13 20 c8 8e 20  |diagonal.... .. |
0001a7e0  6d 65 6e 75 5f 62 6f 78  25 20 ca 0d 0e 16 2d 20  |menu_box% ....- |
0001a7f0  c9 20 34 3a 52 3d 32 35  35 3a 47 3d 32 35 35 3a  |. 4:R=255:G=255:|
0001a800  42 3d 32 35 35 3a 52 49  3d 2d 2e 38 3a 47 49 3d  |B=255:RI=-.8:GI=|
0001a810  2d 2e 38 3a 42 49 3d 30  0d 0e 17 2d 20 c9 20 35  |-.8:BI=0...- . 5|
0001a820  3a 52 3d 32 35 35 3a 47  3d 32 35 35 3a 42 3d 32  |:R=255:G=255:B=2|
0001a830  35 35 3a 52 49 3d 30 3a  47 49 3d 2d 2e 38 3a 42  |55:RI=0:GI=-.8:B|
0001a840  49 3d 2d 2e 38 0d 0e 18  2a 20 c9 20 36 3a 52 3d  |I=-.8...* . 6:R=|
0001a850  30 3a 47 3d 32 35 35 3a  42 3d 32 35 35 3a 52 49  |0:G=255:B=255:RI|
0001a860  3d 2e 38 3a 47 49 3d 2d  2e 38 3a 42 49 3d 30 0d  |=.8:GI=-.8:BI=0.|
0001a870  0e 19 2a 20 c9 20 37 3a  52 3d 32 35 35 3a 47 3d  |..* . 7:R=255:G=|
0001a880  32 35 35 3a 42 3d 30 3a  52 49 3d 30 3a 47 49 3d  |255:B=0:RI=0:GI=|
0001a890  2d 2e 38 3a 42 49 3d 2e  38 0d 0e 1a 29 20 c9 20  |-.8:BI=.8...) . |
0001a8a0  38 3a 52 3d 32 35 35 3a  47 3d 32 35 35 3a 42 3d  |8:R=255:G=255:B=|
0001a8b0  30 3a 52 49 3d 30 3a 47  49 3d 2d 2e 38 3a 42 49  |0:RI=0:GI=-.8:BI|
0001a8c0  3d 30 0d 0e 1b 2d 20 c9  20 39 3a 52 3d 32 35 35  |=0...- . 9:R=255|
0001a8d0  3a 47 3d 32 35 35 3a 42  3d 32 35 35 3a 52 49 3d  |:G=255:B=255:RI=|
0001a8e0  2d 2e 38 3a 47 49 3d 30  3a 42 49 3d 2d 2e 38 0d  |-.8:GI=0:BI=-.8.|
0001a8f0  0e 1c 2c 20 c9 20 31 30  3a 52 3d 32 35 35 3a 47  |.., . 10:R=255:G|
0001a900  3d 32 35 35 3a 42 3d 30  3a 52 49 3d 2d 2e 38 3a  |=255:B=0:RI=-.8:|
0001a910  47 49 3d 30 3a 42 49 3d  2b 2e 38 0d 0e 1d 2a 20  |GI=0:BI=+.8...* |
0001a920  c9 20 31 31 3a 52 3d 32  35 35 3a 47 3d 30 3a 42  |. 11:R=255:G=0:B|
0001a930  3d 30 3a 52 49 3d 2d 2e  38 3a 47 49 3d 30 3a 42  |=0:RI=-.8:GI=0:B|
0001a940  49 3d 2b 2e 38 0d 0e 1e  2d 20 c9 20 31 32 3a 52  |I=+.8...- . 12:R|
0001a950  3d 32 35 35 3a 47 3d 30  3a 42 3d 30 3a 52 49 3d  |=255:G=0:B=0:RI=|
0001a960  2d 31 2e 36 3a 47 49 3d  2d 2e 38 3a 42 49 3d 31  |-1.6:GI=-.8:BI=1|
0001a970  2e 36 0d 0e 1f 31 20 c9  20 31 33 3a 52 3d 32 35  |.6...1 . 13:R=25|
0001a980  35 3a 47 3d 32 35 35 3a  42 3d 31 32 38 3a 52 49  |5:G=255:B=128:RI|
0001a990  3d 31 2e 36 3a 47 49 3d  34 2e 38 3a 42 49 3d 2d  |=1.6:GI=4.8:BI=-|
0001a9a0  33 2e 32 0d 0e 20 06 20  cb 0d 0e 21 20 20 59 3d  |3.2.. . ...!  Y=|
0001a9b0  32 30 34 38 3a e3 20 58  25 3d 2d 31 32 38 30 20  |2048:. X%=-1280 |
0001a9c0  b8 20 31 32 38 30 20 88  38 0d 0e 22 0c 20 e6 20  |. 1280 .8..". . |
0001a9d0  52 2c 47 2c 42 0d 0e 23  14 20 ec 20 58 25 2c 30  |R,G,B..#. . X%,0|
0001a9e0  3a ec 20 31 32 38 30 2c  59 0d 0e 24 10 20 f0 20  |:. 1280,Y..$. . |
0001a9f0  38 35 2c 31 32 38 30 2c  30 0d 0e 25 21 20 52 2b  |85,1280,0..%! R+|
0001aa00  3d 52 49 3a e7 20 52 3e  32 35 35 20 8c 20 52 3d  |=RI:. R>255 . R=|
0001aa10  32 35 35 3a 52 49 3d 2d  52 49 0d 0e 26 17 20 e7  |255:RI=-RI..&. .|
0001aa20  20 52 3c 30 20 8c 20 52  3d 30 3a 52 49 3d 2d 52  | R<0 . R=0:RI=-R|
0001aa30  49 0d 0e 27 21 20 47 2b  3d 47 49 3a e7 20 47 3e  |I..'! G+=GI:. G>|
0001aa40  32 35 35 20 8c 20 47 3d  32 35 35 3a 47 49 3d 2d  |255 . G=255:GI=-|
0001aa50  47 49 0d 0e 28 17 20 e7  20 47 3c 30 20 8c 20 47  |GI..(. . G<0 . G|
0001aa60  3d 30 3a 47 49 3d 2d 47  49 0d 0e 29 21 20 42 2b  |=0:GI=-GI..)! B+|
0001aa70  3d 42 49 3a e7 20 42 3e  32 35 35 20 8c 20 42 3d  |=BI:. B>255 . B=|
0001aa80  32 35 35 3a 42 49 3d 2d  42 49 0d 0e 2a 17 20 e7  |255:BI=-BI..*. .|
0001aa90  20 42 3c 30 20 8c 20 42  3d 30 3a 42 49 3d 2d 42  | B<0 . B=0:BI=-B|
0001aaa0  49 0d 0e 2b 0d 20 59 2d  3d 36 2e 34 3a ed 0d 0e  |I..+. Y-=6.4:...|
0001aab0  2c 21 20 e7 20 ac 28 6d  65 72 67 65 25 29 20 8c  |,! . .(merge%) .|
0001aac0  20 f2 75 70 6c 6f 61 64  5f 6d 65 6d 6f 72 79 0d  | .upload_memory.|
0001aad0  0e 2d 06 20 e1 0d 0e 2e  04 0d 0e 2f 18 20 dd 20  |.-. ......./. . |
0001aae0  f2 62 6f 72 64 65 72 28  72 25 2c 67 25 2c 62 25  |.border(r%,g%,b%|
0001aaf0  29 0d 0e 30 14 20 f2 64  69 73 70 6c 61 79 5f 6d  |)..0. .display_m|
0001ab00  65 6d 6f 72 79 0d 0e 31  27 20 57 25 3d 31 32 37  |emory..1' W%=127|
0001ab10  38 3a 59 25 3d 30 3a 69  6e 63 25 3d 31 36 2f 62  |8:Y%=0:inc%=16/b|
0001ab20  6f 72 64 65 72 5f 77 69  64 74 68 25 0d 0e 32 16  |order_width%..2.|
0001ab30  20 c8 8e 20 62 6f 72 64  65 72 5f 67 72 61 64 25  | .. border_grad%|
0001ab40  20 ca 0d 0e 33 23 20 c9  20 31 3a 72 69 25 3d 69  | ...3# . 1:ri%=i|
0001ab50  6e 63 25 3a 67 69 25 3d  69 6e 63 25 3a 62 69 25  |nc%:gi%=inc%:bi%|
0001ab60  3d 69 6e 63 25 0d 0e 34  24 20 c9 20 32 3a 72 69  |=inc%..4$ . 2:ri|
0001ab70  25 3d 69 6e 63 25 3a 67  69 25 3d 69 6e 63 25 3a  |%=inc%:gi%=inc%:|
0001ab80  62 69 25 3d 2d 69 6e 63  25 0d 0e 35 24 20 c9 20  |bi%=-inc%..5$ . |
0001ab90  33 3a 72 69 25 3d 2d 69  6e 63 25 3a 67 69 25 3d  |3:ri%=-inc%:gi%=|
0001aba0  69 6e 63 25 3a 62 69 25  3d 69 6e 63 25 0d 0e 36  |inc%:bi%=inc%..6|
0001abb0  25 20 c9 20 34 3a 72 69  25 3d 2d 69 6e 63 25 3a  |% . 4:ri%=-inc%:|
0001abc0  67 69 25 3d 69 6e 63 25  3a 62 69 25 3d 2d 69 6e  |gi%=inc%:bi%=-in|
0001abd0  63 25 0d 0e 37 24 20 c9  20 35 3a 72 69 25 3d 69  |c%..7$ . 5:ri%=i|
0001abe0  6e 63 25 3a 67 69 25 3d  2d 69 6e 63 25 3a 62 69  |nc%:gi%=-inc%:bi|
0001abf0  25 3d 69 6e 63 25 0d 0e  38 25 20 c9 20 36 3a 72  |%=inc%..8% . 6:r|
0001ac00  69 25 3d 69 6e 63 25 3a  67 69 25 3d 2d 69 6e 63  |i%=inc%:gi%=-inc|
0001ac10  25 3a 62 69 25 3d 2d 69  6e 63 25 0d 0e 39 25 20  |%:bi%=-inc%..9% |
0001ac20  c9 20 37 3a 72 69 25 3d  2d 69 6e 63 25 3a 67 69  |. 7:ri%=-inc%:gi|
0001ac30  25 3d 2d 69 6e 63 25 3a  62 69 25 3d 69 6e 63 25  |%=-inc%:bi%=inc%|
0001ac40  0d 0e 3a 26 20 c9 20 38  3a 72 69 25 3d 2d 69 6e  |..:& . 8:ri%=-in|
0001ac50  63 25 3a 67 69 25 3d 2d  69 6e 63 25 3a 62 69 25  |c%:gi%=-inc%:bi%|
0001ac60  3d 2d 69 6e 63 25 0d 0e  3b 06 20 cb 0d 0e 3c 21  |=-inc%..;. ...<!|
0001ac70  20 e3 20 58 25 3d 30 20  b8 20 33 31 2a 62 6f 72  | . X%=0 . 31*bor|
0001ac80  64 65 72 5f 77 69 64 74  68 25 20 88 32 0d 0e 3d  |der_width% .2..=|
0001ac90  1f 20 e6 20 72 25 2c 67  25 2c 62 25 3a c8 93 20  |. . r%,g%,b%:.. |
0001aca0  58 25 2c 59 25 2c 57 25  2c 62 68 25 0d 0e 3e 17  |X%,Y%,W%,bh%..>.|
0001acb0  20 59 25 2b 3d 32 3a 57  25 2d 3d 34 3a 62 68 25  | Y%+=2:W%-=4:bh%|
0001acc0  2d 3d 34 0d 0e 3f 1e 20  72 25 2b 3d 72 69 25 3a  |-=4..?. r%+=ri%:|
0001acd0  e7 20 72 25 3e 32 35 35  20 8c 20 72 25 3d 32 35  |. r%>255 . r%=25|
0001ace0  35 0d 0e 40 12 20 e7 20  72 25 3c 30 20 8c 20 72  |5..@. . r%<0 . r|
0001acf0  25 3d 30 0d 0e 41 1e 20  67 25 2b 3d 67 69 25 3a  |%=0..A. g%+=gi%:|
0001ad00  e7 20 67 25 3e 32 35 35  20 8c 20 67 25 3d 32 35  |. g%>255 . g%=25|
0001ad10  35 0d 0e 42 12 20 e7 20  67 25 3c 30 20 8c 20 67  |5..B. . g%<0 . g|
0001ad20  25 3d 30 0d 0e 43 1e 20  62 25 2b 3d 62 69 25 3a  |%=0..C. b%+=bi%:|
0001ad30  e7 20 62 25 3e 32 35 35  20 8c 20 62 25 3d 32 35  |. b%>255 . b%=25|
0001ad40  35 0d 0e 44 12 20 e7 20  62 25 3c 30 20 8c 20 62  |5..D. . b%<0 . b|
0001ad50  25 3d 30 0d 0e 45 06 20  ed 0d 0e 46 0c 20 f2 75  |%=0..E. ...F. .u|
0001ad60  70 6d 69 6e 69 0d 0e 47  06 20 e1 0d 0e 48 04 0d  |pmini..G. ...H..|
0001ad70  0e 49 1b 20 dd 20 f2 6c  6f 61 64 5f 6f 76 65 72  |.I. . .load_over|
0001ad80  6c 61 79 5f 73 70 72 69  74 65 0d 0e 4a 31 20 21  |lay_sprite..J1 !|
0001ad90  73 70 72 25 3d 74 78 74  73 69 7a 65 25 3a 73 70  |spr%=txtsize%:sp|
0001ada0  72 25 21 34 3d 30 3a 73  70 72 25 21 38 3d 31 36  |r%!4=0:spr%!8=16|
0001adb0  3a 73 70 72 25 21 31 32  3d 31 36 0d 0e 4b 2f 20  |:spr%!12=16..K/ |
0001adc0  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 31  |.. sprswi%,256+1|
0001add0  30 2c 73 70 72 25 2c 64  69 72 24 2b 22 2e 22 2b  |0,spr%,dir$+"."+|
0001ade0  63 61 74 24 28 62 6f 78  25 29 0d 0e 4c 34 20 c8  |cat$(box%)..L4 .|
0001adf0  99 20 73 70 72 73 77 69  25 2c 32 35 36 2b 31 33  |. sprswi%,256+13|
0001ae00  2c 73 70 72 25 2c 73 70  72 69 74 65 5f 6e 61 6d  |,spr%,sprite_nam|
0001ae10  65 25 2c 33 32 2c 31 20  b8 2c 2c 2c 4c 25 0d 0e  |e%,32,1 .,,,L%..|
0001ae20  4d 35 20 3f 28 73 70 72  69 74 65 5f 6e 61 6d 65  |M5 ?(sprite_name|
0001ae30  25 2b 4c 25 29 3d 31 33  3a 73 70 72 69 74 65 5f  |%+L%)=13:sprite_|
0001ae40  6e 61 6d 65 24 3d 24 73  70 72 69 74 65 5f 6e 61  |name$=$sprite_na|
0001ae50  6d 65 25 0d 0e 4e 44 20  6f 76 65 72 6c 61 79 25  |me%..ND overlay%|
0001ae60  3d b9 3a 6f 76 65 72 6c  61 79 5f 6f 75 74 6c 69  |=.:overlay_outli|
0001ae70  6e 65 25 3d 30 3a 73 63  72 65 65 6e 5f 67 72 61  |ne%=0:screen_gra|
0001ae80  62 62 65 64 25 3d 30 3a  6d 61 73 6b 5f 63 72 65  |bbed%=0:mask_cre|
0001ae90  61 74 65 64 25 3d 30 0d  0e 4f 34 20 e7 20 c2 64  |ated%=0..O4 . .d|
0001aea0  69 72 24 2c 37 29 3d 22  50 53 74 69 6c 65 73 22  |ir$,7)="PStiles"|
0001aeb0  20 8c 20 f2 74 69 6c 65  64 5f 73 70 72 69 74 65  | . .tiled_sprite|
0001aec0  5f 62 61 63 6b 67 72 6f  75 6e 64 0d 0e 50 06 20  |_background..P. |
0001aed0  e1 0d 0e 51 04 0d 0e 52  1b 20 dd 20 f2 67 72 61  |...Q...R. . .gra|
0001aee0  62 5f 73 63 72 65 65 6e  5f 65 6c 6c 69 70 73 65  |b_screen_ellipse|
0001aef0  0d 0e 53 24 20 f2 64 69  73 70 6c 61 79 5f 6d 65  |..S$ .display_me|
0001af00  6d 6f 72 79 3a f2 77 61  69 74 5f 6e 6f 5f 62 75  |mory:.wait_no_bu|
0001af10  74 74 6f 6e 0d 0e 54 31  20 21 73 70 72 25 3d 74  |tton..T1 !spr%=t|
0001af20  78 74 73 69 7a 65 25 3a  73 70 72 25 21 34 3d 30  |xtsize%:spr%!4=0|
0001af30  3a 73 70 72 25 21 38 3d  31 36 3a 73 70 72 25 21  |:spr%!8=16:spr%!|
0001af40  31 32 3d 31 36 0d 0e 55  38 20 c8 97 20 58 25 2c  |12=16..U8 .. X%,|
0001af50  59 25 2c 42 25 3a 52 31  25 3d 32 30 30 3a 52 32  |Y%,B%:R1%=200:R2|
0001af60  25 3d 32 30 30 3a e6 20  33 2c 36 33 3a c8 9d 20  |%=200:. 3,63:.. |
0001af70  58 25 2c 59 25 2c 52 31  25 2c 52 32 25 0d 0e 56  |X%,Y%,R1%,R2%..V|
0001af80  32 20 f5 3a f5 3a c8 97  20 58 32 25 2c 59 32 25  |2 .:.:.. X2%,Y2%|
0001af90  2c 42 25 3a fd 20 58 32  25 3c 3e 58 25 20 84 20  |,B%:. X2%<>X% . |
0001afa0  59 32 25 3c 3e 59 25 20  84 20 42 25 3c 3e 30 0d  |Y2%<>Y% . B%<>0.|
0001afb0  0e 57 23 20 c8 9d 20 58  25 2c 59 25 2c 52 31 25  |.W# .. X%,Y%,R1%|
0001afc0  2c 52 32 25 3a 58 25 3d  58 32 25 3a 59 25 3d 59  |,R2%:X%=X2%:Y%=Y|
0001afd0  32 25 0d 0e 58 1d 20 e7  20 42 25 3d 32 20 80 20  |2%..X. . B%=2 . |
0001afe0  52 31 25 3e 38 20 80 20  52 32 25 3e 38 20 8c 0d  |R1%>8 . R2%>8 ..|
0001aff0  0e 59 15 20 e7 20 a6 28  2d 35 29 20 8c 20 52 31  |.Y. . .(-5) . R1|
0001b000  25 2d 3d 31 0d 0e 5a 15  20 e7 20 a6 28 2d 36 29  |%-=1..Z. . .(-6)|
0001b010  20 8c 20 52 32 25 2d 3d  31 0d 0e 5b 26 20 e7 20  | . R2%-=1..[& . |
0001b020  ac 28 a6 2d 35 29 20 80  20 ac 28 a6 2d 36 29 20  |.(.-5) . .(.-6) |
0001b030  8c 20 52 31 25 2d 3d 31  3a 52 32 25 2d 3d 31 0d  |. R1%-=1:R2%-=1.|
0001b040  0e 5c 0c 20 4b 25 3d a6  28 32 29 0d 0e 5d 06 20  |.\. K%=.(2)..]. |
0001b050  cd 0d 0e 5e 40 20 e7 20  42 25 3d 31 20 80 20 28  |...^@ . B%=1 . (|
0001b060  28 52 31 25 2b 31 29 2a  28 52 32 25 2b 31 29 2a  |(R1%+1)*(R2%+1)*|
0001b070  32 29 2b 28 28 52 31 25  2b 31 29 2a 28 52 32 25  |2)+((R1%+1)*(R2%|
0001b080  2b 31 29 2f 38 29 3c 74  78 74 73 69 7a 65 25 20  |+1)/8)<txtsize% |
0001b090  8c 0d 0e 5f 15 20 e7 20  a6 28 2d 35 29 20 8c 20  |..._. . .(-5) . |
0001b0a0  52 31 25 2b 3d 31 0d 0e  60 15 20 e7 20 a6 28 2d  |R1%+=1..`. . .(-|
0001b0b0  36 29 20 8c 20 52 32 25  2b 3d 31 0d 0e 61 26 20  |6) . R2%+=1..a& |
0001b0c0  e7 20 ac 28 a6 2d 35 29  20 80 20 ac 28 a6 2d 36  |. .(.-5) . .(.-6|
0001b0d0  29 20 8c 20 52 31 25 2b  3d 31 3a 52 32 25 2b 3d  |) . R1%+=1:R2%+=|
0001b0e0  31 0d 0e 62 0c 20 4b 25  3d a6 28 32 29 0d 0e 63  |1..b. K%=.(2)..c|
0001b0f0  06 20 cd 0d 0e 64 17 20  c8 9d 20 58 32 25 2c 59  |. ...d. .. X2%,Y|
0001b100  32 25 2c 52 31 25 2c 52  32 25 0d 0e 65 27 20 fd  |2%,R1%,R2%..e' .|
0001b110  20 42 25 3d 34 3a 52 31  25 3d 28 52 31 25 81 34  | B%=4:R1%=(R1%.4|
0001b120  29 2a 34 3a 52 32 25 3d  28 52 32 25 81 34 29 2a  |)*4:R2%=(R2%.4)*|
0001b130  34 0d 0e 66 1a 20 e6 20  30 2c 30 3a f2 64 69 73  |4..f. . 0,0:.dis|
0001b140  70 6c 61 79 5f 6d 65 6d  6f 72 79 0d 0e 67 47 20  |play_memory..gG |
0001b150  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 31  |.. sprswi%,256+1|
0001b160  36 2c 73 70 72 25 2c 22  65 6c 6c 69 70 73 65 22  |6,spr%,"ellipse"|
0001b170  2c 30 2c 58 32 25 2d 52  31 25 2c 59 32 25 2d 52  |,0,X2%-R1%,Y2%-R|
0001b180  32 25 2c 58 32 25 2b 52  31 25 2c 59 32 25 2b 52  |2%,X2%+R1%,Y2%+R|
0001b190  32 25 0d 0e 68 25 20 c8  99 20 73 70 72 73 77 69  |2%..h% .. sprswi|
0001b1a0  25 2c 32 35 36 2b 32 39  2c 73 70 72 25 2c 22 65  |%,256+29,spr%,"e|
0001b1b0  6c 6c 69 70 73 65 22 0d  0e 69 25 20 c8 99 20 73  |llipse"..i% .. s|
0001b1c0  70 72 73 77 69 25 2c 32  35 36 2b 36 31 2c 73 70  |prswi%,256+61,sp|
0001b1d0  72 25 2c 22 65 6c 6c 69  70 73 65 22 0d 0e 6a 1d  |r%,"ellipse"..j.|
0001b1e0  20 e6 30 3a c8 93 20 c8  90 20 30 2c 30 2c 52 31  | .0:.. .. 0,0,R1|
0001b1f0  25 2a 32 2c 52 32 25 2a  32 0d 0e 6b 1d 20 e6 31  |%*2,R2%*2..k. .1|
0001b200  3a c8 9d 20 c8 90 20 52  31 25 2c 52 32 25 2c 52  |:.. .. R1%,R2%,R|
0001b210  31 25 2c 52 32 25 0d 0e  6c 3e 20 c8 99 20 73 70  |1%,R2%..l> .. sp|
0001b220  72 73 77 69 25 2c 32 35  36 2b 36 31 2c 73 70 72  |rswi%,256+61,spr|
0001b230  25 2c 30 3a 87 3a c8 96  3a 73 63 72 65 65 6e 5f  |%,0:.:..:screen_|
0001b240  67 72 61 62 62 65 64 25  3d b9 3a 67 72 61 62 24  |grabbed%=.:grab$|
0001b250  3d 22 65 22 0d 0e 6d 40  20 67 72 61 62 73 69 7a  |="e"..m@ grabsiz|
0001b260  65 31 25 3d 58 32 25 3a  67 72 61 62 73 69 7a 65  |e1%=X2%:grabsize|
0001b270  32 25 3d 59 32 25 3a 67  72 61 62 73 69 7a 65 33  |2%=Y2%:grabsize3|
0001b280  25 3d 52 31 25 3a 67 72  61 62 73 69 7a 65 34 25  |%=R1%:grabsize4%|
0001b290  3d 52 32 25 0d 0e 6e 43  20 6f 76 65 72 6c 61 79  |=R2%..nC overlay|
0001b2a0  25 3d b9 3a 6f 76 65 72  6c 61 79 5f 6f 75 74 6c  |%=.:overlay_outl|
0001b2b0  69 6e 65 25 3d b9 3a 73  70 72 69 74 65 5f 6e 61  |ine%=.:sprite_na|
0001b2c0  6d 65 24 3d 22 65 6c 6c  69 70 73 65 22 3a 4f 4f  |me$="ellipse":OO|
0001b2d0  43 25 3d 31 30 32 33 0d  0e 6f 14 20 6d 61 73 6b  |C%=1023..o. mask|
0001b2e0  5f 63 72 65 61 74 65 64  25 3d 30 0d 0e 70 06 20  |_created%=0..p. |
0001b2f0  e1 0d 0e 71 04 0d 0e 72  1d 20 dd 20 f2 67 72 61  |...q...r. . .gra|
0001b300  62 5f 73 63 72 65 65 6e  5f 72 65 63 74 61 6e 67  |b_screen_rectang|
0001b310  6c 65 0d 0e 73 24 20 f2  64 69 73 70 6c 61 79 5f  |le..s$ .display_|
0001b320  6d 65 6d 6f 72 79 3a f2  77 61 69 74 5f 6e 6f 5f  |memory:.wait_no_|
0001b330  62 75 74 74 6f 6e 0d 0e  74 31 20 f2 67 72 61 62  |button..t1 .grab|
0001b340  5f 72 65 63 74 61 6e 67  6c 65 5f 63 75 72 73 6f  |_rectangle_curso|
0001b350  72 3a e6 20 30 2c 30 3a  f2 64 69 73 70 6c 61 79  |r:. 0,0:.display|
0001b360  5f 6d 65 6d 6f 72 79 0d  0e 75 31 20 21 73 70 72  |_memory..u1 !spr|
0001b370  25 3d 74 78 74 73 69 7a  65 25 3a 73 70 72 25 21  |%=txtsize%:spr%!|
0001b380  34 3d 30 3a 73 70 72 25  21 38 3d 31 36 3a 73 70  |4=0:spr%!8=16:sp|
0001b390  72 25 21 31 32 3d 31 36  0d 0e 76 33 20 c8 99 20  |r%!12=16..v3 .. |
0001b3a0  73 70 72 73 77 69 25 2c  32 35 36 2b 31 36 2c 73  |sprswi%,256+16,s|
0001b3b0  70 72 25 2c 22 72 65 63  74 61 6e 67 6c 65 22 2c  |pr%,"rectangle",|
0001b3c0  30 2c 58 31 2c 59 31 2c  58 2c 59 0d 0e 77 4c 20  |0,X1,Y1,X,Y..wL |
0001b3d0  73 63 72 65 65 6e 5f 67  72 61 62 62 65 64 25 3d  |screen_grabbed%=|
0001b3e0  b9 3a 67 72 61 62 73 69  7a 65 31 25 3d 58 31 3a  |.:grabsize1%=X1:|
0001b3f0  67 72 61 62 73 69 7a 65  32 25 3d 59 31 3a 67 72  |grabsize2%=Y1:gr|
0001b400  61 62 73 69 7a 65 33 25  3d 58 3a 67 72 61 62 73  |absize3%=X:grabs|
0001b410  69 7a 65 34 25 3d 59 0d  0e 78 4f 20 6f 76 65 72  |ize4%=Y..xO over|
0001b420  6c 61 79 25 3d b9 3a 6f  76 65 72 6c 61 79 5f 6f  |lay%=.:overlay_o|
0001b430  75 74 6c 69 6e 65 25 3d  30 3a 73 70 72 69 74 65  |utline%=0:sprite|
0001b440  5f 6e 61 6d 65 24 3d 22  72 65 63 74 61 6e 67 6c  |_name$="rectangl|
0001b450  65 22 3a 4f 4f 43 25 3d  31 30 32 33 3a 67 72 61  |e":OOC%=1023:gra|
0001b460  62 24 3d 22 72 22 0d 0e  79 14 20 6d 61 73 6b 5f  |b$="r"..y. mask_|
0001b470  63 72 65 61 74 65 64 25  3d 30 0d 0e 7a 06 20 e1  |created%=0..z. .|
0001b480  0d 0e 7b 04 0d 0e 7c 17  20 dd 20 a4 77 68 69 63  |..{...|. . .whic|
0001b490  68 5f 74 72 61 6e 73 6c  61 74 65 0d 0e 7d 17 20  |h_translate..}. |
0001b4a0  c8 8e 20 28 73 70 72 25  21 35 36 29 80 32 35 35  |.. (spr%!56).255|
0001b4b0  20 ca 0d 0e 7e 3d 20 c9  20 39 2c 31 32 2c 31 34  | ...~= . 9,12,14|
0001b4c0  2c 31 36 2c 31 37 2c 32  30 2c 32 32 2c 32 37 2c  |,16,17,20,22,27,|
0001b4d0  33 31 2c 33 35 2c 33 39  2c 34 33 2c 34 36 2c 34  |31,35,39,43,46,4|
0001b4e0  38 3a 74 25 3d 74 72 61  6e 73 6c 61 74 65 25 0d  |8:t%=translate%.|
0001b4f0  0e 7f 38 20 c9 20 31 30  2c 31 33 2c 31 35 2c 32  |..8 . 10,13,15,2|
0001b500  31 2c 32 34 2c 32 38 2c  33 32 2c 33 36 2c 34 30  |1,24,28,32,36,40|
0001b510  2c 34 37 2c 34 39 3a 74  25 3d 74 72 61 6e 73 6c  |,47,49:t%=transl|
0001b520  61 74 65 32 35 36 25 0d  0e 80 0b 20 7f 20 74 25  |ate256%.... . t%|
0001b530  3d 30 0d 0e 81 06 20 cb  0d 0e 82 08 20 3d 74 25  |=0.... ..... =t%|
0001b540  0d 0e 83 04 0d 0e 84 1b  20 dd 20 f2 70 6c 6f 74  |........ . .plot|
0001b550  5f 6f 76 65 72 6c 61 79  5f 73 70 72 69 74 65 0d  |_overlay_sprite.|
0001b560  0e 85 18 20 74 25 3d a4  77 68 69 63 68 5f 74 72  |... t%=.which_tr|
0001b570  61 6e 73 6c 61 74 65 0d  0e 86 26 20 c8 97 20 c8  |anslate...& .. .|
0001b580  93 20 2d 36 34 30 2c 2d  35 31 32 2c 31 32 38 30  |. -640,-512,1280|
0001b590  2b 36 34 30 2c 31 30 32  34 2b 35 31 32 0d 0e 87  |+640,1024+512...|
0001b5a0  24 20 f2 64 69 73 70 6c  61 79 5f 6d 65 6d 6f 72  |$ .display_memor|
0001b5b0  79 3a f2 77 61 69 74 5f  6e 6f 5f 62 75 74 74 6f  |y:.wait_no_butto|
0001b5c0  6e 0d 0e 88 23 20 e6 20  32 35 35 2c 32 35 35 2c  |n...# . 255,255,|
0001b5d0  32 35 35 3a c8 93 20 30  2c 30 2c 31 32 37 38 2c  |255:.. 0,0,1278,|
0001b5e0  31 30 32 32 0d 0e 89 0d  20 c8 97 20 58 2c 59 2c  |1022.... .. X,Y,|
0001b5f0  42 0d 0e 8a 34 20 c8 99  20 73 70 72 73 77 69 25  |B...4 .. sprswi%|
0001b600  2c 32 35 36 2b 35 32 2c  73 70 72 25 2c 73 70 72  |,256+52,spr%,spr|
0001b610  69 74 65 5f 6e 61 6d 65  24 2c 58 2c 59 2c 31 31  |ite_name$,X,Y,11|
0001b620  2c 30 2c 74 25 0d 0e 8b  06 20 f5 0d 0e 8c 29 20  |,0,t%.... ....) |
0001b630  f5 3a c8 97 20 78 2c 79  2c 62 3a fd 20 78 3c 3e  |.:.. x,y,b:. x<>|
0001b640  58 20 84 20 59 3c 3e 79  20 84 20 62 3d 31 20 84  |X . Y<>y . b=1 .|
0001b650  20 62 3d 34 0d 0e 8d 34  20 c8 99 20 73 70 72 73  | b=4...4 .. sprs|
0001b660  77 69 25 2c 32 35 36 2b  35 32 2c 73 70 72 25 2c  |wi%,256+52,spr%,|
0001b670  73 70 72 69 74 65 5f 6e  61 6d 65 24 2c 58 2c 59  |sprite_name$,X,Y|
0001b680  2c 31 31 2c 30 2c 74 25  0d 0e 8e 34 20 c8 99 20  |,11,0,t%...4 .. |
0001b690  73 70 72 73 77 69 25 2c  32 35 36 2b 35 32 2c 73  |sprswi%,256+52,s|
0001b6a0  70 72 25 2c 73 70 72 69  74 65 5f 6e 61 6d 65 24  |pr%,sprite_name$|
0001b6b0  2c 78 2c 79 2c 31 31 2c  30 2c 74 25 0d 0e 8f 0c  |,x,y,11,0,t%....|
0001b6c0  20 58 3d 78 3a 59 3d 79  0d 0e 90 10 20 fd 20 62  | X=x:Y=y.... . b|
0001b6d0  3d 31 20 84 20 62 3d 34  0d 0e 91 14 20 f2 64 69  |=1 . b=4.... .di|
0001b6e0  73 70 6c 61 79 5f 6d 65  6d 6f 72 79 0d 0e 92 20  |splay_memory... |
0001b6f0  20 e7 20 62 3d 31 20 c8  97 20 c8 93 20 30 2c 30  | . b=1 .. .. 0,0|
0001b700  2c 31 32 38 30 2c 31 30  32 34 3a e1 0d 0e 93 34  |,1280,1024:....4|
0001b710  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
0001b720  35 32 2c 73 70 72 25 2c  73 70 72 69 74 65 5f 6e  |52,spr%,sprite_n|
0001b730  61 6d 65 24 2c 78 2c 79  2c 31 31 2c 30 2c 74 25  |ame$,x,y,11,0,t%|
0001b740  0d 0e 94 31 20 e7 20 62  3d 34 20 80 20 6f 76 65  |...1 . b=4 . ove|
0001b750  72 6c 61 79 5f 6f 75 74  6c 69 6e 65 25 20 80 20  |rlay_outline% . |
0001b760  4f 4f 43 25 3e 30 20 80  20 4f 4f 43 25 3c 34 20  |OOC%>0 . OOC%<4 |
0001b770  8c 0d 0e 95 1e 20 20 f2  73 70 72 69 74 65 5f 73  |.....  .sprite_s|
0001b780  68 61 64 6f 77 28 78 2c  79 2c 4f 4f 43 25 29 0d  |hadow(x,y,OOC%).|
0001b790  0e 96 07 20 20 cc 0d 0e  97 20 20 20 e7 20 62 3d  |...  ....   . b=|
0001b7a0  34 20 80 20 6f 76 65 72  6c 61 79 5f 6f 75 74 6c  |4 . overlay_outl|
0001b7b0  69 6e 65 25 20 8c 0d 0e  98 3e 20 20 20 72 25 3d  |ine% ....>   r%=|
0001b7c0  28 4f 4f 43 25 80 33 31  29 2a 38 3a 67 25 3d 28  |(OOC%.31)*8:g%=(|
0001b7d0  28 4f 4f 43 25 3e 3e 35  29 80 33 31 29 2a 38 3a  |(OOC%>>5).31)*8:|
0001b7e0  62 25 3d 28 28 4f 4f 43  25 3e 3e 31 30 29 80 33  |b%=((OOC%>>10).3|
0001b7f0  31 29 2a 38 0d 0e 99 1a  20 20 20 e7 20 73 63 72  |1)*8....   . scr|
0001b800  65 65 6e 5f 67 72 61 62  62 65 64 25 20 8c 0d 0e  |een_grabbed% ...|
0001b810  9a 12 20 20 20 20 e6 20  72 25 2c 67 25 2c 62 25  |..    . r%,g%,b%|
0001b820  0d 0e 9b 15 20 20 20 20  e7 20 67 72 61 62 24 3d  |....    . grab$=|
0001b830  22 65 22 20 8c 0d 0e 9c  42 20 20 20 20 20 c8 9d  |"e" ....B     ..|
0001b840  20 c8 90 20 67 72 61 62  73 69 7a 65 33 25 2b 78  | .. grabsize3%+x|
0001b850  2c 67 72 61 62 73 69 7a  65 34 25 2b 79 2c 67 72  |,grabsize4%+y,gr|
0001b860  61 62 73 69 7a 65 33 25  2b 38 2c 67 72 61 62 73  |absize3%+8,grabs|
0001b870  69 7a 65 34 25 2b 38 0d  0e 9d 09 20 20 20 20 cc  |ize4%+8....    .|
0001b880  0d 0e 9e 40 20 20 20 20  20 77 25 3d 67 72 61 62  |...@     w%=grab|
0001b890  73 69 7a 65 33 25 2d 67  72 61 62 73 69 7a 65 31  |size3%-grabsize1|
0001b8a0  25 2b 31 36 3a 68 25 3d  67 72 61 62 73 69 7a 65  |%+16:h%=grabsize|
0001b8b0  32 25 2d 67 72 61 62 73  69 7a 65 34 25 2b 31 36  |2%-grabsize4%+16|
0001b8c0  0d 0e 9f 1c 20 20 20 20  20 c8 93 20 c8 90 20 78  |....     .. .. x|
0001b8d0  2d 38 2c 79 2d 38 2c 77  25 2c 68 25 0d 0e a0 09  |-8,y-8,w%,h%....|
0001b8e0  20 20 20 20 cd 0d 0e a1  08 20 20 20 cc 0d 0e a2  |    .....   ....|
0001b8f0  36 20 20 20 20 6f 76 65  72 6c 61 79 5f 6f 75 74  |6    overlay_out|
0001b900  6c 69 6e 65 5f 52 47 42  25 3d 28 62 25 3c 3c 32  |line_RGB%=(b%<<2|
0001b910  34 29 2b 28 67 25 3c 3c  31 36 29 2b 28 72 25 3c  |4)+(g%<<16)+(r%<|
0001b920  3c 38 29 0d 0e a3 3f 20  20 20 20 c8 99 20 22 43  |<8)...?    .. "C|
0001b930  6f 6c 6f 75 72 54 72 61  6e 73 5f 53 65 74 47 43  |olourTrans_SetGC|
0001b940  4f 4c 22 2c 6f 76 65 72  6c 61 79 5f 6f 75 74 6c  |OL",overlay_outl|
0001b950  69 6e 65 5f 52 47 42 25  2c 30 2c 30 2c 31 32 38  |ine_RGB%,0,0,128|
0001b960  2c 30 0d 0e a4 2b 20 20  20 20 e3 20 59 25 3d 79  |,0...+    . Y%=y|
0001b970  2d 38 20 b8 20 79 2b 38  20 88 34 3a e3 20 58 25  |-8 . y+8 .4:. X%|
0001b980  3d 78 2d 38 20 b8 20 78  2b 38 20 88 34 0d 0e a5  |=x-8 . x+8 .4...|
0001b990  35 20 20 20 20 c8 99 20  73 70 72 73 77 69 25 2c  |5    .. sprswi%,|
0001b9a0  32 35 36 2b 34 39 2c 73  70 72 25 2c 73 70 72 69  |256+49,spr%,spri|
0001b9b0  74 65 5f 6e 61 6d 65 24  2c 58 25 2c 59 25 3a ed  |te_name$,X%,Y%:.|
0001b9c0  3a ed 0d 0e a6 08 20 20  20 cd 0d 0e a7 07 20 20  |:.....   .....  |
0001b9d0  cd 0d 0e a8 06 20 cd 0d  0e a9 3b 20 e7 20 62 3d  |..... ....; . b=|
0001b9e0  34 20 8c 20 c8 99 20 73  70 72 73 77 69 25 2c 32  |4 . .. sprswi%,2|
0001b9f0  35 36 2b 35 32 2c 73 70  72 25 2c 73 70 72 69 74  |56+52,spr%,sprit|
0001ba00  65 5f 6e 61 6d 65 24 2c  78 2c 79 2c 38 2c 30 2c  |e_name$,x,y,8,0,|
0001ba10  74 25 0d 0e aa 18 20 c8  97 20 c8 93 20 30 2c 30  |t%.... .. .. 0,0|
0001ba20  2c 31 32 38 30 2c 31 30  32 34 0d 0e ab 13 20 f2  |,1280,1024.... .|
0001ba30  75 70 6c 6f 61 64 5f 6d  65 6d 6f 72 79 0d 0e ac  |upload_memory...|
0001ba40  06 20 e1 0d 0e ad 04 0d  0e ae 19 20 dd 20 f2 70  |. ......... . .p|
0001ba50  61 69 6e 74 5f 77 69 74  68 5f 73 70 72 69 74 65  |aint_with_sprite|
0001ba60  0d 0e af 5c 20 e7 20 ac  20 6f 76 65 72 6c 61 79  |...\ . . overlay|
0001ba70  25 20 85 20 31 39 39 37  2c 22 4e 6f 20 73 70 72  |% . 1997,"No spr|
0001ba80  69 74 65 20 69 73 20 61  76 61 69 6c 61 62 6c 65  |ite is available|
0001ba90  20 2e 2e 2e 22 2b bd 31  33 2b 22 4c 6f 61 64 20  | ..."+.13+"Load |
0001baa0  6f 72 20 63 72 65 61 74  65 20 6f 6e 65 20 61 6e  |or create one an|
0001bab0  64 20 74 72 79 20 61 67  61 69 6e 22 0d 0e b0 18  |d try again"....|
0001bac0  20 74 25 3d a4 77 68 69  63 68 5f 74 72 61 6e 73  | t%=.which_trans|
0001bad0  6c 61 74 65 0d 0e b1 26  20 c8 97 20 c8 93 20 2d  |late...& .. .. -|
0001bae0  36 34 30 2c 2d 35 31 32  2c 31 32 38 30 2b 36 34  |640,-512,1280+64|
0001baf0  30 2c 31 30 32 34 2b 35  31 32 0d 0e b2 24 20 f2  |0,1024+512...$ .|
0001bb00  64 69 73 70 6c 61 79 5f  6d 65 6d 6f 72 79 3a f2  |display_memory:.|
0001bb10  77 61 69 74 5f 6e 6f 5f  62 75 74 74 6f 6e 0d 0e  |wait_no_button..|
0001bb20  b3 0d 20 c8 97 20 58 2c  59 2c 42 0d 0e b4 06 20  |.. .. X,Y,B.... |
0001bb30  f5 0d 0e b5 06 20 f5 0d  0e b6 34 20 c8 99 20 73  |..... ....4 .. s|
0001bb40  70 72 73 77 69 25 2c 32  35 36 2b 35 32 2c 73 70  |prswi%,256+52,sp|
0001bb50  72 25 2c 73 70 72 69 74  65 5f 6e 61 6d 65 24 2c  |r%,sprite_name$,|
0001bb60  58 2c 59 2c 31 31 2c 30  2c 74 25 0d 0e b7 21 20  |X,Y,11,0,t%...! |
0001bb70  f5 3a c8 97 20 58 31 2c  59 31 2c 42 3a fd 20 58  |.:.. X1,Y1,B:. X|
0001bb80  3c 3e 58 31 20 84 20 59  3c 3e 59 31 0d 0e b8 34  |<>X1 . Y<>Y1...4|
0001bb90  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
0001bba0  35 32 2c 73 70 72 25 2c  73 70 72 69 74 65 5f 6e  |52,spr%,sprite_n|
0001bbb0  61 6d 65 24 2c 58 2c 59  2c 31 31 2c 30 2c 74 25  |ame$,X,Y,11,0,t%|
0001bbc0  0d 0e b9 0e 20 58 3d 58  31 3a 59 3d 59 31 0d 0e  |.... X=X1:Y=Y1..|
0001bbd0  ba 0b 20 fd 20 42 3c 3e  30 0d 0e bb 39 20 e7 20  |.. . B<>0...9 . |
0001bbe0  42 3d 34 20 c8 99 20 73  70 72 73 77 69 25 2c 32  |B=4 .. sprswi%,2|
0001bbf0  35 36 2b 35 32 2c 73 70  72 25 2c 73 70 72 69 74  |56+52,spr%,sprit|
0001bc00  65 5f 6e 61 6d 65 24 2c  58 2c 59 2c 38 2c 30 2c  |e_name$,X,Y,8,0,|
0001bc10  74 25 0d 0e bc 0a 20 fd  20 42 3d 31 0d 0e bd 0c  |t%.... . B=1....|
0001bc20  20 f2 75 70 6d 69 6e 69  0d 0e be 18 20 c8 97 20  | .upmini.... .. |
0001bc30  c8 93 20 30 2c 30 2c 31  32 38 30 2c 31 30 32 34  |.. 0,0,1280,1024|
0001bc40  0d 0e bf 06 20 e1 0d 0e  c0 04 0d 0e c1 1f 20 dd  |.... ......... .|
0001bc50  20 f2 74 69 6c 65 64 5f  73 70 72 69 74 65 5f 62  | .tiled_sprite_b|
0001bc60  61 63 6b 67 72 6f 75 6e  64 0d 0e c2 28 20 f2 64  |ackground...( .d|
0001bc70  69 73 70 6c 61 79 5f 6d  65 6d 6f 72 79 3a 74 25  |isplay_memory:t%|
0001bc80  3d a4 77 68 69 63 68 5f  74 72 61 6e 73 6c 61 74  |=.which_translat|
0001bc90  65 0d 0e c3 32 20 c8 99  20 73 70 72 73 77 69 25  |e...2 .. sprswi%|
0001bca0  2c 32 35 36 2b 34 30 2c  73 70 72 25 2c 73 70 72  |,256+40,spr%,spr|
0001bcb0  69 74 65 5f 6e 61 6d 65  24 20 b8 2c 2c 2c 77 25  |ite_name$ .,,,w%|
0001bcc0  2c 68 25 0d 0e c4 2e 20  e3 20 59 25 3d 30 20 b8  |,h%.... . Y%=0 .|
0001bcd0  20 31 36 30 30 20 88 20  68 25 2a 32 3a e3 20 58  | 1600 . h%*2:. X|
0001bce0  25 3d 30 20 b8 20 31 38  30 30 20 88 20 77 25 2a  |%=0 . 1800 . w%*|
0001bcf0  32 0d 0e c5 35 20 c8 99  20 73 70 72 73 77 69 25  |2...5 .. sprswi%|
0001bd00  2c 32 35 36 2b 35 32 2c  73 70 72 25 2c 73 70 72  |,256+52,spr%,spr|
0001bd10  69 74 65 5f 6e 61 6d 65  24 2c 58 25 2c 59 25 2c  |ite_name$,X%,Y%,|
0001bd20  38 2c 30 2c 74 25 0d 0e  c6 17 20 ed 3a ed 3a f2  |8,0,t%.... .:.:.|
0001bd30  75 70 6c 6f 61 64 5f 6d  65 6d 6f 72 79 0d 0e c7  |upload_memory...|
0001bd40  06 20 e1 0d 0e c8 04 0d  0e c9 2d 20 dd 20 f2 73  |. ........- . .s|
0001bd50  74 61 72 5f 66 69 65 6c  64 3a 42 3d 31 38 30 3a  |tar_field:B=180:|
0001bd60  e3 20 59 25 3d 30 b8 31  30 32 33 88 34 3a e6 30  |. Y%=0.1023.4:.0|
0001bd70  2c 30 2c 42 0d 0e ca 27  20 c8 93 20 c8 90 30 2c  |,0,B...' .. ..0,|
0001bd80  59 25 2c 31 32 38 30 2c  34 3a 42 2d 3d 2e 38 3a  |Y%,1280,4:B-=.8:|
0001bd90  e7 20 42 3c 30 20 8c 20  42 3d 30 0d 0e cb 3c 20  |. B<0 . B=0...< |
0001bda0  ed 3a e3 20 4e 25 3d 31  b8 34 30 30 3a 58 25 3d  |.:. N%=1.400:X%=|
0001bdb0  b3 28 31 32 38 30 29 3a  59 25 3d b3 28 31 30 32  |.(1280):Y%=.(102|
0001bdc0  34 29 3a 52 25 3d 35 31  2b 59 25 2f 35 3a 62 25  |4):R%=51+Y%/5:b%|
0001bdd0  3d b3 28 32 35 35 29 0d  0e cc 25 20 e6 20 52 25  |=.(255)...% . R%|
0001bde0  2c 52 25 2c 62 25 3a c8  92 20 58 25 2c 59 25 3a  |,R%,b%:.. X%,Y%:|
0001bdf0  c8 92 20 58 25 2b 32 2c  59 25 3a ed 0d 0e cd 06  |.. X%+2,Y%:.....|
0001be00  20 e1 0d 0e ce 04 0d 0e  cf 0f 20 dd 20 f2 73 70  | ......... . .sp|
0001be10  6c 61 73 68 32 0d 0e d0  3b 20 42 3d 32 35 35 3a  |lash2...; B=255:|
0001be20  42 49 3d 2d 31 3a e3 20  59 3d 31 30 32 30 20 b8  |BI=-1:. Y=1020 .|
0001be30  20 30 20 88 2d 34 3a e6  20 36 34 2c 30 2c 42 3a  | 0 .-4:. 64,0,B:|
0001be40  c8 93 20 c8 90 20 30 2c  59 2c 31 32 38 30 2c 34  |.. .. 0,Y,1280,4|
0001be50  0d 0e d1 2e 20 42 2b 3d  42 49 3a ed 3a 42 3d 30  |.... B+=BI:.:B=0|
0001be60  3a 42 49 3d 31 3a e3 20  59 3d 31 30 32 30 20 b8  |:BI=1:. Y=1020 .|
0001be70  20 30 20 88 2d 34 3a e6  20 30 2c 30 2c 42 0d 0e  | 0 .-4:. 0,0,B..|
0001be80  d2 1f 20 c8 93 20 c8 90  20 31 30 30 2c 59 2c 31  |.. .. .. 100,Y,1|
0001be90  30 37 38 2c 34 3a 42 2b  3d 42 49 3a ed 0d 0e d3  |078,4:B+=BI:....|
0001bea0  31 20 21 73 70 72 25 3d  74 78 74 73 69 7a 65 25  |1 !spr%=txtsize%|
0001beb0  3a 73 70 72 25 21 34 3d  30 3a 73 70 72 25 21 38  |:spr%!4=0:spr%!8|
0001bec0  3d 31 36 3a 73 70 72 25  21 31 32 3d 31 36 0d 0e  |=16:spr%!12=16..|
0001bed0  d4 3b 20 c8 99 20 73 70  72 73 77 69 25 2c 32 35  |.; .. sprswi%,25|
0001bee0  36 2b 31 30 2c 73 70 72  25 2c 22 3c 50 73 63 61  |6+10,spr%,"<Psca|
0001bef0  6e 24 44 69 72 3e 2e 50  53 73 70 72 69 74 65 73  |n$Dir>.PSsprites|
0001bf00  2e 70 73 63 61 6e 39 36  22 0d 0e d5 33 20 c8 99  |.pscan96"...3 ..|
0001bf10  20 73 70 72 73 77 69 25  2c 32 35 36 2b 35 32 2c  | sprswi%,256+52,|
0001bf20  73 70 72 25 2c 22 70 73  63 61 6e 39 36 22 2c 33  |spr%,"pscan96",3|
0001bf30  35 30 2c 38 30 30 2c 38  2c 30 2c 30 0d 0e d6 39  |50,800,8,0,0...9|
0001bf40  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
0001bf50  31 30 2c 73 70 72 25 2c  22 3c 50 73 63 61 6e 24  |10,spr%,"<Pscan$|
0001bf60  44 69 72 3e 2e 50 53 73  70 72 69 74 65 73 2e 61  |Dir>.PSsprites.a|
0001bf70  63 6f 72 6e 22 0d 0e d7  31 20 c8 99 20 73 70 72  |corn"...1 .. spr|
0001bf80  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 72 25  |swi%,256+52,spr%|
0001bf90  2c 22 61 63 6f 72 6e 22  2c 35 31 30 2c 33 34 30  |,"acorn",510,340|
0001bfa0  2c 38 2c 30 2c 30 0d 0e  d8 3a 20 c8 99 20 73 70  |,8,0,0...: .. sp|
0001bfb0  72 73 77 69 25 2c 32 35  36 2b 31 30 2c 73 70 72  |rswi%,256+10,spr|
0001bfc0  25 2c 22 3c 50 73 63 61  6e 24 44 69 72 3e 2e 50  |%,"<Pscan$Dir>.P|
0001bfd0  53 73 70 72 69 74 65 73  2e 76 6d 65 73 73 31 22  |Ssprites.vmess1"|
0001bfe0  0d 0e d9 31 20 c8 99 20  73 70 72 73 77 69 25 2c  |...1 .. sprswi%,|
0001bff0  32 35 36 2b 35 32 2c 73  70 72 25 2c 22 76 6d 65  |256+52,spr%,"vme|
0001c000  73 73 31 22 2c 32 30 2c  31 34 30 2c 38 2c 30 2c  |ss1",20,140,8,0,|
0001c010  30 0d 0e da 3a 20 c8 99  20 73 70 72 73 77 69 25  |0...: .. sprswi%|
0001c020  2c 32 35 36 2b 31 30 2c  73 70 72 25 2c 22 3c 50  |,256+10,spr%,"<P|
0001c030  73 63 61 6e 24 44 69 72  3e 2e 50 53 73 70 72 69  |scan$Dir>.PSspri|
0001c040  74 65 73 2e 76 6d 65 73  73 32 22 0d 0e db 33 20  |tes.vmess2"...3 |
0001c050  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 35  |.. sprswi%,256+5|
0001c060  32 2c 73 70 72 25 2c 22  76 6d 65 73 73 32 22 2c  |2,spr%,"vmess2",|
0001c070  31 32 30 30 2c 31 35 36  2c 38 2c 30 2c 30 0d 0e  |1200,156,8,0,0..|
0001c080  dc 0c 20 74 65 78 74 25  3d 30 0d 0e dd 42 20 f2  |.. text%=0...B .|
0001c090  77 72 69 74 65 28 22 48  6f 6d 65 72 74 6f 6e 2e  |write("Homerton.|
0001c0a0  42 6f 6c 64 22 2c 22 56  65 72 73 69 6f 6e 20 22  |Bold","Version "|
0001c0b0  2b 76 65 72 24 2c 73 70  6c 61 73 68 32 78 25 2c  |+ver$,splash2x%,|
0001c0c0  32 30 38 2c 32 38 2c 32  38 2c 30 29 0d 0e de 45  |208,28,28,0)...E|
0001c0d0  20 f2 77 72 69 74 65 28  22 48 6f 6d 65 72 74 6f  | .write("Homerto|
0001c0e0  6e 2e 42 6f 6c 64 22 2c  22 56 65 72 73 69 6f 6e  |n.Bold","Version|
0001c0f0  20 22 2b 76 65 72 24 2c  73 70 6c 61 73 68 32 78  | "+ver$,splash2x|
0001c100  25 2d 31 30 2c 32 31 36  2c 32 38 2c 32 38 2c 37  |%-10,216,28,28,7|
0001c110  29 0d 0e df 43 20 f2 77  72 69 74 65 28 22 48 6f  |)...C .write("Ho|
0001c120  6d 65 72 74 6f 6e 2e 42  6f 6c 64 22 2c 22 2d 20  |merton.Bold","- |
0001c130  50 72 65 73 73 20 48 20  66 6f 72 20 68 65 6c 70  |Press H for help|
0001c140  20 2d 22 2c 33 36 34 2c  31 30 36 2c 32 34 2c 32  | -",364,106,24,2|
0001c150  34 2c 35 29 0d 0e e0 06  20 e1 0d 0e e1 04 0d 0e  |4,5).... .......|
0001c160  e2 29 20 dd 20 f2 72 61  69 73 65 64 5f 62 6c 6f  |.) . .raised_blo|
0001c170  63 6b 28 72 62 78 25 2c  72 62 79 25 2c 72 62 77  |ck(rbx%,rby%,rbw|
0001c180  25 2c 72 62 68 25 29 0d  0e e3 30 20 e6 20 30 2c  |%,rbh%)...0 . 0,|
0001c190  30 2c 30 3a c8 93 20 c8  90 20 72 62 78 25 2d 36  |0,0:.. .. rbx%-6|
0001c1a0  2c 72 62 79 25 2d 36 2c  72 62 77 25 2b 31 30 2c  |,rby%-6,rbw%+10,|
0001c1b0  72 62 68 25 2b 31 32 0d  0e e4 34 20 e6 20 32 35  |rbh%+12...4 . 25|
0001c1c0  35 2c 32 35 35 2c 32 35  35 3a c8 93 20 c8 90 20  |5,255,255:.. .. |
0001c1d0  72 62 78 25 2d 34 2c 72  62 79 25 2d 34 2c 72 62  |rbx%-4,rby%-4,rb|
0001c1e0  77 25 2b 36 2c 72 62 68  25 2b 38 0d 0e e5 2f 20  |w%+6,rbh%+8.../ |
0001c1f0  e6 20 39 36 2c 39 36 2c  39 36 3a c8 93 20 c8 90  |. 96,96,96:.. ..|
0001c200  20 72 62 78 25 2c 72 62  79 25 2d 34 2c 72 62 77  | rbx%,rby%-4,rbw|
0001c210  25 2b 32 2c 72 62 68 25  2b 34 0d 0e e6 2e 20 e6  |%+2,rbh%+4.... .|
0001c220  20 32 30 38 2c 32 30 38  2c 32 31 36 3a c8 93 20  | 208,208,216:.. |
0001c230  c8 90 20 72 62 78 25 2c  72 62 79 25 2c 72 62 77  |.. rbx%,rby%,rbw|
0001c240  25 2d 32 2c 72 62 68 25  0d 0e e7 1f 20 e6 20 39  |%-2,rbh%.... . 9|
0001c250  36 2c 39 36 2c 39 36 3a  ec 20 72 62 78 25 2d 34  |6,96,96:. rbx%-4|
0001c260  2c 72 62 79 25 2d 34 0d  0e e8 26 20 ec 20 72 62  |,rby%-4...& . rb|
0001c270  78 25 2d 32 2c 72 62 79  25 2d 34 3a f0 38 35 2c  |x%-2,rby%-4:.85,|
0001c280  72 62 78 25 2d 32 2c 72  62 79 25 2d 32 0d 0e e9  |rbx%-2,rby%-2...|
0001c290  27 20 e6 20 39 36 2c 39  36 2c 39 36 3a ec 20 72  |' . 96,96,96:. r|
0001c2a0  62 78 25 2b 72 62 77 25  2c 72 62 79 25 2b 72 62  |bx%+rbw%,rby%+rb|
0001c2b0  68 25 2b 32 0d 0e ea 3a  20 ec 20 72 62 78 25 2b  |h%+2...: . rbx%+|
0001c2c0  72 62 77 25 2b 32 2c 72  62 79 25 2b 72 62 68 25  |rbw%+2,rby%+rbh%|
0001c2d0  2b 32 3a f0 38 35 2c 72  62 78 25 2b 72 62 77 25  |+2:.85,rbx%+rbw%|
0001c2e0  2b 32 2c 72 62 79 25 2b  72 62 68 25 2b 34 0d 0e  |+2,rby%+rbh%+4..|
0001c2f0  eb 06 20 e1 0d 0e ec 04  0d 0e ed 1b 20 dd 20 f2  |.. ......... . .|
0001c300  63 69 72 63 75 6c 61 72  5f 67 72 61 64 61 74 69  |circular_gradati|
0001c310  6f 6e 73 0d 0e ee 22 20  6d 65 6e 75 24 28 30 29  |ons..." menu$(0)|
0001c320  3d 22 43 69 72 63 75 6c  61 72 20 67 72 61 64 73  |="Circular grads|
0001c330  20 20 20 20 22 0d 0e ef  1d 20 6d 65 6e 75 24 28  |    ".... menu$(|
0001c340  31 29 3d 22 52 65 64 20  74 6f 20 79 65 6c 6c 6f  |1)="Red to yello|
0001c350  77 22 0d 0e f0 1c 20 6d  65 6e 75 24 28 32 29 3d  |w".... menu$(2)=|
0001c360  22 52 65 64 20 74 6f 20  77 68 69 74 65 22 0d 0e  |"Red to white"..|
0001c370  f1 1c 20 6d 65 6e 75 24  28 33 29 3d 22 52 65 64  |.. menu$(3)="Red|
0001c380  20 74 6f 20 62 6c 61 63  6b 22 0d 0e f2 1b 20 6d  | to black".... m|
0001c390  65 6e 75 24 28 34 29 3d  22 52 65 64 20 74 6f 20  |enu$(4)="Red to |
0001c3a0  62 6c 75 65 22 0d 0e f3  1d 20 6d 65 6e 75 24 28  |blue".... menu$(|
0001c3b0  35 29 3d 22 42 6c 75 65  20 74 6f 20 77 68 69 74  |5)="Blue to whit|
0001c3c0  65 22 0d 0e f4 1c 20 6d  65 6e 75 24 28 36 29 3d  |e".... menu$(6)=|
0001c3d0  22 42 6c 75 65 20 74 6f  20 63 79 61 6e 22 0d 0e  |"Blue to cyan"..|
0001c3e0  f5 1d 20 6d 65 6e 75 24  28 37 29 3d 22 42 6c 75  |.. menu$(7)="Blu|
0001c3f0  65 20 74 6f 20 62 6c 61  63 6b 22 0d 0e f6 1f 20  |e to black".... |
0001c400  6d 65 6e 75 24 28 38 29  3d 22 4f 72 61 6e 67 65  |menu$(8)="Orange|
0001c410  20 74 6f 20 62 6c 61 63  6b 22 0d 0e f7 1e 20 6d  | to black".... m|
0001c420  65 6e 75 24 28 39 29 3d  22 47 72 65 65 6e 20 74  |enu$(9)="Green t|
0001c430  6f 20 77 68 69 74 65 22  0d 0e f8 1f 20 6d 65 6e  |o white".... men|
0001c440  75 24 28 31 30 29 3d 22  47 72 65 65 6e 20 74 6f  |u$(10)="Green to|
0001c450  20 62 6c 61 63 6b 22 0d  0e f9 21 20 6d 65 6e 75  | black"...! menu|
0001c460  24 28 31 31 29 3d 22 4d  61 67 65 6e 74 61 20 74  |$(11)="Magenta t|
0001c470  6f 20 77 68 69 74 65 22  0d 0e fa 22 20 6d 65 6e  |o white"..." men|
0001c480  75 24 28 31 32 29 3d 22  4d 61 67 65 6e 74 61 20  |u$(12)="Magenta |
0001c490  74 6f 20 79 65 6c 6c 6f  77 22 0d 0e fb 21 20 6d  |to yellow"...! m|
0001c4a0  65 6e 75 24 28 31 33 29  3d 22 2a 22 3a f2 6d 65  |enu$(13)="*":.me|
0001c4b0  6e 75 28 30 2c 39 30 2c  2d 31 29 0d 0e fc 13 20  |nu(0,90,-1).... |
0001c4c0  c8 8e 20 6d 65 6e 75 5f  62 6f 78 25 20 ca 0d 0e  |.. menu_box% ...|
0001c4d0  fd 24 20 c9 20 31 3a f2  67 72 61 64 5f 63 69 72  |.$ . 1:.grad_cir|
0001c4e0  63 6c 65 28 32 35 35 2c  30 2c 30 2c 30 2c 31 2c  |cle(255,0,0,0,1,|
0001c4f0  30 29 0d 0e fe 24 20 c9  20 32 3a f2 67 72 61 64  |0)...$ . 2:.grad|
0001c500  5f 63 69 72 63 6c 65 28  32 35 35 2c 30 2c 30 2c  |_circle(255,0,0,|
0001c510  30 2c 31 2c 31 29 0d 0e  ff 25 20 c9 20 33 3a f2  |0,1,1)...% . 3:.|
0001c520  67 72 61 64 5f 63 69 72  63 6c 65 28 32 35 35 2c  |grad_circle(255,|
0001c530  30 2c 30 2c 2d 31 2c 30  2c 30 29 0d 0f 00 25 20  |0,0,-1,0,0)...% |
0001c540  c9 20 34 3a f2 67 72 61  64 5f 63 69 72 63 6c 65  |. 4:.grad_circle|
0001c550  28 32 35 35 2c 30 2c 30  2c 2d 31 2c 30 2c 31 29  |(255,0,0,-1,0,1)|
0001c560  0d 0f 01 24 20 c9 20 35  3a f2 67 72 61 64 5f 63  |...$ . 5:.grad_c|
0001c570  69 72 63 6c 65 28 30 2c  30 2c 32 35 35 2c 31 2c  |ircle(0,0,255,1,|
0001c580  31 2c 30 29 0d 0f 02 24  20 c9 20 36 3a f2 67 72  |1,0)...$ . 6:.gr|
0001c590  61 64 5f 63 69 72 63 6c  65 28 30 2c 30 2c 32 35  |ad_circle(0,0,25|
0001c5a0  35 2c 30 2c 31 2c 30 29  0d 0f 03 25 20 c9 20 37  |5,0,1,0)...% . 7|
0001c5b0  3a f2 67 72 61 64 5f 63  69 72 63 6c 65 28 30 2c  |:.grad_circle(0,|
0001c5c0  30 2c 32 35 35 2c 30 2c  30 2c 2d 31 29 0d 0f 04  |0,255,0,0,-1)...|
0001c5d0  29 20 c9 20 38 3a f2 67  72 61 64 5f 63 69 72 63  |) . 8:.grad_circ|
0001c5e0  6c 65 28 32 35 35 2c 31  32 38 2c 30 2c 2d 31 2c  |le(255,128,0,-1,|
0001c5f0  2d 2e 35 2c 30 29 0d 0f  05 24 20 c9 20 39 3a f2  |-.5,0)...$ . 9:.|
0001c600  67 72 61 64 5f 63 69 72  63 6c 65 28 30 2c 32 35  |grad_circle(0,25|
0001c610  35 2c 30 2c 31 2c 30 2c  31 29 0d 0f 06 26 20 c9  |5,0,1,0,1)...& .|
0001c620  20 31 30 3a f2 67 72 61  64 5f 63 69 72 63 6c 65  | 10:.grad_circle|
0001c630  28 30 2c 32 35 35 2c 30  2c 30 2c 2d 31 2c 30 29  |(0,255,0,0,-1,0)|
0001c640  0d 0f 07 27 20 c9 20 31  31 3a f2 67 72 61 64 5f  |...' . 11:.grad_|
0001c650  63 69 72 63 6c 65 28 32  35 35 2c 30 2c 32 35 35  |circle(255,0,255|
0001c660  2c 30 2c 31 2c 30 29 0d  0f 08 28 20 c9 20 31 32  |,0,1,0)...( . 12|
0001c670  3a f2 67 72 61 64 5f 63  69 72 63 6c 65 28 32 35  |:.grad_circle(25|
0001c680  35 2c 30 2c 32 35 35 2c  30 2c 31 2c 2d 31 29 0d  |5,0,255,0,1,-1).|
0001c690  0f 09 06 20 cb 0d 0f 0a  06 20 e1 0d 0f 0b 04 0d  |... ..... ......|
0001c6a0  0f 0c 23 20 dd 20 f2 67  72 61 64 5f 63 69 72 63  |..# . .grad_circ|
0001c6b0  6c 65 28 52 2c 47 2c 42  2c 52 49 2c 47 49 2c 42  |le(R,G,B,RI,GI,B|
0001c6c0  49 29 0d 0f 0d 21 20 e6  20 52 2c 47 2c 42 3a c8  |I)...! . R,G,B:.|
0001c6d0  93 20 c8 90 20 30 2c 39  30 30 2c 31 32 38 30 2c  |. .. 0,900,1280,|
0001c6e0  31 32 34 0d 0f 0e 16 20  e3 20 44 25 3d 38 31 32  |124.... . D%=812|
0001c6f0  20 b8 20 35 30 20 88 2d  33 0d 0f 0f 1d 20 e6 20  | . 50 .-3.... . |
0001c700  52 2c 47 2c 42 3a c8 8f  20 c8 90 20 36 34 30 2c  |R,G,B:.. .. 640,|
0001c710  34 38 30 2c 44 25 0d 0f  10 18 20 52 2b 3d 52 49  |480,D%.... R+=RI|
0001c720  3a 47 2b 3d 47 49 3a 42  2b 3d 42 49 3a ed 0d 0f  |:G+=GI:B+=BI:...|
0001c730  11 21 20 e7 20 ac 28 6d  65 72 67 65 25 29 20 8c  |.! . .(merge%) .|
0001c740  20 f2 75 70 6c 6f 61 64  5f 6d 65 6d 6f 72 79 0d  | .upload_memory.|
0001c750  0f 12 06 20 e1 0d 0f 13  04 0d 0f 14 0f 20 dd 20  |... ......... . |
0001c760  f2 71 75 61 72 74 65 72  0d 0f 15 27 20 21 73 6f  |.quarter...' !so|
0001c770  75 72 63 65 5f 61 64 64  72 65 73 73 3d 6d 65 6d  |urce_address=mem|
0001c780  62 6c 6f 63 6b 25 2b 32  30 2b 34 30 39 36 30 0d  |block%+20+40960.|
0001c790  0f 16 21 20 21 64 65 73  74 5f 61 64 64 72 65 73  |..! !dest_addres|
0001c7a0  73 3d 73 63 72 65 65 6e  25 2b 31 36 34 31 36 30  |s=screen%+164160|
0001c7b0  0d 0f 17 25 20 e6 31 32  38 2c 31 32 38 2c 31 32  |...% .128,128,12|
0001c7c0  38 3a c8 93 20 c8 90 20  30 2c 30 2c 31 32 38 30  |8:.. .. 0,0,1280|
0001c7d0  2c 31 30 32 34 0d 0f 18  26 20 21 71 75 61 72 74  |,1024...& !quart|
0001c7e0  65 72 5f 6c 69 6e 65 73  3d 32 34 30 3a d6 20 6d  |er_lines=240:. m|
0001c7f0  61 6b 65 5f 71 75 61 72  74 65 72 0d 0f 19 24 20  |ake_quarter...$ |
0001c800  e7 20 a4 75 6e 64 6f 28  22 5a 6f 6f 6d 20 31 3a  |. .undo("Zoom 1:|
0001c810  32 20 2d 20 6f 70 74 69  6f 6e 73 22 29 20 8c 0d  |2 - options") ..|
0001c820  0f 1a 0d 20 f2 64 69 73  6d 69 6e 69 0d 0f 1b 06  |... .dismini....|
0001c830  20 cc 0d 0f 1c 26 20 e6  31 32 38 2c 31 32 38 2c  | ....& .128,128,|
0001c840  31 32 38 3a c8 93 20 c8  90 20 34 38 30 2c 38 30  |128:.. .. 480,80|
0001c850  2c 33 34 30 2c 31 36 30  0d 0f 1d 1f 20 f2 67 72  |,340,160.... .gr|
0001c860  61 62 5f 71 75 61 72 74  65 72 5f 61 72 65 61 3a  |ab_quarter_area:|
0001c870  f2 75 70 6d 69 6e 69 0d  0f 1e 06 20 cd 0d 0f 1f  |.upmini.... ....|
0001c880  06 20 e1 0d 0f 20 04 0d  0f 21 18 20 dd 20 f2 71  |. ... ...!. . .q|
0001c890  75 61 72 74 65 72 5f 61  73 73 65 6d 62 6c 65 0d  |uarter_assemble.|
0001c8a0  0f 22 48 20 64 61 74 61  31 3d 33 3a 64 61 74 61  |."H data1=3:data|
0001c8b0  32 3d 34 3a 73 6f 75 72  63 65 3d 35 3a 64 65 73  |2=4:source=5:des|
0001c8c0  74 3d 36 3a 6f 66 66 73  65 74 31 3d 37 3a 6f 66  |t=6:offset1=7:of|
0001c8d0  66 73 65 74 32 3d 38 3a  6c 69 6e 65 73 3d 39 3a  |fset2=8:lines=9:|
0001c8e0  6d 61 73 6b 3d 31 30 0d  0f 23 18 20 de 20 71 75  |mask=10..#. . qu|
0001c8f0  61 72 74 65 72 5f 63 6f  64 65 25 20 33 32 30 0d  |arter_code% 320.|
0001c900  0f 24 11 20 e3 20 50 3d  30 20 b8 20 32 20 88 32  |.$. . P=0 . 2 .2|
0001c910  0d 0f 25 15 20 50 25 3d  71 75 61 72 74 65 72 5f  |..%. P%=quarter_|
0001c920  63 6f 64 65 25 0d 0f 26  0b 20 5b 4f 50 54 20 50  |code%..&. [OPT P|
0001c930  0d 0f 27 12 20 2e 6d 61  6b 65 5f 71 75 61 72 74  |..'. .make_quart|
0001c940  65 72 0d 0f 28 4c 20 4c  44 52 20 73 6f 75 72 63  |er..(L LDR sourc|
0001c950  65 2c 73 6f 75 72 63 65  5f 61 64 64 72 65 73 73  |e,source_address|
0001c960  3a 4c 44 52 20 64 65 73  74 2c 64 65 73 74 5f 61  |:LDR dest,dest_a|
0001c970  64 64 72 65 73 73 3a 4c  44 52 20 6c 69 6e 65 73  |ddress:LDR lines|
0001c980  2c 71 75 61 72 74 65 72  5f 6c 69 6e 65 73 0d 0f  |,quarter_lines..|
0001c990  29 36 20 4c 44 52 20 6d  61 73 6b 2c 6d 61 73 6b  |)6 LDR mask,mask|
0001c9a0  5f 73 74 6f 72 65 3a 4d  4f 56 20 6f 66 66 73 65  |_store:MOV offse|
0001c9b0  74 31 2c 23 30 3a 4d 4f  56 20 6f 66 66 73 65 74  |t1,#0:MOV offset|
0001c9c0  32 2c 23 30 0d 0f 2a 12  20 2e 71 75 61 72 74 65  |2,#0..*. .quarte|
0001c9d0  72 5f 6c 6f 6f 70 0d 0f  2b 49 20 4c 44 52 20 64  |r_loop..+I LDR d|
0001c9e0  61 74 61 31 2c 5b 73 6f  75 72 63 65 2c 6f 66 66  |ata1,[source,off|
0001c9f0  73 65 74 31 5d 3a 80 20  64 61 74 61 31 2c 64 61  |set1]:. data1,da|
0001ca00  74 61 31 2c 6d 61 73 6b  3a 41 44 44 20 6f 66 66  |ta1,mask:ADD off|
0001ca10  73 65 74 31 2c 6f 66 66  73 65 74 31 2c 23 34 0d  |set1,offset1,#4.|
0001ca20  0f 2c 49 20 4c 44 52 20  64 61 74 61 32 2c 5b 73  |.,I LDR data2,[s|
0001ca30  6f 75 72 63 65 2c 6f 66  66 73 65 74 31 5d 3a 80  |ource,offset1]:.|
0001ca40  20 64 61 74 61 32 2c 64  61 74 61 32 2c 6d 61 73  | data2,data2,mas|
0001ca50  6b 3a 4d 4f 56 20 64 61  74 61 32 2c 64 61 74 61  |k:MOV data2,data|
0001ca60  32 2c 4c 53 4c 23 31 36  0d 0f 2d 4a 20 41 44 44  |2,LSL#16..-J ADD|
0001ca70  20 64 61 74 61 32 2c 64  61 74 61 32 2c 64 61 74  | data2,data2,dat|
0001ca80  61 31 3a 53 54 52 20 64  61 74 61 32 2c 5b 64 65  |a1:STR data2,[de|
0001ca90  73 74 2c 6f 66 66 73 65  74 32 5d 3a 41 44 44 20  |st,offset2]:ADD |
0001caa0  6f 66 66 73 65 74 32 2c  6f 66 66 73 65 74 32 2c  |offset2,offset2,|
0001cab0  23 34 0d 0f 2e 3e 20 41  44 44 20 6f 66 66 73 65  |#4...> ADD offse|
0001cac0  74 31 2c 6f 66 66 73 65  74 31 2c 23 34 3a 43 4d  |t1,offset1,#4:CM|
0001cad0  50 20 6f 66 66 73 65 74  31 2c 23 31 32 38 30 3a  |P offset1,#1280:|
0001cae0  42 4c 54 20 71 75 61 72  74 65 72 5f 6c 6f 6f 70  |BLT quarter_loop|
0001caf0  0d 0f 2f 22 20 4d 4f 56  20 6f 66 66 73 65 74 31  |../" MOV offset1|
0001cb00  2c 23 30 3a 4d 4f 56 20  6f 66 66 73 65 74 32 2c  |,#0:MOV offset2,|
0001cb10  23 30 0d 0f 30 30 20 41  44 44 20 73 6f 75 72 63  |#0..00 ADD sourc|
0001cb20  65 2c 73 6f 75 72 63 65  2c 23 32 35 36 30 3a 41  |e,source,#2560:A|
0001cb30  44 44 20 64 65 73 74 2c  64 65 73 74 2c 23 31 32  |DD dest,dest,#12|
0001cb40  38 30 0d 0f 31 29 20 53  55 42 53 20 6c 69 6e 65  |80..1) SUBS line|
0001cb50  73 2c 6c 69 6e 65 73 2c  23 31 3a 42 4e 45 20 71  |s,lines,#1:BNE q|
0001cb60  75 61 72 74 65 72 5f 6c  6f 6f 70 0d 0f 32 1d 20  |uarter_loop..2. |
0001cb70  2e 71 75 61 72 74 65 72  5f 65 78 69 74 20 4d 4f  |.quarter_exit MO|
0001cb80  56 20 50 43 2c 52 31 34  0d 0f 33 04 0d 0f 34 0f  |V PC,R14..3...4.|
0001cb90  20 2e 6d 61 6b 65 5f 6d  69 6e 69 0d 0f 35 34 20  | .make_mini..54 |
0001cba0  4c 44 52 20 73 6f 75 72  63 65 2c 73 6f 75 72 63  |LDR source,sourc|
0001cbb0  65 5f 61 64 64 72 65 73  73 3a 4c 44 52 20 64 65  |e_address:LDR de|
0001cbc0  73 74 2c 64 65 73 74 5f  61 64 64 72 65 73 73 0d  |st,dest_address.|
0001cbd0  0f 36 36 20 4c 44 52 20  6d 61 73 6b 2c 6d 61 73  |.66 LDR mask,mas|
0001cbe0  6b 5f 73 74 6f 72 65 3a  4d 4f 56 20 6f 66 66 73  |k_store:MOV offs|
0001cbf0  65 74 31 2c 23 30 3a 4d  4f 56 20 6f 66 66 73 65  |et1,#0:MOV offse|
0001cc00  74 32 2c 23 30 0d 0f 37  19 20 4c 44 52 20 6c 69  |t2,#0..7. LDR li|
0001cc10  6e 65 73 2c 6d 69 6e 69  5f 6c 69 6e 65 73 0d 0f  |nes,mini_lines..|
0001cc20  38 14 20 2e 6d 61 6b 65  5f 6d 69 6e 69 5f 6c 6f  |8. .make_mini_lo|
0001cc30  6f 70 0d 0f 39 49 20 4c  44 52 20 64 61 74 61 31  |op..9I LDR data1|
0001cc40  2c 5b 73 6f 75 72 63 65  2c 6f 66 66 73 65 74 31  |,[source,offset1|
0001cc50  5d 3a 80 20 64 61 74 61  31 2c 64 61 74 61 31 2c  |]:. data1,data1,|
0001cc60  6d 61 73 6b 3a 41 44 44  20 6f 66 66 73 65 74 31  |mask:ADD offset1|
0001cc70  2c 6f 66 66 73 65 74 31  2c 23 38 0d 0f 3a 49 20  |,offset1,#8..:I |
0001cc80  4c 44 52 20 64 61 74 61  32 2c 5b 73 6f 75 72 63  |LDR data2,[sourc|
0001cc90  65 2c 6f 66 66 73 65 74  31 5d 3a 80 20 64 61 74  |e,offset1]:. dat|
0001cca0  61 32 2c 64 61 74 61 32  2c 6d 61 73 6b 3a 4d 4f  |a2,data2,mask:MO|
0001ccb0  56 20 64 61 74 61 32 2c  64 61 74 61 32 2c 4c 53  |V data2,data2,LS|
0001ccc0  4c 23 31 36 0d 0f 3b 4a  20 41 44 44 20 64 61 74  |L#16..;J ADD dat|
0001ccd0  61 32 2c 64 61 74 61 32  2c 64 61 74 61 31 3a 53  |a2,data2,data1:S|
0001cce0  54 52 20 64 61 74 61 32  2c 5b 64 65 73 74 2c 6f  |TR data2,[dest,o|
0001ccf0  66 66 73 65 74 32 5d 3a  41 44 44 20 6f 66 66 73  |ffset2]:ADD offs|
0001cd00  65 74 32 2c 6f 66 66 73  65 74 32 2c 23 34 0d 0f  |et2,offset2,#4..|
0001cd10  3c 40 20 41 44 44 20 6f  66 66 73 65 74 31 2c 6f  |<@ ADD offset1,o|
0001cd20  66 66 73 65 74 31 2c 23  38 3a 43 4d 50 20 6f 66  |ffset1,#8:CMP of|
0001cd30  66 73 65 74 31 2c 23 31  32 38 30 3a 42 4c 54 20  |fset1,#1280:BLT |
0001cd40  6d 61 6b 65 5f 6d 69 6e  69 5f 6c 6f 6f 70 0d 0f  |make_mini_loop..|
0001cd50  3d 22 20 4d 4f 56 20 6f  66 66 73 65 74 31 2c 23  |=" MOV offset1,#|
0001cd60  30 3a 4d 4f 56 20 6f 66  66 73 65 74 32 2c 23 30  |0:MOV offset2,#0|
0001cd70  0d 0f 3e 30 20 41 44 44  20 73 6f 75 72 63 65 2c  |..>0 ADD source,|
0001cd80  73 6f 75 72 63 65 2c 23  35 31 32 30 3a 41 44 44  |source,#5120:ADD|
0001cd90  20 64 65 73 74 2c 64 65  73 74 2c 23 31 32 38 30  | dest,dest,#1280|
0001cda0  0d 0f 3f 2b 20 53 55 42  53 20 6c 69 6e 65 73 2c  |..?+ SUBS lines,|
0001cdb0  6c 69 6e 65 73 2c 23 31  3a 42 4e 45 20 6d 61 6b  |lines,#1:BNE mak|
0001cdc0  65 5f 6d 69 6e 69 5f 6c  6f 6f 70 0d 0f 40 0f 20  |e_mini_loop..@. |
0001cdd0  4d 4f 56 20 50 43 2c 52  31 34 0d 0f 41 04 0d 0f  |MOV PC,R14..A...|
0001cde0  42 14 20 2e 6d 61 6b 65  5f 74 68 75 6d 62 6e 61  |B. .make_thumbna|
0001cdf0  69 6c 0d 0f 43 34 20 4c  44 52 20 73 6f 75 72 63  |il..C4 LDR sourc|
0001ce00  65 2c 73 6f 75 72 63 65  5f 61 64 64 72 65 73 73  |e,source_address|
0001ce10  3a 4c 44 52 20 64 65 73  74 2c 64 65 73 74 5f 61  |:LDR dest,dest_a|
0001ce20  64 64 72 65 73 73 0d 0f  44 44 20 4c 44 52 20 6d  |ddress..DD LDR m|
0001ce30  61 73 6b 2c 6d 61 73 6b  5f 73 74 6f 72 65 3a 4d  |ask,mask_store:M|
0001ce40  4f 56 20 6f 66 66 73 65  74 31 2c 23 30 3a 4d 4f  |OV offset1,#0:MO|
0001ce50  56 20 6f 66 66 73 65 74  32 2c 23 30 3a 4d 4f 56  |V offset2,#0:MOV|
0001ce60  20 6c 69 6e 65 73 2c 23  36 34 0d 0f 45 19 20 2e  | lines,#64..E. .|
0001ce70  6d 61 6b 65 5f 74 68 75  6d 62 6e 61 69 6c 5f 6c  |make_thumbnail_l|
0001ce80  6f 6f 70 0d 0f 46 4a 20  4c 44 52 20 64 61 74 61  |oop..FJ LDR data|
0001ce90  31 2c 5b 73 6f 75 72 63  65 2c 6f 66 66 73 65 74  |1,[source,offset|
0001cea0  31 5d 3a 80 20 64 61 74  61 31 2c 64 61 74 61 31  |1]:. data1,data1|
0001ceb0  2c 6d 61 73 6b 3a 41 44  44 20 6f 66 66 73 65 74  |,mask:ADD offset|
0001cec0  31 2c 6f 66 66 73 65 74  31 2c 23 31 36 0d 0f 47  |1,offset1,#16..G|
0001ced0  49 20 4c 44 52 20 64 61  74 61 32 2c 5b 73 6f 75  |I LDR data2,[sou|
0001cee0  72 63 65 2c 6f 66 66 73  65 74 31 5d 3a 80 20 64  |rce,offset1]:. d|
0001cef0  61 74 61 32 2c 64 61 74  61 32 2c 6d 61 73 6b 3a  |ata2,data2,mask:|
0001cf00  4d 4f 56 20 64 61 74 61  32 2c 64 61 74 61 32 2c  |MOV data2,data2,|
0001cf10  4c 53 4c 23 31 36 0d 0f  48 4a 20 41 44 44 20 64  |LSL#16..HJ ADD d|
0001cf20  61 74 61 32 2c 64 61 74  61 32 2c 64 61 74 61 31  |ata2,data2,data1|
0001cf30  3a 53 54 52 20 64 61 74  61 32 2c 5b 64 65 73 74  |:STR data2,[dest|
0001cf40  2c 6f 66 66 73 65 74 32  5d 3a 41 44 44 20 6f 66  |,offset2]:ADD of|
0001cf50  66 73 65 74 32 2c 6f 66  66 73 65 74 32 2c 23 34  |fset2,offset2,#4|
0001cf60  0d 0f 49 46 20 41 44 44  20 6f 66 66 73 65 74 31  |..IF ADD offset1|
0001cf70  2c 6f 66 66 73 65 74 31  2c 23 31 36 3a 43 4d 50  |,offset1,#16:CMP|
0001cf80  20 6f 66 66 73 65 74 31  2c 23 31 32 38 30 3a 42  | offset1,#1280:B|
0001cf90  4c 54 20 6d 61 6b 65 5f  74 68 75 6d 62 6e 61 69  |LT make_thumbnai|
0001cfa0  6c 5f 6c 6f 6f 70 0d 0f  4a 22 20 4d 4f 56 20 6f  |l_loop..J" MOV o|
0001cfb0  66 66 73 65 74 31 2c 23  30 3a 4d 4f 56 20 6f 66  |ffset1,#0:MOV of|
0001cfc0  66 73 65 74 32 2c 23 30  0d 0f 4b 31 20 41 44 44  |fset2,#0..K1 ADD|
0001cfd0  20 73 6f 75 72 63 65 2c  73 6f 75 72 63 65 2c 23  | source,source,#|
0001cfe0  31 30 32 34 30 3a 41 44  44 20 64 65 73 74 2c 64  |10240:ADD dest,d|
0001cff0  65 73 74 2c 23 31 32 38  30 0d 0f 4c 30 20 53 55  |est,#1280..L0 SU|
0001d000  42 53 20 6c 69 6e 65 73  2c 6c 69 6e 65 73 2c 23  |BS lines,lines,#|
0001d010  31 3a 42 4e 45 20 6d 61  6b 65 5f 74 68 75 6d 62  |1:BNE make_thumb|
0001d020  6e 61 69 6c 5f 6c 6f 6f  70 0d 0f 4d 0f 20 4d 4f  |nail_loop..M. MO|
0001d030  56 20 50 43 2c 52 31 34  0d 0f 4e 04 0d 0f 4f 1b  |V PC,R14..N...O.|
0001d040  20 2e 73 6f 75 72 63 65  5f 61 64 64 72 65 73 73  | .source_address|
0001d050  20 45 51 55 44 20 30 0d  0f 50 1b 20 2e 64 65 73  | EQUD 0..P. .des|
0001d060  74 5f 61 64 64 72 65 73  73 20 20 20 45 51 55 44  |t_address   EQUD|
0001d070  20 30 0d 0f 51 1d 20 2e  71 75 61 72 74 65 72 5f  | 0..Q. .quarter_|
0001d080  6c 69 6e 65 73 20 20 45  51 55 44 20 32 34 30 0d  |lines  EQUD 240.|
0001d090  0f 52 1d 20 2e 6d 69 6e  69 5f 6c 69 6e 65 73 20  |.R. .mini_lines |
0001d0a0  20 20 20 20 45 51 55 44  20 31 32 38 0d 0f 53 2b  |    EQUD 128..S+|
0001d0b0  20 2e 6d 61 73 6b 5f 73  74 6f 72 65 20 20 20 20  | .mask_store    |
0001d0c0  20 45 51 55 44 20 25 31  31 31 31 31 31 31 31 31  | EQUD %111111111|
0001d0d0  31 31 31 31 31 31 31 0d  0f 54 04 0d 0f 55 08 20  |1111111..T...U. |
0001d0e0  5d 3a ed 0d 0f 56 06 20  e1 0d 0f 57 04 0d 0f 58  |]:...V. ...W...X|
0001d0f0  15 20 dd 20 f2 6d 61 6b  65 5f 6d 69 6e 69 5f 70  |. . .make_mini_p|
0001d100  69 63 0d 0f 59 22 20 f2  72 61 69 73 65 64 5f 62  |ic..Y" .raised_b|
0001d110  6c 6f 63 6b 28 33 38 2c  2d 33 34 2c 33 32 32 2c  |lock(38,-34,322,|
0001d120  32 35 34 29 0d 0f 5a 35  20 e3 20 79 25 3d 2d 33  |254)..Z5 . y%=-3|
0001d130  36 20 b8 20 32 30 32 20  88 33 34 3a f2 72 61 69  |6 . 202 .34:.rai|
0001d140  73 65 64 5f 62 6c 6f 63  6b 28 33 37 38 2c 79 25  |sed_block(378,y%|
0001d150  2c 34 30 2c 32 30 29 3a  ed 0d 0f 5b 1b 20 6d 25  |,40,20):...[. m%|
0001d160  3d 31 3a e3 20 79 25 3d  32 34 36 20 b8 20 38 20  |=1:. y%=246 . 8 |
0001d170  88 2d 33 34 0d 0f 5c 2d  20 e7 20 6d 25 3c 3d 6d  |.-34..\- . m%<=m|
0001d180  65 6d 6f 72 69 65 73 25  20 8c 20 f2 77 72 69 74  |emories% . .writ|
0001d190  65 32 28 c3 20 6d 25 2c  33 37 38 2c 79 25 2c 30  |e2(. m%,378,y%,0|
0001d1a0  29 0d 0f 5d 18 20 6d 25  2b 3d 31 3a ed 3a e6 33  |)..]. m%+=1:.:.3|
0001d1b0  2c 36 33 20 c8 9c 31 39  32 0d 0f 5e 0e 20 c8 8e  |,63 ..192..^. ..|
0001d1c0  20 4d 45 4d 25 20 ca 0d  0f 5f 1c 20 c9 20 30 3a  | MEM% ..._. . 0:|
0001d1d0  c8 93 20 c8 90 20 33 37  34 2c 32 30 30 2c 34 36  |.. .. 374,200,46|
0001d1e0  2c 32 36 0d 0f 60 1c 20  c9 20 31 3a c8 93 20 c8  |,26..`. . 1:.. .|
0001d1f0  90 20 33 37 34 2c 31 36  36 2c 34 36 2c 32 36 0d  |. 374,166,46,26.|
0001d200  0f 61 1c 20 c9 20 32 3a  c8 93 20 c8 90 20 33 37  |.a. . 2:.. .. 37|
0001d210  34 2c 31 33 32 2c 34 36  2c 32 36 0d 0f 62 1b 20  |4,132,46,26..b. |
0001d220  c9 20 33 3a c8 93 20 c8  90 20 33 37 34 2c 39 38  |. 3:.. .. 374,98|
0001d230  2c 34 36 2c 32 36 0d 0f  63 1b 20 c9 20 34 3a c8  |,46,26..c. . 4:.|
0001d240  93 20 c8 90 20 33 37 34  2c 36 34 2c 34 36 2c 32  |. .. 374,64,46,2|
0001d250  36 0d 0f 64 1b 20 c9 20  35 3a c8 93 20 c8 90 20  |6..d. . 5:.. .. |
0001d260  33 37 34 2c 33 30 2c 34  36 2c 32 36 0d 0f 65 1b  |374,30,46,26..e.|
0001d270  20 c9 20 36 3a c8 93 20  c8 90 20 33 37 34 2c 2d  | . 6:.. .. 374,-|
0001d280  34 2c 34 36 2c 32 36 0d  0f 66 1c 20 c9 20 37 3a  |4,46,26..f. . 7:|
0001d290  c8 93 20 c8 90 20 33 37  34 2c 2d 33 38 2c 34 36  |.. .. 374,-38,46|
0001d2a0  2c 32 36 0d 0f 67 06 20  cb 0d 0f 68 21 20 21 73  |,26..g. ...h! !s|
0001d2b0  6f 75 72 63 65 5f 61 64  64 72 65 73 73 3d 6d 65  |ource_address=me|
0001d2c0  6d 62 6c 6f 63 6b 25 2b  32 30 0d 0f 69 1a 20 e7  |mblock%+20..i. .|
0001d2d0  20 73 63 72 65 65 6e 5f  6c 69 6e 65 73 25 3d 35  | screen_lines%=5|
0001d2e0  31 32 20 8c 0d 0f 6a 26  20 21 64 65 73 74 5f 61  |12 ...j& !dest_a|
0001d2f0  64 64 72 65 73 73 3d 73  63 72 65 65 6e 25 2b 31  |ddress=screen%+1|
0001d300  32 38 30 2a 33 37 36 2b  34 30 0d 0f 6b 06 20 cc  |280*376+40..k. .|
0001d310  0d 0f 6c 26 20 21 64 65  73 74 5f 61 64 64 72 65  |..l& !dest_addre|
0001d320  73 73 3d 73 63 72 65 65  6e 25 2b 31 32 38 30 2a  |ss=screen%+1280*|
0001d330  33 34 34 2b 34 30 0d 0f  6d 06 20 cd 0d 0f 6e 20  |344+40..m. ...n |
0001d340  20 21 6d 69 6e 69 5f 6c  69 6e 65 73 3d 31 32 38  | !mini_lines=128|
0001d350  3a d6 20 6d 61 6b 65 5f  6d 69 6e 69 0d 0f 6f 06  |:. make_mini..o.|
0001d360  20 e1 0d 0f 70 04 0d 0f  71 17 20 dd 20 f2 6d 75  | ...p...q. . .mu|
0001d370  6c 74 69 5f 67 72 61 64  5f 6d 65 6e 75 0d 0f 72  |lti_grad_menu..r|
0001d380  1c 20 6d 65 6e 75 24 28  30 29 3d 22 4d 75 6c 74  |. menu$(0)="Mult|
0001d390  69 20 67 72 61 64 73 22  20 0d 0f 73 16 20 6d 65  |i grads" ..s. me|
0001d3a0  6e 75 24 28 31 29 3d 22  54 79 70 65 20 31 22 0d  |nu$(1)="Type 1".|
0001d3b0  0f 74 16 20 6d 65 6e 75  24 28 32 29 3d 22 54 79  |.t. menu$(2)="Ty|
0001d3c0  70 65 20 32 22 0d 0f 75  16 20 6d 65 6e 75 24 28  |pe 2"..u. menu$(|
0001d3d0  33 29 3d 22 54 79 70 65  20 33 22 0d 0f 76 16 20  |3)="Type 3"..v. |
0001d3e0  6d 65 6e 75 24 28 34 29  3d 22 54 79 70 65 20 34  |menu$(4)="Type 4|
0001d3f0  22 0d 0f 77 16 20 6d 65  6e 75 24 28 35 29 3d 22  |"..w. menu$(5)="|
0001d400  54 79 70 65 20 35 22 0d  0f 78 16 20 6d 65 6e 75  |Type 5"..x. menu|
0001d410  24 28 36 29 3d 22 54 79  70 65 20 36 22 0d 0f 79  |$(6)="Type 6"..y|
0001d420  17 20 6d 65 6e 75 24 28  37 29 3d 22 2d 2d 2d 2d  |. menu$(7)="----|
0001d430  2d 2d 2d 22 0d 0f 7a 16  20 6d 65 6e 75 24 28 38  |---"..z. menu$(8|
0001d440  29 3d 22 54 79 70 65 20  37 22 0d 0f 7b 16 20 6d  |)="Type 7"..{. m|
0001d450  65 6e 75 24 28 39 29 3d  22 54 79 70 65 20 38 22  |enu$(9)="Type 8"|
0001d460  0d 0f 7c 17 20 6d 65 6e  75 24 28 31 30 29 3d 22  |..|. menu$(10)="|
0001d470  54 79 70 65 20 39 22 0d  0f 7d 18 20 6d 65 6e 75  |Type 9"..}. menu|
0001d480  24 28 31 31 29 3d 22 54  79 70 65 20 31 30 22 0d  |$(11)="Type 10".|
0001d490  0f 7e 18 20 6d 65 6e 75  24 28 31 32 29 3d 22 54  |.~. menu$(12)="T|
0001d4a0  79 70 65 20 31 31 22 0d  0f 7f 18 20 6d 65 6e 75  |ype 11".... menu|
0001d4b0  24 28 31 33 29 3d 22 54  79 70 65 20 31 32 22 0d  |$(13)="Type 12".|
0001d4c0  0f 80 21 20 6d 65 6e 75  24 28 31 34 29 3d 22 2a  |..! menu$(14)="*|
0001d4d0  22 3a f2 6d 65 6e 75 28  30 2c 39 30 2c 2d 31 29  |":.menu(0,90,-1)|
0001d4e0  0d 0f 81 13 20 c8 8e 20  6d 65 6e 75 5f 62 6f 78  |.... .. menu_box|
0001d4f0  25 20 ca 0d 0f 82 29 20  c9 20 31 2c 32 2c 33 2c  |% ....) . 1,2,3,|
0001d500  34 2c 35 2c 36 3a f2 6d  75 6c 74 69 5f 67 72 61  |4,5,6:.multi_gra|
0001d510  64 28 6d 65 6e 75 5f 62  6f 78 25 29 0d 0f 83 2f  |d(menu_box%).../|
0001d520  20 c9 20 38 2c 39 2c 31  30 2c 31 31 2c 31 32 2c  | . 8,9,10,11,12,|
0001d530  31 33 3a f2 6d 75 6c 74  69 5f 67 72 61 64 28 6d  |13:.multi_grad(m|
0001d540  65 6e 75 5f 62 6f 78 25  2d 31 29 0d 0f 84 06 20  |enu_box%-1).... |
0001d550  cb 0d 0f 85 06 20 e1 0d  0f 86 04 0d 0f 87 19 20  |..... ......... |
0001d560  dd 20 f2 6d 75 6c 74 69  5f 67 72 61 64 28 74 79  |. .multi_grad(ty|
0001d570  70 65 25 29 0d 0f 88 20  20 e6 20 30 2c 30 2c 30  |pe%)...  . 0,0,0|
0001d580  3a c8 93 20 c8 90 20 30  2c 30 2c 31 32 38 30 2c  |:.. .. 0,0,1280,|
0001d590  31 30 32 34 0d 0f 89 0f  20 c8 8e 20 74 79 70 65  |1024.... .. type|
0001d5a0  25 20 ca 0d 0f 8a 26 20  c9 20 31 3a f2 6c 65 66  |% ....& . 1:.lef|
0001d5b0  74 5f 72 69 67 68 74 5f  67 72 61 64 28 30 2c 30  |t_right_grad(0,0|
0001d5c0  2c 30 2c 30 2c 31 2c 30  29 0d 0f 8b 25 20 f2 62  |,0,0,1,0)...% .b|
0001d5d0  6f 74 74 6f 6d 5f 74 6f  70 5f 67 72 61 64 28 32  |ottom_top_grad(2|
0001d5e0  35 35 2c 30 2c 30 2c 2d  31 2c 30 2c 31 29 0d 0f  |55,0,0,-1,0,1)..|
0001d5f0  8c 26 20 c9 20 32 3a f2  6c 65 66 74 5f 72 69 67  |.& . 2:.left_rig|
0001d600  68 74 5f 67 72 61 64 28  30 2c 30 2c 30 2c 30 2c  |ht_grad(0,0,0,0,|
0001d610  30 2c 31 29 0d 0f 8d 25  20 f2 62 6f 74 74 6f 6d  |0,1)...% .bottom|
0001d620  5f 74 6f 70 5f 67 72 61  64 28 30 2c 32 35 35 2c  |_top_grad(0,255,|
0001d630  30 2c 31 2c 2d 31 2c 30  29 0d 0f 8e 26 20 c9 20  |0,1,-1,0)...& . |
0001d640  33 3a f2 6c 65 66 74 5f  72 69 67 68 74 5f 67 72  |3:.left_right_gr|
0001d650  61 64 28 30 2c 30 2c 30  2c 31 2c 30 2c 30 29 0d  |ad(0,0,0,1,0,0).|
0001d660  0f 8f 25 20 f2 62 6f 74  74 6f 6d 5f 74 6f 70 5f  |..% .bottom_top_|
0001d670  67 72 61 64 28 30 2c 32  35 35 2c 30 2c 30 2c 2d  |grad(0,255,0,0,-|
0001d680  31 2c 31 29 0d 0f 90 26  20 c9 20 34 3a f2 6c 65  |1,1)...& . 4:.le|
0001d690  66 74 5f 72 69 67 68 74  5f 67 72 61 64 28 30 2c  |ft_right_grad(0,|
0001d6a0  30 2c 30 2c 30 2c 30 2c  31 29 0d 0f 91 25 20 f2  |0,0,0,0,1)...% .|
0001d6b0  62 6f 74 74 6f 6d 5f 74  6f 70 5f 67 72 61 64 28  |bottom_top_grad(|
0001d6c0  32 35 35 2c 30 2c 30 2c  2d 31 2c 30 2c 30 29 0d  |255,0,0,-1,0,0).|
0001d6d0  0f 92 26 20 c9 20 35 3a  f2 6c 65 66 74 5f 72 69  |..& . 5:.left_ri|
0001d6e0  67 68 74 5f 67 72 61 64  28 30 2c 30 2c 30 2c 30  |ght_grad(0,0,0,0|
0001d6f0  2c 30 2c 31 29 0d 0f 93  28 20 f2 62 6f 74 74 6f  |,0,1)...( .botto|
0001d700  6d 5f 74 6f 70 5f 67 72  61 64 28 32 35 35 2c 32  |m_top_grad(255,2|
0001d710  35 35 2c 30 2c 2d 31 2c  2d 31 2c 30 29 0d 0f 94  |55,0,-1,-1,0)...|
0001d720  29 20 c9 20 36 3a f2 6c  65 66 74 5f 72 69 67 68  |) . 6:.left_righ|
0001d730  74 5f 67 72 61 64 28 30  2c 32 35 35 2c 30 2c 30  |t_grad(0,255,0,0|
0001d740  2c 2d 31 2c 30 29 0d 0f  95 22 20 f2 62 6f 74 74  |,-1,0)..." .bott|
0001d750  6f 6d 5f 74 6f 70 5f 67  72 61 64 28 30 2c 30 2c  |om_top_grad(0,0,|
0001d760  30 2c 30 2c 30 2c 31 29  0d 0f 96 26 20 c9 20 37  |0,0,0,1)...& . 7|
0001d770  3a f2 6c 65 66 74 5f 72  69 67 68 74 5f 67 72 61  |:.left_right_gra|
0001d780  64 28 30 2c 30 2c 30 2c  30 2c 38 2c 30 29 0d 0f  |d(0,0,0,0,8,0)..|
0001d790  97 25 20 f2 62 6f 74 74  6f 6d 5f 74 6f 70 5f 67  |.% .bottom_top_g|
0001d7a0  72 61 64 28 32 34 38 2c  30 2c 30 2c 2d 38 2c 30  |rad(248,0,0,-8,0|
0001d7b0  2c 38 29 0d 0f 98 26 20  c9 20 38 3a f2 6c 65 66  |,8)...& . 8:.lef|
0001d7c0  74 5f 72 69 67 68 74 5f  67 72 61 64 28 30 2c 30  |t_right_grad(0,0|
0001d7d0  2c 30 2c 30 2c 30 2c 38  29 0d 0f 99 25 20 f2 62  |,0,0,0,8)...% .b|
0001d7e0  6f 74 74 6f 6d 5f 74 6f  70 5f 67 72 61 64 28 30  |ottom_top_grad(0|
0001d7f0  2c 32 34 38 2c 30 2c 38  2c 2d 38 2c 30 29 0d 0f  |,248,0,8,-8,0)..|
0001d800  9a 26 20 c9 20 39 3a f2  6c 65 66 74 5f 72 69 67  |.& . 9:.left_rig|
0001d810  68 74 5f 67 72 61 64 28  30 2c 30 2c 30 2c 38 2c  |ht_grad(0,0,0,8,|
0001d820  30 2c 30 29 0d 0f 9b 25  20 f2 62 6f 74 74 6f 6d  |0,0)...% .bottom|
0001d830  5f 74 6f 70 5f 67 72 61  64 28 30 2c 32 34 38 2c  |_top_grad(0,248,|
0001d840  30 2c 30 2c 2d 38 2c 38  29 0d 0f 9c 27 20 c9 20  |0,0,-8,8)...' . |
0001d850  31 30 3a f2 6c 65 66 74  5f 72 69 67 68 74 5f 67  |10:.left_right_g|
0001d860  72 61 64 28 30 2c 30 2c  30 2c 30 2c 30 2c 38 29  |rad(0,0,0,0,0,8)|
0001d870  0d 0f 9d 25 20 f2 62 6f  74 74 6f 6d 5f 74 6f 70  |...% .bottom_top|
0001d880  5f 67 72 61 64 28 32 34  38 2c 30 2c 30 2c 2d 38  |_grad(248,0,0,-8|
0001d890  2c 30 2c 30 29 0d 0f 9e  27 20 c9 20 31 31 3a f2  |,0,0)...' . 11:.|
0001d8a0  6c 65 66 74 5f 72 69 67  68 74 5f 67 72 61 64 28  |left_right_grad(|
0001d8b0  30 2c 30 2c 30 2c 30 2c  30 2c 38 29 0d 0f 9f 28  |0,0,0,0,0,8)...(|
0001d8c0  20 f2 62 6f 74 74 6f 6d  5f 74 6f 70 5f 67 72 61  | .bottom_top_gra|
0001d8d0  64 28 32 34 38 2c 32 34  38 2c 30 2c 2d 38 2c 2d  |d(248,248,0,-8,-|
0001d8e0  38 2c 30 29 0d 0f a0 2a  20 c9 20 31 32 3a f2 6c  |8,0)...* . 12:.l|
0001d8f0  65 66 74 5f 72 69 67 68  74 5f 67 72 61 64 28 30  |eft_right_grad(0|
0001d900  2c 32 34 38 2c 30 2c 30  2c 2d 38 2c 30 29 0d 0f  |,248,0,0,-8,0)..|
0001d910  a1 22 20 f2 62 6f 74 74  6f 6d 5f 74 6f 70 5f 67  |." .bottom_top_g|
0001d920  72 61 64 28 30 2c 30 2c  30 2c 30 2c 30 2c 38 29  |rad(0,0,0,0,0,8)|
0001d930  0d 0f a2 2a 20 c9 20 31  33 3a f2 6c 65 66 74 5f  |...* . 13:.left_|
0001d940  72 69 67 68 74 5f 67 72  61 64 28 30 2c 32 34 38  |right_grad(0,248|
0001d950  2c 30 2c 30 2c 2d 38 2c  30 29 0d 0f a3 22 20 f2  |,0,0,-8,0)..." .|
0001d960  62 6f 74 74 6f 6d 5f 74  6f 70 5f 67 72 61 64 28  |bottom_top_grad(|
0001d970  30 2c 30 2c 30 2c 30 2c  30 2c 38 29 0d 0f a4 06  |0,0,0,0,0,8)....|
0001d980  20 cb 0d 0f a5 21 20 e7  20 ac 28 6d 65 72 67 65  | ....! . .(merge|
0001d990  25 29 20 8c 20 f2 75 70  6c 6f 61 64 5f 6d 65 6d  |%) . .upload_mem|
0001d9a0  6f 72 79 0d 0f a6 06 20  e1 0d 0f a7 04 0d 0f a8  |ory.... ........|
0001d9b0  2d 20 dd 20 f2 6c 65 66  74 5f 72 69 67 68 74 5f  |- . .left_right_|
0001d9c0  67 72 61 64 28 72 25 2c  67 25 2c 62 25 2c 72 69  |grad(r%,g%,b%,ri|
0001d9d0  25 2c 67 69 25 2c 62 69  25 29 0d 0f a9 22 20 e3  |%,gi%,bi%)..." .|
0001d9e0  20 78 25 3d 30 20 b8 20  31 32 38 30 20 88 36 3a  | x%=0 . 1280 .6:|
0001d9f0  e6 20 31 2c 72 25 2c 67  25 2c 62 25 0d 0f aa 16  |. 1,r%,g%,b%....|
0001da00  20 c8 93 20 c8 90 20 78  25 2c 30 2c 34 2c 31 30  | .. .. x%,0,4,10|
0001da10  32 34 0d 0f ab 1c 20 72  25 2b 3d 72 69 25 3a 67  |24.... r%+=ri%:g|
0001da20  25 2b 3d 67 69 25 3a 62  25 2b 3d 62 69 25 0d 0f  |%+=gi%:b%+=bi%..|
0001da30  ac 1f 20 e7 20 72 25 3e  32 34 38 20 8c 20 72 25  |.. . r%>248 . r%|
0001da40  3d 32 34 38 3a 72 69 25  3d 2d 72 69 25 0d 0f ad  |=248:ri%=-ri%...|
0001da50  1f 20 e7 20 67 25 3e 32  34 38 20 8c 20 67 25 3d  |. . g%>248 . g%=|
0001da60  32 34 38 3a 67 69 25 3d  2d 67 69 25 0d 0f ae 1f  |248:gi%=-gi%....|
0001da70  20 e7 20 62 25 3e 32 34  38 20 8c 20 62 25 3d 32  | . b%>248 . b%=2|
0001da80  34 38 3a 62 69 25 3d 2d  62 69 25 0d 0f af 1b 20  |48:bi%=-bi%.... |
0001da90  e7 20 72 25 3c 30 20 8c  20 72 25 3d 30 3a 72 69  |. r%<0 . r%=0:ri|
0001daa0  25 3d 2d 72 69 25 0d 0f  b0 1b 20 e7 20 67 25 3c  |%=-ri%.... . g%<|
0001dab0  30 20 8c 20 67 25 3d 30  3a 67 69 25 3d 2d 67 69  |0 . g%=0:gi%=-gi|
0001dac0  25 0d 0f b1 1b 20 e7 20  62 25 3c 30 20 8c 20 62  |%.... . b%<0 . b|
0001dad0  25 3d 30 3a 62 69 25 3d  2d 62 69 25 0d 0f b2 06  |%=0:bi%=-bi%....|
0001dae0  20 ed 0d 0f b3 06 20 e1  0d 0f b4 04 0d 0f b5 2d  | ..... ........-|
0001daf0  20 dd 20 f2 62 6f 74 74  6f 6d 5f 74 6f 70 5f 67  | . .bottom_top_g|
0001db00  72 61 64 28 72 25 2c 67  25 2c 62 25 2c 72 69 25  |rad(r%,g%,b%,ri%|
0001db10  2c 67 69 25 2c 62 69 25  29 0d 0f b6 22 20 e3 20  |,gi%,bi%)..." . |
0001db20  79 25 3d 30 20 b8 20 31  30 32 30 20 88 34 3a e6  |y%=0 . 1020 .4:.|
0001db30  20 31 2c 72 25 2c 67 25  2c 62 25 0d 0f b7 16 20  | 1,r%,g%,b%.... |
0001db40  c8 93 20 c8 90 20 30 2c  79 25 2c 31 32 38 30 2c  |.. .. 0,y%,1280,|
0001db50  32 0d 0f b8 1c 20 72 25  2b 3d 72 69 25 3a 67 25  |2.... r%+=ri%:g%|
0001db60  2b 3d 67 69 25 3a 62 25  2b 3d 62 69 25 0d 0f b9  |+=gi%:b%+=bi%...|
0001db70  1f 20 e7 20 72 25 3e 32  34 38 20 8c 20 72 25 3d  |. . r%>248 . r%=|
0001db80  32 34 38 3a 72 69 25 3d  2d 72 69 25 0d 0f ba 1f  |248:ri%=-ri%....|
0001db90  20 e7 20 67 25 3e 32 34  38 20 8c 20 67 25 3d 32  | . g%>248 . g%=2|
0001dba0  34 38 3a 67 69 25 3d 2d  67 69 25 0d 0f bb 1f 20  |48:gi%=-gi%.... |
0001dbb0  e7 20 62 25 3e 32 34 38  20 8c 20 62 25 3d 32 34  |. b%>248 . b%=24|
0001dbc0  38 3a 62 69 25 3d 2d 62  69 25 0d 0f bc 1b 20 e7  |8:bi%=-bi%.... .|
0001dbd0  20 72 25 3c 30 20 8c 20  72 25 3d 30 3a 72 69 25  | r%<0 . r%=0:ri%|
0001dbe0  3d 2d 72 69 25 0d 0f bd  1b 20 e7 20 67 25 3c 30  |=-ri%.... . g%<0|
0001dbf0  20 8c 20 67 25 3d 30 3a  67 69 25 3d 2d 67 69 25  | . g%=0:gi%=-gi%|
0001dc00  0d 0f be 1b 20 e7 20 62  25 3c 30 20 8c 20 62 25  |.... . b%<0 . b%|
0001dc10  3d 30 3a 62 69 25 3d 2d  62 69 25 0d 0f bf 06 20  |=0:bi%=-bi%.... |
0001dc20  ed 0d 0f c0 06 20 e1 0d  0f c1 04 0d 0f c2 27 20  |..... ........' |
0001dc30  dd 20 f2 70 6c 69 6e 74  68 28 78 25 2c 79 25 2c  |. .plinth(x%,y%,|
0001dc40  77 25 2c 68 25 2c 74 25  2c 72 25 2c 67 25 2c 62  |w%,h%,t%,r%,g%,b|
0001dc50  25 29 0d 0f c3 2b 20 e6  20 72 25 2c 67 25 2c 62  |%)...+ . r%,g%,b|
0001dc60  25 3a ec 20 78 25 2c 79  25 2b 68 25 3a ec 20 78  |%:. x%,y%+h%:. x|
0001dc70  25 2b 74 25 2c 79 25 2b  68 25 2d 74 25 0d 0f c4  |%+t%,y%+h%-t%...|
0001dc80  2a 20 f0 38 35 2c 78 25  2b 77 25 2c 79 25 2b 68  |* .85,x%+w%,y%+h|
0001dc90  25 3a f0 38 35 2c 78 25  2b 77 25 2d 74 25 2c 79  |%:.85,x%+w%-t%,y|
0001dca0  25 2b 68 25 2d 74 25 0d  0f c5 22 20 72 32 25 3d  |%+h%-t%..." r2%=|
0001dcb0  72 25 2d 34 30 3a 67 32  25 3d 67 25 2d 34 30 3a  |r%-40:g2%=g%-40:|
0001dcc0  62 32 25 3d 62 25 2d 34  30 0d 0f c6 14 20 e7 20  |b2%=b%-40.... . |
0001dcd0  72 32 25 3c 30 20 8c 20  72 32 25 3d 30 0d 0f c7  |r2%<0 . r2%=0...|
0001dce0  14 20 e7 20 67 32 25 3c  30 20 8c 20 67 32 25 3d  |. . g2%<0 . g2%=|
0001dcf0  30 0d 0f c8 14 20 e7 20  62 32 25 3c 30 20 8c 20  |0.... . b2%<0 . |
0001dd00  62 32 25 3d 30 0d 0f c9  12 20 e6 20 72 32 25 2c  |b2%=0.... . r2%,|
0001dd10  67 32 25 2c 62 32 25 0d  0f ca 20 20 ec 20 78 25  |g2%,b2%...  . x%|
0001dd20  2c 79 25 2b 68 25 3a ec  20 78 25 2b 74 25 2c 79  |,y%+h%:. x%+t%,y|
0001dd30  25 2b 68 25 2d 74 25 0d  0f cb 1e 20 f0 38 35 2c  |%+h%-t%.... .85,|
0001dd40  78 25 2c 79 25 3a f0 38  35 2c 78 25 2b 74 25 2c  |x%,y%:.85,x%+t%,|
0001dd50  79 25 2b 74 25 0d 0f cc  25 20 72 32 25 3d 72 25  |y%+t%...% r2%=r%|
0001dd60  2d 31 30 30 3a 67 32 25  3d 67 25 2d 31 30 30 3a  |-100:g2%=g%-100:|
0001dd70  62 32 25 3d 62 25 2d 31  30 30 0d 0f cd 14 20 e7  |b2%=b%-100.... .|
0001dd80  20 72 32 25 3c 30 20 8c  20 72 32 25 3d 30 0d 0f  | r2%<0 . r2%=0..|
0001dd90  ce 14 20 e7 20 67 32 25  3c 30 20 8c 20 67 32 25  |.. . g2%<0 . g2%|
0001dda0  3d 30 0d 0f cf 14 20 e7  20 62 32 25 3c 30 20 8c  |=0.... . b2%<0 .|
0001ddb0  20 62 32 25 3d 30 0d 0f  d0 12 20 e6 20 72 32 25  | b2%=0.... . r2%|
0001ddc0  2c 67 32 25 2c 62 32 25  0d 0f d1 26 20 ec 20 78  |,g2%,b2%...& . x|
0001ddd0  25 2b 77 25 2c 79 25 2b  68 25 3a ec 20 78 25 2b  |%+w%,y%+h%:. x%+|
0001dde0  77 25 2d 74 25 2c 79 25  2b 68 25 2d 74 25 0d 0f  |w%-t%,y%+h%-t%..|
0001ddf0  d2 24 20 f0 38 35 2c 78  25 2b 77 25 2c 79 25 3a  |.$ .85,x%+w%,y%:|
0001de00  f0 38 35 2c 78 25 2b 77  25 2d 74 25 2c 79 25 2b  |.85,x%+w%-t%,y%+|
0001de10  74 25 0d 0f d3 25 20 72  32 25 3d 72 25 2d 31 36  |t%...% r2%=r%-16|
0001de20  30 3a 67 32 25 3d 67 25  2d 31 36 30 3a 62 32 25  |0:g2%=g%-160:b2%|
0001de30  3d 62 25 2d 31 36 30 0d  0f d4 14 20 e7 20 72 32  |=b%-160.... . r2|
0001de40  25 3c 30 20 8c 20 72 32  25 3d 30 0d 0f d5 14 20  |%<0 . r2%=0.... |
0001de50  e7 20 67 32 25 3c 30 20  8c 20 67 32 25 3d 30 0d  |. g2%<0 . g2%=0.|
0001de60  0f d6 14 20 e7 20 62 32  25 3c 30 20 8c 20 62 32  |... . b2%<0 . b2|
0001de70  25 3d 30 0d 0f d7 12 20  e6 20 72 32 25 2c 67 32  |%=0.... . r2%,g2|
0001de80  25 2c 62 32 25 0d 0f d8  1a 20 ec 20 78 25 2c 79  |%,b2%.... . x%,y|
0001de90  25 3a ec 20 78 25 2b 74  25 2c 79 25 2b 74 25 0d  |%:. x%+t%,y%+t%.|
0001dea0  0f d9 24 20 f0 38 35 2c  78 25 2b 77 25 2c 79 25  |..$ .85,x%+w%,y%|
0001deb0  3a f0 38 35 2c 78 25 2b  77 25 2d 74 25 2c 79 25  |:.85,x%+w%-t%,y%|
0001dec0  2b 74 25 0d 0f da 04 0d  0f db 0f 20 e7 20 77 25  |+t%........ . w%|
0001ded0  3e 33 30 30 20 8c 0d 0f  dc 16 20 72 32 3d 72 25  |>300 ..... r2=r%|
0001dee0  3a 67 32 3d 67 25 3a 62  32 3d 62 25 0d 0f dd 13  |:g2=g%:b2=b%....|
0001def0  20 72 69 3d 28 32 35 35  2d 72 32 29 2f 36 34 0d  | ri=(255-r2)/64.|
0001df00  0f de 13 20 67 69 3d 28  32 35 35 2d 67 32 29 2f  |... gi=(255-g2)/|
0001df10  36 34 0d 0f df 13 20 62  69 3d 28 32 35 35 2d 62  |64.... bi=(255-b|
0001df20  32 29 2f 36 34 0d 0f e0  19 20 78 78 25 3d 78 25  |2)/64.... xx%=x%|
0001df30  2b 77 25 2f 32 2d 74 25  2f 32 2d 31 32 38 0d 0f  |+w%/2-t%/2-128..|
0001df40  e1 1b 20 e3 20 78 73 25  3d 78 78 25 20 b8 20 78  |.. . xs%=xx% . x|
0001df50  78 25 2b 32 35 38 20 88  32 0d 0f e2 2b 20 e6 20  |x%+258 .2...+ . |
0001df60  72 32 2c 67 32 2c 62 32  3a 86 20 78 73 25 2c 79  |r2,g2,b2:. xs%,y|
0001df70  25 2b 68 25 2d 74 25 2c  78 73 25 2b 74 25 2c 79  |%+h%-t%,xs%+t%,y|
0001df80  25 2b 68 25 0d 0f e3 19  20 72 32 2b 3d 72 69 3a  |%+h%.... r2+=ri:|
0001df90  67 32 2b 3d 67 69 3a 62  32 2b 3d 62 69 0d 0f e4  |g2+=gi:b2+=bi...|
0001dfa0  1d 20 e7 20 72 32 3e 32  35 35 20 8c 20 72 32 3d  |. . r2>255 . r2=|
0001dfb0  32 35 35 3a 72 69 3d 2d  72 69 0d 0f e5 1d 20 e7  |255:ri=-ri.... .|
0001dfc0  20 67 32 3e 32 35 35 20  8c 20 67 32 3d 32 35 35  | g2>255 . g2=255|
0001dfd0  3a 67 69 3d 2d 67 69 0d  0f e6 1d 20 e7 20 62 32  |:gi=-gi.... . b2|
0001dfe0  3e 32 35 35 20 8c 20 62  32 3d 32 35 35 3a 62 69  |>255 . b2=255:bi|
0001dff0  3d 2d 62 69 0d 0f e7 06  20 ed 0d 0f e8 06 20 cd  |=-bi.... ..... .|
0001e000  0d 0f e9 04 0d 0f ea 0f  20 e7 20 68 25 3e 32 36  |........ . h%>26|
0001e010  30 20 8c 0d 0f eb 1f 20  72 32 3d 72 25 2d 34 30  |0 ..... r2=r%-40|
0001e020  3a 67 32 3d 67 25 2d 34  30 3a 62 32 3d 62 25 2d  |:g2=g%-40:b2=b%-|
0001e030  34 30 0d 0f ec 12 20 e7  20 72 32 3c 30 20 8c 20  |40.... . r2<0 . |
0001e040  72 32 3d 30 0d 0f ed 12  20 e7 20 67 32 3c 30 20  |r2=0.... . g2<0 |
0001e050  8c 20 67 32 3d 30 0d 0f  ee 12 20 e7 20 62 32 3c  |. g2=0.... . b2<|
0001e060  30 20 8c 20 62 32 3d 30  0d 0f ef 13 20 72 69 3d  |0 . b2=0.... ri=|
0001e070  28 32 31 35 2d 72 32 29  2f 35 34 0d 0f f0 13 20  |(215-r2)/54.... |
0001e080  67 69 3d 28 32 31 35 2d  67 32 29 2f 35 34 0d 0f  |gi=(215-g2)/54..|
0001e090  f1 13 20 62 69 3d 28 32  31 35 2d 62 32 29 2f 35  |.. bi=(215-b2)/5|
0001e0a0  34 0d 0f f2 19 20 79 79  25 3d 79 25 2b 68 25 2f  |4.... yy%=y%+h%/|
0001e0b0  32 2d 74 25 2f 32 2d 31  31 34 0d 0f f3 1b 20 e3  |2-t%/2-114.... .|
0001e0c0  20 79 73 25 3d 79 79 25  20 b8 20 79 79 25 2b 32  | ys%=yy% . yy%+2|
0001e0d0  31 32 20 88 32 0d 0f f4  25 20 e6 20 72 32 2c 67  |12 .2...% . r2,g|
0001e0e0  32 2c 62 32 3a 86 20 78  25 2c 79 73 25 2c 78 25  |2,b2:. x%,ys%,x%|
0001e0f0  2b 74 25 2c 79 73 25 2b  74 25 0d 0f f5 19 20 72  |+t%,ys%+t%.... r|
0001e100  32 2b 3d 72 69 3a 67 32  2b 3d 67 69 3a 62 32 2b  |2+=ri:g2+=gi:b2+|
0001e110  3d 62 69 0d 0f f6 1d 20  e7 20 72 32 3e 32 31 35  |=bi.... . r2>215|
0001e120  20 8c 20 72 32 3d 32 31  30 3a 72 69 3d 2d 72 69  | . r2=210:ri=-ri|
0001e130  0d 0f f7 1d 20 e7 20 67  32 3e 32 31 35 20 8c 20  |.... . g2>215 . |
0001e140  67 32 3d 32 31 30 3a 67  69 3d 2d 67 69 0d 0f f8  |g2=210:gi=-gi...|
0001e150  1d 20 e7 20 62 32 3e 32  31 35 20 8c 20 62 32 3d  |. . b2>215 . b2=|
0001e160  32 31 30 3a 62 69 3d 2d  62 69 0d 0f f9 06 20 ed  |210:bi=-bi.... .|
0001e170  0d 0f fa 06 20 cd 0d 0f  fb 06 20 e1 0d 0f fc 04  |.... ..... .....|
0001e180  0d 0f fd 1b 20 dd 20 f2  70 69 63 70 72 6f 5f 70  |.... . .picpro_p|
0001e190  61 6e 65 6c 28 78 25 2c  79 25 29 0d 0f fe 1a 20  |anel(x%,y%).... |
0001e1a0  78 73 74 61 72 74 25 3d  78 25 3a 79 73 74 61 72  |xstart%=x%:ystar|
0001e1b0  74 25 3d 79 25 0d 0f ff  23 20 f2 64 69 73 70 6c  |t%=y%...# .displ|
0001e1c0  61 79 5f 6d 65 6d 6f 72  79 3a 72 25 3d 30 3a 67  |ay_memory:r%=0:g|
0001e1d0  25 3d 30 3a 62 25 3d 30  0d 10 00 1e 20 65 78 69  |%=0:b%=0.... exi|
0001e1e0  74 25 3d 30 3a f5 3a 72  65 73 65 74 25 3d 30 3a  |t%=0:.:reset%=0:|
0001e1f0  c8 91 20 30 2c 30 0d 10  01 21 20 f2 72 61 69 73  |.. 0,0...! .rais|
0001e200  65 64 5f 62 6c 6f 63 6b  28 78 25 2c 79 25 2c 34  |ed_block(x%,y%,4|
0001e210  35 36 2c 32 38 30 29 0d  10 02 0d 20 c8 91 20 78  |56,280).... .. x|
0001e220  25 2c 79 25 0d 10 03 20  20 f2 72 61 69 73 65 64  |%,y%...  .raised|
0001e230  5f 62 6c 6f 63 6b 28 33  32 2c 33 32 2c 31 30 38  |_block(32,32,108|
0001e240  2c 34 30 29 0d 10 04 21  20 f2 72 61 69 73 65 64  |,40)...! .raised|
0001e250  5f 62 6c 6f 63 6b 28 31  37 32 2c 33 32 2c 31 30  |_block(172,32,10|
0001e260  38 2c 34 30 29 0d 10 05  21 20 f2 72 61 69 73 65  |8,40)...! .raise|
0001e270  64 5f 62 6c 6f 63 6b 28  33 31 32 2c 33 32 2c 31  |d_block(312,32,1|
0001e280  30 38 2c 34 30 29 0d 10  06 23 20 f2 77 72 69 74  |08,40)...# .writ|
0001e290  65 32 28 22 52 45 53 45  54 22 2c 78 25 2b 33 34  |e2("RESET",x%+34|
0001e2a0  2c 79 25 2b 33 36 2c 34  29 0d 10 07 22 20 f2 77  |,y%+36,4)..." .w|
0001e2b0  72 69 74 65 32 28 22 54  52 59 22 2c 78 25 2b 31  |rite2("TRY",x%+1|
0001e2c0  39 32 2c 79 25 2b 33 36  2c 34 29 0d 10 08 21 20  |92,y%+36,4)...! |
0001e2d0  f2 77 72 69 74 65 32 28  22 4f 4b 22 2c 78 25 2b  |.write2("OK",x%+|
0001e2e0  33 33 38 2c 79 25 2b 33  36 2c 34 29 0d 10 09 23  |338,y%+36,4)...#|
0001e2f0  20 e6 20 32 35 35 2c 30  2c 30 3a c8 93 20 c8 90  | . 255,0,0:.. ..|
0001e300  20 31 36 32 2c 32 31 36  2c 31 32 36 2c 35 32 0d  | 162,216,126,52.|
0001e310  10 0a 23 20 e6 20 30 2c  32 30 30 2c 30 3a c8 93  |..# . 0,200,0:..|
0001e320  20 c8 90 20 31 36 32 2c  31 35 36 2c 31 32 36 2c  | .. 162,156,126,|
0001e330  35 32 0d 10 0b 22 20 e6  20 30 2c 30 2c 32 35 35  |52..." . 0,0,255|
0001e340  3a c8 93 20 c8 90 20 31  36 32 2c 39 36 2c 31 32  |:.. .. 162,96,12|
0001e350  36 2c 35 32 0d 10 0c 25  20 e6 20 32 35 35 2c 32  |6,52...% . 255,2|
0001e360  35 35 2c 32 35 35 3a e3  20 59 25 3d 31 30 30 20  |55,255:. Y%=100 |
0001e370  b8 20 32 32 30 20 88 36  30 0d 10 0d 3a 20 c8 99  |. 220 .60...: ..|
0001e380  20 73 70 72 73 77 69 25  2c 32 35 36 2b 35 32 2c  | sprswi%,256+52,|
0001e390  73 70 62 25 2c 22 6c 65  66 74 22 2c 31 30 38 2c  |spb%,"left",108,|
0001e3a0  59 25 2b 34 2c 38 2c 30  2c 74 72 61 6e 73 6c 61  |Y%+4,8,0,transla|
0001e3b0  74 65 25 0d 10 0e 3b 20  c8 99 20 73 70 72 73 77  |te%...; .. sprsw|
0001e3c0  69 25 2c 32 35 36 2b 35  32 2c 73 70 62 25 2c 22  |i%,256+52,spb%,"|
0001e3d0  72 69 67 68 74 22 2c 33  30 34 2c 59 25 2b 34 2c  |right",304,Y%+4,|
0001e3e0  38 2c 30 2c 74 72 61 6e  73 6c 61 74 65 25 0d 10  |8,0,translate%..|
0001e3f0  0f 1a 20 c8 93 20 c8 90  20 31 36 36 2c 59 25 2c  |.. .. .. 166,Y%,|
0001e400  31 31 38 2c 34 34 3a ed  0d 10 10 16 20 c8 97 20  |118,44:..... .. |
0001e410  c8 93 20 30 2c 30 2c 34  35 36 2c 32 38 30 0d 10  |.. 0,0,456,280..|
0001e420  11 22 20 e6 20 32 35 35  2c 32 35 35 2c 32 35 35  |." . 255,255,255|
0001e430  3a f2 77 61 69 74 5f 6e  6f 5f 62 75 74 74 6f 6e  |:.wait_no_button|
0001e440  0d 10 12 06 20 f5 0d 10  13 2c 20 e7 20 72 25 3e  |.... ...., . r%>|
0001e450  2d 31 20 8c 20 72 24 3d  22 2b 22 2b c3 20 72 25  |-1 . r$="+"+. r%|
0001e460  2b 22 25 22 20 8b 20 72  24 3d c3 20 72 25 2b 22  |+"%" . r$=. r%+"|
0001e470  25 22 0d 10 14 2c 20 e7  20 67 25 3e 2d 31 20 8c  |%"..., . g%>-1 .|
0001e480  20 67 24 3d 22 2b 22 2b  c3 20 67 25 2b 22 25 22  | g$="+"+. g%+"%"|
0001e490  20 8b 20 67 24 3d c3 20  67 25 2b 22 25 22 0d 10  | . g$=. g%+"%"..|
0001e4a0  15 2c 20 e7 20 62 25 3e  2d 31 20 8c 20 62 24 3d  |., . b%>-1 . b$=|
0001e4b0  22 2b 22 2b c3 20 62 25  2b 22 25 22 20 8b 20 62  |"+"+. b%+"%" . b|
0001e4c0  24 3d c3 20 62 25 2b 22  25 22 0d 10 16 20 20 f2  |$=. b%+"%"...  .|
0001e4d0  77 72 69 74 65 32 28 72  24 2c 78 25 2b 31 38 30  |write2(r$,x%+180|
0001e4e0  2c 79 25 2b 32 32 36 2c  30 29 0d 10 17 20 20 f2  |,y%+226,0)...  .|
0001e4f0  77 72 69 74 65 32 28 67  24 2c 78 25 2b 31 38 30  |write2(g$,x%+180|
0001e500  2c 79 25 2b 31 36 36 2c  30 29 0d 10 18 20 20 f2  |,y%+166,0)...  .|
0001e510  77 72 69 74 65 32 28 62  24 2c 78 25 2b 31 38 30  |write2(b$,x%+180|
0001e520  2c 79 25 2b 31 30 36 2c  30 29 0d 10 19 0c 20 4b  |,y%+106,0).... K|
0001e530  3d a6 28 32 30 29 0d 10  1a 15 20 f5 3a c8 97 20  |=.(20).... .:.. |
0001e540  58 2c 59 2c 42 3a fd 20  42 3d 34 0d 10 1b 2d 20  |X,Y,B:. B=4...- |
0001e550  e7 20 94 28 58 2d 31 33  32 29 3c 32 34 20 80 20  |. .(X-132)<24 . |
0001e560  94 28 59 2d 32 34 32 29  3c 32 34 20 8c 20 f2 72  |.(Y-242)<24 . .r|
0001e570  65 64 5f 6d 69 6e 75 73  0d 10 1c 2c 20 e7 20 94  |ed_minus..., . .|
0001e580  28 58 2d 33 31 38 29 3c  32 34 20 80 20 94 28 59  |(X-318)<24 . .(Y|
0001e590  2d 32 34 32 29 3c 32 34  20 8c 20 f2 72 65 64 5f  |-242)<24 . .red_|
0001e5a0  70 6c 75 73 0d 10 1d 2f  20 e7 20 94 28 58 2d 31  |plus.../ . .(X-1|
0001e5b0  33 32 29 3c 32 34 20 80  20 94 28 59 2d 31 38 32  |32)<24 . .(Y-182|
0001e5c0  29 3c 32 34 20 8c 20 f2  67 72 65 65 6e 5f 6d 69  |)<24 . .green_mi|
0001e5d0  6e 75 73 0d 10 1e 2e 20  e7 20 94 28 58 2d 33 31  |nus.... . .(X-31|
0001e5e0  38 29 3c 32 34 20 80 20  94 28 59 2d 31 38 32 29  |8)<24 . .(Y-182)|
0001e5f0  3c 32 34 20 8c 20 f2 67  72 65 65 6e 5f 70 6c 75  |<24 . .green_plu|
0001e600  73 0d 10 1f 2e 20 e7 20  94 28 58 2d 31 33 32 29  |s.... . .(X-132)|
0001e610  3c 32 34 20 80 20 94 28  59 2d 31 32 32 29 3c 32  |<24 . .(Y-122)<2|
0001e620  34 20 8c 20 f2 62 6c 75  65 5f 6d 69 6e 75 73 0d  |4 . .blue_minus.|
0001e630  10 20 2d 20 e7 20 94 28  58 2d 33 31 38 29 3c 32  |. - . .(X-318)<2|
0001e640  34 20 80 20 94 28 59 2d  31 32 32 29 3c 32 34 20  |4 . .(Y-122)<24 |
0001e650  8c 20 f2 62 6c 75 65 5f  70 6c 75 73 0d 10 21 21  |. .blue_plus..!!|
0001e660  20 e7 20 94 28 58 2d 33  36 36 29 3c 36 30 20 80  | . .(X-366)<60 .|
0001e670  20 94 28 59 2d 35 36 29  3c 33 30 20 8c 0d 10 22  | .(Y-56)<30 ..."|
0001e680  2c 20 f2 70 72 6f 63 65  73 73 5f 70 69 63 74 75  |, .process_pictu|
0001e690  72 65 3a f2 75 70 6c 6f  61 64 5f 6d 65 6d 6f 72  |re:.upload_memor|
0001e6a0  79 3a 65 78 69 74 25 3d  b9 0d 10 23 06 20 cd 0d  |y:exit%=...#. ..|
0001e6b0  10 24 3b 20 e7 20 94 28  58 2d 32 32 34 29 3c 36  |.$; . .(X-224)<6|
0001e6c0  30 20 80 20 94 28 59 2d  35 36 29 3c 33 30 20 8c  |0 . .(Y-56)<30 .|
0001e6d0  20 f2 70 72 6f 63 65 73  73 5f 70 69 63 74 75 72  | .process_pictur|
0001e6e0  65 3a 72 65 73 65 74 25  3d b9 0d 10 25 20 20 e7  |e:reset%=...%  .|
0001e6f0  20 94 28 58 2d 38 34 29  3c 36 30 20 80 20 94 28  | .(X-84)<60 . .(|
0001e700  59 2d 35 36 29 3c 33 30  20 8c 0d 10 26 2c 20 72  |Y-56)<30 ...&, r|
0001e710  25 3d 30 3a 67 25 3d 30  3a 62 25 3d 30 3a f2 64  |%=0:g%=0:b%=0:.d|
0001e720  69 73 70 6c 61 79 5f 6d  65 6d 6f 72 79 3a 72 65  |isplay_memory:re|
0001e730  73 65 74 25 3d b9 0d 10  27 06 20 cd 0d 10 28 15  |set%=...'. ...(.|
0001e740  20 fd 20 65 78 69 74 25  20 84 20 72 65 73 65 74  | . exit% . reset|
0001e750  25 0d 10 29 0f 20 fd 20  ac 20 72 65 73 65 74 25  |%..). . . reset%|
0001e760  0d 10 2a 2f 20 c8 91 20  30 2c 30 3a f2 64 69 73  |..*/ .. 0,0:.dis|
0001e770  70 6c 61 79 5f 6d 65 6d  6f 72 79 3a c8 97 20 c8  |play_memory:.. .|
0001e780  93 20 30 2c 30 2c 31 32  38 30 2c 31 30 32 34 0d  |. 0,0,1280,1024.|
0001e790  10 2b 06 20 e1 0d 10 2c  04 0d 10 2d 11 20 dd 20  |.+. ...,...-. . |
0001e7a0  f2 72 65 64 5f 6d 69 6e  75 73 0d 10 2e 2a 20 e7  |.red_minus...* .|
0001e7b0  20 72 25 3e 2d 35 30 20  8c 20 72 25 2d 3d 35 3a  | r%>-50 . r%-=5:|
0001e7c0  c8 93 20 c8 90 20 31 36  38 2c 32 32 32 2c 31 31  |.. .. 168,222,11|
0001e7d0  32 2c 34 30 0d 10 2f 06  20 e1 0d 10 30 10 20 dd  |2,40../. ...0. .|
0001e7e0  20 f2 72 65 64 5f 70 6c  75 73 0d 10 31 29 20 e7  | .red_plus..1) .|
0001e7f0  20 72 25 3c 35 30 20 8c  20 72 25 2b 3d 35 3a c8  | r%<50 . r%+=5:.|
0001e800  93 20 c8 90 20 31 36 38  2c 32 32 32 2c 31 31 32  |. .. 168,222,112|
0001e810  2c 34 30 0d 10 32 06 20  e1 0d 10 33 13 20 dd 20  |,40..2. ...3. . |
0001e820  f2 67 72 65 65 6e 5f 6d  69 6e 75 73 0d 10 34 2a  |.green_minus..4*|
0001e830  20 e7 20 67 25 3e 2d 35  30 20 8c 20 67 25 2d 3d  | . g%>-50 . g%-=|
0001e840  35 3a c8 93 20 c8 90 20  31 36 38 2c 31 36 32 2c  |5:.. .. 168,162,|
0001e850  31 31 32 2c 34 30 0d 10  35 06 20 e1 0d 10 36 12  |112,40..5. ...6.|
0001e860  20 dd 20 f2 67 72 65 65  6e 5f 70 6c 75 73 0d 10  | . .green_plus..|
0001e870  37 29 20 e7 20 67 25 3c  35 30 20 8c 20 67 25 2b  |7) . g%<50 . g%+|
0001e880  3d 35 3a c8 93 20 c8 90  20 31 36 38 2c 31 36 32  |=5:.. .. 168,162|
0001e890  2c 31 31 32 2c 34 30 0d  10 38 06 20 e1 0d 10 39  |,112,40..8. ...9|
0001e8a0  12 20 dd 20 f2 62 6c 75  65 5f 6d 69 6e 75 73 0d  |. . .blue_minus.|
0001e8b0  10 3a 2a 20 e7 20 62 25  3e 2d 35 30 20 8c 20 62  |.:* . b%>-50 . b|
0001e8c0  25 2d 3d 35 3a c8 93 20  c8 90 20 31 36 38 2c 31  |%-=5:.. .. 168,1|
0001e8d0  30 32 2c 31 31 32 2c 34  30 0d 10 3b 06 20 e1 0d  |02,112,40..;. ..|
0001e8e0  10 3c 11 20 dd 20 f2 62  6c 75 65 5f 70 6c 75 73  |.<. . .blue_plus|
0001e8f0  0d 10 3d 29 20 e7 20 62  25 3c 35 30 20 8c 20 62  |..=) . b%<50 . b|
0001e900  25 2b 3d 35 3a c8 93 20  c8 90 20 31 36 38 2c 31  |%+=5:.. .. 168,1|
0001e910  30 32 2c 31 31 32 2c 34  30 0d 10 3e 06 20 e1 0d  |02,112,40..>. ..|
0001e920  10 3f 04 0d 10 40 17 20  dd 20 f2 70 72 6f 63 65  |.?...@. . .proce|
0001e930  73 73 5f 70 69 63 74 75  72 65 0d 10 41 23 20 f2  |ss_picture..A# .|
0001e940  70 69 63 70 72 6f 5f 74  61 62 6c 65 73 3a f2 64  |picpro_tables:.d|
0001e950  69 73 70 6c 61 79 5f 6d  65 6d 6f 72 79 0d 10 42  |isplay_memory..B|
0001e960  40 20 21 73 74 61 72 74  5f 61 64 64 72 65 73 73  |@ !start_address|
0001e970  3d 73 63 72 65 65 6e 25  3a 21 70 69 63 70 72 6f  |=screen%:!picpro|
0001e980  5f 62 79 74 65 73 3d 31  32 38 30 3a 21 70 69 63  |_bytes=1280:!pic|
0001e990  70 72 6f 5f 6c 69 6e 65  73 3d 35 31 32 0d 10 43  |pro_lines=512..C|
0001e9a0  46 20 21 72 65 64 5f 61  64 64 72 65 73 73 3d 72  |F !red_address=r|
0001e9b0  65 64 64 61 74 61 3a 21  67 72 65 65 6e 5f 61 64  |eddata:!green_ad|
0001e9c0  64 72 65 73 73 3d 67 72  6e 64 61 74 61 3a 21 62  |dress=grndata:!b|
0001e9d0  6c 75 65 5f 61 64 64 72  65 73 73 3d 62 6c 75 64  |lue_address=blud|
0001e9e0  61 74 61 0d 10 44 16 20  d6 20 70 69 63 74 75 72  |ata..D. . pictur|
0001e9f0  65 5f 70 72 6f 63 65 73  73 0d 10 45 06 20 e1 0d  |e_process..E. ..|
0001ea00  10 46 04 0d 10 47 17 20  dd 20 f2 70 69 63 70 72  |.F...G. . .picpr|
0001ea10  6f 5f 61 73 73 65 6d 62  6c 65 0d 10 48 2e 20 72  |o_assemble..H. r|
0001ea20  65 64 74 61 62 6c 65 3d  33 3a 67 72 65 65 6e 74  |edtable=3:greent|
0001ea30  61 62 6c 65 3d 34 3a 62  6c 75 65 74 61 62 6c 65  |able=4:bluetable|
0001ea40  3d 35 3a 6e 65 77 3d 36  0d 10 49 2d 20 62 61 73  |=5:new=6..I- bas|
0001ea50  65 3d 37 3a 6f 66 66 73  65 74 3d 38 3a 62 79 74  |e=7:offset=8:byt|
0001ea60  65 73 3d 39 3a 6c 69 6e  65 73 3d 31 30 3a 64 61  |es=9:lines=10:da|
0001ea70  74 61 3d 31 31 0d 10 4a  26 20 6e 65 77 31 3d 33  |ta=11..J& new1=3|
0001ea80  3a 6e 65 77 32 3d 34 3a  72 65 73 75 6c 74 31 3d  |:new2=4:result1=|
0001ea90  36 3a 72 65 73 75 6c 74  32 3d 39 0d 10 4b 17 20  |6:result2=9..K. |
0001eaa0  de 20 70 69 63 70 72 6f  5f 63 6f 64 65 25 20 38  |. picpro_code% 8|
0001eab0  30 30 0d 10 4c 11 20 e3  20 50 3d 30 20 b8 20 32  |00..L. . P=0 . 2|
0001eac0  20 88 32 0d 10 4d 14 20  50 25 3d 70 69 63 70 72  | .2..M. P%=picpr|
0001ead0  6f 5f 63 6f 64 65 25 0d  10 4e 0b 20 5b 4f 50 54  |o_code%..N. [OPT|
0001eae0  20 50 0d 10 4f 15 20 2e  70 69 63 74 75 72 65 5f  | P..O. .picture_|
0001eaf0  70 72 6f 63 65 73 73 0d  10 50 29 20 4c 44 52 20  |process..P) LDR |
0001eb00  62 61 73 65 2c 73 74 61  72 74 5f 61 64 64 72 65  |base,start_addre|
0001eb10  73 73 3a 4d 4f 56 20 6f  66 66 73 65 74 2c 23 30  |ss:MOV offset,#0|
0001eb20  0d 10 51 32 20 4c 44 52  20 62 79 74 65 73 2c 70  |..Q2 LDR bytes,p|
0001eb30  69 63 70 72 6f 5f 62 79  74 65 73 3a 4c 44 52 20  |icpro_bytes:LDR |
0001eb40  6c 69 6e 65 73 2c 70 69  63 70 72 6f 5f 6c 69 6e  |lines,picpro_lin|
0001eb50  65 73 0d 10 52 3a 20 4c  44 52 20 72 65 64 74 61  |es..R: LDR redta|
0001eb60  62 6c 65 2c 72 65 64 5f  61 64 64 72 65 73 73 3a  |ble,red_address:|
0001eb70  4c 44 52 20 67 72 65 65  6e 74 61 62 6c 65 2c 67  |LDR greentable,g|
0001eb80  72 65 65 6e 5f 61 64 64  72 65 73 73 0d 10 53 1f  |reen_address..S.|
0001eb90  20 4c 44 52 20 62 6c 75  65 74 61 62 6c 65 2c 62  | LDR bluetable,b|
0001eba0  6c 75 65 5f 61 64 64 72  65 73 73 0d 10 54 11 20  |lue_address..T. |
0001ebb0  2e 70 69 63 70 72 6f 5f  6c 6f 6f 70 0d 10 55 24  |.picpro_loop..U$|
0001ebc0  20 4d 4f 56 20 6e 65 77  2c 23 30 3a 4c 44 52 20  | MOV new,#0:LDR |
0001ebd0  52 30 2c 5b 62 61 73 65  2c 6f 66 66 73 65 74 5d  |R0,[base,offset]|
0001ebe0  0d 10 56 27 20 80 20 52  32 2c 52 30 2c 23 33 31  |..V' . R2,R0,#31|
0001ebf0  3a 4c 44 52 42 20 6e 65  77 2c 5b 72 65 64 74 61  |:LDRB new,[redta|
0001ec00  62 6c 65 2c 52 32 5d 0d  10 57 3a 20 4d 4f 56 20  |ble,R2]..W: MOV |
0001ec10  52 32 2c 52 30 2c 4c 53  52 23 35 3a 80 20 52 32  |R2,R0,LSR#5:. R2|
0001ec20  2c 52 32 2c 23 33 31 3a  4c 44 52 42 20 64 61 74  |,R2,#31:LDRB dat|
0001ec30  61 2c 5b 67 72 65 65 6e  74 61 62 6c 65 2c 52 32  |a,[greentable,R2|
0001ec40  5d 0d 10 58 29 20 4d 4f  56 20 64 61 74 61 2c 64  |]..X) MOV data,d|
0001ec50  61 74 61 2c 4c 53 4c 23  35 3a 41 44 44 20 6e 65  |ata,LSL#5:ADD ne|
0001ec60  77 2c 6e 65 77 2c 64 61  74 61 0d 10 59 3a 20 4d  |w,new,data..Y: M|
0001ec70  4f 56 20 52 32 2c 52 30  2c 4c 53 52 23 31 30 3a  |OV R2,R0,LSR#10:|
0001ec80  80 20 52 32 2c 52 32 2c  23 33 31 3a 4c 44 52 42  |. R2,R2,#31:LDRB|
0001ec90  20 64 61 74 61 2c 5b 62  6c 75 65 74 61 62 6c 65  | data,[bluetable|
0001eca0  2c 52 32 5d 0d 10 5a 2a  20 4d 4f 56 20 64 61 74  |,R2]..Z* MOV dat|
0001ecb0  61 2c 64 61 74 61 2c 4c  53 4c 23 31 30 3a 41 44  |a,data,LSL#10:AD|
0001ecc0  44 20 6e 65 77 2c 6e 65  77 2c 64 61 74 61 0d 10  |D new,new,data..|
0001ecd0  5b 39 20 4d 4f 56 20 52  32 2c 52 30 2c 4c 53 52  |[9 MOV R2,R0,LSR|
0001ece0  23 31 36 3a 80 20 52 32  2c 52 32 2c 23 33 31 3a  |#16:. R2,R2,#31:|
0001ecf0  4c 44 52 42 20 64 61 74  61 2c 5b 72 65 64 74 61  |LDRB data,[redta|
0001ed00  62 6c 65 2c 52 32 5d 0d  10 5c 2a 20 4d 4f 56 20  |ble,R2]..\* MOV |
0001ed10  64 61 74 61 2c 64 61 74  61 2c 4c 53 4c 23 31 36  |data,data,LSL#16|
0001ed20  3a 41 44 44 20 6e 65 77  2c 6e 65 77 2c 64 61 74  |:ADD new,new,dat|
0001ed30  61 0d 10 5d 3b 20 4d 4f  56 20 52 32 2c 52 30 2c  |a..]; MOV R2,R0,|
0001ed40  4c 53 52 23 32 31 3a 80  20 52 32 2c 52 32 2c 23  |LSR#21:. R2,R2,#|
0001ed50  33 31 3a 4c 44 52 42 20  64 61 74 61 2c 5b 67 72  |31:LDRB data,[gr|
0001ed60  65 65 6e 74 61 62 6c 65  2c 52 32 5d 0d 10 5e 2a  |eentable,R2]..^*|
0001ed70  20 4d 4f 56 20 64 61 74  61 2c 64 61 74 61 2c 4c  | MOV data,data,L|
0001ed80  53 4c 23 32 31 3a 41 44  44 20 6e 65 77 2c 6e 65  |SL#21:ADD new,ne|
0001ed90  77 2c 64 61 74 61 0d 10  5f 3a 20 4d 4f 56 20 52  |w,data.._: MOV R|
0001eda0  32 2c 52 30 2c 4c 53 52  23 32 36 3a 80 20 52 32  |2,R0,LSR#26:. R2|
0001edb0  2c 52 32 2c 23 33 31 3a  4c 44 52 42 20 64 61 74  |,R2,#31:LDRB dat|
0001edc0  61 2c 5b 62 6c 75 65 74  61 62 6c 65 2c 52 32 5d  |a,[bluetable,R2]|
0001edd0  0d 10 60 2a 20 4d 4f 56  20 64 61 74 61 2c 64 61  |..`* MOV data,da|
0001ede0  74 61 2c 4c 53 4c 23 32  36 3a 41 44 44 20 6e 65  |ta,LSL#26:ADD ne|
0001edf0  77 2c 6e 65 77 2c 64 61  74 61 0d 10 61 2f 20 53  |w,new,data..a/ S|
0001ee00  54 52 20 6e 65 77 2c 5b  62 61 73 65 2c 6f 66 66  |TR new,[base,off|
0001ee10  73 65 74 5d 3a 41 44 44  20 6f 66 66 73 65 74 2c  |set]:ADD offset,|
0001ee20  6f 66 66 73 65 74 2c 23  34 0d 10 62 25 20 43 4d  |offset,#4..b% CM|
0001ee30  50 20 6f 66 66 73 65 74  2c 62 79 74 65 73 3a 42  |P offset,bytes:B|
0001ee40  4c 54 20 70 69 63 70 72  6f 5f 6c 6f 6f 70 0d 10  |LT picpro_loop..|
0001ee50  63 26 20 41 44 44 20 62  61 73 65 2c 62 61 73 65  |c& ADD base,base|
0001ee60  2c 23 31 32 38 30 3a 4d  4f 56 20 6f 66 66 73 65  |,#1280:MOV offse|
0001ee70  74 2c 23 30 0d 10 64 28  20 53 55 42 53 20 6c 69  |t,#0..d( SUBS li|
0001ee80  6e 65 73 2c 6c 69 6e 65  73 2c 23 31 3a 42 4e 45  |nes,lines,#1:BNE|
0001ee90  20 70 69 63 70 72 6f 5f  6c 6f 6f 70 0d 10 65 0f  | picpro_loop..e.|
0001eea0  20 4d 4f 56 20 50 43 2c  52 31 34 0d 10 66 04 0d  | MOV PC,R14..f..|
0001eeb0  10 67 19 20 2e 64 69 73  70 6c 61 79 5f 72 65 64  |.g. .display_red|
0001eec0  5f 61 73 5f 6d 6f 6e 6f  0d 10 68 38 20 4c 44 52  |_as_mono..h8 LDR|
0001eed0  20 62 61 73 65 2c 73 74  61 72 74 5f 61 64 64 72  | base,start_addr|
0001eee0  65 73 73 3a 4d 4f 56 20  6f 66 66 73 65 74 2c 23  |ess:MOV offset,#|
0001eef0  30 3a 4d 4f 56 20 6c 69  6e 65 73 2c 23 35 31 32  |0:MOV lines,#512|
0001ef00  0d 10 69 13 20 2e 72 65  64 5f 6d 6f 6e 6f 5f 6c  |..i. .red_mono_l|
0001ef10  6f 6f 70 0d 10 6a 27 20  4c 44 52 20 52 30 2c 5b  |oop..j' LDR R0,[|
0001ef20  62 61 73 65 2c 6f 66 66  73 65 74 5d 3a 80 20 64  |base,offset]:. d|
0001ef30  61 74 61 2c 52 30 2c 23  33 31 0d 10 6b 2d 20 4d  |ata,R0,#31..k- M|
0001ef40  4f 56 20 6e 65 77 31 2c  64 61 74 61 2c 4c 53 4c  |OV new1,data,LSL|
0001ef50  23 35 3a 4d 4f 56 20 6e  65 77 32 2c 64 61 74 61  |#5:MOV new2,data|
0001ef60  2c 4c 53 4c 23 31 30 0d  10 6c 33 20 41 44 44 20  |,LSL#10..l3 ADD |
0001ef70  72 65 73 75 6c 74 31 2c  6e 65 77 32 2c 6e 65 77  |result1,new2,new|
0001ef80  31 3a 41 44 44 20 72 65  73 75 6c 74 31 2c 72 65  |1:ADD result1,re|
0001ef90  73 75 6c 74 31 2c 64 61  74 61 0d 10 6d 23 20 4d  |sult1,data..m# M|
0001efa0  4f 56 20 52 30 2c 52 30  2c 4c 53 52 23 31 36 3a  |OV R0,R0,LSR#16:|
0001efb0  80 20 64 61 74 61 2c 52  30 2c 23 33 31 0d 10 6e  |. data,R0,#31..n|
0001efc0  2d 20 4d 4f 56 20 6e 65  77 31 2c 64 61 74 61 2c  |- MOV new1,data,|
0001efd0  4c 53 4c 23 35 3a 4d 4f  56 20 6e 65 77 32 2c 64  |LSL#5:MOV new2,d|
0001efe0  61 74 61 2c 4c 53 4c 23  31 30 0d 10 6f 33 20 41  |ata,LSL#10..o3 A|
0001eff0  44 44 20 72 65 73 75 6c  74 32 2c 6e 65 77 32 2c  |DD result2,new2,|
0001f000  6e 65 77 31 3a 41 44 44  20 72 65 73 75 6c 74 32  |new1:ADD result2|
0001f010  2c 72 65 73 75 6c 74 32  2c 64 61 74 61 0d 10 70  |,result2,data..p|
0001f020  3b 20 4d 4f 56 20 72 65  73 75 6c 74 32 2c 72 65  |; MOV result2,re|
0001f030  73 75 6c 74 32 2c 4c 53  4c 23 31 36 3a 41 44 44  |sult2,LSL#16:ADD|
0001f040  20 72 65 73 75 6c 74 31  2c 72 65 73 75 6c 74 31  | result1,result1|
0001f050  2c 72 65 73 75 6c 74 32  0d 10 71 33 20 53 54 52  |,result2..q3 STR|
0001f060  20 72 65 73 75 6c 74 31  2c 5b 62 61 73 65 2c 6f  | result1,[base,o|
0001f070  66 66 73 65 74 5d 3a 41  44 44 20 6f 66 66 73 65  |ffset]:ADD offse|
0001f080  74 2c 6f 66 66 73 65 74  2c 23 34 0d 10 72 27 20  |t,offset,#4..r' |
0001f090  43 4d 50 20 6f 66 66 73  65 74 2c 23 31 32 38 30  |CMP offset,#1280|
0001f0a0  3a 42 4e 45 20 72 65 64  5f 6d 6f 6e 6f 5f 6c 6f  |:BNE red_mono_lo|
0001f0b0  6f 70 0d 10 73 26 20 4d  4f 56 20 6f 66 66 73 65  |op..s& MOV offse|
0001f0c0  74 2c 23 30 3a 41 44 44  20 62 61 73 65 2c 62 61  |t,#0:ADD base,ba|
0001f0d0  73 65 2c 23 31 32 38 30  0d 10 74 2a 20 53 55 42  |se,#1280..t* SUB|
0001f0e0  53 20 6c 69 6e 65 73 2c  6c 69 6e 65 73 2c 23 31  |S lines,lines,#1|
0001f0f0  3a 42 4e 45 20 72 65 64  5f 6d 6f 6e 6f 5f 6c 6f  |:BNE red_mono_lo|
0001f100  6f 70 0d 10 75 0f 20 4d  4f 56 20 50 43 2c 52 31  |op..u. MOV PC,R1|
0001f110  34 0d 10 76 04 0d 10 77  1b 20 2e 64 69 73 70 6c  |4..v...w. .displ|
0001f120  61 79 5f 67 72 65 65 6e  5f 61 73 5f 6d 6f 6e 6f  |ay_green_as_mono|
0001f130  0d 10 78 38 20 4c 44 52  20 62 61 73 65 2c 73 74  |..x8 LDR base,st|
0001f140  61 72 74 5f 61 64 64 72  65 73 73 3a 4d 4f 56 20  |art_address:MOV |
0001f150  6f 66 66 73 65 74 2c 23  30 3a 4d 4f 56 20 6c 69  |offset,#0:MOV li|
0001f160  6e 65 73 2c 23 35 31 32  0d 10 79 15 20 2e 67 72  |nes,#512..y. .gr|
0001f170  65 65 6e 5f 6d 6f 6e 6f  5f 6c 6f 6f 70 0d 10 7a  |een_mono_loop..z|
0001f180  3b 20 4c 44 52 20 52 30  2c 5b 62 61 73 65 2c 6f  |; LDR R0,[base,o|
0001f190  66 66 73 65 74 5d 3a 4d  4f 56 20 64 61 74 61 2c  |ffset]:MOV data,|
0001f1a0  52 30 2c 4c 53 52 23 35  3a 80 20 64 61 74 61 2c  |R0,LSR#5:. data,|
0001f1b0  64 61 74 61 2c 23 33 31  0d 10 7b 2d 20 4d 4f 56  |data,#31..{- MOV|
0001f1c0  20 6e 65 77 31 2c 64 61  74 61 2c 4c 53 4c 23 35  | new1,data,LSL#5|
0001f1d0  3a 4d 4f 56 20 6e 65 77  32 2c 64 61 74 61 2c 4c  |:MOV new2,data,L|
0001f1e0  53 4c 23 31 30 0d 10 7c  33 20 41 44 44 20 72 65  |SL#10..|3 ADD re|
0001f1f0  73 75 6c 74 31 2c 6e 65  77 32 2c 6e 65 77 31 3a  |sult1,new2,new1:|
0001f200  41 44 44 20 72 65 73 75  6c 74 31 2c 72 65 73 75  |ADD result1,resu|
0001f210  6c 74 31 2c 64 61 74 61  0d 10 7d 23 20 4d 4f 56  |lt1,data..}# MOV|
0001f220  20 52 30 2c 52 30 2c 4c  53 52 23 32 31 3a 80 20  | R0,R0,LSR#21:. |
0001f230  64 61 74 61 2c 52 30 2c  23 33 31 0d 10 7e 2d 20  |data,R0,#31..~- |
0001f240  4d 4f 56 20 6e 65 77 31  2c 64 61 74 61 2c 4c 53  |MOV new1,data,LS|
0001f250  4c 23 35 3a 4d 4f 56 20  6e 65 77 32 2c 64 61 74  |L#5:MOV new2,dat|
0001f260  61 2c 4c 53 4c 23 31 30  0d 10 7f 33 20 41 44 44  |a,LSL#10...3 ADD|
0001f270  20 72 65 73 75 6c 74 32  2c 6e 65 77 32 2c 6e 65  | result2,new2,ne|
0001f280  77 31 3a 41 44 44 20 72  65 73 75 6c 74 32 2c 72  |w1:ADD result2,r|
0001f290  65 73 75 6c 74 32 2c 64  61 74 61 0d 10 80 3b 20  |esult2,data...; |
0001f2a0  4d 4f 56 20 72 65 73 75  6c 74 32 2c 72 65 73 75  |MOV result2,resu|
0001f2b0  6c 74 32 2c 4c 53 4c 23  31 36 3a 41 44 44 20 72  |lt2,LSL#16:ADD r|
0001f2c0  65 73 75 6c 74 31 2c 72  65 73 75 6c 74 31 2c 72  |esult1,result1,r|
0001f2d0  65 73 75 6c 74 32 0d 10  81 33 20 53 54 52 20 72  |esult2...3 STR r|
0001f2e0  65 73 75 6c 74 31 2c 5b  62 61 73 65 2c 6f 66 66  |esult1,[base,off|
0001f2f0  73 65 74 5d 3a 41 44 44  20 6f 66 66 73 65 74 2c  |set]:ADD offset,|
0001f300  6f 66 66 73 65 74 2c 23  34 0d 10 82 29 20 43 4d  |offset,#4...) CM|
0001f310  50 20 6f 66 66 73 65 74  2c 23 31 32 38 30 3a 42  |P offset,#1280:B|
0001f320  4e 45 20 67 72 65 65 6e  5f 6d 6f 6e 6f 5f 6c 6f  |NE green_mono_lo|
0001f330  6f 70 0d 10 83 26 20 4d  4f 56 20 6f 66 66 73 65  |op...& MOV offse|
0001f340  74 2c 23 30 3a 41 44 44  20 62 61 73 65 2c 62 61  |t,#0:ADD base,ba|
0001f350  73 65 2c 23 31 32 38 30  0d 10 84 2c 20 53 55 42  |se,#1280..., SUB|
0001f360  53 20 6c 69 6e 65 73 2c  6c 69 6e 65 73 2c 23 31  |S lines,lines,#1|
0001f370  3a 42 4e 45 20 67 72 65  65 6e 5f 6d 6f 6e 6f 5f  |:BNE green_mono_|
0001f380  6c 6f 6f 70 0d 10 85 0f  20 4d 4f 56 20 50 43 2c  |loop.... MOV PC,|
0001f390  52 31 34 0d 10 86 04 0d  10 87 1a 20 2e 64 69 73  |R14........ .dis|
0001f3a0  70 6c 61 79 5f 62 6c 75  65 5f 61 73 5f 6d 6f 6e  |play_blue_as_mon|
0001f3b0  6f 0d 10 88 38 20 4c 44  52 20 62 61 73 65 2c 73  |o...8 LDR base,s|
0001f3c0  74 61 72 74 5f 61 64 64  72 65 73 73 3a 4d 4f 56  |tart_address:MOV|
0001f3d0  20 6f 66 66 73 65 74 2c  23 30 3a 4d 4f 56 20 6c  | offset,#0:MOV l|
0001f3e0  69 6e 65 73 2c 23 35 31  32 0d 10 89 14 20 2e 62  |ines,#512.... .b|
0001f3f0  6c 75 65 5f 6d 6f 6e 6f  5f 6c 6f 6f 70 0d 10 8a  |lue_mono_loop...|
0001f400  3c 20 4c 44 52 20 52 30  2c 5b 62 61 73 65 2c 6f  |< LDR R0,[base,o|
0001f410  66 66 73 65 74 5d 3a 4d  4f 56 20 64 61 74 61 2c  |ffset]:MOV data,|
0001f420  52 30 2c 4c 53 52 23 31  30 3a 80 20 64 61 74 61  |R0,LSR#10:. data|
0001f430  2c 64 61 74 61 2c 23 33  31 0d 10 8b 2d 20 4d 4f  |,data,#31...- MO|
0001f440  56 20 6e 65 77 31 2c 64  61 74 61 2c 4c 53 4c 23  |V new1,data,LSL#|
0001f450  35 3a 4d 4f 56 20 6e 65  77 32 2c 64 61 74 61 2c  |5:MOV new2,data,|
0001f460  4c 53 4c 23 31 30 0d 10  8c 33 20 41 44 44 20 72  |LSL#10...3 ADD r|
0001f470  65 73 75 6c 74 31 2c 6e  65 77 32 2c 6e 65 77 31  |esult1,new2,new1|
0001f480  3a 41 44 44 20 72 65 73  75 6c 74 31 2c 72 65 73  |:ADD result1,res|
0001f490  75 6c 74 31 2c 64 61 74  61 0d 10 8d 23 20 4d 4f  |ult1,data...# MO|
0001f4a0  56 20 52 30 2c 52 30 2c  4c 53 52 23 32 36 3a 80  |V R0,R0,LSR#26:.|
0001f4b0  20 64 61 74 61 2c 52 30  2c 23 33 31 0d 10 8e 2d  | data,R0,#31...-|
0001f4c0  20 4d 4f 56 20 6e 65 77  31 2c 64 61 74 61 2c 4c  | MOV new1,data,L|
0001f4d0  53 4c 23 35 3a 4d 4f 56  20 6e 65 77 32 2c 64 61  |SL#5:MOV new2,da|
0001f4e0  74 61 2c 4c 53 4c 23 31  30 0d 10 8f 33 20 41 44  |ta,LSL#10...3 AD|
0001f4f0  44 20 72 65 73 75 6c 74  32 2c 6e 65 77 32 2c 6e  |D result2,new2,n|
0001f500  65 77 31 3a 41 44 44 20  72 65 73 75 6c 74 32 2c  |ew1:ADD result2,|
0001f510  72 65 73 75 6c 74 32 2c  64 61 74 61 0d 10 90 3b  |result2,data...;|
0001f520  20 4d 4f 56 20 72 65 73  75 6c 74 32 2c 72 65 73  | MOV result2,res|
0001f530  75 6c 74 32 2c 4c 53 4c  23 31 36 3a 41 44 44 20  |ult2,LSL#16:ADD |
0001f540  72 65 73 75 6c 74 31 2c  72 65 73 75 6c 74 31 2c  |result1,result1,|
0001f550  72 65 73 75 6c 74 32 0d  10 91 33 20 53 54 52 20  |result2...3 STR |
0001f560  72 65 73 75 6c 74 31 2c  5b 62 61 73 65 2c 6f 66  |result1,[base,of|
0001f570  66 73 65 74 5d 3a 41 44  44 20 6f 66 66 73 65 74  |fset]:ADD offset|
0001f580  2c 6f 66 66 73 65 74 2c  23 34 0d 10 92 28 20 43  |,offset,#4...( C|
0001f590  4d 50 20 6f 66 66 73 65  74 2c 23 31 32 38 30 3a  |MP offset,#1280:|
0001f5a0  42 4e 45 20 62 6c 75 65  5f 6d 6f 6e 6f 5f 6c 6f  |BNE blue_mono_lo|
0001f5b0  6f 70 0d 10 93 26 20 4d  4f 56 20 6f 66 66 73 65  |op...& MOV offse|
0001f5c0  74 2c 23 30 3a 41 44 44  20 62 61 73 65 2c 62 61  |t,#0:ADD base,ba|
0001f5d0  73 65 2c 23 31 32 38 30  0d 10 94 2b 20 53 55 42  |se,#1280...+ SUB|
0001f5e0  53 20 6c 69 6e 65 73 2c  6c 69 6e 65 73 2c 23 31  |S lines,lines,#1|
0001f5f0  3a 42 4e 45 20 62 6c 75  65 5f 6d 6f 6e 6f 5f 6c  |:BNE blue_mono_l|
0001f600  6f 6f 70 0d 10 95 0f 20  4d 4f 56 20 50 43 2c 52  |oop.... MOV PC,R|
0001f610  31 34 0d 10 96 04 0d 10  97 1a 20 2e 72 65 64 5f  |14........ .red_|
0001f620  61 64 64 72 65 73 73 20  20 20 45 51 55 44 20 30  |address   EQUD 0|
0001f630  0d 10 98 1a 20 2e 67 72  65 65 6e 5f 61 64 64 72  |.... .green_addr|
0001f640  65 73 73 20 45 51 55 44  20 30 0d 10 99 1a 20 2e  |ess EQUD 0.... .|
0001f650  62 6c 75 65 5f 61 64 64  72 65 73 73 20 20 45 51  |blue_address  EQ|
0001f660  55 44 20 30 0d 10 9a 1a  20 2e 73 74 61 72 74 5f  |UD 0.... .start_|
0001f670  61 64 64 72 65 73 73 20  45 51 55 44 20 30 0d 10  |address EQUD 0..|
0001f680  9b 1a 20 2e 70 69 63 70  72 6f 5f 62 79 74 65 73  |.. .picpro_bytes|
0001f690  20 20 45 51 55 44 20 30  0d 10 9c 1a 20 2e 70 69  |  EQUD 0.... .pi|
0001f6a0  63 70 72 6f 5f 6c 69 6e  65 73 20 20 45 51 55 44  |cpro_lines  EQUD|
0001f6b0  20 30 0d 10 9d 06 20 5d  0d 10 9e 06 20 ed 0d 10  | 0.... ].... ...|
0001f6c0  9f 06 20 e1 0d 10 a0 04  0d 10 a1 15 20 dd 20 f2  |.. ......... . .|
0001f6d0  70 69 63 70 72 6f 5f 74  61 62 6c 65 73 0d 10 a2  |picpro_tables...|
0001f6e0  3d 20 72 65 64 3d 31 2b  28 94 28 72 25 29 29 2f  |= red=1+(.(r%))/|
0001f6f0  31 30 30 3a 67 72 65 65  6e 3d 31 2b 28 94 28 67  |100:green=1+(.(g|
0001f700  25 29 29 2f 31 30 30 3a  62 6c 75 65 3d 31 2b 28  |%))/100:blue=1+(|
0001f710  94 28 62 25 29 29 2f 31  30 30 0d 10 a3 10 20 e3  |.(b%))/100.... .|
0001f720  20 4e 25 3d 30 20 b8 20  33 31 0d 10 a4 25 20 e7  | N%=0 . 31...% .|
0001f730  20 72 25 3e 2d 31 20 8c  20 52 3d 4e 25 2a 72 65  | r%>-1 . R=N%*re|
0001f740  64 3a e7 20 52 3e 33 31  20 8c 20 52 3d 33 31 0d  |d:. R>31 . R=31.|
0001f750  10 a5 2f 20 e7 20 72 25  3c 30 20 8c 20 52 3d 33  |../ . r%<0 . R=3|
0001f760  31 2d a8 28 28 28 33 31  2d 4e 25 29 2a 72 65 64  |1-.(((31-N%)*red|
0001f770  29 29 3a e7 20 52 3c 30  20 8c 20 52 3d 30 0d 10  |)):. R<0 . R=0..|
0001f780  a6 27 20 e7 20 67 25 3e  2d 31 20 8c 20 47 3d 4e  |.' . g%>-1 . G=N|
0001f790  25 2a 67 72 65 65 6e 3a  e7 20 47 3e 33 31 20 8c  |%*green:. G>31 .|
0001f7a0  20 47 3d 33 31 0d 10 a7  31 20 e7 20 67 25 3c 30  | G=31...1 . g%<0|
0001f7b0  20 8c 20 47 3d 33 31 2d  a8 28 28 28 33 31 2d 4e  | . G=31-.(((31-N|
0001f7c0  25 29 2a 67 72 65 65 6e  29 29 3a e7 20 47 3c 30  |%)*green)):. G<0|
0001f7d0  20 8c 20 47 3d 30 0d 10  a8 26 20 e7 20 62 25 3e  | . G=0...& . b%>|
0001f7e0  2d 31 20 8c 20 42 3d 4e  25 2a 62 6c 75 65 3a e7  |-1 . B=N%*blue:.|
0001f7f0  20 42 3e 33 31 20 8c 20  42 3d 33 31 0d 10 a9 30  | B>31 . B=31...0|
0001f800  20 e7 20 62 25 3c 30 20  8c 20 42 3d 33 31 2d a8  | . b%<0 . B=31-.|
0001f810  28 28 28 33 31 2d 4e 25  29 2a 62 6c 75 65 29 29  |(((31-N%)*blue))|
0001f820  3a e7 20 42 3c 30 20 8c  20 42 3d 30 0d 10 aa 2b  |:. B<0 . B=0...+|
0001f830  20 72 65 64 64 61 74 61  3f 4e 25 3d 52 3a 67 72  | reddata?N%=R:gr|
0001f840  6e 64 61 74 61 3f 4e 25  3d 47 3a 62 6c 75 64 61  |ndata?N%=G:bluda|
0001f850  74 61 3f 4e 25 3d 42 0d  10 ab 06 20 ed 0d 10 ac  |ta?N%=B.... ....|
0001f860  06 20 e1 0d 10 ad 04 0d  10 ae 10 20 dd 20 f2 7a  |. ......... . .z|
0001f870  6f 6f 6d 5f 70 69 63 0d  10 af 16 20 c8 97 20 c8  |oom_pic.... .. .|
0001f880  93 20 30 2c 30 2c 36 34  30 2c 35 31 32 0d 10 b0  |. 0,0,640,512...|
0001f890  2d 20 f2 64 69 73 70 6c  61 79 5f 6d 65 6d 6f 72  |- .display_memor|
0001f8a0  79 3a f2 77 61 69 74 5f  6e 6f 5f 62 75 74 74 6f  |y:.wait_no_butto|
0001f8b0  6e 3a c8 97 20 58 2c 59  2c 42 0d 10 b1 1c 20 e6  |n:.. X,Y,B.... .|
0001f8c0  20 33 2c 36 33 3a c8 93  20 58 2c 59 2c 36 34 30  | 3,63:.. X,Y,640|
0001f8d0  2c 35 31 32 3a f5 0d 10  b2 28 20 f5 3a c8 97 20  |,512:....( .:.. |
0001f8e0  58 31 2c 59 31 2c 42 3a  fd 20 58 3c 3e 58 31 20  |X1,Y1,B:. X<>X1 |
0001f8f0  84 20 59 3c 3e 59 31 20  84 20 42 3c 3e 30 0d 10  |. Y<>Y1 . B<>0..|
0001f900  b3 24 20 c8 93 20 58 2c  59 2c 36 34 30 2c 35 31  |.$ .. X,Y,640,51|
0001f910  32 3a c8 93 20 58 31 2c  59 31 2c 36 34 30 2c 35  |2:.. X1,Y1,640,5|
0001f920  31 32 0d 10 b4 15 20 58  3d 58 31 3a 59 3d 59 31  |12.... X=X1:Y=Y1|
0001f930  3a fd 20 42 3c 3e 30 0d  10 b5 0c 20 e7 20 42 3d  |:. B<>0.... . B=|
0001f940  34 20 8c 0d 10 b6 31 20  59 2b 3d 35 31 32 3a 79  |4 ....1 Y+=512:y|
0001f950  25 3d 28 31 30 32 34 2d  59 29 2f 32 3a 78 25 3d  |%=(1024-Y)/2:x%=|
0001f960  58 3a 6f 66 66 73 65 74  25 3d 79 25 2a 31 32 38  |X:offset%=y%*128|
0001f970  30 2b 78 25 0d 10 b7 1c  20 c8 95 20 6f 66 66 73  |0+x%.... .. offs|
0001f980  65 74 25 2f 34 3c 3e 6f  66 66 73 65 74 25 81 34  |et%/4<>offset%.4|
0001f990  0d 10 b8 11 20 6f 66 66  73 65 74 25 2d 3d 31 3a  |.... offset%-=1:|
0001f9a0  ce 0d 10 b9 2e 20 21 7a  6f 6f 6d 5f 73 6f 75 72  |..... !zoom_sour|
0001f9b0  63 65 5f 61 64 64 72 65  73 73 3d 6d 65 6d 62 6c  |ce_address=membl|
0001f9c0  6f 63 6b 25 2b 32 30 2b  6f 66 66 73 65 74 25 0d  |ock%+20+offset%.|
0001f9d0  10 ba 1f 20 21 7a 6f 6f  6d 5f 64 65 73 74 5f 61  |... !zoom_dest_a|
0001f9e0  64 64 72 65 73 73 3d 73  63 72 65 65 6e 25 0d 10  |ddress=screen%..|
0001f9f0  bb 11 20 d6 20 7a 6f 6f  6d 5f 63 6f 64 65 25 0d  |.. . zoom_code%.|
0001fa00  10 bc 24 20 e7 20 a4 75  6e 64 6f 28 22 5a 6f 6f  |..$ . .undo("Zoo|
0001fa10  6d 20 32 3a 31 20 2d 20  6f 70 74 69 6f 6e 73 22  |m 2:1 - options"|
0001fa20  29 20 8c 0d 10 bd 14 20  f2 64 69 73 70 6c 61 79  |) ..... .display|
0001fa30  5f 6d 65 6d 6f 72 79 0d  10 be 06 20 cc 0d 10 bf  |_memory.... ....|
0001fa40  20 20 d6 20 7a 6f 6f 6d  5f 63 6f 64 65 25 3a f2  |  . zoom_code%:.|
0001fa50  75 70 6c 6f 61 64 5f 6d  65 6d 6f 72 79 0d 10 c0  |upload_memory...|
0001fa60  06 20 cd 0d 10 c1 06 20  cc 0d 10 c2 15 20 c8 93  |. ..... ..... ..|
0001fa70  20 58 31 2c 59 31 2c 36  34 30 2c 35 31 32 0d 10  | X1,Y1,640,512..|
0001fa80  c3 06 20 cd 0d 10 c4 18  20 c8 97 20 c8 93 20 30  |.. ..... .. .. 0|
0001fa90  2c 30 2c 31 32 38 30 2c  31 30 32 34 0d 10 c5 06  |,0,1280,1024....|
0001faa0  20 e1 0d 10 c6 04 0d 10  c7 14 20 dd 20 a4 75 6e  | ......... . .un|
0001fab0  64 6f 28 74 69 74 6c 65  24 29 0d 10 c8 2a 20 f2  |do(title$)...* .|
0001fac0  77 61 69 74 5f 6e 6f 5f  62 75 74 74 6f 6e 3a c8  |wait_no_button:.|
0001fad0  97 20 c8 93 20 34 39 30  2c 31 30 30 2c 33 30 30  |. .. 490,100,300|
0001fae0  2c 31 32 30 0d 10 c9 41  20 f2 72 61 69 73 65 64  |,120...A .raised|
0001faf0  5f 62 6c 6f 63 6b 28 34  39 30 2c 31 30 30 2c 33  |_block(490,100,3|
0001fb00  30 30 2c 31 32 30 29 3a  f2 72 61 69 73 65 64 5f  |00,120):.raised_|
0001fb10  62 6c 6f 63 6b 28 35 31  30 2c 31 32 30 2c 31 30  |block(510,120,10|
0001fb20  38 2c 34 30 29 0d 10 ca  22 20 f2 72 61 69 73 65  |8,40)..." .raise|
0001fb30  64 5f 62 6c 6f 63 6b 28  36 36 30 2c 31 32 30 2c  |d_block(660,120,|
0001fb40  31 30 38 2c 34 30 29 0d  10 cb 1e 20 f2 77 72 69  |108,40).... .wri|
0001fb50  74 65 32 28 74 69 74 6c  65 24 2c 34 39 34 2c 31  |te2(title$,494,1|
0001fb60  38 30 2c 30 29 0d 10 cc  1f 20 f2 77 72 69 74 65  |80,0).... .write|
0001fb70  32 28 22 52 45 53 45 54  22 2c 35 31 32 2c 31 32  |2("RESET",512,12|
0001fb80  34 2c 34 29 0d 10 cd 1c  20 f2 77 72 69 74 65 32  |4,4).... .write2|
0001fb90  28 22 4f 4b 22 2c 36 38  34 2c 31 32 34 2c 34 29  |("OK",684,124,4)|
0001fba0  0d 10 ce 15 20 f5 3a c8  97 20 58 2c 59 2c 42 3a  |.... .:.. X,Y,B:|
0001fbb0  fd 20 42 3d 34 0d 10 cf  18 20 c8 97 20 c8 93 20  |. B=4.... .. .. |
0001fbc0  30 2c 30 2c 31 32 38 30  2c 31 30 32 34 0d 10 d0  |0,0,1280,1024...|
0001fbd0  30 20 e7 20 94 28 58 2d  37 31 32 29 3c 35 32 20  |0 . .(X-712)<52 |
0001fbe0  80 20 94 28 59 2d 31 34  32 29 3c 32 32 20 8c 20  |. .(Y-142)<22 . |
0001fbf0  75 6e 25 3d 30 20 8b 20  75 6e 25 3d b9 0d 10 d1  |un%=0 . un%=....|
0001fc00  09 20 3d 75 6e 25 0d 10  d2 04 0d 10 d3 13 20 dd  |. =un%........ .|
0001fc10  20 f2 75 6e 64 6f 5f 64  69 74 68 65 72 0d 10 d4  | .undo_dither...|
0001fc20  24 20 f2 64 69 73 70 6c  61 79 5f 6d 65 6d 6f 72  |$ .display_memor|
0001fc30  79 3a f2 77 61 69 74 5f  6e 6f 5f 62 75 74 74 6f  |y:.wait_no_butto|
0001fc40  6e 0d 10 d5 26 20 21 7a  6f 6f 6d 5f 73 6f 75 72  |n...& !zoom_sour|
0001fc50  63 65 5f 61 64 64 72 65  73 73 3d 6d 65 6d 62 6c  |ce_address=membl|
0001fc60  6f 63 6b 25 2b 32 30 0d  10 d6 30 20 21 7a 6f 6f  |ock%+20...0 !zoo|
0001fc70  6d 5f 64 65 73 74 5f 61  64 64 72 65 73 73 3d 73  |m_dest_address=s|
0001fc80  63 72 65 65 6e 25 3a d6  20 70 72 65 76 69 65 77  |creen%:. preview|
0001fc90  33 32 30 78 32 35 36 0d  10 d7 22 20 e7 20 a4 75  |320x256..." . .u|
0001fca0  6e 64 6f 28 22 20 50 72  65 76 69 65 77 20 6f 70  |ndo(" Preview op|
0001fcb0  74 69 6f 6e 73 22 29 20  8c 0d 10 d8 14 20 f2 64  |tions") ..... .d|
0001fcc0  69 73 70 6c 61 79 5f 6d  65 6d 6f 72 79 0d 10 d9  |isplay_memory...|
0001fcd0  06 20 cc 0d 10 da 24 20  d6 20 70 72 65 76 69 65  |. ....$ . previe|
0001fce0  77 33 32 30 78 32 35 36  3a f2 75 70 6c 6f 61 64  |w320x256:.upload|
0001fcf0  5f 6d 65 6d 6f 72 79 0d  10 db 06 20 cd 0d 10 dc  |_memory.... ....|
0001fd00  06 20 e1 0d 10 dd 04 0d  10 de 15 20 dd 20 f2 7a  |. ......... . .z|
0001fd10  6f 6f 6d 5f 61 73 73 65  6d 62 6c 65 0d 10 df 15  |oom_assemble....|
0001fd20  20 de 20 7a 6f 6f 6d 5f  63 6f 64 65 25 20 33 36  | . zoom_code% 36|
0001fd30  30 0d 10 e0 1a 20 72 65  64 3d 31 3a 67 72 65 65  |0.... red=1:gree|
0001fd40  6e 3d 32 3a 62 6c 75 65  3d 31 31 0d 10 e1 3c 20  |n=2:blue=11...< |
0001fd50  73 6f 75 72 63 65 5f 62  61 73 65 3d 33 3a 64 65  |source_base=3:de|
0001fd60  73 74 5f 62 61 73 65 3d  34 3a 73 6f 75 72 63 65  |st_base=4:source|
0001fd70  5f 6f 66 66 73 65 74 3d  35 3a 64 65 73 74 5f 6f  |_offset=5:dest_o|
0001fd80  66 66 73 65 74 3d 36 0d  10 e2 2e 20 64 61 74 61  |ffset=6.... data|
0001fd90  31 3d 37 3a 64 61 74 61  32 3d 38 3a 6c 69 6e 65  |1=7:data2=8:line|
0001fda0  73 3d 39 3a 6d 61 73 6b  31 3d 31 30 3a 6f 66 66  |s=9:mask1=10:off|
0001fdb0  73 65 74 3d 35 0d 10 e3  11 20 e3 20 50 3d 30 20  |set=5.... . P=0 |
0001fdc0  b8 20 32 20 88 32 0d 10  e4 12 20 50 25 3d 7a 6f  |. 2 .2.... P%=zo|
0001fdd0  6f 6d 5f 63 6f 64 65 25  0d 10 e5 0b 20 5b 4f 50  |om_code%.... [OP|
0001fde0  54 20 50 0d 10 e6 04 0d  10 e7 0e 20 2e 7a 6f 6f  |T P........ .zoo|
0001fdf0  6d 5f 70 69 63 0d 10 e8  48 20 4c 44 52 20 73 6f  |m_pic...H LDR so|
0001fe00  75 72 63 65 5f 62 61 73  65 2c 7a 6f 6f 6d 5f 73  |urce_base,zoom_s|
0001fe10  6f 75 72 63 65 5f 61 64  64 72 65 73 73 3a 4c 44  |ource_address:LD|
0001fe20  52 20 64 65 73 74 5f 62  61 73 65 2c 7a 6f 6f 6d  |R dest_base,zoom|
0001fe30  5f 64 65 73 74 5f 61 64  64 72 65 73 73 0d 10 e9  |_dest_address...|
0001fe40  3b 20 4d 4f 56 20 73 6f  75 72 63 65 5f 6f 66 66  |; MOV source_off|
0001fe50  73 65 74 2c 23 30 3a 4d  4f 56 20 64 65 73 74 5f  |set,#0:MOV dest_|
0001fe60  6f 66 66 73 65 74 2c 23  30 3a 4d 4f 56 20 6c 69  |offset,#0:MOV li|
0001fe70  6e 65 73 2c 23 32 35 36  0d 10 ea 18 20 4c 44 52  |nes,#256.... LDR|
0001fe80  20 6d 61 73 6b 31 2c 6d  61 73 6b 5f 62 69 74 73  | mask1,mask_bits|
0001fe90  0d 10 eb 0f 20 2e 7a 6f  6f 6d 5f 6c 6f 6f 70 0d  |.... .zoom_loop.|
0001fea0  10 ec 2a 20 4c 44 52 20  64 61 74 61 31 2c 5b 73  |..* LDR data1,[s|
0001feb0  6f 75 72 63 65 5f 62 61  73 65 2c 73 6f 75 72 63  |ource_base,sourc|
0001fec0  65 5f 6f 66 66 73 65 74  5d 0d 10 ed 18 20 80 20  |e_offset].... . |
0001fed0  64 61 74 61 31 2c 64 61  74 61 31 2c 6d 61 73 6b  |data1,data1,mask|
0001fee0  31 0d 10 ee 31 20 4d 4f  56 20 64 61 74 61 32 2c  |1...1 MOV data2,|
0001fef0  64 61 74 61 31 2c 4c 53  4c 23 31 36 3a 41 44 44  |data1,LSL#16:ADD|
0001ff00  20 64 61 74 61 32 2c 64  61 74 61 32 2c 64 61 74  | data2,data2,dat|
0001ff10  61 31 0d 10 ef 44 20 53  54 52 20 64 61 74 61 32  |a1...D STR data2|
0001ff20  2c 5b 64 65 73 74 5f 62  61 73 65 2c 64 65 73 74  |,[dest_base,dest|
0001ff30  5f 6f 66 66 73 65 74 5d  3a 41 44 44 20 64 65 73  |_offset]:ADD des|
0001ff40  74 5f 62 61 73 65 2c 64  65 73 74 5f 62 61 73 65  |t_base,dest_base|
0001ff50  2c 23 31 32 38 30 0d 10  f0 44 20 53 54 52 20 64  |,#1280...D STR d|
0001ff60  61 74 61 32 2c 5b 64 65  73 74 5f 62 61 73 65 2c  |ata2,[dest_base,|
0001ff70  64 65 73 74 5f 6f 66 66  73 65 74 5d 3a 53 55 42  |dest_offset]:SUB|
0001ff80  20 64 65 73 74 5f 62 61  73 65 2c 64 65 73 74 5f  | dest_base,dest_|
0001ff90  62 61 73 65 2c 23 31 32  38 30 0d 10 f1 23 20 41  |base,#1280...# A|
0001ffa0  44 44 20 64 65 73 74 5f  6f 66 66 73 65 74 2c 64  |DD dest_offset,d|
0001ffb0  65 73 74 5f 6f 66 66 73  65 74 2c 23 34 0d 10 f2  |est_offset,#4...|
0001ffc0  2a 20 4c 44 52 20 64 61  74 61 31 2c 5b 73 6f 75  |* LDR data1,[sou|
0001ffd0  72 63 65 5f 62 61 73 65  2c 73 6f 75 72 63 65 5f  |rce_base,source_|
0001ffe0  6f 66 66 73 65 74 5d 0d  10 f3 2f 20 4d 4f 56 20  |offset].../ MOV |
0001fff0  64 61 74 61 31 2c 64 61  74 61 31 2c 4c 53 52 23  |data1,data1,LSR#|
00020000  31 36 3a 80 20 64 61 74  61 31 2c 64 61 74 61 31  |16:. data1,data1|
00020010  2c 6d 61 73 6b 31 0d 10  f4 31 20 4d 4f 56 20 64  |,mask1...1 MOV d|
00020020  61 74 61 32 2c 64 61 74  61 31 2c 4c 53 4c 23 31  |ata2,data1,LSL#1|
00020030  36 3a 41 44 44 20 64 61  74 61 32 2c 64 61 74 61  |6:ADD data2,data|
00020040  32 2c 64 61 74 61 31 0d  10 f5 44 20 53 54 52 20  |2,data1...D STR |
00020050  64 61 74 61 32 2c 5b 64  65 73 74 5f 62 61 73 65  |data2,[dest_base|
00020060  2c 64 65 73 74 5f 6f 66  66 73 65 74 5d 3a 41 44  |,dest_offset]:AD|
00020070  44 20 64 65 73 74 5f 62  61 73 65 2c 64 65 73 74  |D dest_base,dest|
00020080  5f 62 61 73 65 2c 23 31  32 38 30 0d 10 f6 44 20  |_base,#1280...D |
00020090  53 54 52 20 64 61 74 61  32 2c 5b 64 65 73 74 5f  |STR data2,[dest_|
000200a0  62 61 73 65 2c 64 65 73  74 5f 6f 66 66 73 65 74  |base,dest_offset|
000200b0  5d 3a 53 55 42 20 64 65  73 74 5f 62 61 73 65 2c  |]:SUB dest_base,|
000200c0  64 65 73 74 5f 62 61 73  65 2c 23 31 32 38 30 0d  |dest_base,#1280.|
000200d0  10 f7 23 20 41 44 44 20  64 65 73 74 5f 6f 66 66  |..# ADD dest_off|
000200e0  73 65 74 2c 64 65 73 74  5f 6f 66 66 73 65 74 2c  |set,dest_offset,|
000200f0  23 34 0d 10 f8 27 20 41  44 44 20 73 6f 75 72 63  |#4...' ADD sourc|
00020100  65 5f 6f 66 66 73 65 74  2c 73 6f 75 72 63 65 5f  |e_offset,source_|
00020110  6f 66 66 73 65 74 2c 23  34 0d 10 f9 29 20 43 4d  |offset,#4...) CM|
00020120  50 20 73 6f 75 72 63 65  5f 6f 66 66 73 65 74 2c  |P source_offset,|
00020130  23 36 34 30 3a 42 4c 54  20 7a 6f 6f 6d 5f 6c 6f  |#640:BLT zoom_lo|
00020140  6f 70 0d 10 fa 2c 20 4d  4f 56 20 73 6f 75 72 63  |op..., MOV sourc|
00020150  65 5f 6f 66 66 73 65 74  2c 23 30 3a 4d 4f 56 20  |e_offset,#0:MOV |
00020160  64 65 73 74 5f 6f 66 66  73 65 74 2c 23 30 0d 10  |dest_offset,#0..|
00020170  fb 26 20 41 44 44 20 73  6f 75 72 63 65 5f 62 61  |.& ADD source_ba|
00020180  73 65 2c 73 6f 75 72 63  65 5f 62 61 73 65 2c 23  |se,source_base,#|
00020190  31 32 38 30 0d 10 fc 22  20 41 44 44 20 64 65 73  |1280..." ADD des|
000201a0  74 5f 62 61 73 65 2c 64  65 73 74 5f 62 61 73 65  |t_base,dest_base|
000201b0  2c 23 32 35 36 30 0d 10  fd 26 20 53 55 42 53 20  |,#2560...& SUBS |
000201c0  6c 69 6e 65 73 2c 6c 69  6e 65 73 2c 23 31 3a 42  |lines,lines,#1:B|
000201d0  4e 45 20 7a 6f 6f 6d 5f  6c 6f 6f 70 0d 10 fe 0f  |NE zoom_loop....|
000201e0  20 4d 4f 56 20 50 43 2c  52 31 34 0d 10 ff 04 0d  | MOV PC,R14.....|
000201f0  11 00 14 20 2e 70 72 65  76 69 65 77 33 32 30 78  |... .preview320x|
00020200  32 35 36 0d 11 01 48 20  4c 44 52 20 73 6f 75 72  |256...H LDR sour|
00020210  63 65 5f 62 61 73 65 2c  7a 6f 6f 6d 5f 73 6f 75  |ce_base,zoom_sou|
00020220  72 63 65 5f 61 64 64 72  65 73 73 3a 4c 44 52 20  |rce_address:LDR |
00020230  64 65 73 74 5f 62 61 73  65 2c 7a 6f 6f 6d 5f 64  |dest_base,zoom_d|
00020240  65 73 74 5f 61 64 64 72  65 73 73 0d 11 02 21 20  |est_address...! |
00020250  4d 4f 56 20 6f 66 66 73  65 74 2c 23 30 3a 4d 4f  |MOV offset,#0:MO|
00020260  56 20 6c 69 6e 65 73 2c  23 32 35 36 0d 11 03 12  |V lines,#256....|
00020270  20 2e 70 72 65 76 69 65  77 5f 6c 6f 6f 70 0d 11  | .preview_loop..|
00020280  04 33 20 4c 44 52 20 64  61 74 61 31 2c 5b 73 6f  |.3 LDR data1,[so|
00020290  75 72 63 65 5f 62 61 73  65 2c 6f 66 66 73 65 74  |urce_base,offset|
000202a0  5d 3a 80 20 72 65 64 2c  64 61 74 61 31 2c 23 33  |]:. red,data1,#3|
000202b0  31 0d 11 05 43 20 4d 4f  56 20 52 30 2c 64 61 74  |1...C MOV R0,dat|
000202c0  61 31 2c 4c 53 52 23 31  36 3a 80 20 52 30 2c 52  |a1,LSR#16:. R0,R|
000202d0  30 2c 23 33 31 3a 41 44  44 20 52 30 2c 52 30 2c  |0,#31:ADD R0,R0,|
000202e0  72 65 64 3a 4d 4f 56 20  72 65 64 2c 52 30 2c 4c  |red:MOV red,R0,L|
000202f0  53 52 23 31 0d 11 06 2c  20 4d 4f 56 20 67 72 65  |SR#1..., MOV gre|
00020300  65 6e 2c 64 61 74 61 31  2c 4c 53 52 23 35 3a 80  |en,data1,LSR#5:.|
00020310  20 67 72 65 65 6e 2c 67  72 65 65 6e 2c 23 33 31  | green,green,#31|
00020320  0d 11 07 47 20 4d 4f 56  20 52 30 2c 64 61 74 61  |...G MOV R0,data|
00020330  31 2c 4c 53 52 23 32 31  3a 80 20 52 30 2c 52 30  |1,LSR#21:. R0,R0|
00020340  2c 23 33 31 3a 41 44 44  20 52 30 2c 52 30 2c 67  |,#31:ADD R0,R0,g|
00020350  72 65 65 6e 3a 4d 4f 56  20 67 72 65 65 6e 2c 52  |reen:MOV green,R|
00020360  30 2c 4c 53 52 23 31 0d  11 08 2a 20 4d 4f 56 20  |0,LSR#1...* MOV |
00020370  62 6c 75 65 2c 64 61 74  61 31 2c 4c 53 52 23 31  |blue,data1,LSR#1|
00020380  30 3a 80 20 62 6c 75 65  2c 62 6c 75 65 2c 23 33  |0:. blue,blue,#3|
00020390  31 0d 11 09 45 20 4d 4f  56 20 52 30 2c 64 61 74  |1...E MOV R0,dat|
000203a0  61 31 2c 4c 53 52 23 32  36 3a 80 20 52 30 2c 52  |a1,LSR#26:. R0,R|
000203b0  30 2c 23 33 31 3a 41 44  44 20 52 30 2c 52 30 2c  |0,#31:ADD R0,R0,|
000203c0  62 6c 75 65 3a 4d 4f 56  20 62 6c 75 65 2c 52 30  |blue:MOV blue,R0|
000203d0  2c 4c 53 52 23 31 0d 11  0a 2f 20 4d 4f 56 20 67  |,LSR#1.../ MOV g|
000203e0  72 65 65 6e 2c 67 72 65  65 6e 2c 4c 53 4c 23 35  |reen,green,LSL#5|
000203f0  3a 4d 4f 56 20 62 6c 75  65 2c 62 6c 75 65 2c 4c  |:MOV blue,blue,L|
00020400  53 4c 23 31 30 0d 11 0b  2d 20 41 44 44 20 64 61  |SL#10...- ADD da|
00020410  74 61 31 2c 72 65 64 2c  67 72 65 65 6e 3a 41 44  |ta1,red,green:AD|
00020420  44 20 64 61 74 61 31 2c  64 61 74 61 31 2c 62 6c  |D data1,data1,bl|
00020430  75 65 0d 11 0c 31 20 4d  4f 56 20 64 61 74 61 32  |ue...1 MOV data2|
00020440  2c 64 61 74 61 31 2c 4c  53 4c 23 31 36 3a 41 44  |,data1,LSL#16:AD|
00020450  44 20 64 61 74 61 32 2c  64 61 74 61 32 2c 64 61  |D data2,data2,da|
00020460  74 61 31 0d 11 0d 3f 20  53 54 52 20 64 61 74 61  |ta1...? STR data|
00020470  32 2c 5b 64 65 73 74 5f  62 61 73 65 2c 6f 66 66  |2,[dest_base,off|
00020480  73 65 74 5d 3a 41 44 44  20 64 65 73 74 5f 62 61  |set]:ADD dest_ba|
00020490  73 65 2c 64 65 73 74 5f  62 61 73 65 2c 23 31 32  |se,dest_base,#12|
000204a0  38 30 0d 11 0e 3f 20 53  54 52 20 64 61 74 61 32  |80...? STR data2|
000204b0  2c 5b 64 65 73 74 5f 62  61 73 65 2c 6f 66 66 73  |,[dest_base,offs|
000204c0  65 74 5d 3a 53 55 42 20  64 65 73 74 5f 62 61 73  |et]:SUB dest_bas|
000204d0  65 2c 64 65 73 74 5f 62  61 73 65 2c 23 31 32 38  |e,dest_base,#128|
000204e0  30 0d 11 0f 3b 20 41 44  44 20 6f 66 66 73 65 74  |0...; ADD offset|
000204f0  2c 6f 66 66 73 65 74 2c  23 34 3a 43 4d 50 20 6f  |,offset,#4:CMP o|
00020500  66 66 73 65 74 2c 23 31  32 38 30 3a 42 4e 45 20  |ffset,#1280:BNE |
00020510  70 72 65 76 69 65 77 5f  6c 6f 6f 70 0d 11 10 26  |preview_loop...&|
00020520  20 41 44 44 20 73 6f 75  72 63 65 5f 62 61 73 65  | ADD source_base|
00020530  2c 73 6f 75 72 63 65 5f  62 61 73 65 2c 23 32 35  |,source_base,#25|
00020540  36 30 0d 11 11 30 20 41  44 44 20 64 65 73 74 5f  |60...0 ADD dest_|
00020550  62 61 73 65 2c 64 65 73  74 5f 62 61 73 65 2c 23  |base,dest_base,#|
00020560  32 35 36 30 3a 4d 4f 56  20 6f 66 66 73 65 74 2c  |2560:MOV offset,|
00020570  23 30 0d 11 12 29 20 53  55 42 53 20 6c 69 6e 65  |#0...) SUBS line|
00020580  73 2c 6c 69 6e 65 73 2c  23 31 3a 42 4e 45 20 70  |s,lines,#1:BNE p|
00020590  72 65 76 69 65 77 5f 6c  6f 6f 70 0d 11 13 0f 20  |review_loop.... |
000205a0  4d 4f 56 20 50 43 2c 52  31 34 0d 11 14 04 0d 11  |MOV PC,R14......|
000205b0  15 20 20 2e 7a 6f 6f 6d  5f 73 6f 75 72 63 65 5f  |.  .zoom_source_|
000205c0  61 64 64 72 65 73 73 20  45 51 55 44 20 30 0d 11  |address EQUD 0..|
000205d0  16 20 20 2e 7a 6f 6f 6d  5f 64 65 73 74 5f 61 64  |.  .zoom_dest_ad|
000205e0  64 72 65 73 73 20 20 20  45 51 55 44 20 30 0d 11  |dress   EQUD 0..|
000205f0  17 36 20 2e 6d 61 73 6b  5f 62 69 74 73 20 45 51  |.6 .mask_bits EQ|
00020600  55 44 20 25 30 30 30 30  30 30 30 30 30 30 30 30  |UD %000000000000|
00020610  30 30 30 30 31 31 31 31  31 31 31 31 31 31 31 31  |0000111111111111|
00020620  31 31 31 31 0d 11 18 06  20 5d 0d 11 19 06 20 ed  |1111.... ].... .|
00020630  0d 11 1a 06 20 e1 0d 11  1b 04 0d 11 1c 1c 20 dd  |.... ......... .|
00020640  20 f2 6d 65 6e 75 28 6d  6d 78 25 2c 6d 6d 79 25  | .menu(mmx%,mmy%|
00020650  2c 73 75 62 25 29 0d 11  1d 27 20 c8 97 20 ee 20  |,sub%)...' .. . |
00020660  31 3a 4e 25 3d 30 3a 57  25 3d 30 3a c8 95 20 6d  |1:N%=0:W%=0:.. m|
00020670  65 6e 75 24 28 4e 25 29  3c 3e 22 2a 22 0d 11 1e  |enu$(N%)<>"*"...|
00020680  24 20 4c 25 3d a9 28 6d  65 6e 75 24 28 4e 25 29  |$ L%=.(menu$(N%)|
00020690  29 3a e7 20 4c 25 3e 57  25 20 8c 20 57 25 3d 4c  |):. L%>W% . W%=L|
000206a0  25 0d 11 1f 0c 20 4e 25  2b 3d 31 3a ce 0d 11 20  |%.... N%+=1:... |
000206b0  0f 20 e7 20 ac 20 73 75  62 25 20 8c 0d 11 21 1b  |. . . sub% ...!.|
000206c0  20 20 e7 20 c0 6d 65 6e  75 24 28 30 29 2c 32 29  |  . .menu$(0),2)|
000206d0  3d 22 20 20 22 20 8c 0d  11 22 3a 20 20 6d 65 6e  |="  " ...":  men|
000206e0  75 24 28 4e 25 29 3d 22  20 20 5b 43 6c 6f 73 65  |u$(N%)="  [Close|
000206f0  20 6d 65 6e 75 5d 22 3a  6d 65 6e 75 24 28 31 29  | menu]":menu$(1)|
00020700  3d 22 20 20 5b 43 6c 6f  73 65 20 6d 65 6e 75 5d  |="  [Close menu]|
00020710  22 0d 11 23 07 20 20 cc  0d 11 24 36 20 20 6d 65  |"..#.  ...$6  me|
00020720  6e 75 24 28 4e 25 29 3d  22 5b 43 6c 6f 73 65 20  |nu$(N%)="[Close |
00020730  6d 65 6e 75 5d 22 3a 6d  65 6e 75 24 28 31 29 3d  |menu]":menu$(1)=|
00020740  22 5b 43 6c 6f 73 65 20  6d 65 6e 75 5d 22 0d 11  |"[Close menu]"..|
00020750  25 07 20 20 cd 0d 11 26  0c 20 cc 20 4e 25 2d 3d  |%.  ...&. . N%-=|
00020760  31 0d 11 27 06 20 cd 0d  11 28 2b 20 e7 20 73 75  |1..'. ...(+ . su|
00020770  62 25 20 8c 20 6d 6d 78  25 3d 6d 61 69 6e 5f 6d  |b% . mmx%=main_m|
00020780  6d 78 25 2b 6d 61 69 6e  5f 77 69 64 74 68 25 2b  |mx%+main_width%+|
00020790  31 32 0d 11 29 1c 20 e7  20 6d 65 6e 75 5f 72 65  |12..). . menu_re|
000207a0  64 72 61 77 25 20 84 20  73 75 62 25 20 8c 0d 11  |draw% . sub% ...|
000207b0  2a 3e 20 f2 72 61 69 73  65 64 5f 62 6c 6f 63 6b  |*> .raised_block|
000207c0  28 6d 6d 78 25 2c 6d 6d  79 25 2c 57 25 2a 31 36  |(mmx%,mmy%,W%*16|
000207d0  2c 4e 25 2a 33 36 2b 36  34 29 3a fb 31 32 38 2b  |,N%*36+64):.128+|
000207e0  36 33 20 c8 9c 30 3a 4d  25 3d 4e 25 0d 11 2b 2d  |63 ..0:M%=N%..+-|
000207f0  20 e3 20 59 25 3d 6d 6d  79 25 20 b8 20 28 6d 6d  | . Y%=mmy% . (mm|
00020800  79 25 2b 28 4e 25 2d 31  29 2a 33 36 29 20 88 33  |y%+(N%-1)*36) .3|
00020810  36 3a e6 20 30 2c 30 2c  30 0d 11 2c 29 20 e7 20  |6:. 0,0,0..,) . |
00020820  a7 6d 65 6e 75 24 28 4d  25 29 2c 22 3e 22 29 3c  |.menu$(M%),">")<|
00020830  3e 30 20 8c 20 66 63 25  3d 32 20 8b 20 66 63 25  |>0 . fc%=2 . fc%|
00020840  3d 30 0d 11 2d 25 20 e7  20 28 4d 25 3d 4e 25 20  |=0..-% . (M%=N% |
00020850  84 20 4d 25 3d 31 29 20  80 20 ac 28 73 75 62 25  |. M%=1) . .(sub%|
00020860  29 20 66 63 25 3d 37 0d  11 2e 23 20 e7 20 a7 6d  |) fc%=7...# . .m|
00020870  65 6e 75 24 28 4d 25 29  2c 22 2d 2d 2d 22 29 3c  |enu$(M%),"---")<|
00020880  3e 30 20 8c 20 66 63 25  3d 33 0d 11 2f 2d 20 6d  |>0 . fc%=3../- m|
00020890  24 3d 6d 65 6e 75 24 28  4d 25 29 3a e7 20 c2 6d  |$=menu$(M%):. .m|
000208a0  24 2c 31 29 3d 22 3e 22  20 6d 24 3d c0 6d 24 2c  |$,1)=">" m$=.m$,|
000208b0  a9 20 6d 24 2d 31 29 0d  11 30 1f 20 f2 77 72 69  |. m$-1)..0. .wri|
000208c0  74 65 32 28 6d 24 2c 6d  6d 78 25 2c 59 25 2b 31  |te2(m$,mmx%,Y%+1|
000208d0  36 2c 66 63 25 29 0d 11  31 1a 20 e7 20 c2 6d 65  |6,fc%)..1. . .me|
000208e0  6e 75 24 28 4d 25 29 2c  31 29 3d 22 3e 22 20 8c  |nu$(M%),1)=">" .|
000208f0  0d 11 32 44 20 c8 99 20  73 70 72 73 77 69 25 2c  |..2D .. sprswi%,|
00020900  32 35 36 2b 35 32 2c 73  70 62 25 2c 22 73 75 62  |256+52,spb%,"sub|
00020910  22 2c 6d 6d 78 25 2b 57  25 2a 31 36 2d 32 34 2c  |",mmx%+W%*16-24,|
00020920  59 25 2b 32 32 2c 38 2c  30 2c 74 72 61 6e 73 6c  |Y%+22,8,0,transl|
00020930  61 74 65 25 0d 11 33 1d  20 cd 3a 4d 25 2d 3d 31  |ate%..3. .:M%-=1|
00020940  3a ed 3a 6d 65 6e 75 5f  72 65 64 72 61 77 25 3d  |:.:menu_redraw%=|
00020950  30 0d 11 34 25 20 e7 20  73 75 62 25 20 8c 20 e6  |0..4% . sub% . .|
00020960  20 31 32 38 2c 36 34 2c  30 20 8b 20 e6 20 30 2c  | 128,64,0 . . 0,|
00020970  36 34 2c 31 32 38 0d 11  35 2b 20 c8 93 20 c8 90  |64,128..5+ .. ..|
00020980  20 6d 6d 78 25 2b 34 2c  6d 6d 79 25 2b 4e 25 2a  | mmx%+4,mmy%+N%*|
00020990  33 36 2b 32 30 2c 57 25  2a 31 36 2d 31 30 2c 34  |36+20,W%*16-10,4|
000209a0  30 0d 11 36 2d 20 f2 77  72 69 74 65 32 28 6d 65  |0..6- .write2(me|
000209b0  6e 75 24 28 30 29 2c 6d  6d 78 25 2b 34 2c 6d 6d  |nu$(0),mmx%+4,mm|
000209c0  79 25 2b 4e 25 2a 33 36  2b 32 30 2c 30 29 0d 11  |y%+N%*36+20,0)..|
000209d0  37 2b 20 f2 77 72 69 74  65 32 28 6d 65 6e 75 24  |7+ .write2(menu$|
000209e0  28 30 29 2c 6d 6d 78 25  2c 6d 6d 79 25 2b 4e 25  |(0),mmx%,mmy%+N%|
000209f0  2a 33 36 2b 32 34 2c 31  29 0d 11 38 06 20 cc 0d  |*36+24,1)..8. ..|
00020a00  11 39 14 20 e6 20 33 2c  32 35 35 2c 32 35 35 2c  |.9. . 3,255,255,|
00020a10  32 35 35 0d 11 3a 25 20  c8 93 20 c8 90 20 6d 61  |255..:% .. .. ma|
00020a20  69 6e 5f 78 25 2c 6d 61  69 6e 5f 79 25 2c 6d 61  |in_x%,main_y%,ma|
00020a30  69 6e 5f 77 25 2c 33 36  0d 11 3b 06 20 cd 0d 11  |in_w%,36..;. ...|
00020a40  3c 2a 20 c8 97 20 c8 93  20 6d 6d 78 25 2d 34 2c  |<* .. .. mmx%-4,|
00020a50  6d 6d 79 25 2b 31 32 2c  57 25 2a 31 36 2d 36 34  |mmy%+12,W%*16-64|
00020a60  2c 4e 25 2a 33 36 2b 34  0d 11 3d 29 20 c8 97 20  |,N%*36+4..=) .. |
00020a70  c8 93 20 6d 6d 78 25 2d  34 2c 6d 6d 79 25 2b 31  |.. mmx%-4,mmy%+1|
00020a80  32 2c 57 25 2a 31 36 2b  38 2c 4e 25 2a 33 36 2b  |2,W%*16+8,N%*36+|
00020a90  34 0d 11 3e 34 20 e7 20  73 75 62 25 20 8c 20 c8  |4..>4 . sub% . .|
00020aa0  97 20 c8 93 20 6d 6d 78  25 2d 33 32 2c 6d 6d 79  |. .. mmx%-32,mmy|
00020ab0  25 2b 31 32 2c 57 25 2a  31 36 2b 33 32 2c 4e 25  |%+12,W%*16+32,N%|
00020ac0  2a 33 36 2b 34 0d 11 3f  1e 20 65 66 66 65 63 74  |*36+4..?. effect|
00020ad0  25 3d 33 3a f2 77 61 69  74 5f 6e 6f 5f 62 75 74  |%=3:.wait_no_but|
00020ae0  74 6f 6e 0d 11 40 27 20  42 58 25 3d 6d 6d 78 25  |ton..@' BX%=mmx%|
00020af0  2b 34 3a 42 59 25 3d 6d  6d 79 25 2b 38 3a 42 57  |+4:BY%=mmy%+8:BW|
00020b00  25 3d 57 25 2a 31 36 2d  33 32 0d 11 41 29 20 54  |%=W%*16-32..A) T|
00020b10  25 3d 6d 6d 79 25 2b 4e  25 2a 33 36 2b 31 30 3a  |%=mmy%+N%*36+10:|
00020b20  73 75 62 78 25 3d 6d 6d  78 25 2b 57 25 2a 31 36  |subx%=mmx%+W%*16|
00020b30  2d 32 34 0d 11 42 06 20  f5 0d 11 43 1a 20 e6 20  |-24..B. ...C. . |
00020b40  65 66 66 65 63 74 25 2c  32 35 35 2c 32 35 35 2c  |effect%,255,255,|
00020b50  32 35 35 0d 11 44 21 20  c8 97 20 58 2c 59 2c 42  |255..D! .. X,Y,B|
00020b60  3a 6d 65 6e 75 5f 62 6f  78 25 3d 28 54 25 2d 59  |:menu_box%=(T%-Y|
00020b70  29 81 33 36 0d 11 45 28  20 c8 93 20 c8 90 20 42  |).36..E( .. .. B|
00020b80  58 25 2c 54 25 2d 33 32  2d 6d 65 6e 75 5f 62 6f  |X%,T%-32-menu_bo|
00020b90  78 25 2a 33 36 2c 42 57  25 2c 33 36 0d 11 46 24  |x%*36,BW%,36..F$|
00020ba0  20 f5 3a c8 97 20 78 2c  79 2c 42 3a 6d 65 6e 75  | .:.. x,y,B:menu|
00020bb0  5f 62 6f 78 32 25 3d 28  54 25 2d 79 29 81 33 36  |_box2%=(T%-y).36|
00020bc0  0d 11 47 1e 20 e7 20 78  3c 6d 6d 78 25 2d 32 34  |..G. . x<mmx%-24|
00020bd0  20 80 20 73 75 62 25 20  8c 20 42 3d 39 39 0d 11  | . sub% . B=99..|
00020be0  48 38 20 6d 24 3d 6d 65  6e 75 24 28 6d 65 6e 75  |H8 m$=menu$(menu|
00020bf0  5f 62 6f 78 32 25 2b 31  29 3a e7 20 78 3e 73 75  |_box2%+1):. x>su|
00020c00  62 78 25 20 80 20 c2 6d  24 2c 31 29 3d 22 3e 22  |bx% . .m$,1)=">"|
00020c10  20 8c 20 42 3d 38 0d 11  49 16 20 f2 63 68 65 63  | . B=8..I. .chec|
00020c20  6b 5f 61 6c 74 5f 73 5f  73 61 76 65 0d 11 4a 23  |k_alt_s_save..J#|
00020c30  20 fd 20 6d 65 6e 75 5f  62 6f 78 32 25 3c 3e 6d  | . menu_box2%<>m|
00020c40  65 6e 75 5f 62 6f 78 25  20 84 20 42 3c 3e 30 0d  |enu_box% . B<>0.|
00020c50  11 4b 28 20 c8 93 20 c8  90 20 42 58 25 2c 54 25  |.K( .. .. BX%,T%|
00020c60  2d 33 32 2d 6d 65 6e 75  5f 62 6f 78 25 2a 33 36  |-32-menu_box%*36|
00020c70  2c 42 57 25 2c 33 36 0d  11 4c 3c 20 e7 20 a7 6d  |,BW%,36..L< . .m|
00020c80  65 6e 75 24 28 28 54 25  2d 79 29 81 33 36 2b 31  |enu$((T%-y).36+1|
00020c90  29 2c 22 2d 2d 2d 22 29  3c 3e 30 20 8c 20 65 66  |),"---")<>0 . ef|
00020ca0  66 65 63 74 25 3d 35 20  8b 20 65 66 66 65 63 74  |fect%=5 . effect|
00020cb0  25 3d 33 0d 11 4d 0b 20  fd 20 42 3c 3e 30 0d 11  |%=3..M. . B<>0..|
00020cc0  4e 0c 20 e7 20 42 3c 38  20 8c 0d 11 4f 0f 20 e3  |N. . B<8 ...O. .|
00020cd0  20 46 25 3d 31 20 b8 20  35 0d 11 50 31 20 c8 93  | F%=1 . 5..P1 ..|
00020ce0  20 c8 90 20 42 58 25 2c  54 25 2d 33 32 2d 6d 65  | .. BX%,T%-32-me|
00020cf0  6e 75 5f 62 6f 78 32 25  2a 33 36 2c 42 57 25 2c  |nu_box2%*36,BW%,|
00020d00  33 36 3a c8 96 3a c8 96  3a ed 0d 11 51 06 20 cc  |36:..:..:...Q. .|
00020d10  0d 11 52 29 20 c8 93 20  c8 90 20 42 58 25 2c 54  |..R) .. .. BX%,T|
00020d20  25 2d 33 32 2d 6d 65 6e  75 5f 62 6f 78 32 25 2a  |%-32-menu_box2%*|
00020d30  33 36 2c 42 57 25 2c 33  36 0d 11 53 06 20 cd 0d  |36,BW%,36..S. ..|
00020d40  11 54 10 20 e7 20 ac 28  73 75 62 25 29 20 8c 0d  |.T. . .(sub%) ..|
00020d50  11 55 25 20 6d 61 69 6e  5f 6d 6d 78 25 3d 6d 6d  |.U% main_mmx%=mm|
00020d60  78 25 3a 6d 61 69 6e 5f  77 69 64 74 68 25 3d 57  |x%:main_width%=W|
00020d70  25 2a 31 36 0d 11 56 38  20 6d 61 69 6e 5f 78 25  |%*16..V8 main_x%|
00020d80  3d 42 58 25 3a 6d 61 69  6e 5f 79 25 3d 54 25 2d  |=BX%:main_y%=T%-|
00020d90  33 32 2d 6d 65 6e 75 5f  62 6f 78 32 25 2a 33 36  |32-menu_box2%*36|
00020da0  3a 6d 61 69 6e 5f 77 25  3d 42 57 25 0d 11 57 06  |:main_w%=BW%..W.|
00020db0  20 cd 0d 11 58 1a 20 6d  65 6e 75 5f 62 6f 78 25  | ...X. menu_box%|
00020dc0  3d 28 54 25 2d 79 29 81  33 36 2b 31 0d 11 59 42  |=(T%-y).36+1..YB|
00020dd0  20 e7 20 6d 65 6e 75 5f  62 6f 78 25 3d 4e 25 20  | . menu_box%=N% |
00020de0  80 20 ac 28 73 75 62 25  29 20 6d 65 6e 75 5f 62  |. .(sub%) menu_b|
00020df0  6f 78 25 3d 31 20 3a 20  f4 20 31 20 3d 20 6d 61  |ox%=1 : . 1 = ma|
00020e00  69 6e 20 6d 65 6e 75 20  63 61 6e 63 65 6c 0d 11  |in menu cancel..|
00020e10  5a 43 20 e7 20 42 3d 39  39 20 8c 20 6d 65 6e 75  |ZC . B=99 . menu|
00020e20  5f 62 6f 78 25 3d 39 39  20 20 20 20 20 20 20 20  |_box%=99        |
00020e30  20 20 20 20 20 20 20 20  20 3a 20 f4 20 39 39 20  |         : . 99 |
00020e40  3d 20 73 75 62 2d 6d 65  6e 75 20 63 61 6e 63 65  |= sub-menu cance|
00020e50  6c 0d 11 5b 32 20 e7 20  73 75 62 25 20 8c 20 f2  |l..[2 . sub% . .|
00020e60  72 65 64 72 61 77 28 6d  6d 78 25 2d 36 2c 38 32  |redraw(mmx%-6,82|
00020e70  2c 57 25 2a 31 36 2b 31  36 2c 4e 25 2a 33 36 2b  |,W%*16+16,N%*36+|
00020e80  38 30 29 0d 11 5c 18 20  c8 97 20 c8 93 20 30 2c  |80)..\. .. .. 0,|
00020e90  30 2c 31 32 38 30 2c 31  30 32 34 0d 11 5d 06 20  |0,1280,1024..]. |
00020ea0  e1 0d 11 5e 04 0d 11 5f  1f 20 dd 20 f2 72 65 64  |...^..._. . .red|
00020eb0  72 61 77 28 72 78 25 2c  72 79 25 2c 72 77 25 2c  |raw(rx%,ry%,rw%,|
00020ec0  72 68 25 29 0d 11 60 43  20 74 6c 25 3d 72 79 25  |rh%)..`C tl%=ry%|
00020ed0  2b 72 68 25 3a 41 25 3d  28 28 73 63 72 65 65 6e  |+rh%:A%=((screen|
00020ee0  5f 6c 69 6e 65 73 25 2a  32 2d 74 6c 25 29 81 32  |_lines%*2-tl%).2|
00020ef0  29 2a 31 32 38 30 2b 72  78 25 3a 41 25 3d 41 25  |)*1280+rx%:A%=A%|
00020f00  2d 28 41 25 83 34 29 0d  11 61 3d 20 21 72 65 64  |-(A%.4)..a= !red|
00020f10  72 61 77 5f 73 6f 75 72  63 65 3d 41 25 2b 6d 65  |raw_source=A%+me|
00020f20  6d 62 6c 6f 63 6b 25 2b  32 30 3a 21 72 65 64 72  |mblock%+20:!redr|
00020f30  61 77 5f 73 63 72 65 65  6e 3d 73 63 72 65 65 6e  |aw_screen=screen|
00020f40  25 2b 41 25 0d 11 62 39  20 21 72 65 64 72 61 77  |%+A%..b9 !redraw|
00020f50  5f 62 79 74 65 73 3d 72  77 25 3a 21 72 65 64 72  |_bytes=rw%:!redr|
00020f60  61 77 5f 6c 69 6e 65 73  3d 72 68 25 2f 32 3a d6  |aw_lines=rh%/2:.|
00020f70  20 72 65 64 72 61 77 5f  63 6f 64 65 25 0d 11 63  | redraw_code%..c|
00020f80  06 20 e1 0d 11 64 04 0d  11 65 17 20 dd 20 f2 72  |. ...d...e. . .r|
00020f90  65 64 72 61 77 5f 61 73  73 65 6d 62 6c 65 0d 11  |edraw_assemble..|
00020fa0  66 17 20 de 20 72 65 64  72 61 77 5f 63 6f 64 65  |f. . redraw_code|
00020fb0  25 20 31 32 38 0d 11 67  12 20 e3 20 50 3d 30 20  |% 128..g. . P=0 |
00020fc0  b8 20 32 20 88 20 32 0d  11 68 14 20 50 25 3d 72  |. 2 . 2..h. P%=r|
00020fd0  65 64 72 61 77 5f 63 6f  64 65 25 0d 11 69 0b 20  |edraw_code%..i. |
00020fe0  5b 4f 50 54 20 50 0d 11  6a 2e 20 4c 44 52 20 52  |[OPT P..j. LDR R|
00020ff0  32 2c 72 65 64 72 61 77  5f 73 6f 75 72 63 65 3a  |2,redraw_source:|
00021000  4c 44 52 20 52 33 2c 72  65 64 72 61 77 5f 73 63  |LDR R3,redraw_sc|
00021010  72 65 65 6e 0d 11 6b 36  20 4c 44 52 20 52 34 2c  |reen..k6 LDR R4,|
00021020  72 65 64 72 61 77 5f 62  79 74 65 73 3a 4c 44 52  |redraw_bytes:LDR|
00021030  20 52 35 2c 72 65 64 72  61 77 5f 6c 69 6e 65 73  | R5,redraw_lines|
00021040  3a 4d 4f 56 20 52 31 2c  23 30 0d 11 6c 11 20 2e  |:MOV R1,#0..l. .|
00021050  72 65 64 72 61 77 5f 6c  6f 6f 70 0d 11 6d 22 20  |redraw_loop..m" |
00021060  4c 44 52 20 52 30 2c 5b  52 32 2c 52 31 5d 3a 53  |LDR R0,[R2,R1]:S|
00021070  54 52 20 52 30 2c 5b 52  33 2c 52 31 5d 0d 11 6e  |TR R0,[R3,R1]..n|
00021080  2b 20 41 44 44 20 52 31  2c 52 31 2c 23 34 3a 43  |+ ADD R1,R1,#4:C|
00021090  4d 50 20 52 31 2c 52 34  3a 42 4c 54 20 72 65 64  |MP R1,R4:BLT red|
000210a0  72 61 77 5f 6c 6f 6f 70  0d 11 6f 2e 20 41 44 44  |raw_loop..o. ADD|
000210b0  20 52 32 2c 52 32 2c 23  31 32 38 30 3a 41 44 44  | R2,R2,#1280:ADD|
000210c0  20 52 33 2c 52 33 2c 23  31 32 38 30 3a 4d 4f 56  | R3,R3,#1280:MOV|
000210d0  20 52 31 2c 23 30 0d 11  70 22 20 53 55 42 53 20  | R1,#0..p" SUBS |
000210e0  52 35 2c 52 35 2c 23 31  3a 42 4e 45 20 72 65 64  |R5,R5,#1:BNE red|
000210f0  72 61 77 5f 6c 6f 6f 70  0d 11 71 0f 20 4d 4f 56  |raw_loop..q. MOV|
00021100  20 50 43 2c 52 31 34 0d  11 72 1a 20 2e 72 65 64  | PC,R14..r. .red|
00021110  72 61 77 5f 73 6f 75 72  63 65 20 45 51 55 44 20  |raw_source EQUD |
00021120  30 0d 11 73 1a 20 2e 72  65 64 72 61 77 5f 73 63  |0..s. .redraw_sc|
00021130  72 65 65 6e 20 45 51 55  44 20 30 0d 11 74 1a 20  |reen EQUD 0..t. |
00021140  2e 72 65 64 72 61 77 5f  62 79 74 65 73 20 20 45  |.redraw_bytes  E|
00021150  51 55 44 20 30 0d 11 75  1a 20 2e 72 65 64 72 61  |QUD 0..u. .redra|
00021160  77 5f 6c 69 6e 65 73 20  20 45 51 55 44 20 30 0d  |w_lines  EQUD 0.|
00021170  11 76 06 20 5d 0d 11 77  06 20 ed 0d 11 78 06 20  |.v. ]..w. ...x. |
00021180  e1 0d 11 79 04 0d 11 7a  11 20 dd 20 f2 70 65 72  |...y...z. . .per|
00021190  70 5f 6d 65 6e 75 0d 11  7b 1d 20 6d 65 6e 75 24  |p_menu..{. menu$|
000211a0  28 30 29 3d 22 54 69 6c  65 20 63 6f 6c 6f 75 72  |(0)="Tile colour|
000211b0  73 22 20 0d 11 7c 15 20  6d 65 6e 75 24 28 31 29  |s" ..|. menu$(1)|
000211c0  3d 22 57 68 69 74 65 22  0d 11 7d 16 20 6d 65 6e  |="White"..}. men|
000211d0  75 24 28 32 29 3d 22 59  65 6c 6c 6f 77 22 0d 11  |u$(2)="Yellow"..|
000211e0  7e 14 20 6d 65 6e 75 24  28 33 29 3d 22 43 79 61  |~. menu$(3)="Cya|
000211f0  6e 22 0d 11 7f 15 20 6d  65 6e 75 24 28 34 29 3d  |n".... menu$(4)=|
00021200  22 47 72 65 65 6e 22 0d  11 80 17 20 6d 65 6e 75  |"Green".... menu|
00021210  24 28 35 29 3d 22 4d 61  67 65 6e 74 61 22 0d 11  |$(5)="Magenta"..|
00021220  81 13 20 6d 65 6e 75 24  28 36 29 3d 22 52 65 64  |.. menu$(6)="Red|
00021230  22 0d 11 82 14 20 6d 65  6e 75 24 28 37 29 3d 22  |".... menu$(7)="|
00021240  42 6c 75 65 22 0d 11 83  16 20 6d 65 6e 75 24 28  |Blue".... menu$(|
00021250  38 29 3d 22 4f 72 61 6e  67 65 22 0d 11 84 18 20  |8)="Orange".... |
00021260  6d 65 6e 75 24 28 39 29  3d 22 53 6b 79 20 62 6c  |menu$(9)="Sky bl|
00021270  75 65 22 0d 11 85 15 20  6d 65 6e 75 24 28 31 30  |ue".... menu$(10|
00021280  29 3d 22 50 69 6e 6b 22  0d 11 86 18 20 6d 65 6e  |)="Pink".... men|
00021290  75 24 28 31 31 29 3d 22  43 72 69 6d 73 6f 6e 22  |u$(11)="Crimson"|
000212a0  0d 11 87 17 20 6d 65 6e  75 24 28 31 32 29 3d 22  |.... menu$(12)="|
000212b0  50 75 72 70 6c 65 22 0d  11 88 21 20 6d 65 6e 75  |Purple"...! menu|
000212c0  24 28 31 33 29 3d 22 2a  22 3a f2 6d 65 6e 75 28  |$(13)="*":.menu(|
000212d0  30 2c 39 30 2c 2d 31 29  0d 11 89 19 20 70 72 3d  |0,90,-1).... pr=|
000212e0  32 35 35 3a 70 67 3d 32  35 35 3a 70 62 3d 32 35  |255:pg=255:pb=25|
000212f0  35 0d 11 8a 13 20 c8 8e  20 6d 65 6e 75 5f 62 6f  |5.... .. menu_bo|
00021300  78 25 20 ca 0d 11 8b 1d  20 c9 20 31 3a 70 72 3d  |x% ..... . 1:pr=|
00021310  32 35 35 3a 70 67 3d 32  35 35 3a 70 62 3d 32 35  |255:pg=255:pb=25|
00021320  35 0d 11 8c 1b 20 c9 20  32 3a 70 72 3d 32 35 35  |5.... . 2:pr=255|
00021330  3a 70 67 3d 32 35 35 3a  70 62 3d 30 0d 11 8d 1b  |:pg=255:pb=0....|
00021340  20 c9 20 33 3a 70 72 3d  30 3a 70 67 3d 32 35 35  | . 3:pr=0:pg=255|
00021350  3a 70 62 3d 32 35 35 0d  11 8e 19 20 c9 20 34 3a  |:pb=255.... . 4:|
00021360  70 72 3d 30 3a 70 67 3d  32 35 35 3a 70 62 3d 30  |pr=0:pg=255:pb=0|
00021370  0d 11 8f 1b 20 c9 20 35  3a 70 72 3d 32 35 35 3a  |.... . 5:pr=255:|
00021380  70 67 3d 30 3a 70 62 3d  32 35 35 0d 11 90 19 20  |pg=0:pb=255.... |
00021390  c9 20 36 3a 70 72 3d 32  35 35 3a 70 67 3d 30 3a  |. 6:pr=255:pg=0:|
000213a0  70 62 3d 30 0d 11 91 19  20 c9 20 37 3a 70 72 3d  |pb=0.... . 7:pr=|
000213b0  30 3a 70 67 3d 30 3a 70  62 3d 32 35 35 0d 11 92  |0:pg=0:pb=255...|
000213c0  1b 20 c9 20 38 3a 70 72  3d 32 35 35 3a 70 67 3d  |. . 8:pr=255:pg=|
000213d0  31 32 38 3a 70 62 3d 30  0d 11 93 1b 20 c9 20 39  |128:pb=0.... . 9|
000213e0  3a 70 72 3d 30 3a 70 67  3d 31 32 38 3a 70 62 3d  |:pr=0:pg=128:pb=|
000213f0  32 35 35 0d 11 94 1e 20  c9 20 31 30 3a 70 72 3d  |255.... . 10:pr=|
00021400  32 35 35 3a 70 67 3d 31  32 38 3a 70 62 3d 32 35  |255:pg=128:pb=25|
00021410  35 0d 11 95 1c 20 c9 20  31 31 3a 70 72 3d 32 35  |5.... . 11:pr=25|
00021420  35 3a 70 67 3d 30 3a 70  62 3d 31 32 38 0d 11 96  |5:pg=0:pb=128...|
00021430  1c 20 c9 20 31 32 3a 70  72 3d 31 32 38 3a 70 67  |. . 12:pr=128:pg|
00021440  3d 30 3a 70 62 3d 32 35  35 0d 11 97 06 20 cb 0d  |=0:pb=255.... ..|
00021450  11 98 0c 20 c8 8e 20 70  72 20 ca 0d 11 99 11 20  |... .. pr ..... |
00021460  c9 20 32 35 35 3a 70 72  69 3d 2e 36 0d 11 9a 11  |. 255:pri=.6....|
00021470  20 c9 20 31 32 38 3a 70  72 69 3d 2e 33 0d 11 9b  | . 128:pri=.3...|
00021480  10 20 c9 20 30 20 20 3a  70 72 69 3d 30 0d 11 9c  |. . 0  :pri=0...|
00021490  06 20 cb 0d 11 9d 0c 20  c8 8e 20 70 67 20 ca 0d  |. ..... .. pg ..|
000214a0  11 9e 11 20 c9 20 32 35  35 3a 70 67 69 3d 2e 36  |... . 255:pgi=.6|
000214b0  0d 11 9f 11 20 c9 20 31  32 38 3a 70 67 69 3d 2e  |.... . 128:pgi=.|
000214c0  33 0d 11 a0 10 20 c9 20  30 20 20 3a 70 67 69 3d  |3.... . 0  :pgi=|
000214d0  30 0d 11 a1 06 20 cb 0d  11 a2 0c 20 c8 8e 20 70  |0.... ..... .. p|
000214e0  62 20 ca 0d 11 a3 11 20  c9 20 32 35 35 3a 70 62  |b ..... . 255:pb|
000214f0  69 3d 2e 36 0d 11 a4 11  20 c9 20 31 32 38 3a 70  |i=.6.... . 128:p|
00021500  62 69 3d 2e 33 0d 11 a5  10 20 c9 20 30 20 20 3a  |bi=.3.... . 0  :|
00021510  70 62 69 3d 30 0d 11 a6  06 20 cb 0d 11 a7 21 20  |pbi=0.... ....! |
00021520  e7 20 6d 65 6e 75 5f 62  6f 78 25 3c 3e 39 39 20  |. menu_box%<>99 |
00021530  8c 20 f2 6d 61 6b 65 5f  70 65 72 70 0d 11 a8 06  |. .make_perp....|
00021540  20 e1 0d 11 a9 04 0d 11  aa 11 20 dd 20 f2 6d 61  | ......... . .ma|
00021550  6b 65 5f 70 65 72 70 0d  11 ab 30 20 70 6d 25 3d  |ke_perp...0 pm%=|
00021560  4d 45 4d 25 3a 4d 45 4d  25 2b 3d 31 3a e7 20 4d  |MEM%:MEM%+=1:. M|
00021570  45 4d 25 3e 3d 6d 65 6d  6f 72 69 65 73 25 20 8c  |EM%>=memories% .|
00021580  20 4d 45 4d 25 3d 30 0d  11 ac 2b 20 f2 6d 65 6d  | MEM%=0...+ .mem|
00021590  6f 72 79 5f 73 65 6c 65  63 74 28 4d 45 4d 25 2c  |ory_select(MEM%,|
000215a0  30 29 3a f2 64 69 73 70  6c 61 79 5f 6d 65 6d 6f  |0):.display_memo|
000215b0  72 79 0d 11 ad 24 20 4d  45 4d 25 3d 70 6d 25 3a  |ry...$ MEM%=pm%:|
000215c0  f2 6d 65 6d 6f 72 79 5f  73 65 6c 65 63 74 28 4d  |.memory_select(M|
000215d0  45 4d 25 2c 30 29 0d 11  ae 10 20 58 3d 35 30 3a  |EM%,0).... X=50:|
000215e0  57 3d 31 31 38 30 0d 11  af 18 20 72 3d 70 72 2d  |W=1180.... r=pr-|
000215f0  35 36 3a e7 20 72 3c 30  20 8c 20 72 3d 30 0d 11  |56:. r<0 . r=0..|
00021600  b0 18 20 67 3d 70 67 2d  35 36 3a e7 20 67 3c 30  |.. g=pg-56:. g<0|
00021610  20 8c 20 67 3d 30 0d 11  b1 18 20 62 3d 70 62 2d  | . g=0.... b=pb-|
00021620  35 36 3a e7 20 62 3c 30  20 8c 20 62 3d 30 0d 11  |56:. b<0 . b=0..|
00021630  b2 10 20 52 3d 72 3a 47  3d 67 3a 42 3d 62 0d 11  |.. R=r:G=g:B=b..|
00021640  b3 1b 20 e7 20 52 3d 30  20 8c 20 72 69 3d 32 2e  |.. . R=0 . ri=2.|
00021650  33 20 8b 20 72 69 3d 2e  35 0d 11 b4 1b 20 e7 20  |3 . ri=.5.... . |
00021660  47 3d 30 20 8c 20 67 69  3d 32 2e 33 20 8b 20 67  |G=0 . gi=2.3 . g|
00021670  69 3d 2e 35 0d 11 b5 1b  20 e7 20 42 3d 30 20 8c  |i=.5.... . B=0 .|
00021680  20 62 69 3d 32 2e 33 20  8b 20 62 69 3d 2e 35 0d  | bi=2.3 . bi=.5.|
00021690  11 b6 2b 20 e3 20 59 25  3d 31 36 34 20 b8 20 32  |..+ . Y%=164 . 2|
000216a0  30 34 3a e6 20 52 2c 47  2c 42 3a 86 20 35 30 2c  |04:. R,G,B:. 50,|
000216b0  59 25 2c 31 32 33 30 2c  59 25 0d 11 b7 18 20 52  |Y%,1230,Y%.... R|
000216c0  2b 3d 72 69 3a 47 2b 3d  67 69 3a 42 2b 3d 62 69  |+=ri:G+=gi:B+=bi|
000216d0  3a ed 0d 11 b8 2b 20 e3  20 59 25 3d 32 30 34 20  |:....+ . Y%=204 |
000216e0  b8 20 32 34 34 3a e6 20  52 2c 47 2c 42 3a 86 20  |. 244:. R,G,B:. |
000216f0  35 30 2c 59 25 2c 31 32  33 30 2c 59 25 0d 11 b9  |50,Y%,1230,Y%...|
00021700  18 20 52 2d 3d 72 69 3a  47 2d 3d 67 69 3a 42 2d  |. R-=ri:G-=gi:B-|
00021710  3d 62 69 3a ed 0d 11 ba  16 20 e3 20 59 25 3d 32  |=bi:..... . Y%=2|
00021720  34 32 20 b8 20 37 36 34  20 88 32 0d 11 bb 28 20  |42 . 764 .2...( |
00021730  e6 20 70 72 2c 70 67 2c  70 62 3a 86 20 58 2c 59  |. pr,pg,pb:. X,Y|
00021740  25 2c 58 2b 57 2c 59 25  3a 58 2b 3d 2e 35 3a 57  |%,X+W,Y%:X+=.5:W|
00021750  2d 3d 31 0d 11 bc 1c 20  70 72 3d 70 72 2d 70 72  |-=1.... pr=pr-pr|
00021760  69 3a e7 20 70 72 3c 30  20 8c 20 70 72 3d 30 0d  |i:. pr<0 . pr=0.|
00021770  11 bd 1c 20 70 67 3d 70  67 2d 70 67 69 3a e7 20  |... pg=pg-pgi:. |
00021780  70 67 3c 30 20 8c 20 70  67 3d 30 0d 11 be 1c 20  |pg<0 . pg=0.... |
00021790  70 62 3d 70 62 2d 70 62  69 3a e7 20 70 62 3c 30  |pb=pb-pbi:. pb<0|
000217a0  20 8c 20 70 62 3d 30 0d  11 bf 06 20 ed 0d 11 c0  | . pb=0.... ....|
000217b0  2f 20 41 25 3d 6d 65 6d  62 6c 6f 63 6b 25 2b 32  |/ A%=memblock%+2|
000217c0  30 2b 34 30 39 36 30 3a  57 25 3d 38 38 30 3a 53  |0+40960:W%=880:S|
000217d0  58 3d 32 30 30 3a 59 25  3d 31 34 30 0d 11 c1 8d  |X=200:Y%=140....|
000217e0  20 e3 20 4e 25 3d 41 25  b8 41 25 2b 36 31 31 38  | . N%=A%.A%+6118|
000217f0  34 30 88 32 35 36 30 3a  58 3d 53 58 3a 58 49 3d  |40.2560:X=SX:XI=|
00021800  57 25 2f 36 34 30 3a e3  20 4a 25 3d 4e 25 b8 4e  |W%/640:. J%=N%.N|
00021810  25 2b 31 32 37 38 88 32  3a 53 25 3d 28 31 32 38  |%+1278.2:S%=(128|
00021820  30 2a 59 25 2b a8 20 58  2b 73 63 72 65 65 6e 25  |0*Y%+. X+screen%|
00021830  29 81 32 2a 32 3a 3f 53  25 3d 3f 4a 25 3a 3f 28  |).2*2:?S%=?J%:?(|
00021840  53 25 2b 31 29 3d 3f 28  4a 25 2b 31 29 3a 58 3d  |S%+1)=?(J%+1):X=|
00021850  58 2b 58 49 3a ed 3a 53  58 2d 3d 2e 35 3a 57 25  |X+XI:.:SX-=.5:W%|
00021860  2b 3d 31 3a 59 25 2b 3d  31 0d 11 c2 21 20 ed 3a  |+=1:Y%+=1...! .:|
00021870  6d 65 6e 75 5f 62 6f 78  25 3d 31 3a f2 75 70 6c  |menu_box%=1:.upl|
00021880  6f 61 64 5f 6d 65 6d 6f  72 79 0d 11 c3 06 20 e1  |oad_memory.... .|
00021890  0d 11 c4 04 0d 11 c5 1b  20 dd 20 f2 6c 6f 61 64  |........ . .load|
000218a0  5f 72 78 5f 61 6e 64 5f  74 78 5f 63 6f 64 65 0d  |_rx_and_tx_code.|
000218b0  11 c6 3a 20 de 20 72 78  5f 63 6f 64 65 25 20 a4  |..: . rx_code% .|
000218c0  66 69 6c 65 5f 6c 65 6e  28 22 3c 50 73 63 61 6e  |file_len("<Pscan|
000218d0  24 44 69 72 3e 2e 52 65  73 6f 75 72 63 65 73 2e  |$Dir>.Resources.|
000218e0  50 73 63 61 6e 52 58 22  29 0d 11 c7 38 20 ff 28  |PscanRX")...8 .(|
000218f0  22 4c 4f 41 44 20 3c 50  73 63 61 6e 24 44 69 72  |"LOAD <Pscan$Dir|
00021900  3e 2e 52 65 73 6f 75 72  63 65 73 2e 50 73 63 61  |>.Resources.Psca|
00021910  6e 52 58 20 22 2b c3 7e  72 78 5f 63 6f 64 65 25  |nRX "+.~rx_code%|
00021920  29 0d 11 c8 24 20 72 78  5f 70 61 72 61 6d 25 3d  |)...$ rx_param%=|
00021930  72 78 5f 63 6f 64 65 25  2b 28 72 78 5f 63 6f 64  |rx_code%+(rx_cod|
00021940  65 25 21 34 29 0d 11 c9  1d 20 72 78 5f 70 61 72  |e%!4).... rx_par|
00021950  61 6d 65 74 65 72 73 25  3d 72 78 5f 70 61 72 61  |ameters%=rx_para|
00021960  6d 25 0d 11 ca 04 0d 11  cb 3a 20 de 20 68 71 5f  |m%.......: . hq_|
00021970  72 78 5f 63 6f 64 65 25  20 a4 66 69 6c 65 5f 6c  |rx_code% .file_l|
00021980  65 6e 28 22 3c 50 73 63  61 6e 24 44 69 72 3e 2e  |en("<Pscan$Dir>.|
00021990  52 65 73 6f 75 72 63 65  73 2e 48 51 52 58 22 29  |Resources.HQRX")|
000219a0  0d 11 cc 38 20 ff 28 22  4c 4f 41 44 20 3c 50 73  |...8 .("LOAD <Ps|
000219b0  63 61 6e 24 44 69 72 3e  2e 52 65 73 6f 75 72 63  |can$Dir>.Resourc|
000219c0  65 73 2e 48 51 52 58 20  22 2b c3 7e 68 71 5f 72  |es.HQRX "+.~hq_r|
000219d0  78 5f 63 6f 64 65 25 29  0d 11 cd 2d 20 68 71 5f  |x_code%)...- hq_|
000219e0  72 78 5f 70 61 72 61 6d  25 3d 68 71 5f 72 78 5f  |rx_param%=hq_rx_|
000219f0  63 6f 64 65 25 2b 28 68  71 5f 72 78 5f 63 6f 64  |code%+(hq_rx_cod|
00021a00  65 25 21 34 29 0d 11 ce  20 20 68 71 5f 70 61 72  |e%!4)...  hq_par|
00021a10  61 6d 65 74 65 72 73 25  3d 68 71 5f 72 78 5f 70  |ameters%=hq_rx_p|
00021a20  61 72 61 6d 25 0d 11 cf  04 0d 11 d0 3c 20 de 20  |aram%.......< . |
00021a30  72 78 5f 74 61 62 6c 65  25 20 a4 66 69 6c 65 5f  |rx_table% .file_|
00021a40  6c 65 6e 28 22 3c 50 73  63 61 6e 24 44 69 72 3e  |len("<Pscan$Dir>|
00021a50  2e 52 65 73 6f 75 72 63  65 73 2e 52 58 5f 74 61  |.Resources.RX_ta|
00021a60  62 6c 65 22 29 0d 11 d1  3a 20 ff 28 22 4c 4f 41  |ble")...: .("LOA|
00021a70  44 20 3c 50 73 63 61 6e  24 44 69 72 3e 2e 52 65  |D <Pscan$Dir>.Re|
00021a80  73 6f 75 72 63 65 73 2e  52 58 5f 74 61 62 6c 65  |sources.RX_table|
00021a90  20 22 2b c3 7e 72 78 5f  74 61 62 6c 65 25 29 0d  | "+.~rx_table%).|
00021aa0  11 d2 04 0d 11 d3 41 20  de 20 70 64 5f 72 78 5f  |......A . pd_rx_|
00021ab0  74 61 62 6c 65 25 20 34  30 39 36 20 3a 20 f4 20  |table% 4096 : . |
00021ac0  54 68 69 73 20 74 61 62  6c 65 20 63 6f 6e 76 65  |This table conve|
00021ad0  72 74 73 20 63 6f 75 6e  74 73 20 74 6f 20 36 34  |rts counts to 64|
00021ae0  2d 31 39 32 0d 11 d4 12  20 e3 20 43 25 3d 30 20  |-192.... . C%=0 |
00021af0  b8 20 34 30 39 35 0d 11  d5 1c 20 46 3d 28 31 2f  |. 4095.... F=(1/|
00021b00  28 34 30 39 36 2d 43 25  29 29 2a 31 30 30 30 30  |(4096-C%))*10000|
00021b10  30 30 0d 11 d6 1a 20 44  3d 28 46 2d 31 35 30 30  |00.... D=(F-1500|
00021b20  29 2f 33 2e 31 32 35 2f  32 2b 36 34 0d 11 d7 0e  |)/3.125/2+64....|
00021b30  20 e7 20 44 3c 30 20 44  3d 30 0d 11 d8 12 20 e7  | . D<0 D=0.... .|
00021b40  20 44 3e 32 35 35 20 44  3d 32 35 35 0d 11 d9 18  | D>255 D=255....|
00021b50  20 70 64 5f 72 78 5f 74  61 62 6c 65 25 3f 43 25  | pd_rx_table%?C%|
00021b60  3d 44 3a ed 0d 11 da 04  0d 11 db 49 20 de 20 70  |=D:........I . p|
00021b70  64 5f 61 75 74 6f 5f 74  61 62 6c 65 25 20 33 34  |d_auto_table% 34|
00021b80  30 30 20 3a 20 f4 20 43  6f 6e 76 65 72 74 20 6d  |00 : . Convert m|
00021b90  65 61 73 75 72 65 64 20  73 79 6e 63 20 66 72 65  |easured sync fre|
00021ba0  71 75 65 6e 63 79 20 74  6f 20 6f 66 66 73 65 74  |quency to offset|
00021bb0  2e 0d 11 dc 33 20 e3 20  43 25 3d 33 30 39 36 20  |....3 . C%=3096 |
00021bc0  b8 20 33 33 38 32 20 20  20 20 20 3a 20 f4 20 31  |. 3382     : . 1|
00021bd0  30 30 30 20 74 6f 20 31  34 30 30 20 48 7a 20 6f  |000 to 1400 Hz o|
00021be0  6e 6c 79 2e 0d 11 dd 1c  20 46 3d 28 31 2f 28 34  |nly..... F=(1/(4|
00021bf0  30 39 36 2d 43 25 29 29  2a 31 30 30 30 30 30 30  |096-C%))*1000000|
00021c00  0d 11 de 1a 20 44 3d 28  46 2d 31 30 30 30 29 2f  |.... D=(F-1000)/|
00021c10  33 2e 31 32 35 2f 32 2b  33 32 0d 11 df 1a 20 70  |3.125/2+32.... p|
00021c20  64 5f 61 75 74 6f 5f 74  61 62 6c 65 25 3f 43 25  |d_auto_table%?C%|
00021c30  3d 44 3a ed 0d 11 e0 04  0d 11 e1 47 20 de 20 74  |=D:........G . t|
00021c40  75 6e 69 6e 67 5f 69 6e  64 69 63 61 74 6f 72 5f  |uning_indicator_|
00021c50  74 61 62 6c 65 25 20 34  30 39 36 20 3a 20 f4 20  |table% 4096 : . |
00021c60  43 6f 6e 76 65 72 74 20  63 6f 75 6e 74 73 20 74  |Convert counts t|
00021c70  6f 20 73 63 72 65 65 6e  20 6f 66 66 73 65 74 0d  |o screen offset.|
00021c80  11 e2 12 20 e3 20 43 25  3d 30 20 b8 20 34 30 39  |... . C%=0 . 409|
00021c90  35 0d 11 e3 1c 20 46 3d  28 31 2f 28 34 30 39 36  |5.... F=(1/(4096|
00021ca0  2d 43 25 29 29 2a 31 30  30 30 30 30 30 0d 11 e4  |-C%))*1000000...|
00021cb0  11 20 44 3d 28 46 2d 31  30 30 30 29 2f 35 0d 11  |. D=(F-1000)/5..|
00021cc0  e5 23 20 74 75 6e 69 6e  67 5f 69 6e 64 69 63 61  |.# tuning_indica|
00021cd0  74 6f 72 5f 74 61 62 6c  65 25 3f 43 25 3d 44 3a  |tor_table%?C%=D:|
00021ce0  ed 0d 11 e6 04 0d 11 e7  1b 20 de 20 67 72 65 65  |......... . gree|
00021cf0  6e 5f 73 74 6f 72 65 25  20 31 32 38 30 30 2a 34  |n_store% 12800*4|
00021d00  0d 11 e8 24 20 67 72 65  65 6e 5f 73 74 6f 72 65  |...$ green_store|
00021d10  32 25 3d 67 72 65 65 6e  5f 73 74 6f 72 65 25 2b  |2%=green_store%+|
00021d20  32 35 36 30 0d 11 e9 24  20 62 6c 75 65 5f 73 74  |2560...$ blue_st|
00021d30  6f 72 65 25 3d 67 72 65  65 6e 5f 73 74 6f 72 65  |ore%=green_store|
00021d40  25 2b 32 35 36 30 2a 32  0d 11 ea 25 20 62 6c 75  |%+2560*2...% blu|
00021d50  65 5f 73 74 6f 72 65 32  25 3d 67 72 65 65 6e 5f  |e_store2%=green_|
00021d60  73 74 6f 72 65 25 2b 32  35 36 30 2a 33 0d 11 eb  |store%+2560*3...|
00021d70  23 20 72 65 64 5f 73 74  6f 72 65 25 3d 67 72 65  |# red_store%=gre|
00021d80  65 6e 5f 73 74 6f 72 65  25 2b 32 35 36 30 2a 34  |en_store%+2560*4|
00021d90  0d 11 ec 16 20 f2 63 72  65 61 74 65 5f 72 79 5f  |.... .create_ry_|
00021da0  74 61 62 6c 65 73 0d 11  ed 17 20 f2 73 65 74 5f  |tables.... .set_|
00021db0  72 78 5f 70 61 72 61 6d  65 74 65 72 73 0d 11 ee  |rx_parameters...|
00021dc0  04 0d 11 ef 3a 20 de 20  74 78 5f 63 6f 64 65 25  |....: . tx_code%|
00021dd0  20 a4 66 69 6c 65 5f 6c  65 6e 28 22 3c 50 73 63  | .file_len("<Psc|
00021de0  61 6e 24 44 69 72 3e 2e  52 65 73 6f 75 72 63 65  |an$Dir>.Resource|
00021df0  73 2e 50 73 63 61 6e 54  58 22 29 0d 11 f0 38 20  |s.PscanTX")...8 |
00021e00  ff 28 22 4c 4f 41 44 20  3c 50 73 63 61 6e 24 44  |.("LOAD <Pscan$D|
00021e10  69 72 3e 2e 52 65 73 6f  75 72 63 65 73 2e 50 73  |ir>.Resources.Ps|
00021e20  63 61 6e 54 58 20 22 2b  c3 7e 74 78 5f 63 6f 64  |canTX "+.~tx_cod|
00021e30  65 25 29 0d 11 f1 23 20  74 78 5f 70 61 72 61 6d  |e%)...# tx_param|
00021e40  25 3d 74 78 5f 63 6f 64  65 25 2b 28 21 74 78 5f  |%=tx_code%+(!tx_|
00021e50  63 6f 64 65 25 29 0d 11  f2 15 20 f2 74 78 5f 70  |code%).... .tx_p|
00021e60  61 72 61 6d 73 5f 73 65  74 75 70 0d 11 f3 04 0d  |arams_setup.....|
00021e70  11 f4 3c 20 de 20 76 69  73 5f 63 6f 64 65 25 20  |..< . vis_code% |
00021e80  a4 66 69 6c 65 5f 6c 65  6e 28 22 3c 50 73 63 61  |.file_len("<Psca|
00021e90  6e 24 44 69 72 3e 2e 52  65 73 6f 75 72 63 65 73  |n$Dir>.Resources|
00021ea0  2e 50 73 63 61 6e 56 49  53 22 29 0d 11 f5 3a 20  |.PscanVIS")...: |
00021eb0  ff 28 22 4c 4f 41 44 20  3c 50 73 63 61 6e 24 44  |.("LOAD <Pscan$D|
00021ec0  69 72 3e 2e 52 65 73 6f  75 72 63 65 73 2e 50 73  |ir>.Resources.Ps|
00021ed0  63 61 6e 56 49 53 20 22  2b c3 7e 76 69 73 5f 63  |canVIS "+.~vis_c|
00021ee0  6f 64 65 25 29 0d 11 f6  27 20 76 69 73 5f 70 61  |ode%)...' vis_pa|
00021ef0  72 61 6d 25 3d 76 69 73  5f 63 6f 64 65 25 2b 28  |ram%=vis_code%+(|
00021f00  76 69 73 5f 63 6f 64 65  25 21 34 29 0d 11 f7 04  |vis_code%!4)....|
00021f10  0d 11 f8 3f 20 de 20 6f  66 66 73 65 74 5f 63 6f  |...? . offset_co|
00021f20  64 65 25 20 a4 66 69 6c  65 5f 6c 65 6e 28 22 3c  |de% .file_len("<|
00021f30  50 73 63 61 6e 24 44 69  72 3e 2e 52 65 73 6f 75  |Pscan$Dir>.Resou|
00021f40  72 63 65 73 2e 50 73 63  61 6e 4f 46 46 22 29 0d  |rces.PscanOFF").|
00021f50  11 f9 3d 20 ff 28 22 4c  4f 41 44 20 3c 50 73 63  |..= .("LOAD <Psc|
00021f60  61 6e 24 44 69 72 3e 2e  52 65 73 6f 75 72 63 65  |an$Dir>.Resource|
00021f70  73 2e 50 73 63 61 6e 4f  46 46 20 22 2b c3 7e 6f  |s.PscanOFF "+.~o|
00021f80  66 66 73 65 74 5f 63 6f  64 65 25 29 0d 11 fa 31  |ffset_code%)...1|
00021f90  20 6f 66 66 73 65 74 5f  72 65 73 75 6c 74 25 3d  | offset_result%=|
00021fa0  6f 66 66 73 65 74 5f 63  6f 64 65 25 2b 28 6f 66  |offset_code%+(of|
00021fb0  66 73 65 74 5f 63 6f 64  65 25 21 34 29 0d 11 fb  |fset_code%!4)...|
00021fc0  04 0d 11 fc 3d 20 de 20  61 75 74 6f 5f 63 6f 64  |....= . auto_cod|
00021fd0  65 25 20 a4 66 69 6c 65  5f 6c 65 6e 28 22 3c 50  |e% .file_len("<P|
00021fe0  73 63 61 6e 24 44 69 72  3e 2e 52 65 73 6f 75 72  |scan$Dir>.Resour|
00021ff0  63 65 73 2e 41 75 74 6f  4d 6f 64 65 22 29 0d 11  |ces.AutoMode")..|
00022000  fd 3b 20 ff 28 22 4c 4f  41 44 20 3c 50 73 63 61  |.; .("LOAD <Psca|
00022010  6e 24 44 69 72 3e 2e 52  65 73 6f 75 72 63 65 73  |n$Dir>.Resources|
00022020  2e 41 75 74 6f 4d 6f 64  65 20 22 2b c3 7e 61 75  |.AutoMode "+.~au|
00022030  74 6f 5f 63 6f 64 65 25  29 0d 11 fe 04 0d 11 ff  |to_code%).......|
00022040  1a 20 de 20 76 69 73 5f  74 61 62 6c 65 25 20 32  |. . vis_table% 2|
00022050  33 36 30 3a 4e 3d 30 0d  12 00 18 20 e3 20 43 3d  |360:N=0.... . C=|
00022060  33 33 39 32 20 b8 20 33  31 30 30 20 88 2d 31 0d  |3392 . 3100 .-1.|
00022070  12 01 2d 20 46 3d 28 31  2f 28 34 30 39 36 2d 43  |..- F=(1/(4096-C|
00022080  29 29 2a 31 30 30 30 30  30 30 3a 46 32 3d 46 2d  |))*1000000:F2=F-|
00022090  31 38 30 3a 46 33 3d 46  2b 31 38 30 0d 12 02 34  |180:F3=F+180...4|
000220a0  20 43 32 25 3d 34 30 39  36 2d 28 31 2f 46 32 2a  | C2%=4096-(1/F2*|
000220b0  31 30 30 30 30 30 30 29  3a 43 33 25 3d 34 30 39  |1000000):C3%=409|
000220c0  36 2d 28 31 2f 46 33 2a  31 30 30 30 30 30 30 29  |6-(1/F3*1000000)|
000220d0  0d 12 03 35 20 21 28 76  69 73 5f 74 61 62 6c 65  |...5 !(vis_table|
000220e0  25 2b 4e 29 3d 43 32 25  3a 21 28 76 69 73 5f 74  |%+N)=C2%:!(vis_t|
000220f0  61 62 6c 65 25 2b 4e 2b  34 29 3d 43 33 25 3a 4e  |able%+N+4)=C3%:N|
00022100  2b 3d 38 3a ed 0d 12 04  1d 20 76 69 73 5f 70 61  |+=8:..... vis_pa|
00022110  72 61 6d 25 21 32 34 3d  76 69 73 5f 74 61 62 6c  |ram%!24=vis_tabl|
00022120  65 25 0d 12 05 04 0d 12  06 06 20 e1 0d 12 07 04  |e%........ .....|
00022130  0d 12 08 18 20 dd 20 f2  63 72 65 61 74 65 5f 72  |.... . .create_r|
00022140  79 5f 74 61 62 6c 65 73  0d 12 09 49 20 de 20 74  |y_tables...I . t|
00022150  61 62 5f 72 79 31 25 20  31 30 32 34 2c 74 61 62  |ab_ry1% 1024,tab|
00022160  5f 62 79 31 25 20 31 30  32 34 2c 74 61 62 5f 79  |_by1% 1024,tab_y|
00022170  31 25 20 31 30 32 34 2c  74 61 62 5f 72 31 25 20  |1% 1024,tab_r1% |
00022180  31 30 32 34 2c 74 61 62  5f 62 31 25 20 31 30 32  |1024,tab_b1% 102|
00022190  34 0d 12 0a 19 20 41 25  3d 30 3a e3 20 4e 25 3d  |4.... A%=0:. N%=|
000221a0  2d 31 32 39 20 b8 20 31  32 36 0d 12 0b 34 20 74  |-129 . 126...4 t|
000221b0  61 62 5f 72 79 31 25 21  41 25 3d a8 28 4e 25 2a  |ab_ry1%!A%=.(N%*|
000221c0  31 2e 34 30 38 29 3a 74  61 62 5f 62 79 31 25 21  |1.408):tab_by1%!|
000221d0  41 25 3d a8 28 4e 25 2a  31 2e 37 38 36 29 0d 12  |A%=.(N%*1.786)..|
000221e0  0c 0c 20 41 25 2b 3d 34  3a ed 0d 12 0d 11 20 e3  |.. A%+=4:..... .|
000221f0  20 4e 25 3d 30 20 b8 20  32 35 35 0d 12 0e 36 20  | N%=0 . 255...6 |
00022200  74 61 62 5f 79 31 25 3f  4e 25 3d a8 28 28 4e 25  |tab_y1%?N%=.((N%|
00022210  2f 32 29 2a 31 2e 36 39  35 29 3a 74 61 62 5f 72  |/2)*1.695):tab_r|
00022220  31 25 3f 4e 25 3d a8 28  4e 25 2a 30 2e 35 30 38  |1%?N%=.(N%*0.508|
00022230  29 0d 12 0f 1d 20 74 61  62 5f 62 31 25 3f 4e 25  |).... tab_b1%?N%|
00022240  3d a8 28 4e 25 2a 30 2e  31 38 36 29 3a ed 0d 12  |=.(N%*0.186):...|
00022250  10 06 20 e1 0d 12 11 04  0d 12 12 19 20 dd 20 f2  |.. ......... . .|
00022260  73 65 74 5f 72 78 5f 70  61 72 61 6d 65 74 65 72  |set_rx_parameter|
00022270  73 0d 12 13 3b 20 72 78  5f 70 61 72 61 6d 25 21  |s...; rx_param%!|
00022280  34 30 3d 67 72 65 65 6e  5f 73 74 6f 72 65 25 3a  |40=green_store%:|
00022290  68 71 5f 72 78 5f 70 61  72 61 6d 25 21 34 30 3d  |hq_rx_param%!40=|
000222a0  67 72 65 65 6e 5f 73 74  6f 72 65 25 0d 12 14 3d  |green_store%...=|
000222b0  20 72 78 5f 70 61 72 61  6d 25 21 34 34 3d 67 72  | rx_param%!44=gr|
000222c0  65 65 6e 5f 73 74 6f 72  65 32 25 3a 68 71 5f 72  |een_store2%:hq_r|
000222d0  78 5f 70 61 72 61 6d 25  21 34 34 3d 67 72 65 65  |x_param%!44=gree|
000222e0  6e 5f 73 74 6f 72 65 32  25 0d 12 15 39 20 72 78  |n_store2%...9 rx|
000222f0  5f 70 61 72 61 6d 25 21  34 38 3d 62 6c 75 65 5f  |_param%!48=blue_|
00022300  73 74 6f 72 65 25 3a 68  71 5f 72 78 5f 70 61 72  |store%:hq_rx_par|
00022310  61 6d 25 21 34 38 3d 62  6c 75 65 5f 73 74 6f 72  |am%!48=blue_stor|
00022320  65 25 0d 12 16 3b 20 72  78 5f 70 61 72 61 6d 25  |e%...; rx_param%|
00022330  21 35 32 3d 62 6c 75 65  5f 73 74 6f 72 65 32 25  |!52=blue_store2%|
00022340  3a 68 71 5f 72 78 5f 70  61 72 61 6d 25 21 35 32  |:hq_rx_param%!52|
00022350  3d 62 6c 75 65 5f 73 74  6f 72 65 32 25 0d 12 17  |=blue_store2%...|
00022360  37 20 72 78 5f 70 61 72  61 6d 25 21 35 36 3d 72  |7 rx_param%!56=r|
00022370  65 64 5f 73 74 6f 72 65  25 3a 68 71 5f 72 78 5f  |ed_store%:hq_rx_|
00022380  70 61 72 61 6d 25 21 35  36 3d 72 65 64 5f 73 74  |param%!56=red_st|
00022390  6f 72 65 25 0d 12 18 1a  20 e7 20 73 63 72 65 65  |ore%.... . scree|
000223a0  6e 5f 6c 69 6e 65 73 25  3d 35 31 32 20 8c 0d 12  |n_lines%=512 ...|
000223b0  19 3f 20 72 78 5f 70 61  72 61 6d 25 21 37 36 3d  |.? rx_param%!76=|
000223c0  73 63 72 65 65 6e 25 2b  35 35 38 35 36 30 3a 68  |screen%+558560:h|
000223d0  71 5f 72 78 5f 70 61 72  61 6d 25 21 37 36 3d 73  |q_rx_param%!76=s|
000223e0  63 72 65 65 6e 25 2b 35  35 38 35 36 30 0d 12 1a  |creen%+558560...|
000223f0  06 20 cc 0d 12 1b 3f 20  72 78 5f 70 61 72 61 6d  |. ....? rx_param|
00022400  25 21 37 36 3d 73 63 72  65 65 6e 25 2b 35 31 37  |%!76=screen%+517|
00022410  36 30 30 3a 68 71 5f 72  78 5f 70 61 72 61 6d 25  |600:hq_rx_param%|
00022420  21 37 36 3d 73 63 72 65  65 6e 25 2b 35 31 37 36  |!76=screen%+5176|
00022430  30 30 0d 12 1c 06 20 cd  0d 12 1d 3f 20 72 78 5f  |00.... ....? rx_|
00022440  70 61 72 61 6d 25 21 38  30 3d 73 63 72 65 65 6e  |param%!80=screen|
00022450  25 2b 36 33 32 39 33 32  3a 68 71 5f 72 78 5f 70  |%+632932:hq_rx_p|
00022460  61 72 61 6d 25 21 38 30  3d 73 63 72 65 65 6e 25  |aram%!80=screen%|
00022470  2b 36 33 32 39 33 32 0d  12 1e 35 20 72 78 5f 70  |+632932...5 rx_p|
00022480  61 72 61 6d 25 21 33 32  3d 72 78 5f 74 61 62 6c  |aram%!32=rx_tabl|
00022490  65 25 3a 68 71 5f 72 78  5f 70 61 72 61 6d 25 21  |e%:hq_rx_param%!|
000224a0  33 32 3d 72 78 5f 74 61  62 6c 65 25 0d 12 1f 31  |32=rx_table%...1|
000224b0  20 72 78 5f 70 61 72 61  6d 25 21 33 36 3d 73 63  | rx_param%!36=sc|
000224c0  72 65 65 6e 25 3a 68 71  5f 72 78 5f 70 61 72 61  |reen%:hq_rx_para|
000224d0  6d 25 21 33 36 3d 73 63  72 65 65 6e 25 0d 12 20  |m%!36=screen%.. |
000224e0  3d 20 72 78 5f 70 61 72  61 6d 25 21 31 31 36 3d  |= rx_param%!116=|
000224f0  70 64 5f 72 78 5f 74 61  62 6c 65 25 3a 68 71 5f  |pd_rx_table%:hq_|
00022500  72 78 5f 70 61 72 61 6d  25 21 31 31 36 3d 70 64  |rx_param%!116=pd|
00022510  5f 72 78 5f 74 61 62 6c  65 25 0d 12 21 35 20 72  |_rx_table%..!5 r|
00022520  78 5f 70 61 72 61 6d 25  21 31 32 34 3d 74 61 62  |x_param%!124=tab|
00022530  5f 72 79 31 25 3a 68 71  5f 72 78 5f 70 61 72 61  |_ry1%:hq_rx_para|
00022540  6d 25 21 31 32 34 3d 74  61 62 5f 72 79 31 25 0d  |m%!124=tab_ry1%.|
00022550  12 22 35 20 72 78 5f 70  61 72 61 6d 25 21 31 32  |."5 rx_param%!12|
00022560  38 3d 74 61 62 5f 62 79  31 25 3a 68 71 5f 72 78  |8=tab_by1%:hq_rx|
00022570  5f 70 61 72 61 6d 25 21  31 32 38 3d 74 61 62 5f  |_param%!128=tab_|
00022580  62 79 31 25 0d 12 23 33  20 72 78 5f 70 61 72 61  |by1%..#3 rx_para|
00022590  6d 25 21 31 33 32 3d 74  61 62 5f 79 31 25 3a 68  |m%!132=tab_y1%:h|
000225a0  71 5f 72 78 5f 70 61 72  61 6d 25 21 31 33 32 3d  |q_rx_param%!132=|
000225b0  74 61 62 5f 79 31 25 0d  12 24 33 20 72 78 5f 70  |tab_y1%..$3 rx_p|
000225c0  61 72 61 6d 25 21 31 33  36 3d 74 61 62 5f 72 31  |aram%!136=tab_r1|
000225d0  25 3a 68 71 5f 72 78 5f  70 61 72 61 6d 25 21 31  |%:hq_rx_param%!1|
000225e0  33 36 3d 74 61 62 5f 72  31 25 0d 12 25 33 20 72  |36=tab_r1%..%3 r|
000225f0  78 5f 70 61 72 61 6d 25  21 31 34 30 3d 74 61 62  |x_param%!140=tab|
00022600  5f 62 31 25 3a 68 71 5f  72 78 5f 70 61 72 61 6d  |_b1%:hq_rx_param|
00022610  25 21 31 34 30 3d 74 61  62 5f 62 31 25 0d 12 26  |%!140=tab_b1%..&|
00022620  06 20 e1 0d 12 27 04 0d  12 28 13 20 dd 20 f2 74  |. ...'...(. . .t|
00022630  78 5f 74 61 62 6c 65 5f  36 32 0d 12 29 1d 20 47  |x_table_62..). G|
00022640  25 3d 30 3a e7 20 58 34  25 20 8c 20 4d 25 3d 34  |%=0:. X4% . M%=4|
00022650  20 8b 20 4d 25 3d 31 0d  12 2a 26 20 e3 20 46 3d  | . M%=1..*& . F=|
00022660  31 35 30 30 2a 4d 25 20  b8 20 32 33 30 31 2a 4d  |1500*M% . 2301*M|
00022670  25 20 88 20 38 30 30 2f  33 31 2a 4d 25 0d 12 2b  |% . 800/31*M%..+|
00022680  1e 20 43 3d a8 28 31 2f  46 2f 32 2a 31 30 30 30  |. C=.(1/F/2*1000|
00022690  30 30 30 2a 32 2d 31 2b  2e 35 29 0d 12 2c 1b 20  |000*2-1+.5)..,. |
000226a0  74 78 5f 74 61 62 6c 65  25 21 47 25 3d 43 3a 47  |tx_table%!G%=C:G|
000226b0  25 2b 3d 34 3a ed 0d 12  2d 06 20 e1 0d 12 2e 04  |%+=4:...-. .....|
000226c0  0d 12 2f 14 20 dd 20 f2  74 78 5f 74 61 62 6c 65  |../. . .tx_table|
000226d0  5f 32 34 38 0d 12 30 1d  20 47 25 3d 30 3a e7 20  |_248..0. G%=0:. |
000226e0  58 34 25 20 8c 20 4d 25  3d 34 20 8b 20 4d 25 3d  |X4% . M%=4 . M%=|
000226f0  31 0d 12 31 27 20 e3 20  46 3d 31 35 30 30 2a 4d  |1..1' . F=1500*M|
00022700  25 20 b8 20 32 33 30 31  2a 4d 25 20 88 20 38 30  |% . 2301*M% . 80|
00022710  30 2f 32 34 38 2a 4d 25  0d 12 32 1e 20 43 3d a8  |0/248*M%..2. C=.|
00022720  28 31 2f 46 2f 32 2a 31  30 30 30 30 30 30 2a 32  |(1/F/2*1000000*2|
00022730  2d 31 2b 2e 35 29 0d 12  33 1b 20 74 78 5f 74 61  |-1+.5)..3. tx_ta|
00022740  62 6c 65 25 21 47 25 3d  43 3a 47 25 2b 3d 34 3a  |ble%!G%=C:G%+=4:|
00022750  ed 0d 12 34 06 20 e1 0d  12 35 04 0d 12 36 18 20  |...4. ...5...6. |
00022760  dd 20 f2 73 65 74 5f 66  61 78 5f 74 78 5f 74 6f  |. .set_fax_tx_to|
00022770  6e 65 73 0d 12 37 0c 20  e7 20 58 34 25 20 8c 0d  |nes..7. . X4% ..|
00022780  12 38 26 20 74 78 5f 70  61 72 61 6d 25 21 31 30  |.8& tx_param%!10|
00022790  34 3d 31 30 38 3a 74 78  5f 70 61 72 61 6d 25 21  |4=108:tx_param%!|
000227a0  31 30 38 3d 30 0d 12 39  25 20 74 78 5f 70 61 72  |108=0..9% tx_par|
000227b0  61 6d 25 21 37 32 3d 31  30 38 20 3a 74 78 5f 70  |am%!72=108 :tx_p|
000227c0  61 72 61 6d 25 21 37 36  3d 30 0d 12 3a 06 20 cc  |aram%!76=0..:. .|
000227d0  0d 12 3b 26 20 74 78 5f  70 61 72 61 6d 25 21 31  |..;& tx_param%!1|
000227e0  30 34 3d 31 37 38 3a 74  78 5f 70 61 72 61 6d 25  |04=178:tx_param%|
000227f0  21 31 30 38 3d 31 0d 12  3c 25 20 74 78 5f 70 61  |!108=1..<% tx_pa|
00022800  72 61 6d 25 21 37 32 3d  36 34 20 20 3a 74 78 5f  |ram%!72=64  :tx_|
00022810  70 61 72 61 6d 25 21 37  36 3d 33 0d 12 3d 06 20  |param%!76=3..=. |
00022820  cd 0d 12 3e 06 20 e1 0d  12 3f 04 0d 12 40 19 20  |...>. ...?...@. |
00022830  dd 20 f2 73 65 74 5f 73  73 74 76 5f 74 78 5f 74  |. .set_sstv_tx_t|
00022840  6f 6e 65 73 0d 12 41 0c  20 e7 20 58 34 25 20 8c  |ones..A. . X4% .|
00022850  0d 12 42 26 20 74 78 5f  70 61 72 61 6d 25 21 31  |..B& tx_param%!1|
00022860  30 34 3d 31 36 36 3a 74  78 5f 70 61 72 61 6d 25  |04=166:tx_param%|
00022870  21 31 30 38 3d 30 0d 12  43 24 20 74 78 5f 70 61  |!108=0..C$ tx_pa|
00022880  72 61 6d 25 21 37 32 3d  32 30 37 3a 74 78 5f 70  |ram%!72=207:tx_p|
00022890  61 72 61 6d 25 21 37 36  3d 30 0d 12 44 06 20 cc  |aram%!76=0..D. .|
000228a0  0d 12 45 26 20 74 78 5f  70 61 72 61 6d 25 21 31  |..E& tx_param%!1|
000228b0  30 34 3d 31 35 34 3a 74  78 5f 70 61 72 61 6d 25  |04=154:tx_param%|
000228c0  21 31 30 38 3d 32 0d 12  46 25 20 74 78 5f 70 61  |!108=2..F% tx_pa|
000228d0  72 61 6d 25 21 37 32 3d  36 34 20 20 3a 74 78 5f  |ram%!72=64  :tx_|
000228e0  70 61 72 61 6d 25 21 37  36 3d 33 0d 12 47 06 20  |param%!76=3..G. |
000228f0  cd 0d 12 48 06 20 e1 0d  12 49 04 0d 12 4a 17 20  |...H. ...I...J. |
00022900  dd 20 f2 74 78 5f 70 61  72 61 6d 73 5f 73 65 74  |. .tx_params_set|
00022910  75 70 0d 12 4b 15 20 de  20 74 78 5f 74 61 62 6c  |up..K. . tx_tabl|
00022920  65 25 20 31 30 32 34 0d  12 4c 0c 20 e7 20 58 34  |e% 1024..L. . X4|
00022930  25 20 8c 0d 12 4d 25 20  74 78 5f 70 61 72 61 6d  |% ...M% tx_param|
00022940  25 21 36 34 3d 32 32 36  20 3a 74 78 5f 70 61 72  |%!64=226 :tx_par|
00022950  61 6d 25 21 36 38 3d 30  0d 12 4e 25 20 74 78 5f  |am%!68=0..N% tx_|
00022960  70 61 72 61 6d 25 21 37  32 3d 32 30 37 20 3a 74  |param%!72=207 :t|
00022970  78 5f 70 61 72 61 6d 25  21 37 36 3d 30 0d 12 4f  |x_param%!76=0..O|
00022980  25 20 74 78 5f 70 61 72  61 6d 25 21 38 30 3d 31  |% tx_param%!80=1|
00022990  39 31 20 3a 74 78 5f 70  61 72 61 6d 25 21 38 34  |91 :tx_param%!84|
000229a0  3d 30 0d 12 50 25 20 74  78 5f 70 61 72 61 6d 25  |=0..P% tx_param%|
000229b0  21 38 38 3d 31 36 36 20  3a 74 78 5f 70 61 72 61  |!88=166 :tx_para|
000229c0  6d 25 21 39 32 3d 30 0d  12 51 26 20 74 78 5f 70  |m%!92=0..Q& tx_p|
000229d0  61 72 61 6d 25 21 39 36  3d 31 33 31 20 3a 74 78  |aram%!96=131 :tx|
000229e0  5f 70 61 72 61 6d 25 21  31 30 30 3d 30 0d 12 52  |_param%!100=0..R|
000229f0  26 20 74 78 5f 70 61 72  61 6d 25 21 31 30 34 3d  |& tx_param%!104=|
00022a00  31 30 38 3a 74 78 5f 70  61 72 61 6d 25 21 31 30  |108:tx_param%!10|
00022a10  38 3d 30 0d 12 53 06 20  cc 0d 12 54 25 20 74 78  |8=0..S. ...T% tx|
00022a20  5f 70 61 72 61 6d 25 21  36 34 3d 31 34 30 20 3a  |_param%!64=140 :|
00022a30  74 78 5f 70 61 72 61 6d  25 21 36 38 3d 33 0d 12  |tx_param%!68=3..|
00022a40  55 25 20 74 78 5f 70 61  72 61 6d 25 21 37 32 3d  |U% tx_param%!72=|
00022a50  36 34 20 20 3a 74 78 5f  70 61 72 61 6d 25 21 37  |64  :tx_param%!7|
00022a60  36 3d 33 0d 12 56 25 20  74 78 5f 70 61 72 61 6d  |6=3..V% tx_param|
00022a70  25 21 38 30 3d 30 20 20  20 3a 74 78 5f 70 61 72  |%!80=0   :tx_par|
00022a80  61 6d 25 21 38 34 3d 33  0d 12 57 25 20 74 78 5f  |am%!84=3..W% tx_|
00022a90  70 61 72 61 6d 25 21 38  38 3d 31 35 34 20 3a 74  |param%!88=154 :t|
00022aa0  78 5f 70 61 72 61 6d 25  21 39 32 3d 32 0d 12 58  |x_param%!92=2..X|
00022ab0  26 20 74 78 5f 70 61 72  61 6d 25 21 39 36 3d 31  |& tx_param%!96=1|
00022ac0  33 20 20 3a 74 78 5f 70  61 72 61 6d 25 21 31 30  |3  :tx_param%!10|
00022ad0  30 3d 32 0d 12 59 26 20  74 78 5f 70 61 72 61 6d  |0=2..Y& tx_param|
00022ae0  25 21 31 30 34 3d 31 37  38 3a 74 78 5f 70 61 72  |%!104=178:tx_par|
00022af0  61 6d 25 21 31 30 38 3d  31 0d 12 5a 06 20 cd 0d  |am%!108=1..Z. ..|
00022b00  12 5b 19 20 de 20 70 64  5f 74 78 5f 62 75 66 66  |.[. . pd_tx_buff|
00022b10  65 72 25 20 32 35 39 32  0d 12 5c 20 20 74 78 5f  |er% 2592..\  tx_|
00022b20  70 61 72 61 6d 25 21 31  31 32 3d 70 64 5f 74 78  |param%!112=pd_tx|
00022b30  5f 62 75 66 66 65 72 25  0d 12 5d 3b 20 de 20 72  |_buffer%..]; . r|
00022b40  65 64 33 30 25 20 32 35  30 2c 67 72 6e 35 39 25  |ed30% 250,grn59%|
00022b50  20 32 35 30 2c 62 6c 75  31 31 25 20 32 35 30 2c  | 250,blu11% 250,|
00022b60  72 79 37 31 25 20 32 35  30 2c 62 79 35 36 25 20  |ry71% 250,by56% |
00022b70  32 35 36 0d 12 5e 11 20  e3 20 4e 25 3d 30 20 b8  |256..^. . N%=0 .|
00022b80  20 32 35 30 0d 12 5f 1b  20 72 65 64 33 30 25 3f  | 250.._. red30%?|
00022b90  4e 25 3d a8 28 4e 25 2a  30 2e 33 2b 2e 35 29 0d  |N%=.(N%*0.3+.5).|
00022ba0  12 60 1c 20 67 72 6e 35  39 25 3f 4e 25 3d a8 28  |.`. grn59%?N%=.(|
00022bb0  4e 25 2a 30 2e 35 39 2b  2e 34 29 0d 12 61 1b 20  |N%*0.59+.4)..a. |
00022bc0  62 6c 75 31 31 25 3f 4e  25 3d a8 28 4e 25 2a 2e  |blu11%?N%=.(N%*.|
00022bd0  31 31 2b 2e 35 29 0d 12  62 1a 20 72 79 37 31 25  |11+.5)..b. ry71%|
00022be0  3f 4e 25 3d a8 28 4e 25  2a 2e 37 31 2b 2e 35 29  |?N%=.(N%*.71+.5)|
00022bf0  0d 12 63 1a 20 62 79 35  36 25 3f 4e 25 3d a8 28  |..c. by56%?N%=.(|
00022c00  4e 25 2a 2e 35 36 2b 2e  35 29 0d 12 64 06 20 ed  |N%*.56+.5)..d. .|
00022c10  0d 12 65 2e 20 74 78 5f  70 61 72 61 6d 25 21 31  |..e. tx_param%!1|
00022c20  32 30 3d 72 65 64 33 30  25 3a 74 78 5f 70 61 72  |20=red30%:tx_par|
00022c30  61 6d 25 21 31 32 34 3d  67 72 6e 35 39 25 0d 12  |am%!124=grn59%..|
00022c40  66 41 20 74 78 5f 70 61  72 61 6d 25 21 31 32 38  |fA tx_param%!128|
00022c50  3d 62 6c 75 31 31 25 3a  74 78 5f 70 61 72 61 6d  |=blu11%:tx_param|
00022c60  25 21 31 33 32 3d 72 79  37 31 25 3a 74 78 5f 70  |%!132=ry71%:tx_p|
00022c70  61 72 61 6d 25 21 31 33  36 3d 62 79 35 36 25 0d  |aram%!136=by56%.|
00022c80  12 67 06 20 e1 0d 12 68  04 0d 12 69 18 20 dd 20  |.g. ...h...i. . |
00022c90  f2 74 78 5f 66 72 61 6d  65 28 72 66 6c 61 67 25  |.tx_frame(rflag%|
00022ca0  29 0d 12 6a 14 20 f2 64  69 73 70 6c 61 79 5f 6d  |)..j. .display_m|
00022cb0  65 6d 6f 72 79 0d 12 6b  10 20 e6 20 36 33 20 c8  |emory..k. . 63 .|
00022cc0  9c 20 31 39 32 0d 12 6c  1c 20 4e 25 3d 74 78 5f  |. 192..l. N%=tx_|
00022cd0  63 6f 64 65 25 2b 28 21  74 78 5f 63 6f 64 65 25  |code%+(!tx_code%|
00022ce0  29 0d 12 6d 42 20 e7 20  6d 6f 64 65 25 3e 36 39  |)..mB . mode%>69|
00022cf0  20 80 20 6d 6f 64 65 25  3c 38 30 20 8c 20 85 20  | . mode%<80 . . |
00022d00  31 39 39 37 2c 22 54 58  20 6e 6f 74 20 61 76 61  |1997,"TX not ava|
00022d10  69 6c 61 62 6c 65 20 69  6e 20 48 51 20 6d 6f 64  |ilable in HQ mod|
00022d20  65 73 22 0d 12 6e 27 20  e7 20 6d 6f 64 65 25 3e  |es"..n' . mode%>|
00022d30  35 39 20 80 20 6d 6f 64  65 25 3c 36 38 20 8c 20  |59 . mode%<68 . |
00022d40  f2 63 61 6c 5f 70 64 5f  39 37 0d 12 6f 1f 20 e7  |.cal_pd_97..o. .|
00022d50  20 6d 6f 64 65 25 3c 32  30 20 8c 20 f2 63 61 6c  | mode%<20 . .cal|
00022d60  5f 73 73 74 76 5f 6e 65  77 0d 12 70 2d 20 e7 20  |_sstv_new..p- . |
00022d70  6d 6f 64 65 25 3e 31 39  20 80 20 6d 6f 64 65 25  |mode%>19 . mode%|
00022d80  3c 32 33 20 8c 20 f2 63  61 6c 5f 70 61 73 6f 6b  |<23 . .cal_pasok|
00022d90  6f 6e 5f 6e 65 77 0d 12  71 1e 20 e7 20 6d 6f 64  |on_new..q. . mod|
00022da0  65 25 3e 39 39 20 8c 20  f2 63 61 6c 5f 66 61 78  |e%>99 . .cal_fax|
00022db0  5f 6e 65 77 0d 12 72 28  20 4e 25 21 31 32 3d 6c  |_new..r( N%!12=l|
00022dc0  6f 6e 67 25 20 83 20 32  35 36 3a 4e 25 21 31 36  |ong% . 256:N%!16|
00022dd0  3d 6c 6f 6e 67 25 20 81  20 32 35 36 0d 12 73 2a  |=long% . 256..s*|
00022de0  20 4e 25 21 32 30 3d 73  68 6f 72 74 25 20 83 20  | N%!20=short% . |
00022df0  32 35 36 3a 4e 25 21 32  34 3d 73 68 6f 72 74 25  |256:N%!24=short%|
00022e00  20 81 20 32 35 36 0d 12  74 28 20 4e 25 21 34 3d  | . 256..t( N%!4=|
00022e10  70 69 78 65 6c 25 20 83  20 32 35 36 3a 4e 25 21  |pixel% . 256:N%!|
00022e20  38 3d 70 69 78 65 6c 25  20 81 20 32 35 36 0d 12  |8=pixel% . 256..|
00022e30  75 27 20 e7 20 6d 6f 64  65 25 3e 39 39 20 8c 20  |u' . mode%>99 . |
00022e40  4e 25 21 34 30 3d 35 31  32 20 8b 20 4e 25 21 34  |N%!40=512 . N%!4|
00022e50  30 3d 32 35 36 0d 12 76  38 20 e7 20 6d 6f 64 65  |0=256..v8 . mode|
00022e60  25 3e 31 39 20 80 20 6d  6f 64 65 25 3c 32 33 20  |%>19 . mode%<23 |
00022e70  8c 20 4e 25 21 34 30 3d  34 39 36 20 3a 20 f4 20  |. N%!40=496 : . |
00022e80  50 61 73 6f 6b 6f 6e 20  6d 6f 64 65 73 0d 12 77  |Pasokon modes..w|
00022e90  39 20 e7 20 6d 6f 64 65  25 3e 35 39 20 80 20 6d  |9 . mode%>59 . m|
00022ea0  6f 64 65 25 3c 36 38 20  8c 20 f2 74 78 5f 74 61  |ode%<68 . .tx_ta|
00022eb0  62 6c 65 5f 32 34 38 20  8b 20 f2 74 78 5f 74 61  |ble_248 . .tx_ta|
00022ec0  62 6c 65 5f 36 32 0d 12  78 2e 20 4e 25 21 33 36  |ble_62..x. N%!36|
00022ed0  3d 74 78 5f 74 61 62 6c  65 25 20 3a 20 f4 20 70  |=tx_table% : . p|
00022ee0  61 73 73 20 74 78 20 74  61 62 6c 65 20 61 64 64  |ass tx table add|
00022ef0  72 65 73 73 0d 12 79 39  20 e7 20 6d 6f 64 65 25  |ress..y9 . mode%|
00022f00  3d 36 32 20 8c 20 70 64  5f 6f 66 66 73 65 74 25  |=62 . pd_offset%|
00022f10  3d a4 70 64 31 36 30 5f  63 75 72 73 6f 72 20 8b  |=.pd160_cursor .|
00022f20  20 70 64 5f 6f 66 66 73  65 74 25 3d 30 0d 12 7a  | pd_offset%=0..z|
00022f30  42 20 e7 20 28 6d 6f 64  65 25 3e 31 39 20 80 20  |B . (mode%>19 . |
00022f40  6d 6f 64 65 25 3c 32 33  29 20 84 20 28 6d 6f 64  |mode%<23) . (mod|
00022f50  65 25 3e 35 39 20 80 20  6d 6f 64 65 25 3c 36 36  |e%>59 . mode%<66|
00022f60  20 80 20 6d 6f 64 65 25  3c 3e 36 32 29 20 8c 0d  | . mode%<>62) ..|
00022f70  12 7b 35 20 20 70 64 5f  6f 66 66 73 65 74 25 3d  |.{5  pd_offset%=|
00022f80  32 30 34 38 30 3a e6 20  33 32 2c 33 32 2c 33 32  |20480:. 32,32,32|
00022f90  3a c8 93 20 c8 90 20 30  2c 39 39 32 2c 31 32 38  |:.. .. 0,992,128|
00022fa0  30 2c 34 30 0d 12 7c 2b  20 20 f2 70 64 5f 6d 6f  |0,40..|+  .pd_mo|
00022fb0  64 65 5f 68 65 61 64 65  72 28 30 2c 39 36 30 29  |de_header(0,960)|
00022fc0  3a f2 75 70 6c 6f 61 64  5f 6d 65 6d 6f 72 79 0d  |:.upload_memory.|
00022fd0  12 7d 07 20 20 cd 0d 12  7e 2c 20 e7 20 6d 6f 64  |.}.  ...~, . mod|
00022fe0  65 25 3d 36 33 20 84 20  6d 6f 64 65 25 3d 36 35  |e%=63 . mode%=65|
00022ff0  20 8c 20 70 64 5f 6f 66  66 73 65 74 25 3d 31 32  | . pd_offset%=12|
00023000  38 30 0d 12 7f 43 20 4e  25 21 30 3d 73 63 72 65  |80...C N%!0=scre|
00023010  65 6e 25 2b 70 64 5f 6f  66 66 73 65 74 25 20 20  |en%+pd_offset%  |
00023020  20 3a 20 f4 20 70 61 73  73 20 73 63 72 65 65 6e  | : . pass screen|
00023030  20 6d 65 6d 6f 72 79 20  73 74 61 72 74 20 61 64  | memory start ad|
00023040  64 72 65 73 73 0d 12 80  22 20 4e 25 21 32 38 3d  |dress..." N%!28=|
00023050  6d 65 6d 62 6c 6f 63 6b  25 2b 32 30 2b 70 64 5f  |memblock%+20+pd_|
00023060  6f 66 66 73 65 74 25 0d  12 81 3b 20 e7 20 6d 6f  |offset%...; . mo|
00023070  64 65 25 3e 39 39 20 8c  20 4e 25 21 35 32 3d 54  |de%>99 . N%!52=T|
00023080  58 70 68 61 73 65 25 20  83 20 32 35 36 3a 4e 25  |Xphase% . 256:N%|
00023090  21 35 36 3d 54 58 70 68  61 73 65 25 20 81 20 32  |!56=TXphase% . 2|
000230a0  35 36 0d 12 82 42 20 e3  20 4e 25 3d 30 20 b8 20  |56...B . N%=0 . |
000230b0  32 35 39 32 20 88 34 3a  70 64 5f 74 78 5f 62 75  |2592 .4:pd_tx_bu|
000230c0  66 66 65 72 25 21 4e 25  3d 26 37 46 37 46 37 46  |ffer%!N%=&7F7F7F|
000230d0  37 46 3a ed 3a f2 77 61  69 74 5f 6e 6f 5f 62 75  |7F:.:.wait_no_bu|
000230e0  74 74 6f 6e 0d 12 83 04  0d 12 84 3b 20 e7 20 72  |tton.......; . r|
000230f0  66 6c 61 67 25 20 f2 64  69 73 70 6c 61 79 5f 68  |flag% .display_h|
00023100  65 61 64 65 72 5f 74 65  78 74 28 63 61 6c 6c 24  |eader_text(call$|
00023110  2b 22 20 50 73 63 61 6e  20 72 65 70 65 61 74 65  |+" Pscan repeate|
00023120  72 22 29 0d 12 85 04 0d  12 86 2c 20 e7 20 68 65  |r")......., . he|
00023130  61 64 65 72 5f 74 65 78  74 25 20 80 20 6d 6f 64  |ader_text% . mod|
00023140  65 25 3c 31 30 30 20 80  20 ac 20 72 66 6c 61 67  |e%<100 . . rflag|
00023150  25 20 8c 0d 12 87 28 20  20 f2 64 69 73 70 6c 61  |% ....(  .displa|
00023160  79 5f 68 65 61 64 65 72  5f 74 65 78 74 28 68 65  |y_header_text(he|
00023170  61 64 65 72 5f 74 65 78  74 24 29 0d 12 88 06 20  |ader_text$).... |
00023180  cd 0d 12 89 04 0d 12 8a  1f 20 74 78 5f 70 61 72  |......... tx_par|
00023190  61 6d 25 21 31 34 38 3d  73 65 72 69 61 6c 5f 62  |am%!148=serial_b|
000231a0  61 73 65 25 0d 12 8b 04  0d 12 8c 46 20 e7 20 70  |ase%.......F . p|
000231b0  64 5f 6f 66 66 73 65 74  25 3c 3e 31 20 8c 20 45  |d_offset%<>1 . E|
000231c0  25 3d 6d 6f 64 65 25 3a  d6 28 74 78 5f 63 6f 64  |%=mode%:.(tx_cod|
000231d0  65 25 2b 38 29 3a f4 20  31 20 3d 20 50 44 31 36  |e%+8):. 1 = PD16|
000231e0  30 20 63 75 72 73 6f 72  20 61 62 6f 72 74 0d 12  |0 cursor abort..|
000231f0  8d 1e 20 f2 64 69 73 70  6c 61 79 5f 6d 65 6d 6f  |.. .display_memo|
00023200  72 79 3a f2 6d 69 6e 69  5f 70 61 64 0d 12 8e 06  |ry:.mini_pad....|
00023210  20 e1 0d 12 8f 04 0d 12  90 0e 20 dd 20 f2 63 61  | ......... . .ca|
00023220  6c 5f 68 71 0d 12 91 0f  20 c8 8e 20 6d 6f 64 65  |l_hq.... .. mode|
00023230  25 20 ca 0d 12 92 46 20  c9 20 37 30 3a 4c 3d 37  |% ....F . 70:L=7|
00023240  30 35 34 31 30 3a 50 3d  35 33 34 3a 70 69 78 65  |05410:P=534:pixe|
00023250  6c 25 3d 32 36 36 3a 72  78 5f 70 61 72 61 6d 25  |l%=266:rx_param%|
00023260  21 36 30 3d 32 35 34 3a  72 78 5f 70 61 72 61 6d  |!60=254:rx_param|
00023270  25 21 31 32 30 3d 33 32  30 0d 12 93 48 20 20 20  |%!120=320...H   |
00023280  20 20 20 20 20 20 72 78  5f 70 61 72 61 6d 25 21  |      rx_param%!|
00023290  33 36 3d 73 63 72 65 65  6e 25 2b 35 31 32 30 3a  |36=screen%+5120:|
000232a0  72 78 5f 70 61 72 61 6d  25 21 31 34 34 3d 31 33  |rx_param%!144=13|
000232b0  32 3a 72 78 5f 70 61 72  61 6d 25 21 31 34 38 3d  |2:rx_param%!148=|
000232c0  30 0d 12 94 2d 20 20 20  20 20 20 20 20 20 72 78  |0...-         rx|
000232d0  5f 70 61 72 61 6d 25 21  31 36 38 3d 33 30 3a 72  |_param%!168=30:r|
000232e0  78 5f 70 61 72 61 6d 25  21 31 37 32 3d 32 0d 12  |x_param%!172=2..|
000232f0  95 3e 20 20 20 20 20 20  20 20 20 72 78 5f 70 61  |.>         rx_pa|
00023300  72 61 6d 25 21 31 37 36  3d 36 38 3a 72 78 5f 70  |ram%!176=68:rx_p|
00023310  61 72 61 6d 25 21 31 38  30 3d 31 3a 72 78 5f 70  |aram%!180=1:rx_p|
00023320  61 72 61 6d 25 21 31 38  34 3d 39 36 0d 12 96 35  |aram%!184=96...5|
00023330  20 20 20 20 20 20 20 20  20 63 6f 72 72 3d 28 4c  |         corr=(L|
00023340  2f 31 30 30 30 30 30 30  2f 32 29 2a 28 63 6c 6f  |/1000000/2)*(clo|
00023350  63 6b 5f 66 72 65 71 25  2d 32 30 30 30 30 30 30  |ck_freq%-2000000|
00023360  29 0d 12 97 25 20 20 20  20 20 20 20 20 20 6c 6f  |)...%         lo|
00023370  6e 67 25 3d 28 32 31 36  38 30 2b 63 6f 72 72 29  |ng%=(21680+corr)|
00023380  2a 32 2d 30 2e 35 0d 12  98 46 20 c9 20 37 31 3a  |*2-0.5...F . 71:|
00023390  4c 3d 38 37 33 36 31 30  3a 50 3d 36 36 34 3a 70  |L=873610:P=664:p|
000233a0  69 78 65 6c 25 3d 33 33  31 3a 72 78 5f 70 61 72  |ixel%=331:rx_par|
000233b0  61 6d 25 21 36 30 3d 32  35 34 3a 72 78 5f 70 61  |am%!60=254:rx_pa|
000233c0  72 61 6d 25 21 31 32 30  3d 33 32 30 0d 12 99 48  |ram%!120=320...H|
000233d0  20 20 20 20 20 20 20 20  20 72 78 5f 70 61 72 61  |         rx_para|
000233e0  6d 25 21 33 36 3d 73 63  72 65 65 6e 25 2b 35 31  |m%!36=screen%+51|
000233f0  32 30 3a 72 78 5f 70 61  72 61 6d 25 21 31 34 34  |20:rx_param%!144|
00023400  3d 31 36 35 3a 72 78 5f  70 61 72 61 6d 25 21 31  |=165:rx_param%!1|
00023410  34 38 3d 30 0d 12 9a 2d  20 20 20 20 20 20 20 20  |48=0...-        |
00023420  20 72 78 5f 70 61 72 61  6d 25 21 31 36 38 3d 36  | rx_param%!168=6|
00023430  30 3a 72 78 5f 70 61 72  61 6d 25 21 31 37 32 3d  |0:rx_param%!172=|
00023440  33 0d 12 9b 3f 20 20 20  20 20 20 20 20 20 72 78  |3...?         rx|
00023450  5f 70 61 72 61 6d 25 21  31 37 36 3d 31 36 35 3a  |_param%!176=165:|
00023460  72 78 5f 70 61 72 61 6d  25 21 31 38 30 3d 30 3a  |rx_param%!180=0:|
00023470  72 78 5f 70 61 72 61 6d  25 21 31 38 34 3d 38 30  |rx_param%!184=80|
00023480  0d 12 9c 35 20 20 20 20  20 20 20 20 20 63 6f 72  |...5         cor|
00023490  72 3d 28 4c 2f 31 30 30  30 30 30 30 2f 32 29 2a  |r=(L/1000000/2)*|
000234a0  28 63 6c 6f 63 6b 5f 66  72 65 71 25 2d 32 30 30  |(clock_freq%-200|
000234b0  30 30 30 30 29 0d 12 9d  2d 20 20 20 20 20 20 20  |0000)...-       |
000234c0  20 20 6c 6f 6e 67 25 3d  28 32 31 36 39 30 2b 63  |  long%=(21690+c|
000234d0  6f 72 72 29 2a 32 2d 30  2e 35 20 20 20 20 20 20  |orr)*2-0.5      |
000234e0  20 20 0d 12 9e 06 20 cb  0d 12 9f 23 20 73 68 6f  |  .... ....# sho|
000234f0  72 74 25 3d 70 69 78 65  6c 25 3a 72 78 5f 70 61  |rt%=pixel%:rx_pa|
00023500  72 61 6d 25 21 31 30 30  3d 31 30 0d 12 a0 06 20  |ram%!100=10.... |
00023510  e1 0d 12 a1 04 0d 12 a2  11 20 dd 20 f2 63 61 6c  |......... . .cal|
00023520  5f 70 64 5f 39 37 0d 12  a3 0f 20 c8 8e 20 6d 6f  |_pd_97.... .. mo|
00023530  64 65 25 20 ca 0d 12 a4  48 20 c9 20 36 30 3a 4c  |de% ....H . 60:L|
00023540  3d 37 35 34 32 34 30 20  3a 50 3d 32 38 36 3a 70  |=754240 :P=286:p|
00023550  69 78 65 6c 25 3d 31 34  32 3a 72 78 5f 70 61 72  |ixel%=142:rx_par|
00023560  61 6d 25 21 36 30 3d 34  39 34 3a 72 78 5f 70 61  |am%!60=494:rx_pa|
00023570  72 61 6d 25 21 31 32 30  3d 36 34 30 3a 0d 12 a5  |ram%!120=640:...|
00023580  4c 20 e7 20 73 63 72 65  65 6e 5f 6c 69 6e 65 73  |L . screen_lines|
00023590  25 3d 35 31 32 20 8c 20  72 78 5f 70 61 72 61 6d  |%=512 . rx_param|
000235a0  25 21 33 36 3d 73 63 72  65 65 6e 25 2b 32 33 30  |%!36=screen%+230|
000235b0  34 30 20 8b 20 72 78 5f  70 61 72 61 6d 25 21 33  |40 . rx_param%!3|
000235c0  36 3d 73 63 72 65 65 6e  25 0d 12 a6 48 20 c9 20  |6=screen%...H . |
000235d0  36 31 3a 4c 3d 31 30 30  30 30 30 30 3a 50 3d 33  |61:L=1000000:P=3|
000235e0  38 32 3a 70 69 78 65 6c  25 3d 31 39 30 3a 72 78  |82:pixel%=190:rx|
000235f0  5f 70 61 72 61 6d 25 21  36 30 3d 34 39 34 3a 72  |_param%!60=494:r|
00023600  78 5f 70 61 72 61 6d 25  21 31 32 30 3d 36 34 30  |x_param%!120=640|
00023610  3a 0d 12 a7 4c 20 e7 20  73 63 72 65 65 6e 5f 6c  |:...L . screen_l|
00023620  69 6e 65 73 25 3d 35 31  32 20 8c 20 72 78 5f 70  |ines%=512 . rx_p|
00023630  61 72 61 6d 25 21 33 36  3d 73 63 72 65 65 6e 25  |aram%!36=screen%|
00023640  2b 32 33 30 34 30 20 8b  20 72 78 5f 70 61 72 61  |+23040 . rx_para|
00023650  6d 25 21 33 36 3d 73 63  72 65 65 6e 25 0d 12 a8  |m%!36=screen%...|
00023660  47 20 c9 20 36 32 3a 4c  3d 38 30 34 34 31 36 20  |G . 62:L=804416 |
00023670  3a 50 3d 33 38 32 3a 70  69 78 65 6c 25 3d 31 39  |:P=382:pixel%=19|
00023680  30 3a 72 78 5f 70 61 72  61 6d 25 21 36 30 3d 33  |0:rx_param%!60=3|
00023690  39 38 3a 72 78 5f 70 61  72 61 6d 25 21 31 32 30  |98:rx_param%!120|
000236a0  3d 35 31 32 0d 12 a9 2d  20 20 20 20 20 20 20 20  |=512...-        |
000236b0  3a 72 78 5f 70 61 72 61  6d 25 21 33 36 3d 73 63  |:rx_param%!36=sc|
000236c0  72 65 65 6e 25 2b 35 36  2a 31 32 38 30 2b 31 32  |reen%+56*1280+12|
000236d0  38 0d 12 aa 47 20 c9 20  36 33 3a 4c 3d 37 30 33  |8...G . 63:L=703|
000236e0  30 34 30 20 3a 50 3d 35  33 32 3a 70 69 78 65 6c  |040 :P=532:pixel|
000236f0  25 3d 32 36 35 3a 72 78  5f 70 61 72 61 6d 25 21  |%=265:rx_param%!|
00023700  36 30 3d 32 35 34 3a 72  78 5f 70 61 72 61 6d 25  |60=254:rx_param%|
00023710  21 31 32 30 3d 33 32 30  0d 12 ab 4b 20 e7 20 73  |!120=320...K . s|
00023720  63 72 65 65 6e 5f 6c 69  6e 65 73 25 3d 35 31 32  |creen_lines%=512|
00023730  20 8c 20 72 78 5f 70 61  72 61 6d 25 21 33 36 3d  | . rx_param%!36=|
00023740  73 63 72 65 65 6e 25 2b  33 38 34 30 20 8b 20 72  |screen%+3840 . r|
00023750  78 5f 70 61 72 61 6d 25  21 33 36 3d 73 63 72 65  |x_param%!36=scre|
00023760  65 6e 25 0d 12 ac 47 20  c9 20 36 34 3a 4c 3d 35  |en%...G . 64:L=5|
00023770  30 38 34 38 30 20 3a 50  3d 31 39 30 3a 70 69 78  |08480 :P=190:pix|
00023780  65 6c 25 3d 39 34 3a 72  78 5f 70 61 72 61 6d 25  |el%=94:rx_param%|
00023790  21 36 30 3d 34 39 34 3a  72 78 5f 70 61 72 61 6d  |!60=494:rx_param|
000237a0  25 21 31 32 30 3d 36 34  30 3a 0d 12 ad 4c 20 e7  |%!120=640:...L .|
000237b0  20 73 63 72 65 65 6e 5f  6c 69 6e 65 73 25 3d 35  | screen_lines%=5|
000237c0  31 32 20 8c 20 72 78 5f  70 61 72 61 6d 25 21 33  |12 . rx_param%!3|
000237d0  36 3d 73 63 72 65 65 6e  25 2b 32 33 30 34 30 20  |6=screen%+23040 |
000237e0  8b 20 72 78 5f 70 61 72  61 6d 25 21 33 36 3d 73  |. rx_param%!36=s|
000237f0  63 72 65 65 6e 25 0d 12  ae 47 20 c9 20 36 35 3a  |creen%...G . 65:|
00023800  4c 3d 33 38 38 31 36 30  20 3a 50 3d 32 38 36 3a  |L=388160 :P=286:|
00023810  70 69 78 65 6c 25 3d 31  34 32 3a 72 78 5f 70 61  |pixel%=142:rx_pa|
00023820  72 61 6d 25 21 36 30 3d  32 35 34 3a 72 78 5f 70  |ram%!60=254:rx_p|
00023830  61 72 61 6d 25 21 31 32  30 3d 33 32 30 0d 12 af  |aram%!120=320...|
00023840  4b 20 e7 20 73 63 72 65  65 6e 5f 6c 69 6e 65 73  |K . screen_lines|
00023850  25 3d 35 31 32 20 8c 20  72 78 5f 70 61 72 61 6d  |%=512 . rx_param|
00023860  25 21 33 36 3d 73 63 72  65 65 6e 25 2b 33 38 34  |%!36=screen%+384|
00023870  30 20 8b 20 72 78 5f 70  61 72 61 6d 25 21 33 36  |0 . rx_param%!36|
00023880  3d 73 63 72 65 65 6e 25  0d 12 b0 06 20 cb 0d 12  |=screen%.... ...|
00023890  b1 0f 20 c8 8e 20 6d 6f  64 65 25 20 ca 0d 12 b2  |.. .. mode% ....|
000238a0  18 20 c9 20 36 30 2c 36  31 2c 36 34 3a 74 70 25  |. . 60,61,64:tp%|
000238b0  3d 32 35 36 30 0d 12 b3  18 20 c9 20 36 32 20 20  |=2560.... . 62  |
000238c0  20 20 20 20 3a 74 70 25  3d 32 30 34 38 0d 12 b4  |    :tp%=2048...|
000238d0  18 20 c9 20 36 33 2c 36  35 20 20 20 3a 74 70 25  |. . 63,65   :tp%|
000238e0  3d 31 32 38 30 0d 12 b5  06 20 cb 0d 12 b6 25 20  |=1280.... ....% |
000238f0  54 53 3d 4c 2d 28 74 70  25 2a 50 2a 32 30 30 30  |TS=L-(tp%*P*2000|
00023900  30 30 30 2f 63 6c 6f 63  6b 5f 66 72 65 71 25 29  |000/clock_freq%)|
00023910  0d 12 b7 1e 20 54 31 3d  54 53 2a 63 6c 6f 63 6b  |.... T1=TS*clock|
00023920  5f 66 72 65 71 25 2f 32  30 30 30 30 30 30 0d 12  |_freq%/2000000..|
00023930  b8 23 20 6c 6f 6e 67 25  3d a8 28 54 31 2a 32 2d  |.# long%=.(T1*2-|
00023940  2e 35 29 3a 73 68 6f 72  74 25 3d 70 69 78 65 6c  |.5):short%=pixel|
00023950  25 0d 12 b9 32 20 72 78  5f 70 61 72 61 6d 25 21  |%...2 rx_param%!|
00023960  31 30 30 3d 31 36 3a 72  78 5f 70 61 72 61 6d 25  |100=16:rx_param%|
00023970  21 31 34 34 3d 70 64 5f  61 75 74 6f 5f 74 61 62  |!144=pd_auto_tab|
00023980  6c 65 25 0d 12 ba 21 20  72 78 5f 70 61 72 61 6d  |le%...! rx_param|
00023990  25 21 31 39 32 3d 70 64  5f 61 75 74 6f 5f 6c 69  |%!192=pd_auto_li|
000239a0  6e 65 73 25 0d 12 bb 17  20 f2 73 65 74 5f 73 73  |nes%.... .set_ss|
000239b0  74 76 5f 74 78 5f 74 6f  6e 65 73 0d 12 bc 06 20  |tv_tx_tones.... |
000239c0  e1 0d 12 bd 04 0d 12 be  17 20 dd 20 f2 63 61 6c  |......... . .cal|
000239d0  5f 70 61 73 6f 6b 6f 6e  5f 6e 65 77 0d 12 bf 0f  |_pasokon_new....|
000239e0  20 c8 8e 20 6d 6f 64 65  25 20 ca 0d 12 c0 38 20  | .. mode% ....8 |
000239f0  c9 20 32 30 3a 6c 6f 6e  67 3d 37 34 35 33 3a 73  |. 20:long=7453:s|
00023a00  68 6f 72 74 3d 31 32 30  33 3a 70 69 78 65 6c 3d  |hort=1203:pixel=|
00023a10  35 32 3a 6c 69 6e 65 5f  74 69 6d 65 3d 34 30 39  |52:line_time=409|
00023a20  33 37 35 0d 12 c1 3a 20  20 20 20 20 20 20 20 3a  |375...:        :|
00023a30  70 70 31 25 3d 36 39 37  36 2e 35 2d 34 2a 32 30  |pp1%=6976.5-4*20|
00023a40  38 3a 70 70 32 25 3d 35  2a 32 30 38 3a 72 78 5f  |8:pp2%=5*208:rx_|
00023a50  70 61 72 61 6d 25 21 31  30 30 3d 37 20 0d 12 c2  |param%!100=7 ...|
00023a60  3f 20 c9 20 32 31 3a 6c  6f 6e 67 3d 31 31 31 37  |? . 21:long=1117|
00023a70  39 2e 35 3a 73 68 6f 72  74 3d 31 38 30 34 2e 35  |9.5:short=1804.5|
00023a80  3a 70 69 78 65 6c 3d 37  38 3a 6c 69 6e 65 5f 74  |:pixel=78:line_t|
00023a90  69 6d 65 3d 36 31 34 30  36 32 2e 35 0d 12 c3 3c  |ime=614062.5...<|
00023aa0  20 20 20 20 20 20 20 20  3a 70 70 31 25 3d 31 30  |        :pp1%=10|
00023ab0  36 32 35 2d 34 2a 33 31  32 2e 35 3a 70 70 32 25  |625-4*312.5:pp2%|
00023ac0  3d 35 2a 33 31 32 2e 35  3a 72 78 5f 70 61 72 61  |=5*312.5:rx_para|
00023ad0  6d 25 21 31 30 30 3d 39  0d 12 c4 3a 20 c9 20 32  |m%!100=9...: . 2|
00023ae0  32 3a 6c 6f 6e 67 3d 31  34 39 30 36 3a 73 68 6f  |2:long=14906:sho|
00023af0  72 74 3d 32 34 30 36 3a  70 69 78 65 6c 3d 31 30  |rt=2406:pixel=10|
00023b00  34 3a 6c 69 6e 65 5f 74  69 6d 65 3d 38 31 38 37  |4:line_time=8187|
00023b10  35 30 0d 12 c5 3f 20 20  20 20 20 20 20 20 3a 70  |50...?        :p|
00023b20  70 31 25 3d 31 34 35 34  33 2e 35 2d 34 2a 34 31  |p1%=14543.5-4*41|
00023b30  36 2e 35 3a 70 70 32 25  3d 35 2a 34 31 36 2e 35  |6.5:pp2%=5*416.5|
00023b40  3a 72 78 5f 70 61 72 61  6d 25 21 31 30 30 3d 31  |:rx_param%!100=1|
00023b50  31 0d 12 c6 06 20 cb 0d  12 c7 45 20 6c 69 6e 65  |1.... ....E line|
00023b60  5f 74 6f 74 61 6c 3d 28  70 69 78 65 6c 2a 32 35  |_total=(pixel*25|
00023b70  36 31 2a 33 2b 6c 6f 6e  67 2b 73 68 6f 72 74 2b  |61*3+long+short+|
00023b80  73 68 6f 72 74 29 2a 28  63 6c 6f 63 6b 5f 66 72  |short)*(clock_fr|
00023b90  65 71 25 2f 32 30 30 30  30 30 30 29 0d 12 c8 3a  |eq%/2000000)...:|
00023ba0  20 6c 69 6e 65 5f 65 72  72 6f 72 3d 6c 69 6e 65  | line_error=line|
00023bb0  5f 74 6f 74 61 6c 2d 6c  69 6e 65 5f 74 69 6d 65  |_total-line_time|
00023bc0  3a 6c 6f 6e 67 3d 6c 6f  6e 67 2b 6c 69 6e 65 5f  |:long=long+line_|
00023bd0  65 72 72 6f 72 20 0d 12  c9 1f 20 72 78 5f 70 61  |error .... rx_pa|
00023be0  72 61 6d 25 21 36 30 3d  34 39 35 20 20 3a f4 20  |ram%!60=495  :. |
00023bf0  6c 69 6e 65 73 0d 12 ca  24 20 72 78 5f 70 61 72  |lines...$ rx_par|
00023c00  61 6d 25 21 37 32 3d 32  35 36 30 20 3a f4 20 36  |am%!72=2560 :. 6|
00023c10  34 30 20 70 69 78 65 6c  73 0d 12 cb 4c 20 e7 20  |40 pixels...L . |
00023c20  73 63 72 65 65 6e 5f 6c  69 6e 65 73 25 3d 35 31  |screen_lines%=51|
00023c30  32 20 8c 20 72 78 5f 70  61 72 61 6d 25 21 33 36  |2 . rx_param%!36|
00023c40  3d 73 63 72 65 65 6e 25  2b 32 31 37 36 30 20 8b  |=screen%+21760 .|
00023c50  20 72 78 5f 70 61 72 61  6d 25 21 33 36 3d 73 63  | rx_param%!36=sc|
00023c60  72 65 65 6e 25 0d 12 cc  17 20 f2 73 65 74 5f 73  |reen%.... .set_s|
00023c70  73 74 76 5f 74 78 5f 74  6f 6e 65 73 0d 12 cd 37  |stv_tx_tones...7|
00023c80  20 6c 6f 6e 67 25 3d 6c  6f 6e 67 2a 32 2d 2e 35  | long%=long*2-.5|
00023c90  3a 73 68 6f 72 74 25 3d  73 68 6f 72 74 2a 32 2d  |:short%=short*2-|
00023ca0  2e 35 3a 70 69 78 65 6c  25 3d 70 69 78 65 6c 2a  |.5:pixel%=pixel*|
00023cb0  32 2d 31 0d 12 ce 36 20  74 78 5f 70 61 72 61 6d  |2-1...6 tx_param|
00023cc0  25 21 31 34 30 3d 70 70  31 25 20 81 20 31 32 38  |%!140=pp1% . 128|
00023cd0  3a 74 78 5f 70 61 72 61  6d 25 21 31 34 34 3d 70  |:tx_param%!144=p|
00023ce0  70 32 25 20 81 20 31 32  38 0d 12 cf 06 20 e1 0d  |p2% . 128.... ..|
00023cf0  12 d0 04 0d 12 d1 13 20  dd 20 f2 63 61 6c 5f 66  |....... . .cal_f|
00023d00  61 78 5f 6e 65 77 0d 12  d2 0f 20 c8 8e 20 6d 6f  |ax_new.... .. mo|
00023d10  64 65 25 20 ca 0d 12 d3  31 20 c9 20 31 30 30 2c  |de% ....1 . 100,|
00023d20  31 32 30 3a 70 69 78 65  6c 3d 33 38 38 2e 35 3a  |120:pixel=388.5:|
00023d30  6c 25 3d 31 30 30 30 30  30 30 3a 70 68 61 73 65  |l%=1000000:phase|
00023d40  25 3d 37 39 39 39 0d 12  d4 31 20 c9 20 31 30 31  |%=7999...1 . 101|
00023d50  2c 31 32 31 3a 70 69 78  65 6c 3d 32 35 38 2e 35  |,121:pixel=258.5|
00023d60  3a 6c 25 3d 36 36 36 36  36 37 20 3a 70 68 61 73  |:l%=666667 :phas|
00023d70  65 25 3d 35 33 33 33 0d  12 d5 31 20 c9 20 31 30  |e%=5333...1 . 10|
00023d80  32 2c 31 32 32 3a 70 69  78 65 6c 3d 31 39 33 2e  |2,122:pixel=193.|
00023d90  35 3a 6c 25 3d 35 30 30  30 30 30 20 3a 70 68 61  |5:l%=500000 :pha|
00023da0  73 65 25 3d 33 39 39 39  0d 12 d6 31 20 c9 20 31  |se%=3999...1 . 1|
00023db0  30 33 2c 31 32 33 3a 70  69 78 65 6c 3d 31 32 38  |03,123:pixel=128|
00023dc0  2e 35 3a 6c 25 3d 33 33  33 33 33 33 20 3a 70 68  |.5:l%=333333 :ph|
00023dd0  61 73 65 25 3d 32 36 36  35 0d 12 d7 31 20 c9 20  |ase%=2665...1 . |
00023de0  31 30 34 2c 31 32 34 3a  70 69 78 65 6c 3d 39 35  |104,124:pixel=95|
00023df0  2e 35 20 3a 6c 25 3d 32  35 30 30 30 30 20 3a 70  |.5 :l%=250000 :p|
00023e00  68 61 73 65 25 3d 31 39  39 39 0d 12 d8 31 20 c9  |hase%=1999...1 .|
00023e10  20 31 30 35 2c 31 32 35  3a 70 69 78 65 6c 3d 36  | 105,125:pixel=6|
00023e20  33 2e 30 20 3a 6c 25 3d  31 36 36 36 36 37 20 3a  |3.0 :l%=166667 :|
00023e30  70 68 61 73 65 25 3d 31  33 33 33 0d 12 d9 30 20  |phase%=1333...0 |
00023e40  c9 20 31 30 36 2c 31 32  36 3a 70 69 78 65 6c 3d  |. 106,126:pixel=|
00023e50  34 37 2e 30 20 3a 6c 25  3d 31 32 35 30 30 30 20  |47.0 :l%=125000 |
00023e60  3a 70 68 61 73 65 25 3d  39 39 39 0d 12 da 06 20  |:phase%=999.... |
00023e70  cb 0d 12 db 33 20 54 58  70 68 61 73 65 25 3d a8  |....3 TXphase%=.|
00023e80  28 28 28 6c 25 2f 32 30  29 2a 63 6c 6f 63 6b 5f  |(((l%/20)*clock_|
00023e90  66 72 65 71 25 2f 32 30  30 30 30 30 30 29 2a 32  |freq%/2000000)*2|
00023ea0  29 2d 2e 35 0d 12 dc 40  20 74 76 25 3d 70 69 78  |)-.5...@ tv%=pix|
00023eb0  65 6c 2a 34 2a 36 34 30  3a 63 73 74 3d 6c 25 2d  |el*4*640:cst=l%-|
00023ec0  28 74 76 25 2a 32 30 30  30 30 30 30 2f 63 6c 6f  |(tv%*2000000/clo|
00023ed0  63 6b 5f 66 72 65 71 25  29 3a 63 73 74 2d 3d 70  |ck_freq%):cst-=p|
00023ee0  69 78 65 6c 0d 12 dd 34  20 6c 6f 6e 67 25 3d a8  |ixel...4 long%=.|
00023ef0  28 63 73 74 2a 32 2d 2e  35 29 3a 73 68 6f 72 74  |(cst*2-.5):short|
00023f00  25 3d 6c 6f 6e 67 25 3a  70 69 78 65 6c 25 3d 70  |%=long%:pixel%=p|
00023f10  69 78 65 6c 2a 32 2d 31  0d 12 de 37 20 e7 20 6d  |ixel*2-1...7 . m|
00023f20  6f 64 65 25 3e 31 31 39  20 8c 20 72 78 5f 70 61  |ode%>119 . rx_pa|
00023f30  72 61 6d 25 21 36 30 3d  35 35 30 20 8b 20 72 78  |ram%!60=550 . rx|
00023f40  5f 70 61 72 61 6d 25 21  36 30 3d 31 30 32 30 0d  |_param%!60=1020.|
00023f50  12 df 27 20 72 78 5f 70  61 72 61 6d 25 21 37 32  |..' rx_param%!72|
00023f60  3d 32 35 36 30 20 20 20  20 3a f4 20 36 34 30 20  |=2560    :. 640 |
00023f70  70 69 78 65 6c 73 0d 12  e0 32 20 72 78 5f 70 61  |pixels...2 rx_pa|
00023f80  72 61 6d 25 21 33 36 3d  73 63 72 65 65 6e 25 20  |ram%!36=screen% |
00023f90  3a f4 20 53 74 61 72 74  20 61 74 20 74 6f 70 20  |:. Start at top |
00023fa0  6f 66 20 66 72 61 6d 65  0d 12 e1 38 20 72 78 5f  |of frame...8 rx_|
00023fb0  70 61 72 61 6d 25 21 38  34 3d 70 68 61 73 65 25  |param%!84=phase%|
00023fc0  20 83 20 32 35 36 3a 72  78 5f 70 61 72 61 6d 25  | . 256:rx_param%|
00023fd0  21 38 38 3d 70 68 61 73  65 25 20 81 20 32 35 36  |!88=phase% . 256|
00023fe0  0d 12 e2 3c 20 72 78 5f  70 61 72 61 6d 25 21 31  |...< rx_param%!1|
00023ff0  35 36 3d 26 30 33 30 30  30 30 30 30 3a 72 78 5f  |56=&03000000:rx_|
00024000  70 61 72 61 6d 25 21 31  36 30 3d 30 3a 72 78 5f  |param%!160=0:rx_|
00024010  70 61 72 61 6d 25 21 31  36 34 3d 30 0d 12 e3 3f  |param%!164=0...?|
00024020  20 e7 20 6d 6f 64 65 25  3e 31 31 39 20 8c 20 72  | . mode%>119 . r|
00024030  78 5f 70 61 72 61 6d 25  21 31 35 32 3d 30 20 8b  |x_param%!152=0 .|
00024040  20 72 78 5f 70 61 72 61  6d 25 21 31 35 32 3d 66  | rx_param%!152=f|
00024050  61 78 5f 61 76 65 72 61  67 65 25 0d 12 e4 16 20  |ax_average%.... |
00024060  f2 73 65 74 5f 66 61 78  5f 74 78 5f 74 6f 6e 65  |.set_fax_tx_tone|
00024070  73 0d 12 e5 06 20 e1 0d  12 e6 04 0d 12 e7 14 20  |s.... ......... |
00024080  dd 20 f2 63 61 6c 5f 73  73 74 76 5f 6e 65 77 0d  |. .cal_sstv_new.|
00024090  12 e8 0f 20 c8 8e 20 6d  6f 64 65 25 20 ca 0d 12  |... .. mode% ...|
000240a0  e9 08 20 c9 20 31 0d 12  ea 15 20 20 c8 8e 20 73  |.. . 1....  .. s|
000240b0  73 74 76 5f 74 69 6d 65  25 20 ca 0d 12 eb 21 20  |stv_time% ....! |
000240c0  20 c9 20 31 3a 6c 6f 6e  67 3d 35 37 36 33 2e 35  | . 1:long=5763.5|
000240d0  3a 73 68 6f 72 74 3d 33  32 39 2e 35 0d 12 ec 21  |:short=329.5...!|
000240e0  20 20 c9 20 32 3a 6c 6f  6e 67 3d 35 36 32 33 2e  |  . 2:long=5623.|
000240f0  35 3a 73 68 6f 72 74 3d  33 39 39 2e 35 0d 12 ed  |5:short=399.5...|
00024100  21 20 20 c9 20 33 3a 6c  6f 6e 67 3d 35 38 34 33  |!  . 3:long=5843|
00024110  2e 35 3a 73 68 6f 72 74  3d 32 38 39 2e 35 0d 12  |.5:short=289.5..|
00024120  ee 07 20 20 cb 0d 12 ef  22 20 20 70 69 78 65 6c  |..  ...."  pixel|
00024130  3d 31 31 34 2e 35 3a 6c  69 6e 65 5f 74 69 6d 65  |=114.5:line_time|
00024140  3d 34 34 36 34 34 36 0d  12 f0 36 20 c9 20 32 3a  |=446446...6 . 2:|
00024150  6c 6f 6e 67 3d 36 32 30  35 3a 73 68 6f 72 74 3d  |long=6205:short=|
00024160  37 37 31 3a 70 69 78 65  6c 3d 35 37 3a 6c 69 6e  |771:pixel=57:lin|
00024170  65 5f 74 69 6d 65 3d 32  32 36 37 39 38 0d 12 f1  |e_time=226798...|
00024180  39 20 c9 20 35 3a 6c 6f  6e 67 3d 31 30 33 39 32  |9 . 5:long=10392|
00024190  3a 73 68 6f 72 74 3d 31  33 39 32 3a 70 69 78 65  |:short=1392:pixe|
000241a0  6c 3d 31 30 38 3a 6c 69  6e 65 5f 74 69 6d 65 3d  |l=108:line_time=|
000241b0  34 32 38 32 32 30 0d 12  f2 38 20 c9 20 36 3a 6c  |428220...8 . 6:l|
000241c0  6f 6e 67 3d 31 30 31 37  35 3a 73 68 6f 72 74 3d  |ong=10175:short=|
000241d0  31 31 37 35 3a 70 69 78  65 6c 3d 36 39 3a 6c 69  |1175:pixel=69:li|
000241e0  6e 65 5f 74 69 6d 65 3d  32 37 37 36 39 32 0d 12  |ne_time=277692..|
000241f0  f3 3a 20 c9 20 39 3a 6c  6f 6e 67 3d 31 30 32 33  |.: . 9:long=1023|
00024200  30 3a 73 68 6f 72 74 3d  31 32 33 30 3a 70 69 78  |0:short=1230:pix|
00024210  65 6c 3d 32 37 30 3a 6c  69 6e 65 5f 74 69 6d 65  |el=270:line_time|
00024220  3d 31 30 35 30 33 30 30  0d 12 f4 38 20 c9 20 31  |=1050300...8 . 1|
00024230  31 3a 6c 6f 6e 67 3d 36  37 31 30 3a 73 68 6f 72  |1:long=6710:shor|
00024240  74 3d 35 33 33 3a 70 69  78 65 6c 3d 31 38 33 3a  |t=533:pixel=183:|
00024250  6c 69 6e 65 5f 74 69 6d  65 3d 37 31 31 30 34 35  |line_time=711045|
00024260  0d 12 f5 38 20 c9 20 31  32 3a 6c 6f 6e 67 3d 35  |...8 . 12:long=5|
00024270  38 32 38 3a 73 68 6f 72  74 3d 39 37 34 3a 70 69  |828:short=974:pi|
00024280  78 65 6c 3d 31 38 33 3a  6c 69 6e 65 5f 74 69 6d  |xel=183:line_tim|
00024290  65 3d 37 31 31 30 34 35  0d 12 f6 06 20 cb 0d 12  |e=711045.... ...|
000242a0  f7 45 20 6c 69 6e 65 5f  74 6f 74 61 6c 3d 28 31  |.E line_total=(1|
000242b0  32 38 31 2a 70 69 78 65  6c 2a 33 2b 6c 6f 6e 67  |281*pixel*3+long|
000242c0  2b 73 68 6f 72 74 2b 73  68 6f 72 74 29 2a 28 63  |+short+short)*(c|
000242d0  6c 6f 63 6b 5f 66 72 65  71 25 2f 32 30 30 30 30  |lock_freq%/20000|
000242e0  30 30 29 0d 12 f8 39 20  6c 69 6e 65 5f 65 72 72  |00)...9 line_err|
000242f0  6f 72 3d 6c 69 6e 65 5f  74 6f 74 61 6c 2d 6c 69  |or=line_total-li|
00024300  6e 65 5f 74 69 6d 65 3a  6c 6f 6e 67 3d 6c 6f 6e  |ne_time:long=lon|
00024310  67 2b 6c 69 6e 65 5f 65  72 72 6f 72 0d 12 f9 1f  |g+line_error....|
00024320  20 72 78 5f 70 61 72 61  6d 25 21 36 30 3d 32 35  | rx_param%!60=25|
00024330  35 20 20 3a f4 20 6c 69  6e 65 73 0d 12 fa 40 20  |5  :. lines...@ |
00024340  72 78 5f 70 61 72 61 6d  25 21 37 32 3d 31 32 38  |rx_param%!72=128|
00024350  30 20 3a f4 20 31 32 38  30 20 22 73 61 6d 70 6c  |0 :. 1280 "sampl|
00024360  65 73 22 2c 20 65 61 63  68 20 31 20 69 73 20 61  |es", each 1 is a|
00024370  76 65 72 61 67 65 20 6f  66 20 34 0d 12 fb 4b 20  |verage of 4...K |
00024380  e7 20 73 63 72 65 65 6e  5f 6c 69 6e 65 73 25 3d  |. screen_lines%=|
00024390  35 31 32 20 8c 20 72 78  5f 70 61 72 61 6d 25 21  |512 . rx_param%!|
000243a0  33 36 3d 73 63 72 65 65  6e 25 2b 32 35 36 30 20  |36=screen%+2560 |
000243b0  8b 20 72 78 5f 70 61 72  61 6d 25 21 33 36 3d 73  |. rx_param%!36=s|
000243c0  63 72 65 65 6e 25 0d 12  fc 14 20 72 78 5f 70 61  |creen%.... rx_pa|
000243d0  72 61 6d 25 21 31 30 30  3d 36 0d 12 fd 37 20 6c  |ram%!100=6...7 l|
000243e0  6f 6e 67 25 3d 6c 6f 6e  67 2a 32 2d 2e 35 3a 73  |ong%=long*2-.5:s|
000243f0  68 6f 72 74 25 3d 73 68  6f 72 74 2a 32 2d 2e 35  |hort%=short*2-.5|
00024400  3a 70 69 78 65 6c 25 3d  70 69 78 65 6c 2a 32 2d  |:pixel%=pixel*2-|
00024410  31 0d 12 fe 06 20 e1 0d  12 ff 04 0d 13 00 04 0d  |1.... ..........|
00024420  13 01 17 20 dd 20 f2 72  78 5f 73 73 74 76 28 72  |... . .rx_sstv(r|
00024430  66 6c 61 67 25 29 0d 13  02 04 0d 13 03 11 20 e7  |flag%)........ .|
00024440  20 ac 20 72 66 6c 61 67  25 20 8c 0d 13 04 29 20  | . rflag% ....) |
00024450  e6 33 2c 32 35 35 2c 32  35 35 2c 32 35 35 3a c8  |.3,255,255,255:.|
00024460  93 20 c8 90 20 31 30 2a  36 34 2b 38 2c 36 2c 34  |. .. 10*64+8,6,4|
00024470  38 2c 34 36 0d 13 05 06  20 cd 0d 13 06 04 0d 13  |8,46.... .......|
00024480  07 09 20 4c 25 3d 30 0d  13 08 04 0d 13 09 13 20  |.. L%=0........ |
00024490  e7 20 61 75 74 6f 5f 66  69 6e 64 25 20 8c 0d 13  |. auto_find% ...|
000244a0  0a 15 20 20 f2 61 75 74  6f 5f 6d 6f 64 65 5f 66  |..  .auto_mode_f|
000244b0  69 6e 64 0d 13 0b 12 20  20 61 75 74 6f 5f 66 69  |ind....  auto_fi|
000244c0  6e 64 25 3d a3 0d 13 0c  06 20 cd 0d 13 0d 04 0d  |nd%=..... ......|
000244d0  13 0e 2f 20 e7 20 4c 25  3d 31 20 84 20 4c 25 3d  |../ . L%=1 . L%=|
000244e0  32 20 8c 20 f2 64 69 73  6d 69 6e 69 3a f2 77 61  |2 . .dismini:.wa|
000244f0  69 74 5f 6e 6f 5f 62 75  74 74 6f 6e 3a e1 0d 13  |it_no_button:...|
00024500  0f 31 20 f4 20 41 75 74  6f 2d 6d 6f 64 65 20 61  |.1 . Auto-mode a|
00024510  62 6f 72 74 65 64 20 28  4c 25 3d 31 29 20 6f 72  |borted (L%=1) or|
00024520  20 74 69 6d 65 6f 75 74  20 28 4c 25 3d 32 29 0d  | timeout (L%=2).|
00024530  13 10 04 0d 13 11 4e 20  e7 20 6d 6f 64 65 25 3d  |......N . mode%=|
00024540  37 30 20 84 20 6d 6f 64  65 25 3d 37 31 20 72 78  |70 . mode%=71 rx|
00024550  5f 70 61 72 61 6d 25 3d  68 71 5f 70 61 72 61 6d  |_param%=hq_param|
00024560  65 74 65 72 73 25 20 8b  20 72 78 5f 70 61 72 61  |eters% . rx_para|
00024570  6d 25 3d 72 78 5f 70 61  72 61 6d 65 74 65 72 73  |m%=rx_parameters|
00024580  25 0d 13 12 27 20 f2 73  65 74 5f 72 78 5f 70 61  |%...' .set_rx_pa|
00024590  72 61 6d 65 74 65 72 73  3a 72 78 5f 70 61 72 61  |rameters:rx_para|
000245a0  6d 25 21 31 35 32 3d 30  0d 13 13 2d 20 e3 20 4e  |m%!152=0...- . N|
000245b0  25 3d 30 20 b8 20 31 32  37 39 36 20 88 34 3a 67  |%=0 . 12796 .4:g|
000245c0  72 65 65 6e 5f 73 74 6f  72 65 25 21 4e 25 3d 33  |reen_store%!N%=3|
000245d0  34 34 30 3a ed 0d 13 14  04 0d 13 15 32 20 e7 20  |440:........2 . |
000245e0  6d 6f 64 65 25 3d 36 30  20 84 20 6d 6f 64 65 25  |mode%=60 . mode%|
000245f0  3d 36 31 20 84 20 6d 6f  64 65 25 3d 36 32 20 84  |=61 . mode%=62 .|
00024600  20 6d 6f 64 65 25 3d 36  34 20 8c 0d 13 16 10 20  | mode%=64 ..... |
00024610  20 e6 20 33 32 2c 33 32  2c 33 32 0d 13 17 13 20  | . 32,32,32.... |
00024620  20 20 e7 20 6d 6f 64 65  25 3d 36 32 20 8c 0d 13  |  . mode%=62 ...|
00024630  18 1b 20 20 20 20 c8 93  20 c8 90 20 30 2c 30 2c  |..    .. .. 0,0,|
00024640  31 32 38 30 2c 31 30 32  34 0d 13 19 08 20 20 20  |1280,1024....   |
00024650  cc 0d 13 1a 1b 20 20 20  20 c8 93 20 c8 90 20 30  |.....    .. .. 0|
00024660  2c 39 38 38 2c 31 32 38  30 2c 36 34 0d 13 1b 08  |,988,1280,64....|
00024670  20 20 20 cd 0d 13 1c 06  20 cc 0d 13 1d 21 20 20  |   ..... ....!  |
00024680  e6 20 30 2c 30 2c 30 3a  c8 93 20 c8 90 20 30 2c  |. 0,0,0:.. .. 0,|
00024690  31 30 32 30 2c 31 32 38  30 2c 34 0d 13 1e 06 20  |1020,1280,4.... |
000246a0  cd 0d 13 1f 04 0d 13 20  1f 20 e7 20 6d 6f 64 65  |....... . . mode|
000246b0  25 3c 32 30 20 8c 20 f2  63 61 6c 5f 73 73 74 76  |%<20 . .cal_sstv|
000246c0  5f 6e 65 77 0d 13 21 2d  20 e7 20 6d 6f 64 65 25  |_new..!- . mode%|
000246d0  3e 31 39 20 80 20 6d 6f  64 65 25 3c 32 33 20 8c  |>19 . mode%<23 .|
000246e0  20 f2 63 61 6c 5f 70 61  73 6f 6b 6f 6e 5f 6e 65  | .cal_pasokon_ne|
000246f0  77 0d 13 22 1e 20 e7 20  6d 6f 64 65 25 3e 39 39  |w..". . mode%>99|
00024700  20 8c 20 f2 63 61 6c 5f  66 61 78 5f 6e 65 77 0d  | . .cal_fax_new.|
00024710  13 23 27 20 e7 20 6d 6f  64 65 25 3e 35 39 20 80  |.#' . mode%>59 .|
00024720  20 6d 6f 64 65 25 3c 36  37 20 8c 20 f2 63 61 6c  | mode%<67 . .cal|
00024730  5f 70 64 5f 39 37 0d 13  24 24 20 e7 20 6d 6f 64  |_pd_97..$$ . mod|
00024740  65 25 3e 36 39 20 80 20  6d 6f 64 65 25 3c 38 30  |e%>69 . mode%<80|
00024750  20 8c 20 f2 63 61 6c 5f  68 71 0d 13 25 41 20 73  | . .cal_hq..%A s|
00024760  68 6f 72 74 32 25 3d 73  68 6f 72 74 25 2b 70 69  |hort2%=short%+pi|
00024770  78 65 6c 25 3a 6c 69 6e  65 73 25 3d 72 78 5f 70  |xel%:lines%=rx_p|
00024780  61 72 61 6d 25 21 36 30  3a 72 78 5f 70 61 72 61  |aram%!60:rx_para|
00024790  6d 25 21 36 38 3d 6d 6f  64 65 25 0d 13 26 36 20  |m%!68=mode%..&6 |
000247a0  72 78 5f 70 61 72 61 6d  25 21 30 3d 70 69 78 65  |rx_param%!0=pixe|
000247b0  6c 25 20 83 20 32 35 36  3a 72 78 5f 70 61 72 61  |l% . 256:rx_para|
000247c0  6d 25 21 34 3d 70 69 78  65 6c 25 20 81 20 32 35  |m%!4=pixel% . 25|
000247d0  36 0d 13 27 37 20 72 78  5f 70 61 72 61 6d 25 21  |6..'7 rx_param%!|
000247e0  38 3d 70 69 78 65 6c 25  20 83 20 32 35 36 3a 72  |8=pixel% . 256:r|
000247f0  78 5f 70 61 72 61 6d 25  21 31 32 3d 70 69 78 65  |x_param%!12=pixe|
00024800  6c 25 20 81 20 32 35 36  0d 13 28 3a 20 72 78 5f  |l% . 256..(: rx_|
00024810  70 61 72 61 6d 25 21 31  36 3d 73 68 6f 72 74 32  |param%!16=short2|
00024820  25 20 83 20 32 35 36 3a  72 78 5f 70 61 72 61 6d  |% . 256:rx_param|
00024830  25 21 32 30 3d 73 68 6f  72 74 32 25 20 81 20 32  |%!20=short2% . 2|
00024840  35 36 0d 13 29 36 20 72  78 5f 70 61 72 61 6d 25  |56..)6 rx_param%|
00024850  21 32 34 3d 6c 6f 6e 67  25 20 83 20 32 35 36 3a  |!24=long% . 256:|
00024860  72 78 5f 70 61 72 61 6d  25 21 32 38 3d 6c 6f 6e  |rx_param%!28=lon|
00024870  67 25 20 81 20 32 35 36  0d 13 2a 22 20 e7 20 6d  |g% . 256..*" . m|
00024880  6f 64 65 25 3c 31 30 30  20 f2 74 75 6e 69 6e 67  |ode%<100 .tuning|
00024890  5f 69 6e 64 69 63 61 74  6f 72 0d 13 2b 3c 20 e7  |_indicator..+< .|
000248a0  20 6d 6f 64 65 25 3e 39  39 20 80 20 6d 62 6f 78  | mode%>99 . mbox|
000248b0  25 3d 31 30 20 8c 20 72  78 5f 70 61 72 61 6d 25  |%=10 . rx_param%|
000248c0  21 39 32 3d 31 20 8b 20  72 78 5f 70 61 72 61 6d  |!92=1 . rx_param|
000248d0  25 21 39 32 3d 30 0d 13  2c 1f 20 72 78 5f 70 61  |%!92=0..,. rx_pa|
000248e0  72 61 6d 25 21 31 39 36  3d 73 65 72 69 61 6c 5f  |ram%!196=serial_|
000248f0  62 61 73 65 25 0d 13 2d  06 20 f5 0d 13 2e 1b 20  |base%..-. ..... |
00024900  f2 77 61 69 74 5f 6e 6f  5f 62 75 74 74 6f 6e 3a  |.wait_no_button:|
00024910  4b 3d a6 28 31 29 0d 13  2f 31 20 f2 69 6e 74 65  |K=.(1)../1 .inte|
00024920  72 66 61 63 65 5f 6f 66  66 73 65 74 3a 72 78 5f  |rface_offset:rx_|
00024930  70 61 72 61 6d 25 21 31  31 32 3d 49 6f 66 66 73  |param%!112=Ioffs|
00024940  65 74 25 20 81 20 32 0d  13 30 2a 20 72 78 5f 70  |et% . 2..0* rx_p|
00024950  61 72 61 6d 25 21 31 38  38 3d 74 75 6e 69 6e 67  |aram%!188=tuning|
00024960  5f 69 6e 64 69 63 61 74  6f 72 5f 74 61 62 6c 65  |_indicator_table|
00024970  25 0d 13 31 13 20 72 78  5f 70 61 72 61 6d 25 21  |%..1. rx_param%!|
00024980  36 34 3d 30 0d 13 32 35  20 e7 20 6d 6f 64 65 25  |64=0..25 . mode%|
00024990  3d 37 30 20 84 20 6d 6f  64 65 25 3d 37 31 20 d6  |=70 . mode%=71 .|
000249a0  20 68 71 5f 72 78 5f 63  6f 64 65 25 20 8b 20 d6  | hq_rx_code% . .|
000249b0  20 72 78 5f 63 6f 64 65  25 0d 13 33 18 20 e7 20  | rx_code%..3. . |
000249c0  72 78 5f 70 61 72 61 6d  25 21 36 34 3d 39 36 20  |rx_param%!64=96 |
000249d0  8c 0d 13 34 14 20 20 f4  20 39 36 20 3d 20 72 65  |...4.  . 96 = re|
000249e0  2d 73 79 6e 63 0d 13 35  21 20 20 e7 20 6d 6f 64  |-sync..5!  . mod|
000249f0  65 25 3e 39 39 20 8c 20  72 78 5f 70 61 72 61 6d  |e%>99 . rx_param|
00024a00  25 21 39 32 3d 31 0d 13  36 1d 20 20 e7 20 6d 6f  |%!92=1..6.  . mo|
00024a10  64 65 25 3e 35 39 20 80  20 6d 6f 64 65 25 3c 38  |de%>59 . mode%<8|
00024a20  30 20 8c 0d 13 37 23 20  20 72 78 5f 70 61 72 61  |0 ...7#  rx_para|
00024a30  6d 25 21 36 30 3d 28 72  78 5f 70 61 72 61 6d 25  |m%!60=(rx_param%|
00024a40  21 36 30 29 2d 32 0d 13  38 07 20 20 cc 0d 13 39  |!60)-2..8.  ...9|
00024a50  23 20 20 72 78 5f 70 61  72 61 6d 25 21 36 30 3d  |#  rx_param%!60=|
00024a60  28 72 78 5f 70 61 72 61  6d 25 21 36 30 29 2d 31  |(rx_param%!60)-1|
00024a70  0d 13 3a 06 20 cd 0d 13  3b 06 20 cd 0d 13 3c 17  |..:. ...;. ...<.|
00024a80  20 fd 20 72 78 5f 70 61  72 61 6d 25 21 36 34 3c  | . rx_param%!64<|
00024a90  3e 39 36 0d 13 3d 04 0d  13 3e 21 20 e7 20 6c 69  |>96..=...>! . li|
00024aa0  6e 65 73 25 2d 28 72 78  5f 70 61 72 61 6d 25 21  |nes%-(rx_param%!|
00024ab0  36 30 29 3e 31 32 20 8c  0d 13 3f 44 20 20 20 4e  |60)>12 ...?D   N|
00024ac0  25 3d 73 63 72 65 65 6e  5f 6c 69 6e 65 73 25 2a  |%=screen_lines%*|
00024ad0  32 2d 31 2d 28 28 28 72  78 5f 70 61 72 61 6d 25  |2-1-(((rx_param%|
00024ae0  21 33 36 29 2d 73 63 72  65 65 6e 25 29 81 36 34  |!36)-screen%).64|
00024af0  30 29 3a e6 33 32 2c 33  32 2c 33 32 0d 13 40 10  |0):.32,32,32..@.|
00024b00  20 20 20 20 e7 20 4e 25  3e 30 20 8c 0d 13 41 28  |    . N%>0 ...A(|
00024b10  20 20 20 20 20 e3 20 59  25 3d 30 20 b8 20 4e 25  |     . Y%=0 . N%|
00024b20  20 88 32 3a 86 20 30 2c  59 25 2c 31 32 38 30 2c  | .2:. 0,Y%,1280,|
00024b30  59 25 3a ed 0d 13 42 09  20 20 20 20 cd 0d 13 43  |Y%:...B.    ...C|
00024b40  50 20 20 20 e7 20 6d 6f  64 65 25 3c 32 30 20 84  |P   . mode%<20 .|
00024b50  20 6d 6f 64 65 25 3d 37  30 20 84 20 6d 6f 64 65  | mode%=70 . mode|
00024b60  25 3d 37 31 20 84 20 6d  6f 64 65 25 3d 36 33 20  |%=71 . mode%=63 |
00024b70  84 20 6d 6f 64 65 25 3d  36 35 20 21 73 63 72 65  |. mode%=65 !scre|
00024b80  65 6e 25 3d 26 38 30 30  30 38 30 30 30 0d 13 44  |en%=&80008000..D|
00024b90  06 20 cc 0d 13 45 16 20  20 20 f2 64 69 73 70 6c  |. ...E.   .displ|
00024ba0  61 79 5f 6d 65 6d 6f 72  79 0d 13 46 06 20 cd 0d  |ay_memory..F. ..|
00024bb0  13 47 04 0d 13 48 25 20  e7 20 72 78 5f 70 61 72  |.G...H% . rx_par|
00024bc0  61 6d 25 21 31 36 34 3e  35 31 31 20 80 20 6d 6f  |am%!164>511 . mo|
00024bd0  64 65 25 3e 39 39 20 8c  0d 13 49 40 20 53 25 3d  |de%>99 ...I@ S%=|
00024be0  73 63 72 65 65 6e 25 3a  53 4c 25 3d 28 72 78 5f  |screen%:SL%=(rx_|
00024bf0  70 61 72 61 6d 25 21 31  36 34 29 2d 35 31 31 3a  |param%!164)-511:|
00024c00  73 63 72 65 65 6e 25 3d  73 63 72 65 65 6e 25 2b  |screen%=screen%+|
00024c10  31 32 38 30 2a 53 4c 25  0d 13 4a 3b 20 f2 75 70  |1280*SL%..J; .up|
00024c20  6c 6f 61 64 5f 6d 65 6d  6f 72 79 3a 73 63 72 65  |load_memory:scre|
00024c30  65 6e 25 3d 53 25 3a 73  62 25 3d 72 78 5f 70 61  |en%=S%:sb%=rx_pa|
00024c40  72 61 6d 25 2b 31 35 36  3a 73 62 32 25 3d 73 62  |ram%+156:sb2%=sb|
00024c50  25 2b 34 0d 13 4b 41 20  21 73 62 25 3d 26 30 33  |%+4..KA !sb%=&03|
00024c60  30 30 30 30 30 30 3a 21  73 62 32 25 3d 30 3a c8  |000000:!sb2%=0:.|
00024c70  99 20 22 4f 53 5f 57 6f  72 64 22 2c 32 32 2c 73  |. "OS_Word",22,s|
00024c80  62 25 2b 33 3a f2 64 69  73 70 6c 61 79 5f 6d 65  |b%+3:.display_me|
00024c90  6d 6f 72 79 0d 13 4c 06  20 cd 0d 13 4d 04 0d 13  |mory..L. ...M...|
00024ca0  4e 26 20 e7 20 72 66 6c  61 67 25 20 f2 75 70 6c  |N& . rflag% .upl|
00024cb0  6f 61 64 5f 6d 65 6d 6f  72 79 20 8b 20 f2 75 70  |oad_memory . .up|
00024cc0  6d 69 6e 69 0d 13 4f 18  20 ef 37 3a d6 20 72 65  |mini..O. .7:. re|
00024cd0  73 65 74 5f 74 30 5f 63  6f 64 65 25 0d 13 50 14  |set_t0_code%..P.|
00024ce0  20 f2 77 61 69 74 5f 6e  6f 5f 62 75 74 74 6f 6e  | .wait_no_button|
00024cf0  0d 13 51 06 20 e1 0d 13  52 04 0d 13 53 18 20 dd  |..Q. ...R...S. .|
00024d00  20 f2 74 75 6e 69 6e 67  5f 69 6e 64 69 63 61 74  | .tuning_indicat|
00024d10  6f 72 0d 13 54 22 20 f2  72 61 69 73 65 64 5f 62  |or..T" .raised_b|
00024d20  6c 6f 63 6b 28 34 32 36  2c 31 30 30 2c 34 33 34  |lock(426,100,434|
00024d30  2c 39 30 29 0d 13 55 0c  20 e6 20 30 2c 30 2c 30  |,90)..U. . 0,0,0|
00024d40  0d 13 56 2b 20 e3 20 4e  25 3d 34 38 30 20 b8 20  |..V+ . N%=480 . |
00024d50  38 30 30 20 88 34 30 3a  c8 93 20 c8 90 20 4e 25  |800 .40:.. .. N%|
00024d60  2c 31 30 38 2c 32 2c 35  34 3a ed 0d 13 57 22 20  |,108,2,54:...W" |
00024d70  e6 20 30 2c 36 34 2c 33  32 3a c8 93 20 c8 90 20  |. 0,64,32:.. .. |
00024d80  36 33 36 2c 31 30 38 2c  31 30 2c 35 36 0d 13 58  |636,108,10,56..X|
00024d90  23 20 e6 20 30 2c 34 30  2c 39 36 3a c8 93 20 c8  |# . 0,40,96:.. .|
00024da0  90 20 34 36 36 2c 31 31  36 2c 33 35 30 2c 33 38  |. 466,116,350,38|
00024db0  0d 13 59 1c 20 f2 77 72  69 74 65 32 28 22 4c 6f  |..Y. .write2("Lo|
00024dc0  22 2c 34 31 36 2c 31 31  38 2c 34 29 0d 13 5a 1c  |",416,118,4)..Z.|
00024dd0  20 f2 77 72 69 74 65 32  28 22 48 69 22 2c 38 31  | .write2("Hi",81|
00024de0  32 2c 31 31 38 2c 34 29  0d 13 5b 3d 20 c8 99 20  |2,118,4)..[= .. |
00024df0  73 70 72 73 77 69 25 2c  32 35 36 2b 35 32 2c 73  |sprswi%,256+52,s|
00024e00  70 62 25 2c 22 74 69 5f  73 63 61 6c 65 22 2c 34  |pb%,"ti_scale",4|
00024e10  35 38 2c 31 37 30 2c 38  2c 30 2c 74 72 61 6e 73  |58,170,8,0,trans|
00024e20  6c 61 74 65 25 0d 13 5c  06 20 e1 0d 13 5d 04 0d  |late%..\. ...]..|
00024e30  13 5e 18 20 dd 20 f2 69  6e 74 65 72 66 61 63 65  |.^. . .interface|
00024e40  5f 6f 66 66 73 65 74 0d  13 5f 23 20 6f 66 66 73  |_offset.._# offs|
00024e50  65 74 5f 72 65 73 75 6c  74 25 21 31 36 3d 73 65  |et_result%!16=se|
00024e60  72 69 61 6c 5f 62 61 73  65 25 0d 13 60 13 20 d6  |rial_base%..`. .|
00024e70  20 6f 66 66 73 65 74 5f  63 6f 64 65 25 0d 13 61  | offset_code%..a|
00024e80  2d 20 74 31 3d 28 6f 66  66 73 65 74 5f 72 65 73  |- t1=(offset_res|
00024e90  75 6c 74 25 21 30 29 2f  28 6f 66 66 73 65 74 5f  |ult%!0)/(offset_|
00024ea0  72 65 73 75 6c 74 25 21  34 29 0d 13 62 2e 20 74  |result%!4)..b. t|
00024eb0  32 3d 28 6f 66 66 73 65  74 5f 72 65 73 75 6c 74  |2=(offset_result|
00024ec0  25 21 38 29 2f 28 6f 66  66 73 65 74 5f 72 65 73  |%!8)/(offset_res|
00024ed0  75 6c 74 25 21 31 32 29  0d 13 63 0f 20 4e 25 3d  |ult%!12)..c. N%=|
00024ee0  74 32 2d 74 31 2b 31 0d  13 64 2b 20 e7 20 94 28  |t2-t1+1..d+ . .(|
00024ef0  4e 25 29 3c 31 30 30 20  8c 20 49 6f 66 66 73 65  |N%)<100 . Ioffse|
00024f00  74 25 3d 28 49 6f 66 66  73 65 74 25 2b 4e 25 29  |t%=(Ioffset%+N%)|
00024f10  2f 32 0d 13 65 16 20 e7  20 63 61 6c 6c 24 3d 22  |/2..e. . call$="|
00024f20  47 34 49 4a 45 22 20 8c  0d 13 66 41 20 fb 36 33  |G4IJE" ...fA .63|
00024f30  3a f1 20 8a 32 33 2c 35  38 29 3b 22 4c 61 73 74  |:. .23,58);"Last|
00024f40  20 76 61 6c 75 65 3a 22  3b 4e 25 3b 22 20 20 52  | value:";N%;"  R|
00024f50  75 6e 6e 69 6e 67 20 61  76 65 72 61 67 65 3a 22  |unning average:"|
00024f60  3b 49 6f 66 66 73 65 74  25 0d 13 67 06 20 cd 0d  |;Ioffset%..g. ..|
00024f70  13 68 06 20 e1 0d 13 69  04 0d 13 6a 11 20 dd 20  |.h. ...i...j. . |
00024f80  f2 76 69 73 5f 73 74 61  72 74 0d 13 6b 29 20 e6  |.vis_start..k) .|
00024f90  33 2c 32 35 35 2c 32 35  35 2c 32 35 35 3a c8 93  |3,255,255,255:..|
00024fa0  20 c8 90 20 38 2a 36 34  2b 36 2c 38 2c 31 31 32  | .. 8*64+6,8,112|
00024fb0  2c 34 34 0d 13 6c 17 20  72 25 3d 36 34 3a 67 25  |,44..l. r%=64:g%|
00024fc0  3d 32 35 35 3a 62 25 3d  36 34 0d 13 6d 22 20 e6  |=255:b%=64..m" .|
00024fd0  20 72 25 2c 67 25 2c 62  25 3a c8 93 20 c8 90 20  | r%,g%,b%:.. .. |
00024fe0  36 31 32 2c 32 34 2c 31  30 2c 31 30 0d 13 6e 11  |612,24,10,10..n.|
00024ff0  20 e7 20 6d 6f 64 65 25  3e 39 39 20 8c 0d 13 6f  | . mode%>99 ...o|
00025000  10 20 f2 72 78 5f 73 73  74 76 28 a3 29 0d 13 70  |. .rx_sstv(.)..p|
00025010  06 20 cc 0d 13 71 25 20  e6 20 31 39 36 2c 31 39  |. ...q% . 196,19|
00025020  36 2c 31 39 36 3a c8 93  20 c8 90 20 33 39 30 2c  |6,196:.. .. 390,|
00025030  36 2c 31 31 32 2c 34 36  0d 13 72 10 20 76 69 73  |6,112,46..r. vis|
00025040  5f 71 75 69 74 25 3d 30  0d 13 73 30 20 76 69 73  |_quit%=0..s0 vis|
00025050  5f 70 61 72 61 6d 25 21  38 30 3d 30 20 3a 20 f4  |_param%!80=0 : .|
00025060  20 4e 6f 72 6d 61 6c 20  28 77 69 64 65 29 20 62  | Normal (wide) b|
00025070  61 6e 64 77 69 64 74 68  0d 13 74 1e 20 76 69 73  |andwidth..t. vis|
00025080  5f 70 61 72 61 6d 25 21  34 3d 73 65 72 69 61 6c  |_param%!4=serial|
00025090  5f 62 61 73 65 25 0d 13  75 06 20 f5 0d 13 76 14  |_base%..u. ...v.|
000250a0  20 f2 77 61 69 74 5f 6e  6f 5f 62 75 74 74 6f 6e  | .wait_no_button|
000250b0  0d 13 77 12 20 f5 3a d6  20 76 69 73 5f 63 6f 64  |..w. .:. vis_cod|
000250c0  65 25 0d 13 78 2c 20 67  25 3d 67 25 82 32 35 35  |e%..x, g%=g%.255|
000250d0  3a e6 20 72 25 2c 67 25  2c 62 25 3a c8 93 20 c8  |:. r%,g%,b%:.. .|
000250e0  90 20 36 31 32 2c 32 34  2c 31 30 2c 31 30 0d 13  |. 612,24,10,10..|
000250f0  79 17 20 fd 20 21 76 69  73 5f 70 61 72 61 6d 25  |y. . !vis_param%|
00025100  3c 3e 32 35 36 0d 13 7a  15 20 56 49 53 25 3d 21  |<>256..z. VIS%=!|
00025110  76 69 73 5f 70 61 72 61  6d 25 0d 13 7b 1f 20 f2  |vis_param%..{. .|
00025120  76 69 73 5f 63 6f 6e 76  65 72 74 5f 74 6f 5f 6d  |vis_convert_to_m|
00025130  6f 64 65 28 56 49 53 25  29 0d 13 7c 12 20 e7 20  |ode(VIS%)..|. . |
00025140  67 6f 6f 64 5f 76 69 73  25 20 8c 0d 13 7d 22 20  |good_vis% ...}" |
00025150  e6 20 32 35 35 2c 36 34  2c 30 3a c8 93 20 c8 90  |. 255,64,0:.. ..|
00025160  20 36 31 32 2c 32 34 2c  31 30 2c 31 30 0d 13 7e  | 612,24,10,10..~|
00025170  2d 20 ef 35 3a e6 30 20  c8 9c 30 3a ec 34 30 30  |- .5:.0 ..0:.400|
00025180  2c 33 36 3a f1 20 6d 6f  64 65 24 28 6d 6f 64 65  |,36:. mode$(mode|
00025190  25 29 3a ef 34 3a 87 3a  c8 96 0d 13 7f 1c 20 f2  |%):.4:.:...... .|
000251a0  72 78 5f 73 73 74 76 28  a3 29 3a 76 69 73 5f 71  |rx_sstv(.):vis_q|
000251b0  75 69 74 25 3d b9 0d 13  80 06 20 cd 0d 13 81 34  |uit%=..... ....4|
000251c0  20 e7 20 56 49 53 25 3d  33 32 30 20 8c 20 61 75  | . VIS%=320 . au|
000251d0  74 6f 5f 73 61 76 65 25  3d 30 3a f2 6d 69 6e 69  |to_save%=0:.mini|
000251e0  5f 70 61 64 3a 76 69 73  5f 71 75 69 74 25 3d b9  |_pad:vis_quit%=.|
000251f0  0d 13 82 10 20 fd 20 76  69 73 5f 71 75 69 74 25  |.... . vis_quit%|
00025200  0d 13 83 06 20 cd 0d 13  84 06 20 e1 0d 13 85 04  |.... ..... .....|
00025210  0d 13 86 18 20 dd 20 f2  74 78 5f 74 65 73 74 5f  |.... . .tx_test_|
00025220  74 6f 6e 65 28 66 25 29  0d 13 87 18 20 e7 20 58  |tone(f%).... . X|
00025230  34 25 20 8c 20 4d 25 3d  34 20 8b 20 4d 25 3d 31  |4% . M%=4 . M%=1|
00025240  0d 13 88 25 20 63 25 3d  a8 28 31 2f 28 66 25 2a  |...% c%=.(1/(f%*|
00025250  4d 25 29 2f 32 2a 31 30  30 30 30 30 30 2a 32 2d  |M%)/2*1000000*2-|
00025260  31 2b 2e 35 29 0d 13 89  32 20 76 69 73 5f 70 61  |1+.5)...2 vis_pa|
00025270  72 61 6d 25 21 35 36 3d  63 25 20 83 20 32 35 36  |ram%!56=c% . 256|
00025280  3a 76 69 73 5f 70 61 72  61 6d 25 21 36 30 3d 63  |:vis_param%!60=c|
00025290  25 20 81 20 32 35 36 0d  13 8a 30 20 76 69 73 5f  |% . 256...0 vis_|
000252a0  70 61 72 61 6d 25 21 38  30 3d 30 20 3a 20 f4 20  |param%!80=0 : . |
000252b0  6e 6f 72 6d 61 6c 20 56  49 53 20 2f 20 74 65 73  |normal VIS / tes|
000252c0  74 20 74 6f 6e 65 73 0d  13 8b 1e 20 76 69 73 5f  |t tones.... vis_|
000252d0  70 61 72 61 6d 25 21 34  3d 73 65 72 69 61 6c 5f  |param%!4=serial_|
000252e0  62 61 73 65 25 0d 13 8c  32 20 f2 77 61 69 74 5f  |base%...2 .wait_|
000252f0  6e 6f 5f 62 75 74 74 6f  6e 3a f2 72 61 69 73 65  |no_button:.raise|
00025300  64 5f 62 6c 6f 63 6b 28  38 34 32 2c 39 30 2c 32  |d_block(842,90,2|
00025310  30 38 2c 36 34 30 29 0d  13 8d 25 20 e6 20 32 35  |08,640)...% . 25|
00025320  35 2c 32 35 35 2c 30 3a  c8 93 20 c8 90 20 38 35  |5,255,0:.. .. 85|
00025330  30 2c 35 35 30 2c 31 38  36 2c 39 34 0d 13 8e 21  |0,550,186,94...!|
00025340  20 f2 77 72 69 74 65 32  28 22 53 65 6e 64 69 6e  | .write2("Sendin|
00025350  67 22 2c 38 37 34 2c 36  30 30 2c 34 29 0d 13 8f  |g",874,600,4)...|
00025360  22 20 f2 77 72 69 74 65  32 28 c3 20 66 25 2b 22  |" .write2(. f%+"|
00025370  20 48 7a 22 2c 38 37 34  2c 35 36 30 2c 34 29 0d  | Hz",874,560,4).|
00025380  13 90 22 20 f2 72 61 69  73 65 64 5f 62 6c 6f 63  |.." .raised_bloc|
00025390  6b 28 38 37 30 2c 32 30  30 2c 31 35 30 2c 34 30  |k(870,200,150,40|
000253a0  29 0d 13 91 20 20 f2 77  72 69 74 65 32 28 22 43  |)...  .write2("C|
000253b0  61 6e 63 65 6c 22 2c 38  38 34 2c 32 30 34 2c 34  |ancel",884,204,4|
000253c0  29 0d 13 92 14 20 c8 97  20 b8 20 39 39 30 2c 32  |).... .. . 990,2|
000253d0  31 36 3a c8 96 0d 13 93  1e 20 d6 20 76 69 73 5f  |16:...... . vis_|
000253e0  63 6f 64 65 25 2b 28 76  69 73 5f 63 6f 64 65 25  |code%+(vis_code%|
000253f0  21 38 29 0d 13 94 23 20  f2 77 61 69 74 5f 6e 6f  |!8)...# .wait_no|
00025400  5f 62 75 74 74 6f 6e 3a  6d 65 6e 75 5f 72 65 64  |_button:menu_red|
00025410  72 61 77 25 3d b9 0d 13  95 06 20 e1 0d 13 96 04  |raw%=..... .....|
00025420  0d 13 97 18 20 dd 20 f2  75 70 64 61 74 65 5f 72  |.... . .update_r|
00025430  74 63 28 75 70 64 25 29  0d 13 98 13 20 3f 72 74  |tc(upd%).... ?rt|
00025440  63 5f 62 75 66 66 65 72  25 3d 31 0d 13 99 27 20  |c_buffer%=1...' |
00025450  c8 99 20 22 49 49 43 5f  43 6f 6e 74 72 6f 6c 22  |.. "IIC_Control"|
00025460  2c 26 41 30 2c 72 74 63  5f 62 75 66 66 65 72 25  |,&A0,rtc_buffer%|
00025470  2c 31 0d 13 9a 27 20 c8  99 20 22 49 49 43 5f 43  |,1...' .. "IIC_C|
00025480  6f 6e 74 72 6f 6c 22 2c  26 41 31 2c 72 74 63 5f  |ontrol",&A1,rtc_|
00025490  62 75 66 66 65 72 25 2c  36 0d 13 9b 20 20 53 24  |buffer%,6...  S$|
000254a0  3d c3 7e 72 74 63 5f 62  75 66 66 65 72 25 3f 31  |=.~rtc_buffer%?1|
000254b0  3a 73 25 3d bb 28 53 24  29 0d 13 9c 1d 20 e7 20  |:s%=.(S$).... . |
000254c0  73 25 3c 33 30 20 8c 20  73 25 2b 3d 31 3a 53 24  |s%<30 . s%+=1:S$|
000254d0  3d c3 28 73 25 29 0d 13  9d 19 20 e7 20 a9 20 53  |=.(s%).... . . S|
000254e0  24 3c 32 20 8c 20 53 24  3d 22 30 22 2b 53 24 0d  |$<2 . S$="0"+S$.|
000254f0  13 9e 2c 20 4d 24 3d c3  7e 72 74 63 5f 62 75 66  |.., M$=.~rtc_buf|
00025500  66 65 72 25 3f 32 3a e7  20 a9 20 4d 24 3c 32 20  |fer%?2:. . M$<2 |
00025510  8c 20 4d 24 3d 22 30 22  2b 4d 24 0d 13 9f 38 20  |. M$="0"+M$...8 |
00025520  68 25 3d 72 74 63 5f 62  75 66 66 65 72 25 3f 33  |h%=rtc_buffer%?3|
00025530  3a e7 20 62 73 74 5f 66  6c 61 67 25 20 8c 20 68  |:. bst_flag% . h|
00025540  25 2b 3d 31 3a e7 20 68  25 3d 32 34 20 8c 20 68  |%+=1:. h%=24 . h|
00025550  25 3d 30 0d 13 a0 21 20  48 24 3d c3 7e 68 25 3a  |%=0...! H$=.~h%:|
00025560  e7 20 a9 20 48 24 3c 32  20 8c 20 48 24 3d 22 30  |. . H$<2 . H$="0|
00025570  22 2b 48 24 0d 13 a1 16  20 e7 20 48 24 3e 3d c1  |"+H$.... . H$>=.|
00025580  91 24 2c 31 37 2c 32 29  20 8c 0d 13 a2 35 20 3f  |.$,17,2) ....5 ?|
00025590  72 74 63 5f 62 75 66 66  65 72 25 3d 38 3a 24 28  |rtc_buffer%=8:$(|
000255a0  72 74 63 5f 62 75 66 66  65 72 25 2b 31 29 3d 48  |rtc_buffer%+1)=H|
000255b0  24 2b 22 3a 22 2b 4d 24  2b 22 3a 22 2b 53 24 0d  |$+":"+M$+":"+S$.|
000255c0  13 a3 27 20 e7 20 75 70  64 25 20 c8 99 20 22 4f  |..' . upd% .. "O|
000255d0  53 5f 57 6f 72 64 22 2c  31 35 2c 72 74 63 5f 62  |S_Word",15,rtc_b|
000255e0  75 66 66 65 72 25 0d 13  a4 06 20 cd 0d 13 a5 06  |uffer%.... .....|
000255f0  20 e1 0d 13 a6 04 0d 13  a7 15 20 dd 20 f2 63 68  | ......... . .ch|
00025600  65 63 6b 5f 66 6f 72 5f  62 73 74 0d 13 a8 13 20  |eck_for_bst.... |
00025610  3f 72 74 63 5f 62 75 66  66 65 72 25 3d 31 0d 13  |?rtc_buffer%=1..|
00025620  a9 27 20 c8 99 20 22 49  49 43 5f 43 6f 6e 74 72  |.' .. "IIC_Contr|
00025630  6f 6c 22 2c 26 41 30 2c  72 74 63 5f 62 75 66 66  |ol",&A0,rtc_buff|
00025640  65 72 25 2c 31 0d 13 aa  27 20 c8 99 20 22 49 49  |er%,1...' .. "II|
00025650  43 5f 43 6f 6e 74 72 6f  6c 22 2c 26 41 31 2c 72  |C_Control",&A1,r|
00025660  74 63 5f 62 75 66 66 65  72 25 2c 36 0d 13 ab 2c  |tc_buffer%,6...,|
00025670  20 48 24 3d c3 7e 72 74  63 5f 62 75 66 66 65 72  | H$=.~rtc_buffer|
00025680  25 3f 33 3a e7 20 a9 20  48 24 3c 32 20 8c 20 48  |%?3:. . H$<2 . H|
00025690  24 3d 22 30 22 2b 48 24  0d 13 ac 36 20 54 24 3d  |$="0"+H$...6 T$=|
000256a0  c1 91 24 2c 31 37 2c 32  29 3a e7 20 48 24 3c 3e  |..$,17,2):. H$<>|
000256b0  54 24 20 8c 20 62 73 74  5f 66 6c 61 67 25 3d b9  |T$ . bst_flag%=.|
000256c0  20 8b 20 62 73 74 5f 66  6c 61 67 25 3d 30 0d 13  | . bst_flag%=0..|
000256d0  ad 06 20 e1 0d 13 ae 04  0d 13 af 11 20 dd 20 f2  |.. ......... . .|
000256e0  61 75 74 6f 5f 73 61 76  65 0d 13 b0 06 20 f5 0d  |auto_save.... ..|
000256f0  13 b1 28 20 e6 20 31 32  38 2b 32 31 20 c8 9c 30  |..( . 128+21 ..0|
00025700  3a db 3a f2 6d 69 6e 69  5f 70 61 64 3a f2 76 69  |:.:.mini_pad:.vi|
00025710  73 5f 73 74 61 72 74 0d  13 b2 12 20 e7 20 56 49  |s_start.... . VI|
00025720  53 25 3c 3e 33 32 30 20  8c 0d 13 b3 13 20 3f 72  |S%<>320 ..... ?r|
00025730  74 63 5f 62 75 66 66 65  72 25 3d 31 0d 13 b4 27  |tc_buffer%=1...'|
00025740  20 c8 99 20 22 49 49 43  5f 43 6f 6e 74 72 6f 6c  | .. "IIC_Control|
00025750  22 2c 26 41 30 2c 72 74  63 5f 62 75 66 66 65 72  |",&A0,rtc_buffer|
00025760  25 2c 31 0d 13 b5 27 20  c8 99 20 22 49 49 43 5f  |%,1...' .. "IIC_|
00025770  43 6f 6e 74 72 6f 6c 22  2c 26 41 31 2c 72 74 63  |Control",&A1,rtc|
00025780  5f 62 75 66 66 65 72 25  2c 36 0d 13 b6 2c 20 4d  |_buffer%,6..., M|
00025790  24 3d c3 7e 72 74 63 5f  62 75 66 66 65 72 25 3f  |$=.~rtc_buffer%?|
000257a0  32 3a e7 20 a9 20 4d 24  3c 32 20 8c 20 4d 24 3d  |2:. . M$<2 . M$=|
000257b0  22 30 22 2b 4d 24 0d 13  b7 2c 20 48 24 3d c3 7e  |"0"+M$..., H$=.~|
000257c0  72 74 63 5f 62 75 66 66  65 72 25 3f 33 3a e7 20  |rtc_buffer%?3:. |
000257d0  a9 20 48 24 3c 32 20 8c  20 48 24 3d 22 30 22 2b  |. H$<2 . H$="0"+|
000257e0  48 24 0d 13 b8 23 20 46  24 3d c1 91 24 2c 38 2c  |H$...# F$=..$,8,|
000257f0  33 29 2b c1 91 24 2c 35  2c 32 29 2b 22 2d 22 2b  |3)+..$,5,2)+"-"+|
00025800  48 24 2b 4d 24 0d 13 b9  34 20 73 61 76 65 5f 74  |H$+M$...4 save_t|
00025810  79 70 65 24 3d 22 6a 70  65 67 31 22 3a f2 73 61  |ype$="jpeg1":.sa|
00025820  76 65 5f 6a 70 65 67 28  61 75 74 6f 5f 64 69 72  |ve_jpeg(auto_dir|
00025830  24 2b 22 2e 22 2b 46 24  29 0d 13 ba 1f 20 61 75  |$+"."+F$).... au|
00025840  74 6f 5f 63 6f 75 6e 74  25 2b 3d 31 3a 4d 45 4d  |to_count%+=1:MEM|
00025850  25 3d 4d 45 4d 25 2b 31  0d 13 bb 1e 20 e7 20 4d  |%=MEM%+1.... . M|
00025860  45 4d 25 3d 6d 65 6d 6f  72 69 65 73 25 20 8c 20  |EM%=memories% . |
00025870  4d 45 4d 25 3d 30 0d 13  bc 06 20 cd 0d 13 bd 0f  |MEM%=0.... .....|
00025880  20 fd 20 56 49 53 25 3d  33 32 30 0d 13 be 06 20  | . VIS%=320.... |
00025890  e1 0d 13 bf 04 0d 13 c0  19 20 dd 20 f2 77 61 76  |......... . .wav|
000258a0  65 66 6f 72 6d 5f 61 73  73 65 6d 62 6c 65 0d 13  |eform_assemble..|
000258b0  c1 19 20 de 20 77 61 76  65 66 6f 72 6d 5f 63 6f  |.. . waveform_co|
000258c0  64 65 25 20 34 30 30 0d  13 c2 11 20 e3 20 50 3d  |de% 400.... . P=|
000258d0  30 20 b8 20 32 20 88 32  0d 13 c3 16 20 50 25 3d  |0 . 2 .2.... P%=|
000258e0  77 61 76 65 66 6f 72 6d  5f 63 6f 64 65 25 0d 13  |waveform_code%..|
000258f0  c4 27 20 62 61 73 65 31  3d 33 3a 64 61 74 61 3d  |.' base1=3:data=|
00025900  34 3a 6f 66 66 73 65 74  31 3d 35 3a 6f 66 66 73  |4:offset1=5:offs|
00025910  65 74 32 3d 36 0d 13 c5  25 20 69 6e 63 72 65 6d  |et2=6...% increm|
00025920  65 6e 74 3d 37 3a 6c 69  6e 65 73 3d 38 3a 77 61  |ent=7:lines=8:wa|
00025930  76 65 5f 6c 69 6d 69 74  3d 39 0d 13 c6 14 20 62  |ve_limit=9.... b|
00025940  61 73 65 32 3d 31 30 3a  72 67 62 3d 31 31 0d 13  |ase2=10:rgb=11..|
00025950  c7 0b 20 5b 4f 50 54 20  50 0d 13 c8 3b 20 4c 44  |.. [OPT P...; LD|
00025960  52 20 62 61 73 65 31 2c  77 61 76 65 66 6f 72 6d  |R base1,waveform|
00025970  5f 73 6f 75 72 63 65 3a  4c 44 52 20 62 61 73 65  |_source:LDR base|
00025980  32 2c 77 61 76 65 66 6f  72 6d 5f 70 6c 6f 74 5f  |2,waveform_plot_|
00025990  62 61 73 65 0d 13 c9 41  20 4c 44 52 20 69 6e 63  |base...A LDR inc|
000259a0  72 65 6d 65 6e 74 2c 77  61 76 65 66 6f 72 6d 5f  |rement,waveform_|
000259b0  69 6e 63 72 65 6d 65 6e  74 3a 4d 4f 56 20 52 31  |increment:MOV R1|
000259c0  2c 23 31 32 38 30 3a 4d  4f 56 20 6c 69 6e 65 73  |,#1280:MOV lines|
000259d0  2c 23 32 35 36 0d 13 ca  40 20 4d 4f 56 20 6f 66  |,#256...@ MOV of|
000259e0  66 73 65 74 31 2c 23 30  3a 4d 4f 56 20 6f 66 66  |fset1,#0:MOV off|
000259f0  73 65 74 32 2c 23 30 3a  4c 44 52 20 77 61 76 65  |set2,#0:LDR wave|
00025a00  5f 6c 69 6d 69 74 2c 77  61 76 65 66 6f 72 6d 5f  |_limit,waveform_|
00025a10  6c 69 6d 69 74 0d 13 cb  19 20 4c 44 52 20 72 67  |limit.... LDR rg|
00025a20  62 2c 77 61 76 65 66 6f  72 6d 5f 72 67 62 0d 13  |b,waveform_rgb..|
00025a30  cc 0f 20 2e 77 61 76 65  5f 6c 6f 6f 70 0d 13 cd  |.. .wave_loop...|
00025a40  21 20 4c 44 52 20 62 61  73 65 32 2c 77 61 76 65  |! LDR base2,wave|
00025a50  66 6f 72 6d 5f 70 6c 6f  74 5f 62 61 73 65 0d 13  |form_plot_base..|
00025a60  ce 1d 20 4c 44 52 20 64  61 74 61 2c 5b 62 61 73  |.. LDR data,[bas|
00025a70  65 31 2c 6f 66 66 73 65  74 31 5d 0d 13 cf 22 20  |e1,offset1]..." |
00025a80  43 4d 50 20 72 67 62 2c  23 32 3a ec 51 20 64 61  |CMP rgb,#2:.Q da|
00025a90  74 61 2c 64 61 74 61 2c  4c 53 52 23 35 0d 13 d0  |ta,data,LSR#5...|
00025aa0  23 20 43 4d 50 20 72 67  62 2c 23 33 3a ec 51 20  |# CMP rgb,#3:.Q |
00025ab0  64 61 74 61 2c 64 61 74  61 2c 4c 53 52 23 31 30  |data,data,LSR#10|
00025ac0  0d 13 d1 12 20 80 20 52  30 2c 64 61 74 61 2c 23  |.... . R0,data,#|
00025ad0  33 31 0d 13 d2 29 20 4d  4f 56 20 64 61 74 61 2c  |31...) MOV data,|
00025ae0  64 61 74 61 2c 4c 53 52  23 31 36 3a 80 20 64 61  |data,LSR#16:. da|
00025af0  74 61 2c 64 61 74 61 2c  23 33 31 0d 13 d3 23 20  |ta,data,#31...# |
00025b00  41 44 44 20 52 30 2c 64  61 74 61 2c 52 30 3a 4d  |ADD R0,data,R0:M|
00025b10  4f 56 20 52 30 2c 52 30  2c 4c 53 4c 23 31 0d 13  |OV R0,R0,LSL#1..|
00025b20  d4 13 20 4d 55 4c 20 64  61 74 61 2c 52 30 2c 52  |.. MUL data,R0,R|
00025b30  31 0d 13 d5 18 20 53 55  42 20 64 61 74 61 2c 62  |1.... SUB data,b|
00025b40  61 73 65 32 2c 64 61 74  61 0d 13 d6 1a 20 4c 44  |ase2,data.... LD|
00025b50  52 20 52 30 2c 5b 64 61  74 61 2c 6f 66 66 73 65  |R R0,[data,offse|
00025b60  74 32 5d 0d 13 d7 16 20  43 4d 50 20 52 30 2c 77  |t2].... CMP R0,w|
00025b70  61 76 65 5f 6c 69 6d 69  74 0d 13 d8 30 20 41 44  |ave_limit...0 AD|
00025b80  44 4e 45 20 52 30 2c 52  30 2c 69 6e 63 72 65 6d  |DNE R0,R0,increm|
00025b90  65 6e 74 3a 53 54 52 20  52 30 2c 5b 64 61 74 61  |ent:STR R0,[data|
00025ba0  2c 6f 66 66 73 65 74 32  5d 0d 13 d9 2e 20 41 44  |,offset2].... AD|
00025bb0  44 20 64 61 74 61 2c 64  61 74 61 2c 23 31 32 38  |D data,data,#128|
00025bc0  30 3a 53 54 52 20 52 30  2c 5b 64 61 74 61 2c 6f  |0:STR R0,[data,o|
00025bd0  66 66 73 65 74 32 5d 0d  13 da 33 20 41 44 44 20  |ffset2]...3 ADD |
00025be0  6f 66 66 73 65 74 31 2c  6f 66 66 73 65 74 31 2c  |offset1,offset1,|
00025bf0  23 31 36 3a 41 44 44 20  6f 66 66 73 65 74 32 2c  |#16:ADD offset2,|
00025c00  6f 66 66 73 65 74 32 2c  23 34 0d 13 db 23 20 43  |offset2,#4...# C|
00025c10  4d 50 20 6f 66 66 73 65  74 32 2c 23 33 32 30 3a  |MP offset2,#320:|
00025c20  42 4e 45 20 77 61 76 65  5f 6c 6f 6f 70 0d 13 dc  |BNE wave_loop...|
00025c30  22 20 4d 4f 56 20 6f 66  66 73 65 74 31 2c 23 30  |" MOV offset1,#0|
00025c40  3a 4d 4f 56 20 6f 66 66  73 65 74 32 2c 23 30 0d  |:MOV offset2,#0.|
00025c50  13 dd 3c 20 41 44 44 20  62 61 73 65 31 2c 62 61  |..< ADD base1,ba|
00025c60  73 65 31 2c 23 32 35 36  30 3a 53 55 42 53 20 6c  |se1,#2560:SUBS l|
00025c70  69 6e 65 73 2c 6c 69 6e  65 73 2c 23 31 3a 42 4e  |ines,lines,#1:BN|
00025c80  45 20 77 61 76 65 5f 6c  6f 6f 70 0d 13 de 04 0d  |E wave_loop.....|
00025c90  13 df 0f 20 2e 77 61 76  65 5f 65 78 69 74 0d 13  |... .wave_exit..|
00025ca0  e0 0f 20 4d 4f 56 20 50  43 2c 52 31 34 0d 13 e1  |.. MOV PC,R14...|
00025cb0  04 0d 13 e2 1f 20 2e 77  61 76 65 66 6f 72 6d 5f  |..... .waveform_|
00025cc0  73 6f 75 72 63 65 20 20  20 20 45 51 55 44 20 30  |source    EQUD 0|
00025cd0  0d 13 e3 1f 20 2e 77 61  76 65 66 6f 72 6d 5f 70  |.... .waveform_p|
00025ce0  6c 6f 74 5f 62 61 73 65  20 45 51 55 44 20 30 0d  |lot_base EQUD 0.|
00025cf0  13 e4 27 20 2e 77 61 76  65 66 6f 72 6d 5f 69 6e  |..' .waveform_in|
00025d00  63 72 65 6d 65 6e 74 20  45 51 55 44 20 26 30 30  |crement EQUD &00|
00025d10  32 30 30 30 32 30 0d 13  e5 27 20 2e 77 61 76 65  |200020...' .wave|
00025d20  66 6f 72 6d 5f 6c 69 6d  69 74 20 20 20 20 20 45  |form_limit     E|
00025d30  51 55 44 20 26 30 33 45  30 30 33 45 30 0d 13 e6  |QUD &03E003E0...|
00025d40  1f 20 2e 77 61 76 65 66  6f 72 6d 5f 72 67 62 20  |. .waveform_rgb |
00025d50  20 20 20 20 20 20 45 51  55 44 20 30 0d 13 e7 04  |      EQUD 0....|
00025d60  0d 13 e8 06 20 5d 0d 13  e9 06 20 ed 0d 13 ea 06  |.... ].... .....|
00025d70  20 e1 0d 13 eb 04 0d 13  ec 18 20 dd 20 f2 77 61  | ......... . .wa|
00025d80  76 65 66 6f 72 6d 5f 6d  6f 6e 69 74 6f 72 0d 13  |veform_monitor..|
00025d90  ed 0c 20 65 78 69 74 25  3d 30 0d 13 ee 06 20 f5  |.. exit%=0.... .|
00025da0  0d 13 ef 14 20 f2 64 69  73 70 6c 61 79 5f 6d 65  |.... .display_me|
00025db0  6d 6f 72 79 0d 13 f0 22  20 e6 20 36 34 2c 36 34  |mory..." . 64,64|
00025dc0  2c 36 34 3a c8 93 20 c8  90 20 30 2c 30 2c 31 32  |,64:.. .. 0,0,12|
00025dd0  38 30 2c 33 32 30 0d 13  f1 23 20 e6 20 31 32 38  |80,320...# . 128|
00025de0  2c 31 32 38 2c 31 32 38  3a 86 20 30 2c 33 32 30  |,128,128:. 0,320|
00025df0  2c 31 32 38 30 2c 33 32  30 0d 13 f2 0c 20 e6 20  |,1280,320.... . |
00025e00  30 2c 30 2c 30 0d 13 f3  18 20 c8 93 20 c8 90 20  |0,0,0.... .. .. |
00025e10  32 30 2c 31 34 2c 33 31  38 2c 32 35 34 0d 13 f4  |20,14,318,254...|
00025e20  19 20 c8 93 20 c8 90 20  33 34 38 2c 31 34 2c 33  |. .. .. 348,14,3|
00025e30  31 38 2c 32 35 34 0d 13  f5 19 20 c8 93 20 c8 90  |18,254.... .. ..|
00025e40  20 36 37 36 2c 31 34 2c  33 31 38 2c 32 35 34 0d  | 676,14,318,254.|
00025e50  13 f6 2c 20 f2 72 61 69  73 65 64 5f 62 6c 6f 63  |.., .raised_bloc|
00025e60  6b 28 31 30 36 30 2c 32  30 2c 31 36 30 2c 35 30  |k(1060,20,160,50|
00025e70  29 20 3a f4 20 43 61 6e  63 65 6c 0d 13 f7 2c 20  |) :. Cancel..., |
00025e80  f2 72 61 69 73 65 64 5f  62 6c 6f 63 6b 28 31 30  |.raised_block(10|
00025e90  36 30 2c 31 30 30 2c 31  36 30 2c 35 30 29 3a f4  |60,100,160,50):.|
00025ea0  20 55 70 6c 6f 61 64 0d  13 f8 20 20 f2 77 72 69  | Upload...  .wri|
00025eb0  74 65 32 28 22 43 61 6e  63 65 6c 22 2c 31 30 38  |te2("Cancel",108|
00025ec0  30 2c 32 38 2c 34 29 0d  13 f9 21 20 f2 77 72 69  |0,28,4)...! .wri|
00025ed0  74 65 32 28 22 55 70 6c  6f 61 64 22 2c 31 30 38  |te2("Upload",108|
00025ee0  30 2c 31 30 38 2c 34 29  0d 13 fa 1d 20 f2 77 72  |0,108,4).... .wr|
00025ef0  69 74 65 32 28 22 52 45  44 22 2c 31 34 34 2c 32  |ite2("RED",144,2|
00025f00  37 34 2c 31 29 0d 13 fb  1f 20 f2 77 72 69 74 65  |74,1).... .write|
00025f10  32 28 22 47 52 45 45 4e  22 2c 34 35 38 2c 32 37  |2("GREEN",458,27|
00025f20  34 2c 31 29 0d 13 fc 1e  20 f2 77 72 69 74 65 32  |4,1).... .write2|
00025f30  28 22 42 4c 55 45 22 2c  37 39 34 2c 32 37 34 2c  |("BLUE",794,274,|
00025f40  31 29 0d 13 fd 04 0d 13  fe 09 20 6d 25 3d 31 0d  |1)........ m%=1.|
00025f50  13 ff 1a 20 e3 20 58 25  3d 31 30 33 30 20 b8 20  |... . X%=1030 . |
00025f60  31 32 31 30 20 88 20 36  30 0d 14 00 39 20 f2 72  |1210 . 60...9 .r|
00025f70  61 69 73 65 64 5f 62 6c  6f 63 6b 28 58 25 2c 32  |aised_block(X%,2|
00025f80  35 30 2c 34 30 2c 34 30  29 3a f2 77 72 69 74 65  |50,40,40):.write|
00025f90  32 28 c3 20 6d 25 2c 58  25 2d 32 2c 32 35 34 2c  |2(. m%,X%-2,254,|
00025fa0  34 29 0d 14 01 3c 20 f2  72 61 69 73 65 64 5f 62  |4)...< .raised_b|
00025fb0  6c 6f 63 6b 28 58 25 2c  31 39 30 2c 34 30 2c 34  |lock(X%,190,40,4|
00025fc0  30 29 3a f2 77 72 69 74  65 32 28 c3 28 6d 25 2b  |0):.write2(.(m%+|
00025fd0  34 29 2c 58 25 2d 32 2c  31 39 34 2c 34 29 0d 14  |4),X%-2,194,4)..|
00025fe0  02 0c 20 6d 25 2b 3d 31  3a ed 0d 14 03 04 0d 14  |.. m%+=1:.......|
00025ff0  04 11 20 e6 20 33 2c 36  33 20 c8 9c 31 39 32 0d  |.. . 3,63 ..192.|
00026000  14 05 0e 20 c8 8e 20 4d  45 4d 25 20 ca 0d 14 06  |... .. MEM% ....|
00026010  1d 20 c9 20 30 3a c8 93  20 c8 90 20 31 30 32 36  |. . 0:.. .. 1026|
00026020  2c 32 34 36 2c 34 36 2c  34 38 0d 14 07 1d 20 c9  |,246,46,48.... .|
00026030  20 31 3a c8 93 20 c8 90  20 31 30 38 36 2c 32 34  | 1:.. .. 1086,24|
00026040  36 2c 34 36 2c 34 38 0d  14 08 1d 20 c9 20 32 3a  |6,46,48.... . 2:|
00026050  c8 93 20 c8 90 20 31 31  34 36 2c 32 34 36 2c 34  |.. .. 1146,246,4|
00026060  36 2c 34 38 0d 14 09 1d  20 c9 20 33 3a c8 93 20  |6,48.... . 3:.. |
00026070  c8 90 20 31 32 30 36 2c  32 34 36 2c 34 36 2c 34  |.. 1206,246,46,4|
00026080  38 0d 14 0a 1d 20 c9 20  34 3a c8 93 20 c8 90 20  |8.... . 4:.. .. |
00026090  31 30 32 36 2c 31 38 36  2c 34 36 2c 34 38 0d 14  |1026,186,46,48..|
000260a0  0b 1d 20 c9 20 35 3a c8  93 20 c8 90 20 31 30 38  |.. . 5:.. .. 108|
000260b0  36 2c 31 38 36 2c 34 36  2c 34 38 0d 14 0c 1d 20  |6,186,46,48.... |
000260c0  c9 20 36 3a c8 93 20 c8  90 20 31 31 34 36 2c 31  |. 6:.. .. 1146,1|
000260d0  38 36 2c 34 36 2c 34 38  0d 14 0d 1d 20 c9 20 37  |86,46,48.... . 7|
000260e0  3a c8 93 20 c8 90 20 31  32 30 36 2c 31 38 36 2c  |:.. .. 1206,186,|
000260f0  34 36 2c 34 38 0d 14 0e  06 20 cb 0d 14 0f 04 0d  |46,48.... ......|
00026100  14 10 3c 20 21 77 61 76  65 66 6f 72 6d 5f 69 6e  |..< !waveform_in|
00026110  63 72 65 6d 65 6e 74 3d  26 30 30 34 30 30 30 34  |crement=&0040004|
00026120  30 3a 21 77 61 76 65 66  6f 72 6d 5f 6c 69 6d 69  |0:!waveform_limi|
00026130  74 3d 26 30 33 43 30 30  33 43 30 0d 14 11 1c 20  |t=&03C003C0.... |
00026140  21 77 61 76 65 66 6f 72  6d 5f 72 67 62 3d 31 20  |!waveform_rgb=1 |
00026150  3a 20 f4 20 52 45 44 0d  14 12 22 20 21 77 61 76  |: . RED..." !wav|
00026160  65 66 6f 72 6d 5f 73 6f  75 72 63 65 3d 6d 65 6d  |eform_source=mem|
00026170  62 6c 6f 63 6b 25 2b 32  30 0d 14 13 27 20 21 77  |block%+20...' !w|
00026180  61 76 65 66 6f 72 6d 5f  70 6c 6f 74 5f 62 61 73  |aveform_plot_bas|
00026190  65 3d 73 63 72 65 65 6e  25 2b 36 34 32 35 38 30  |e=screen%+642580|
000261a0  0d 14 14 15 20 d6 20 77  61 76 65 66 6f 72 6d 5f  |.... . waveform_|
000261b0  63 6f 64 65 25 0d 14 15  1e 20 21 77 61 76 65 66  |code%.... !wavef|
000261c0  6f 72 6d 5f 72 67 62 3d  32 20 3a 20 f4 20 47 52  |orm_rgb=2 : . GR|
000261d0  45 45 4e 0d 14 16 2b 20  21 77 61 76 65 66 6f 72  |EEN...+ !wavefor|
000261e0  6d 5f 70 6c 6f 74 5f 62  61 73 65 3d 73 63 72 65  |m_plot_base=scre|
000261f0  65 6e 25 2b 36 34 32 36  30 30 2b 33 31 30 0d 14  |en%+642600+310..|
00026200  17 15 20 d6 20 77 61 76  65 66 6f 72 6d 5f 63 6f  |.. . waveform_co|
00026210  64 65 25 0d 14 18 1d 20  21 77 61 76 65 66 6f 72  |de%.... !wavefor|
00026220  6d 5f 72 67 62 3d 33 20  3a 20 f4 20 42 4c 55 45  |m_rgb=3 : . BLUE|
00026230  0d 14 19 2b 20 21 77 61  76 65 66 6f 72 6d 5f 70  |...+ !waveform_p|
00026240  6c 6f 74 5f 62 61 73 65  3d 73 63 72 65 65 6e 25  |lot_base=screen%|
00026250  2b 36 34 32 36 30 30 2b  36 33 36 0d 14 1a 15 20  |+642600+636.... |
00026260  d6 20 77 61 76 65 66 6f  72 6d 5f 63 6f 64 65 25  |. waveform_code%|
00026270  0d 14 1b 04 0d 14 1c 10  20 e6 20 35 30 20 c8 9c  |........ . 50 ..|
00026280  20 31 39 32 0d 14 1d 2f  20 e3 20 59 3d 33 39 2e  | 192.../ . Y=39.|
00026290  34 20 b8 20 32 34 32 2e  36 20 88 32 35 2e 34 3a  |4 . 242.6 .25.4:|
000262a0  ec 20 31 38 2c 59 3a f0  20 31 37 2c 39 37 38 2c  |. 18,Y:. 17,978,|
000262b0  30 3a ed 0d 14 1e 29 20  e3 20 58 3d 31 38 20 b8  |0:....) . X=18 .|
000262c0  20 39 38 30 20 88 38 32  3a ec 20 58 2c 31 36 3a  | 980 .82:. X,16:|
000262d0  f0 20 31 37 2c 30 2c 32  35 32 3a ed 0d 14 1f 04  |. 17,0,252:.....|
000262e0  0d 14 20 14 20 f2 77 61  69 74 5f 6e 6f 5f 62 75  |.. . .wait_no_bu|
000262f0  74 74 6f 6e 0d 14 21 26  20 f5 3a c8 97 20 58 2c  |tton..!& .:.. X,|
00026300  59 2c 42 3a 4b 24 3d bf  28 31 29 3a fd 20 42 3d  |Y,B:K$=.(1):. B=|
00026310  34 20 84 20 4b 24 3c 3e  22 22 0d 14 22 0f 20 e7  |4 . K$<>""..". .|
00026320  20 4b 24 3c 3e 22 22 20  8c 0d 14 23 15 20 20 58  | K$<>"" ...#.  X|
00026330  3d 30 3a 6d 25 3d 97 28  4b 24 29 2d 34 39 0d 14  |=0:m%=.(K$)-49..|
00026340  24 41 20 20 e7 20 6d 25  3e 2d 31 20 80 20 6d 25  |$A  . m%>-1 . m%|
00026350  3c 6d 65 6d 6f 72 69 65  73 25 20 f2 6d 65 6d 6f  |<memories% .memo|
00026360  72 79 5f 73 65 6c 65 63  74 28 6d 25 2c 30 29 3a  |ry_select(m%,0):|
00026370  f2 64 69 73 70 6c 61 79  5f 6d 65 6d 6f 72 79 0d  |.display_memory.|
00026380  14 25 07 20 20 cd 0d 14  26 04 0d 14 27 0c 20 e7  |.%.  ...&...'. .|
00026390  20 42 3d 34 20 8c 0d 14  28 04 0d 14 29 0b 20 20  | B=4 ...(...).  |
000263a0  6d 25 3d 39 39 0d 14 2a  2a 20 20 e7 20 a4 63 68  |m%=99..**  . .ch|
000263b0  65 63 6b 5f 62 75 74 74  6f 6e 28 31 30 33 30 2c  |eck_button(1030,|
000263c0  32 35 30 2c 34 30 2c 34  30 29 20 6d 25 3d 30 0d  |250,40,40) m%=0.|
000263d0  14 2b 2a 20 20 e7 20 a4  63 68 65 63 6b 5f 62 75  |.+*  . .check_bu|
000263e0  74 74 6f 6e 28 31 30 39  30 2c 32 35 30 2c 34 30  |tton(1090,250,40|
000263f0  2c 34 30 29 20 6d 25 3d  31 0d 14 2c 2a 20 20 e7  |,40) m%=1..,*  .|
00026400  20 a4 63 68 65 63 6b 5f  62 75 74 74 6f 6e 28 31  | .check_button(1|
00026410  31 35 30 2c 32 35 30 2c  34 30 2c 34 30 29 20 6d  |150,250,40,40) m|
00026420  25 3d 32 0d 14 2d 2a 20  20 e7 20 a4 63 68 65 63  |%=2..-*  . .chec|
00026430  6b 5f 62 75 74 74 6f 6e  28 31 32 31 30 2c 32 35  |k_button(1210,25|
00026440  30 2c 34 30 2c 34 30 29  20 6d 25 3d 33 0d 14 2e  |0,40,40) m%=3...|
00026450  2a 20 20 e7 20 a4 63 68  65 63 6b 5f 62 75 74 74  |*  . .check_butt|
00026460  6f 6e 28 31 30 33 30 2c  31 39 30 2c 34 30 2c 34  |on(1030,190,40,4|
00026470  30 29 20 6d 25 3d 34 0d  14 2f 2a 20 20 e7 20 a4  |0) m%=4../*  . .|
00026480  63 68 65 63 6b 5f 62 75  74 74 6f 6e 28 31 30 39  |check_button(109|
00026490  30 2c 31 39 30 2c 34 30  2c 34 30 29 20 6d 25 3d  |0,190,40,40) m%=|
000264a0  35 0d 14 30 2a 20 20 e7  20 a4 63 68 65 63 6b 5f  |5..0*  . .check_|
000264b0  62 75 74 74 6f 6e 28 31  31 35 30 2c 31 39 30 2c  |button(1150,190,|
000264c0  34 30 2c 34 30 29 20 6d  25 3d 36 0d 14 31 2a 20  |40,40) m%=6..1* |
000264d0  20 e7 20 a4 63 68 65 63  6b 5f 62 75 74 74 6f 6e  | . .check_button|
000264e0  28 31 32 31 30 2c 31 39  30 2c 34 30 2c 34 30 29  |(1210,190,40,40)|
000264f0  20 6d 25 3d 37 0d 14 32  39 20 20 e7 20 6d 25 3c  | m%=7..29  . m%<|
00026500  6d 65 6d 6f 72 69 65 73  25 20 f2 6d 65 6d 6f 72  |memories% .memor|
00026510  79 5f 73 65 6c 65 63 74  28 6d 25 2c 30 29 3a f2  |y_select(m%,0):.|
00026520  64 69 73 70 6c 61 79 5f  6d 65 6d 6f 72 79 0d 14  |display_memory..|
00026530  33 04 0d 14 34 28 20 20  e7 20 a4 63 68 65 63 6b  |3...4(  . .check|
00026540  5f 62 75 74 74 6f 6e 28  31 30 36 30 2c 31 30 30  |_button(1060,100|
00026550  2c 31 36 30 2c 35 30 29  20 8c 0d 14 35 1c 20 20  |,160,50) ...5.  |
00026560  f2 75 70 6c 6f 61 64 5f  6d 65 6d 6f 72 79 3a 65  |.upload_memory:e|
00026570  78 69 74 25 3d b9 0d 14  36 07 20 20 cd 0d 14 37  |xit%=...6.  ...7|
00026580  04 0d 14 38 27 20 20 e7  20 a4 63 68 65 63 6b 5f  |...8'  . .check_|
00026590  62 75 74 74 6f 6e 28 31  30 36 30 2c 32 30 2c 31  |button(1060,20,1|
000265a0  36 30 2c 35 30 29 20 8c  0d 14 39 1d 20 20 f2 64  |60,50) ...9.  .d|
000265b0  69 73 70 6c 61 79 5f 6d  65 6d 6f 72 79 3a 65 78  |isplay_memory:ex|
000265c0  69 74 25 3d b9 0d 14 3a  07 20 20 cd 0d 14 3b 04  |it%=...:.  ...;.|
000265d0  0d 14 3c 06 20 cd 0d 14  3d 04 0d 14 3e 0c 20 fd  |..<. ...=...>. .|
000265e0  20 65 78 69 74 25 0d 14  3f 06 20 e1 0d 14 40 04  | exit%..?. ...@.|
000265f0  0d 14 41 14 20 dd 20 f2  73 65 67 6d 65 6e 74 5f  |..A. . .segment_|
00026600  6d 65 6e 75 0d 14 42 1f  20 6d 65 6e 75 24 28 30  |menu..B. menu$(0|
00026610  29 3d 22 53 65 67 6d 65  6e 74 20 67 72 61 64 73  |)="Segment grads|
00026620  20 20 22 0d 14 43 1d 20  6d 65 6e 75 24 28 31 29  |  "..C. menu$(1)|
00026630  3d 22 50 72 65 73 65 74  20 74 79 70 65 20 31 22  |="Preset type 1"|
00026640  0d 14 44 1d 20 6d 65 6e  75 24 28 32 29 3d 22 50  |..D. menu$(2)="P|
00026650  72 65 73 65 74 20 74 79  70 65 20 32 22 0d 14 45  |reset type 2"..E|
00026660  1d 20 6d 65 6e 75 24 28  33 29 3d 22 50 72 65 73  |. menu$(3)="Pres|
00026670  65 74 20 74 79 70 65 20  33 22 0d 14 46 1d 20 6d  |et type 3"..F. m|
00026680  65 6e 75 24 28 34 29 3d  22 50 72 65 73 65 74 20  |enu$(4)="Preset |
00026690  74 79 70 65 20 34 22 0d  14 47 1c 20 6d 65 6e 75  |type 4"..G. menu|
000266a0  24 28 35 29 3d 22 55 73  65 72 20 64 65 66 69 6e  |$(5)="User defin|
000266b0  65 64 22 0d 14 48 20 20  6d 65 6e 75 24 28 36 29  |ed"..H  menu$(6)|
000266c0  3d 22 2a 22 3a f2 6d 65  6e 75 28 30 2c 39 30 2c  |="*":.menu(0,90,|
000266d0  2d 31 29 0d 14 49 13 20  c8 8e 20 6d 65 6e 75 5f  |-1)..I. .. menu_|
000266e0  62 6f 78 25 20 ca 0d 14  4a 16 20 c9 20 31 3a 52  |box% ...J. . 1:R|
000266f0  3d 32 35 35 3a 47 3d 30  3a 42 3d 30 0d 14 4b 1a  |=255:G=0:B=0..K.|
00026700  20 c9 20 32 3a 52 3d 31  32 38 3a 47 3d 31 32 38  | . 2:R=128:G=128|
00026710  3a 42 3d 31 32 38 0d 14  4c 1a 20 c9 20 33 3a 52  |:B=128..L. . 3:R|
00026720  3d 31 32 38 3a 47 3d 31  32 38 3a 42 3d 32 35 35  |=128:G=128:B=255|
00026730  0d 14 4d 18 20 c9 20 34  3a 52 3d 30 3a 47 3d 32  |..M. . 4:R=0:G=2|
00026740  35 35 3a 42 3d 31 32 38  0d 14 4e 2d 20 c9 20 35  |55:B=128..N- . 5|
00026750  3a f2 72 67 62 5f 73 6c  69 64 65 72 73 28 30 29  |:.rgb_sliders(0)|
00026760  3a 52 3d 72 65 64 25 3a  47 3d 67 72 6e 25 3a 42  |:R=red%:G=grn%:B|
00026770  3d 62 6c 75 25 0d 14 4f  06 20 cb 0d 14 50 2a 20  |=blu%..O. ...P* |
00026780  e7 20 6d 65 6e 75 5f 62  6f 78 25 3c 3e 39 39 20  |. menu_box%<>99 |
00026790  8c 20 f2 73 65 67 6d 65  6e 74 5f 62 61 63 6b 67  |. .segment_backg|
000267a0  72 6f 75 6e 64 0d 14 51  06 20 e1 0d 14 52 04 0d  |round..Q. ...R..|
000267b0  14 53 1a 20 dd 20 f2 73  65 67 6d 65 6e 74 5f 62  |.S. . .segment_b|
000267c0  61 63 6b 67 72 6f 75 6e  64 0d 14 54 14 20 f2 77  |ackground..T. .w|
000267d0  61 69 74 5f 6e 6f 5f 62  75 74 74 6f 6e 0d 14 55  |ait_no_button..U|
000267e0  23 20 e6 20 36 34 2c 36  34 2c 36 34 3a c8 93 20  |# . 64,64,64:.. |
000267f0  c8 90 20 30 2c 30 2c 31  32 38 30 2c 31 30 32 34  |.. 0,0,1280,1024|
00026800  0d 14 56 23 20 f2 72 61  69 73 65 64 5f 62 6c 6f  |..V# .raised_blo|
00026810  63 6b 28 33 31 30 2c 31  38 34 2c 36 30 30 2c 31  |ck(310,184,600,1|
00026820  30 30 29 0d 14 57 3e 20  f2 77 72 69 74 65 32 28  |00)..W> .write2(|
00026830  22 4d 6f 76 65 20 6d 6f  75 73 65 20 70 6f 69 6e  |"Move mouse poin|
00026840  74 65 72 20 74 6f 20 64  65 73 69 72 65 64 20 63  |ter to desired c|
00026850  65 6e 74 72 65 22 2c 33  32 30 2c 32 34 30 2c 34  |entre",320,240,4|
00026860  29 0d 14 58 43 20 f2 77  72 69 74 65 32 28 22 74  |)..XC .write2("t|
00026870  68 65 6e 20 63 6c 69 63  6b 20 73 65 6c 65 63 74  |hen click select|
00026880  20 2d 20 63 6c 69 63 6b  20 61 64 6a 75 73 74 20  | - click adjust |
00026890  74 6f 20 61 62 6f 72 74  22 2c 33 32 30 2c 32 30  |to abort",320,20|
000268a0  30 2c 34 29 0d 14 59 1e  20 f5 3a c8 97 20 78 2c  |0,4)..Y. .:.. x,|
000268b0  79 2c 62 3a fd 20 62 3c  3e 30 3a e7 20 62 3d 34  |y,b:. b<>0:. b=4|
000268c0  20 8c 0d 14 5a 17 20 c8  91 20 78 2c 79 3a ec 20  | ...Z. .. x,y:. |
000268d0  78 2c 79 3a ec 20 78 2c  79 0d 14 5b 21 20 52 49  |x,y:. x,y..[! RI|
000268e0  3d 32 3a 47 49 3d 31 3a  42 49 3d 33 3a 68 69 25  |=2:GI=1:BI=3:hi%|
000268f0  3d 32 35 35 3a 6c 6f 25  3d 30 0d 14 5c 13 20 73  |=255:lo%=0..\. s|
00026900  74 65 70 3d 28 32 2a af  29 2f 35 31 32 0d 14 5d  |tep=(2*.)/512..]|
00026910  1c 20 e3 20 41 3d 30 20  b8 20 32 2a af 2b 73 74  |. . A=0 . 2*.+st|
00026920  65 70 20 88 20 73 74 65  70 0d 14 5e 22 20 e6 20  |ep . step..^" . |
00026930  52 2c 47 2c 42 3a 58 3d  31 36 34 30 2a 9b 20 41  |R,G,B:X=1640*. A|
00026940  3a 59 3d 31 36 34 30 2a  b5 20 41 0d 14 5f 28 20  |:Y=1640*. A.._( |
00026950  58 32 3d 31 36 34 30 2a  9b 28 41 2b 73 74 65 70  |X2=1640*.(A+step|
00026960  29 3a 59 32 3d 31 36 34  30 2a b5 28 41 2b 73 74  |):Y2=1640*.(A+st|
00026970  65 70 29 0d 14 60 1a 20  f0 20 26 42 35 2c 58 32  |ep)..`. . &B5,X2|
00026980  2c 59 32 3a 86 20 30 2c  30 2c 58 2c 59 0d 14 61  |,Y2:. 0,0,X,Y..a|
00026990  0a 20 52 2b 3d 52 49 0d  14 62 1b 20 e7 20 52 3e  |. R+=RI..b. . R>|
000269a0  68 69 25 20 8c 20 52 3d  68 69 25 3a 52 49 3d 2d  |hi% . R=hi%:RI=-|
000269b0  52 49 0d 14 63 1b 20 e7  20 52 3c 6c 6f 25 20 8c  |RI..c. . R<lo% .|
000269c0  20 52 3d 6c 6f 25 3a 52  49 3d 2d 52 49 0d 14 64  | R=lo%:RI=-RI..d|
000269d0  0a 20 47 2b 3d 47 49 0d  14 65 1b 20 e7 20 47 3e  |. G+=GI..e. . G>|
000269e0  68 69 25 20 8c 20 47 3d  68 69 25 3a 47 49 3d 2d  |hi% . G=hi%:GI=-|
000269f0  47 49 0d 14 66 1b 20 e7  20 47 3c 6c 6f 25 20 8c  |GI..f. . G<lo% .|
00026a00  20 47 3d 6c 6f 25 3a 47  49 3d 2d 47 49 0d 14 67  | G=lo%:GI=-GI..g|
00026a10  0a 20 42 2b 3d 42 49 0d  14 68 1b 20 e7 20 42 3e  |. B+=BI..h. . B>|
00026a20  68 69 25 20 8c 20 42 3d  68 69 25 3a 42 49 3d 2d  |hi% . B=hi%:BI=-|
00026a30  42 49 0d 14 69 1b 20 e7  20 42 3c 6c 6f 25 20 8c  |BI..i. . B<lo% .|
00026a40  20 42 3d 6c 6f 25 3a 42  49 3d 2d 42 49 0d 14 6a  | B=lo%:BI=-BI..j|
00026a50  0d 20 ed 3a c8 91 20 30  2c 30 0d 14 6b 21 20 e7  |. .:.. 0,0..k! .|
00026a60  20 ac 28 6d 65 72 67 65  25 29 20 8c 20 f2 75 70  | .(merge%) . .up|
00026a70  6c 6f 61 64 5f 6d 65 6d  6f 72 79 0d 14 6c 06 20  |load_memory..l. |
00026a80  cd 0d 14 6d 06 20 e1 0d  14 6e 04 0d 14 6f 11 20  |...m. ...n...o. |
00026a90  dd 20 f2 70 69 78 65 6c  5f 72 67 62 0d 14 70 0e  |. .pixel_rgb..p.|
00026aa0  20 78 25 3d 30 3a 79 25  3d 30 0d 14 71 06 20 f5  | x%=0:y%=0..q. .|
00026ab0  0d 14 72 24 20 f2 64 69  73 70 6c 61 79 5f 6d 65  |..r$ .display_me|
00026ac0  6d 6f 72 79 3a f2 77 61  69 74 5f 6e 6f 5f 62 75  |mory:.wait_no_bu|
00026ad0  74 74 6f 6e 0d 14 73 27  20 f2 72 61 69 73 65 64  |tton..s' .raised|
00026ae0  5f 62 6c 6f 63 6b 28 35  35 30 2b 78 25 2c 38 2b  |_block(550+x%,8+|
00026af0  79 25 2c 31 36 30 2c 31  30 38 29 0d 14 74 2c 20  |y%,160,108)..t, |
00026b00  e6 20 32 32 30 2c 32 32  30 2c 31 32 30 3a c8 93  |. 220,220,120:..|
00026b10  20 c8 90 20 35 35 30 2b  78 25 2c 38 34 2b 79 25  | .. 550+x%,84+y%|
00026b20  2c 31 35 38 2c 33 30 0d  14 75 29 20 f2 77 72 69  |,158,30..u) .wri|
00026b30  74 65 32 28 22 52 47 42  20 76 61 6c 75 65 73 22  |te2("RGB values"|
00026b40  2c 35 34 34 2b 78 25 2c  38 34 2b 79 25 2c 34 29  |,544+x%,84+y%,4)|
00026b50  0d 14 76 28 20 f2 77 72  69 74 65 32 28 22 52 20  |..v( .write2("R |
00026b60  20 20 47 20 20 20 42 22  2c 35 35 36 2b 78 25 2c  |  G   B",556+x%,|
00026b70  34 34 2b 79 25 2c 34 29  0d 14 77 0f 20 c8 97 20  |44+y%,4)..w. .. |
00026b80  58 31 2c 59 31 2c 42 0d  14 78 06 20 f5 0d 14 79  |X1,Y1,B..x. ...y|
00026b90  26 20 f5 3a c8 97 20 58  2c 59 2c 42 3a fd 20 58  |& .:.. X,Y,B:. X|
00026ba0  3c 3e 58 31 20 84 20 59  3c 3e 59 31 20 84 20 42  |<>X1 . Y<>Y1 . B|
00026bb0  3c 3e 30 0d 14 7a 19 20  72 67 62 25 3d b0 58 2c  |<>0..z. rgb%=.X,|
00026bc0  59 29 3a 58 31 3d 58 3a  59 31 3d 59 0d 14 7b 30  |Y):X1=X:Y1=Y..{0|
00026bd0  20 72 25 3d 72 67 62 25  80 33 31 3a 67 25 3d 28  | r%=rgb%.31:g%=(|
00026be0  72 67 62 25 3e 3e 35 29  80 33 31 3a 62 25 3d 28  |rgb%>>5).31:b%=(|
00026bf0  72 67 62 25 3e 3e 31 30  29 80 33 31 0d 14 7c 23  |rgb%>>10).31..|#|
00026c00  20 72 24 3d c3 28 72 25  29 3a e7 20 a9 28 72 24  | r$=.(r%):. .(r$|
00026c10  29 3c 32 20 8c 20 72 24  3d 22 30 22 2b 72 24 0d  |)<2 . r$="0"+r$.|
00026c20  14 7d 23 20 67 24 3d c3  28 67 25 29 3a e7 20 a9  |.}# g$=.(g%):. .|
00026c30  28 67 24 29 3c 32 20 8c  20 67 24 3d 22 30 22 2b  |(g$)<2 . g$="0"+|
00026c40  67 24 0d 14 7e 23 20 62  24 3d c3 28 62 25 29 3a  |g$..~# b$=.(b%):|
00026c50  e7 20 a9 28 62 24 29 3c  32 20 8c 20 62 24 3d 22  |. .(b$)<2 . b$="|
00026c60  30 22 2b 62 24 0d 14 7f  2c 20 e6 20 32 30 38 2c  |0"+b$..., . 208,|
00026c70  32 30 38 2c 32 31 36 3a  c8 93 20 c8 90 20 35 36  |208,216:.. .. 56|
00026c80  30 2b 78 25 2c 31 34 2b  79 25 2c 31 34 30 2c 32  |0+x%,14+y%,140,2|
00026c90  38 0d 14 80 1f 20 f2 77  72 69 74 65 32 28 72 24  |8.... .write2(r$|
00026ca0  2c 35 35 30 2b 78 25 2c  31 30 2b 79 25 2c 34 29  |,550+x%,10+y%,4)|
00026cb0  0d 14 81 1f 20 f2 77 72  69 74 65 32 28 67 24 2c  |.... .write2(g$,|
00026cc0  36 30 30 2b 78 25 2c 31  30 2b 79 25 2c 34 29 0d  |600+x%,10+y%,4).|
00026cd0  14 82 1f 20 f2 77 72 69  74 65 32 28 62 24 2c 36  |... .write2(b$,6|
00026ce0  35 30 2b 78 25 2c 31 30  2b 79 25 2c 34 29 0d 14  |50+x%,10+y%,4)..|
00026cf0  83 0b 20 fd 20 42 3c 3e  30 0d 14 84 18 20 e7 20  |.. . B<>0.... . |
00026d00  42 3d 34 20 8c 20 79 25  3d 79 25 20 82 20 38 39  |B=4 . y%=y% . 89|
00026d10  34 0d 14 85 1a 20 fd 20  42 3d 31 3a f2 64 69 73  |4.... . B=1:.dis|
00026d20  70 6c 61 79 5f 6d 65 6d  6f 72 79 0d 14 86 06 20  |play_memory.... |
00026d30  e1 0d 14 87 04 0d 14 88  13 20 dd 20 f2 6d 6f 64  |......... . .mod|
00026d40  65 28 6d 6f 64 65 24 29  0d 14 89 18 20 ea 20 63  |e(mode$).... . c|
00026d50  24 2c 65 78 2c 65 79 2c  6d 6f 64 65 2c 65 6e 64  |$,ex,ey,mode,end|
00026d60  0d 14 8a 22 20 de 20 6d  6f 64 65 20 36 34 3a 65  |..." . mode 64:e|
00026d70  6e 64 3d 6d 6f 64 65 2b  32 30 3a 21 6d 6f 64 65  |nd=mode+20:!mode|
00026d80  3d 31 0d 14 8b 1f 20 6d  6f 64 65 21 34 3d bb 20  |=1.... mode!4=. |
00026d90  a4 5f 6d 28 6d 6f 64 65  24 2c 22 58 22 2c 22 22  |._m(mode$,"X",""|
00026da0  29 0d 14 8c 1f 20 6d 6f  64 65 21 38 3d bb 20 a4  |).... mode!8=. .|
00026db0  5f 6d 28 6d 6f 64 65 24  2c 22 59 22 2c 22 22 29  |_m(mode$,"Y","")|
00026dc0  0d 14 8d 1a 20 63 24 3d  a4 5f 6d 28 6d 6f 64 65  |.... c$=._m(mode|
00026dd0  24 2c 22 43 22 2c 22 2a  22 29 0d 14 8e 0f 20 e7  |$,"C","*").... .|
00026de0  20 63 24 3d 22 2a 22 20  8c 0d 14 8f 19 20 63 24  | c$="*" ..... c$|
00026df0  3d a4 5f 6d 28 6d 6f 64  65 24 2c 22 47 22 2c 22  |=._m(mode$,"G","|
00026e00  22 29 0d 14 90 29 20 e7  20 63 24 3d 22 32 35 36  |")...) . c$="256|
00026e10  22 20 8c 20 21 65 6e 64  3d 33 3a 65 6e 64 21 34  |" . !end=3:end!4|
00026e20  3d 32 35 35 3a 65 6e 64  2b 3d 38 0d 14 91 06 20  |=255:end+=8.... |
00026e30  cd 0d 14 92 16 20 6d 6f  64 65 21 31 32 3d a4 5f  |..... mode!12=._|
00026e40  62 70 70 28 63 24 29 0d  14 93 22 20 6d 6f 64 65  |bpp(c$)..." mode|
00026e50  21 31 36 3d bb 20 a4 5f  6d 28 6d 6f 64 65 24 2c  |!16=. ._m(mode$,|
00026e60  22 46 22 2c 22 2d 31 22  29 0d 14 94 1e 20 65 78  |"F","-1").... ex|
00026e70  3d bb 20 a4 5f 6d 28 6d  6f 64 65 24 2c 22 45 58  |=. ._m(mode$,"EX|
00026e80  22 2c 22 2d 31 22 29 0d  14 95 26 20 e7 20 65 78  |","-1")...& . ex|
00026e90  3c 3e 2d 31 20 8c 20 21  65 6e 64 3d 34 3a 65 6e  |<>-1 . !end=4:en|
00026ea0  64 21 34 3d 65 78 3a 65  6e 64 2b 3d 38 0d 14 96  |d!4=ex:end+=8...|
00026eb0  1e 20 65 79 3d bb 20 a4  5f 6d 28 6d 6f 64 65 24  |. ey=. ._m(mode$|
00026ec0  2c 22 45 59 22 2c 22 2d  31 22 29 0d 14 97 26 20  |,"EY","-1")...& |
00026ed0  e7 20 65 79 3c 3e 2d 31  20 8c 20 21 65 6e 64 3d  |. ey<>-1 . !end=|
00026ee0  35 3a 65 6e 64 21 34 3d  65 79 3a 65 6e 64 2b 3d  |5:end!4=ey:end+=|
00026ef0  38 0d 14 98 0c 20 21 65  6e 64 3d 2d 31 0d 14 99  |8.... !end=-1...|
00026f00  08 20 ea 20 85 0d 14 9a  0c 20 ee 20 85 20 ea 20  |. . ..... . . . |
00026f10  e1 0d 14 9b 0b 20 eb 20  6d 6f 64 65 0d 14 9c 08  |..... . mode....|
00026f20  20 f7 20 85 0d 14 9d 06  20 e1 0d 14 9e 04 0d 14  | . ..... .......|
00026f30  9f 14 20 dd 20 a4 5f 6d  28 73 24 2c 70 24 2c 64  |.. . ._m(s$,p$,d|
00026f40  24 29 0d 14 a0 14 20 ea  20 69 2c 6a 3a 69 3d a7  |$).... . i,j:i=.|
00026f50  73 24 2c 70 24 29 0d 14  a1 28 20 e7 20 69 3c 31  |s$,p$)...( . i<1|
00026f60  20 80 20 64 24 3d 22 22  20 8c 20 85 20 34 39 30  | . d$="" . . 490|
00026f70  2c 22 4d 69 73 73 69 6e  67 20 22 2b 70 24 0d 14  |,"Missing "+p$..|
00026f80  a2 17 20 6a 3d a7 73 24  2b 22 20 22 2c 22 20 22  |.. j=.s$+" "," "|
00026f90  2c 69 2b 31 29 0d 14 a3  2a 20 e7 20 69 3c 31 20  |,i+1)...* . i<1 |
00026fa0  8c 20 66 6e 6d 24 3d 64  24 20 8b 20 66 6e 6d 24  |. fnm$=d$ . fnm$|
00026fb0  3d c1 73 24 2c 69 2b 31  2c 6a 2d 69 2d 31 29 0d  |=.s$,i+1,j-i-1).|
00026fc0  14 a4 0a 20 3d 66 6e 6d  24 0d 14 a5 04 0d 14 a6  |... =fnm$.......|
00026fd0  10 20 dd 20 a4 5f 62 70  70 28 6e 24 29 0d 14 a7  |. . ._bpp(n$)...|
00026fe0  0c 20 c8 8e 20 6e 24 20  ca 0d 14 a8 11 20 c9 20  |. .. n$ ..... . |
00026ff0  22 32 22 3a 62 70 70 25  3d 30 0d 14 a9 11 20 c9  |"2":bpp%=0.... .|
00027000  20 22 34 22 3a 62 70 70  25 3d 31 0d 14 aa 12 20  | "4":bpp%=1.... |
00027010  c9 20 22 31 36 22 3a 62  70 70 25 3d 32 0d 14 ab  |. "16":bpp%=2...|
00027020  13 20 c9 20 22 32 35 36  22 3a 62 70 70 25 3d 33  |. . "256":bpp%=3|
00027030  0d 14 ac 25 20 c9 20 22  33 32 54 22 2c 22 33 32  |...% . "32T","32|
00027040  74 22 2c 22 33 32 4b 22  2c 22 33 32 6b 22 3a 62  |t","32K","32k":b|
00027050  70 70 25 3d 34 0d 14 ad  19 20 c9 20 22 31 36 4d  |pp%=4.... . "16M|
00027060  22 2c 22 31 36 6d 22 3a  62 70 70 25 3d 35 0d 14  |","16m":bpp%=5..|
00027070  ae 27 20 7f 3a 62 70 70  25 3d 30 3a 85 20 34 39  |.' .:bpp%=0:. 49|
00027080  30 2c 22 42 61 64 20 70  61 72 61 6d 65 74 65 72  |0,"Bad parameter|
00027090  20 22 2b 6e 24 0d 14 af  06 20 cb 0d 14 b0 0a 20  | "+n$.... ..... |
000270a0  3d 62 70 70 25 0d 14 b1  04 0d 14 b2 18 20 dd 20  |=bpp%........ . |
000270b0  a4 6d 65 6d 5f 74 6f 5f  62 6c 6f 63 6b 28 6d 25  |.mem_to_block(m%|
000270c0  29 0d 14 b3 0c 20 c8 8e  20 6d 25 20 ca 0d 14 b4  |).... .. m% ....|
000270d0  12 20 c9 20 31 3a 6d 62  25 3d 6d 65 6d 31 25 0d  |. . 1:mb%=mem1%.|
000270e0  14 b5 12 20 c9 20 32 3a  6d 62 25 3d 6d 65 6d 32  |... . 2:mb%=mem2|
000270f0  25 0d 14 b6 12 20 c9 20  33 3a 6d 62 25 3d 6d 65  |%.... . 3:mb%=me|
00027100  6d 33 25 0d 14 b7 12 20  c9 20 34 3a 6d 62 25 3d  |m3%.... . 4:mb%=|
00027110  6d 65 6d 34 25 0d 14 b8  12 20 c9 20 35 3a 6d 62  |mem4%.... . 5:mb|
00027120  25 3d 6d 65 6d 35 25 0d  14 b9 12 20 c9 20 36 3a  |%=mem5%.... . 6:|
00027130  6d 62 25 3d 6d 65 6d 36  25 0d 14 ba 12 20 c9 20  |mb%=mem6%.... . |
00027140  37 3a 6d 62 25 3d 6d 65  6d 37 25 0d 14 bb 12 20  |7:mb%=mem7%.... |
00027150  c9 20 38 3a 6d 62 25 3d  6d 65 6d 38 25 0d 14 bc  |. 8:mb%=mem8%...|
00027160  06 20 cb 0d 14 bd 09 20  3d 6d 62 25 0d 14 be 04  |. ..... =mb%....|
00027170  0d 14 bf 14 20 dd 20 f2  71 75 61 64 5f 64 69 73  |.... . .quad_dis|
00027180  70 6c 61 79 0d 14 c0 34  20 74 6c 25 3d 39 3a 74  |play...4 tl%=9:t|
00027190  72 25 3d 39 3a 62 6c 25  3d 39 3a 62 72 25 3d 39  |r%=9:bl%=9:br%=9|
000271a0  3a 71 75 61 64 5f 71 75  69 74 25 3d 30 3a 71 75  |:quad_quit%=0:qu|
000271b0  61 64 5f 6f 6b 25 3d 30  0d 14 c1 22 20 e6 20 30  |ad_ok%=0..." . 0|
000271c0  2c 33 32 2c 36 34 3a c8  93 20 c8 90 20 30 2c 30  |,32,64:.. .. 0,0|
000271d0  2c 31 32 38 30 2c 31 30  32 34 0d 14 c2 2d 20 21  |,1280,1024...- !|
000271e0  73 6f 75 72 63 65 5f 61  64 64 72 65 73 73 3d a4  |source_address=.|
000271f0  6d 65 6d 5f 74 6f 5f 62  6c 6f 63 6b 28 4d 45 4d  |mem_to_block(MEM|
00027200  25 2b 31 29 2b 32 30 0d  14 c3 43 20 21 64 65 73  |%+1)+20...C !des|
00027210  74 5f 61 64 64 72 65 73  73 3d 73 63 72 65 65 6e  |t_address=screen|
00027220  25 2b 31 36 34 31 36 30  3a 21 71 75 61 72 74 65  |%+164160:!quarte|
00027230  72 5f 6c 69 6e 65 73 3d  32 35 36 3a d6 20 6d 61  |r_lines=256:. ma|
00027240  6b 65 5f 71 75 61 72 74  65 72 0d 14 c4 04 0d 14  |ke_quarter......|
00027250  c5 18 20 4d 25 3d 31 3a  e3 20 51 42 25 3d 34 20  |.. M%=1:. QB%=4 |
00027260  b8 20 37 20 88 33 0d 14  c6 16 20 e7 20 4d 25 3c  |. 7 .3.... . M%<|
00027270  3d 6d 65 6d 6f 72 69 65  73 25 20 8c 0d 14 c7 3a  |=memories% ....:|
00027280  20 20 21 64 65 73 74 5f  61 64 64 72 65 73 73 3d  |  !dest_address=|
00027290  73 63 72 65 65 6e 25 2b  28 51 42 25 20 81 20 34  |screen%+(QB% . 4|
000272a0  29 2a 31 36 33 38 34 30  2b 28 51 42 25 20 83 20  |)*163840+(QB% . |
000272b0  34 29 2a 33 32 30 0d 14  c8 46 20 20 21 73 6f 75  |4)*320...F  !sou|
000272c0  72 63 65 5f 61 64 64 72  65 73 73 3d a4 6d 65 6d  |rce_address=.mem|
000272d0  5f 74 6f 5f 62 6c 6f 63  6b 28 4d 25 29 2b 32 30  |_to_block(M%)+20|
000272e0  3a 21 6d 69 6e 69 5f 6c  69 6e 65 73 3d 31 32 38  |:!mini_lines=128|
000272f0  3a d6 20 6d 61 6b 65 5f  6d 69 6e 69 0d 14 c9 0d  |:. make_mini....|
00027300  20 20 4d 25 2b 3d 37 3a  ed 0d 14 ca 06 20 cd 0d  |  M%+=7:..... ..|
00027310  14 cb 04 0d 14 cc 17 20  4d 25 3d 33 3a e3 20 51  |....... M%=3:. Q|
00027320  42 25 3d 31 32 20 b8 20  31 35 0d 14 cd 16 20 e7  |B%=12 . 15.... .|
00027330  20 4d 25 3c 3d 6d 65 6d  6f 72 69 65 73 25 20 8c  | M%<=memories% .|
00027340  0d 14 ce 3a 20 20 21 64  65 73 74 5f 61 64 64 72  |...:  !dest_addr|
00027350  65 73 73 3d 73 63 72 65  65 6e 25 2b 28 51 42 25  |ess=screen%+(QB%|
00027360  20 81 20 34 29 2a 31 36  33 38 34 30 2b 28 51 42  | . 4)*163840+(QB|
00027370  25 20 83 20 34 29 2a 33  32 30 0d 14 cf 46 20 20  |% . 4)*320...F  |
00027380  21 73 6f 75 72 63 65 5f  61 64 64 72 65 73 73 3d  |!source_address=|
00027390  a4 6d 65 6d 5f 74 6f 5f  62 6c 6f 63 6b 28 4d 25  |.mem_to_block(M%|
000273a0  29 2b 32 30 3a 21 6d 69  6e 69 5f 6c 69 6e 65 73  |)+20:!mini_lines|
000273b0  3d 31 32 38 3a d6 20 6d  61 6b 65 5f 6d 69 6e 69  |=128:. make_mini|
000273c0  0d 14 d0 0d 20 20 4d 25  2b 3d 31 3a ed 0d 14 d1  |....  M%+=1:....|
000273d0  06 20 cd 0d 14 d2 04 0d  14 d3 19 20 4d 25 3d 32  |. ......... M%=2|
000273e0  3a e3 20 51 42 25 3d 38  20 b8 20 31 31 20 88 33  |:. QB%=8 . 11 .3|
000273f0  0d 14 d4 16 20 e7 20 4d  25 3c 3d 6d 65 6d 6f 72  |.... . M%<=memor|
00027400  69 65 73 25 20 8c 0d 14  d5 3a 20 20 21 64 65 73  |ies% ....:  !des|
00027410  74 5f 61 64 64 72 65 73  73 3d 73 63 72 65 65 6e  |t_address=screen|
00027420  25 2b 28 51 42 25 20 81  20 34 29 2a 31 36 33 38  |%+(QB% . 4)*1638|
00027430  34 30 2b 28 51 42 25 20  83 20 34 29 2a 33 32 30  |40+(QB% . 4)*320|
00027440  0d 14 d6 46 20 20 21 73  6f 75 72 63 65 5f 61 64  |...F  !source_ad|
00027450  64 72 65 73 73 3d a4 6d  65 6d 5f 74 6f 5f 62 6c  |dress=.mem_to_bl|
00027460  6f 63 6b 28 4d 25 29 2b  32 30 3a 21 6d 69 6e 69  |ock(M%)+20:!mini|
00027470  5f 6c 69 6e 65 73 3d 31  32 38 3a d6 20 6d 61 6b  |_lines=128:. mak|
00027480  65 5f 6d 69 6e 69 0d 14  d7 0d 20 20 4d 25 2b 3d  |e_mini....  M%+=|
00027490  35 3a ed 0d 14 d8 06 20  cd 0d 14 d9 05 20 0d 14  |5:..... ..... ..|
000274a0  da 30 20 e3 20 51 42 25  3d 31 32 20 b8 20 31 35  |.0 . QB%=12 . 15|
000274b0  3a f2 71 75 61 64 5f 62  6f 72 64 65 72 28 51 42  |:.quad_border(QB|
000274c0  25 2c 32 35 35 2c 32 35  35 2c 30 29 3a ed 0d 14  |%,255,255,0):...|
000274d0  db 31 20 e3 20 51 42 25  3d 34 20 b8 20 37 20 88  |.1 . QB%=4 . 7 .|
000274e0  33 3a f2 71 75 61 64 5f  62 6f 72 64 65 72 28 51  |3:.quad_border(Q|
000274f0  42 25 2c 32 35 35 2c 32  35 35 2c 30 29 3a ed 0d  |B%,255,255,0):..|
00027500  14 dc 32 20 e3 20 51 42  25 3d 38 20 b8 20 31 31  |..2 . QB%=8 . 11|
00027510  20 88 33 3a f2 71 75 61  64 5f 62 6f 72 64 65 72  | .3:.quad_border|
00027520  28 51 42 25 2c 32 35 35  2c 32 35 35 2c 30 29 3a  |(QB%,255,255,0):|
00027530  ed 0d 14 dd 12 20 f2 71  75 61 64 5f 62 6f 72 64  |..... .quad_bord|
00027540  65 72 32 0d 14 de 23 20  f2 72 61 69 73 65 64 5f  |er2...# .raised_|
00027550  62 6c 6f 63 6b 28 34 36  30 2c 38 30 30 2c 33 36  |block(460,800,36|
00027560  30 2c 31 32 30 29 0d 14  df 22 20 f2 72 61 69 73  |0,120)..." .rais|
00027570  65 64 5f 62 6c 6f 63 6b  28 34 39 30 2c 38 32 30  |ed_block(490,820|
00027580  2c 31 32 30 2c 34 30 29  0d 14 e0 22 20 f2 72 61  |,120,40)..." .ra|
00027590  69 73 65 64 5f 62 6c 6f  63 6b 28 36 36 38 2c 38  |ised_block(668,8|
000275a0  32 30 2c 31 32 30 2c 34  30 29 0d 14 e1 20 20 f2  |20,120,40)...  .|
000275b0  77 72 69 74 65 32 28 22  43 41 4e 43 45 4c 22 2c  |write2("CANCEL",|
000275c0  34 39 32 2c 38 32 34 2c  34 29 0d 14 e2 1c 20 f2  |492,824,4).... .|
000275d0  77 72 69 74 65 32 28 22  4f 4b 22 2c 37 30 30 2c  |write2("OK",700,|
000275e0  38 32 34 2c 34 29 0d 14  e3 2c 20 f2 77 72 69 74  |824,4)..., .writ|
000275f0  65 32 28 22 50 73 63 61  6e 20 51 75 61 64 20 44  |e2("Pscan Quad D|
00027600  69 73 70 6c 61 79 22 2c  34 39 34 2c 38 38 30 2c  |isplay",494,880,|
00027610  34 29 0d 14 e4 06 20 f5  0d 14 e5 16 20 f5 3a c8  |4).... ..... .:.|
00027620  97 20 58 2c 59 2c 42 3a  fd 20 42 3c 3e 30 0d 14  |. X,Y,B:. B<>0..|
00027630  e6 2f 20 e7 20 94 28 58  2d 35 35 30 29 3c 36 32  |./ . .(X-550)<62|
00027640  20 80 20 94 28 59 2d 38  34 34 29 3c 32 32 20 8c  | . .(Y-844)<22 .|
00027650  20 71 75 61 64 5f 71 75  69 74 25 3d b9 0d 14 e7  | quad_quit%=....|
00027660  2d 20 e7 20 94 28 58 2d  37 32 38 29 3c 36 32 20  |- . .(X-728)<62 |
00027670  80 20 94 28 59 2d 38 34  34 29 3c 32 32 20 8c 20  |. .(Y-844)<22 . |
00027680  71 75 61 64 5f 6f 6b 25  3d b9 0d 14 e8 24 20 e7  |quad_ok%=....$ .|
00027690  20 ac 28 71 75 61 64 5f  71 75 69 74 25 29 20 80  | .(quad_quit%) .|
000276a0  20 ac 28 71 75 61 64 5f  6f 6b 25 29 20 8c 0d 14  | .(quad_ok%) ...|
000276b0  e9 2f 20 4d 42 31 25 3d  28 58 20 81 20 33 32 31  |./ MB1%=(X . 321|
000276c0  29 2b 28 28 31 30 32 34  2d 59 29 81 20 32 35 37  |)+((1024-Y). 257|
000276d0  29 2a 34 3a 78 31 3d 58  3a 79 31 3d 59 0d 14 ea  |)*4:x1=X:y1=Y...|
000276e0  4e 20 e7 20 4d 42 31 25  3d 34 20 84 20 4d 42 31  |N . MB1%=4 . MB1|
000276f0  25 3d 37 20 84 20 4d 42  31 25 3d 38 20 84 20 28  |%=7 . MB1%=8 . (|
00027700  4d 42 31 25 3e 31 30 20  80 20 4d 42 31 25 3c 31  |MB1%>10 . MB1%<1|
00027710  36 29 20 8c 20 f2 71 75  61 64 5f 63 75 72 73 6f  |6) . .quad_curso|
00027720  72 28 4d 42 31 25 2c 58  2c 59 29 0d 14 eb 27 20  |r(MB1%,X,Y)...' |
00027730  4d 42 32 25 3d 28 78 31  20 81 20 33 32 31 29 2b  |MB2%=(x1 . 321)+|
00027740  28 28 31 30 32 34 2d 79  31 29 81 20 32 35 37 29  |((1024-y1). 257)|
00027750  2a 34 0d 14 ec 37 20 e7  20 4d 42 31 25 3d 34 20  |*4...7 . MB1%=4 |
00027760  84 20 4d 42 31 25 3d 37  20 84 20 4d 42 31 25 3d  |. MB1%=7 . MB1%=|
00027770  38 20 84 20 28 4d 42 31  25 3e 31 30 20 80 20 4d  |8 . (MB1%>10 . M|
00027780  42 31 25 3c 31 36 29 20  8c 0d 14 ed 36 20 e7 20  |B1%<16) ....6 . |
00027790  4d 42 32 25 3d 35 20 84  20 4d 42 32 25 3d 36 20  |MB2%=5 . MB2%=6 |
000277a0  84 20 4d 42 32 25 3d 39  20 84 20 4d 42 32 25 3d  |. MB2%=9 . MB2%=|
000277b0  31 30 20 8c 20 f2 71 75  61 64 5f 6d 6f 76 65 0d  |10 . .quad_move.|
000277c0  14 ee 06 20 cd 0d 14 ef  06 20 cd 0d 14 f0 1c 20  |... ..... ..... |
000277d0  fd 20 71 75 61 64 5f 71  75 69 74 25 20 84 20 71  |. quad_quit% . q|
000277e0  75 61 64 5f 6f 6b 25 0d  14 f1 11 20 e7 20 71 75  |uad_ok%.... . qu|
000277f0  61 64 5f 6f 6b 25 20 8c  0d 14 f2 14 20 f2 64 69  |ad_ok% ..... .di|
00027800  73 70 6c 61 79 5f 6d 65  6d 6f 72 79 0d 14 f3 0f  |splay_memory....|
00027810  20 e7 20 74 6c 25 3c 3e  39 20 8c 0d 14 f4 30 20  | . tl%<>9 ....0 |
00027820  21 73 6f 75 72 63 65 5f  61 64 64 72 65 73 73 3d  |!source_address=|
00027830  a4 6d 65 6d 5f 74 6f 5f  62 6c 6f 63 6b 28 74 6c  |.mem_to_block(tl|
00027840  25 29 2b 32 30 2b 34 30  39 36 30 0d 14 f5 42 20  |%)+20+40960...B |
00027850  21 64 65 73 74 5f 61 64  64 72 65 73 73 3d 73 63  |!dest_address=sc|
00027860  72 65 65 6e 25 2b 34 30  39 36 30 3a 21 71 75 61  |reen%+40960:!qua|
00027870  72 74 65 72 5f 6c 69 6e  65 73 3d 32 34 30 3a d6  |rter_lines=240:.|
00027880  20 6d 61 6b 65 5f 71 75  61 72 74 65 72 0d 14 f6  | make_quarter...|
00027890  06 20 cd 0d 14 f7 0f 20  e7 20 74 72 25 3c 3e 39  |. ..... . tr%<>9|
000278a0  20 8c 0d 14 f8 30 20 21  73 6f 75 72 63 65 5f 61  | ....0 !source_a|
000278b0  64 64 72 65 73 73 3d a4  6d 65 6d 5f 74 6f 5f 62  |ddress=.mem_to_b|
000278c0  6c 6f 63 6b 28 74 72 25  29 2b 32 30 2b 34 30 39  |lock(tr%)+20+409|
000278d0  36 30 0d 14 f9 42 20 21  64 65 73 74 5f 61 64 64  |60...B !dest_add|
000278e0  72 65 73 73 3d 73 63 72  65 65 6e 25 2b 34 31 36  |ress=screen%+416|
000278f0  30 30 3a 21 71 75 61 72  74 65 72 5f 6c 69 6e 65  |00:!quarter_line|
00027900  73 3d 32 34 30 3a d6 20  6d 61 6b 65 5f 71 75 61  |s=240:. make_qua|
00027910  72 74 65 72 0d 14 fa 06  20 cd 0d 14 fb 0f 20 e7  |rter.... ..... .|
00027920  20 62 6c 25 3c 3e 39 20  8c 0d 14 fc 30 20 21 73  | bl%<>9 ....0 !s|
00027930  6f 75 72 63 65 5f 61 64  64 72 65 73 73 3d a4 6d  |ource_address=.m|
00027940  65 6d 5f 74 6f 5f 62 6c  6f 63 6b 28 62 6c 25 29  |em_to_block(bl%)|
00027950  2b 32 30 2b 34 30 39 36  30 0d 14 fd 43 20 21 64  |+20+40960...C !d|
00027960  65 73 74 5f 61 64 64 72  65 73 73 3d 73 63 72 65  |est_address=scre|
00027970  65 6e 25 2b 33 34 38 31  36 30 3a 21 71 75 61 72  |en%+348160:!quar|
00027980  74 65 72 5f 6c 69 6e 65  73 3d 32 34 30 3a d6 20  |ter_lines=240:. |
00027990  6d 61 6b 65 5f 71 75 61  72 74 65 72 0d 14 fe 06  |make_quarter....|
000279a0  20 cd 0d 14 ff 0f 20 e7  20 62 72 25 3c 3e 39 20  | ..... . br%<>9 |
000279b0  8c 0d 15 00 30 20 21 73  6f 75 72 63 65 5f 61 64  |....0 !source_ad|
000279c0  64 72 65 73 73 3d a4 6d  65 6d 5f 74 6f 5f 62 6c  |dress=.mem_to_bl|
000279d0  6f 63 6b 28 62 72 25 29  2b 32 30 2b 34 30 39 36  |ock(br%)+20+4096|
000279e0  30 0d 15 01 43 20 21 64  65 73 74 5f 61 64 64 72  |0...C !dest_addr|
000279f0  65 73 73 3d 73 63 72 65  65 6e 25 2b 33 34 38 38  |ess=screen%+3488|
00027a00  30 30 3a 21 71 75 61 72  74 65 72 5f 6c 69 6e 65  |00:!quarter_line|
00027a10  73 3d 32 34 30 3a d6 20  6d 61 6b 65 5f 71 75 61  |s=240:. make_qua|
00027a20  72 74 65 72 0d 15 02 06  20 cd 0d 15 03 21 20 f2  |rter.... ....! .|
00027a30  75 70 6c 6f 61 64 5f 6d  65 6d 6f 72 79 3a f2 74  |upload_memory:.t|
00027a40  6f 70 73 63 61 6c 65 32  28 30 29 0d 15 04 06 20  |opscale2(0).... |
00027a50  cc 0d 15 05 0d 20 f2 64  69 73 6d 69 6e 69 0d 15  |..... .dismini..|
00027a60  06 06 20 cd 0d 15 07 06  20 e1 0d 15 08 04 0d 15  |.. ..... .......|
00027a70  09 21 20 dd 20 f2 71 75  61 64 5f 62 6f 72 64 65  |.! . .quad_borde|
00027a80  72 28 71 62 25 2c 72 25  2c 67 25 2c 62 25 29 0d  |r(qb%,r%,g%,b%).|
00027a90  15 0a 0f 20 e6 20 72 25  2c 67 25 2c 62 25 0d 15  |... . r%,g%,b%..|
00027aa0  0b 2c 20 79 25 3d 37 36  38 2d 28 28 71 62 25 20  |., y%=768-((qb% |
00027ab0  81 20 34 29 2a 32 35 36  29 3a 78 25 3d 28 71 62  |. 4)*256):x%=(qb|
00027ac0  25 20 83 20 34 29 2a 33  32 30 0d 15 0c 15 20 c8  |% . 4)*320.... .|
00027ad0  93 20 78 25 2c 79 25 2c  33 31 38 2c 32 35 34 0d  |. x%,y%,318,254.|
00027ae0  15 0d 19 20 c8 93 20 78  25 2b 32 2c 79 25 2b 32  |... .. x%+2,y%+2|
00027af0  2c 33 31 34 2c 32 35 30  0d 15 0e 19 20 c8 93 20  |,314,250.... .. |
00027b00  78 25 2b 34 2c 79 25 2b  34 2c 33 31 30 2c 32 34  |x%+4,y%+4,310,24|
00027b10  36 0d 15 0f 06 20 e1 0d  15 10 04 0d 15 11 14 20  |6.... ......... |
00027b20  dd 20 f2 71 75 61 64 5f  62 6f 72 64 65 72 32 0d  |. .quad_border2.|
00027b30  15 12 34 20 e6 20 32 35  35 2c 30 2c 30 3a c8 93  |..4 . 255,0,0:..|
00027b40  20 33 32 30 2c 32 35 36  2c 33 31 38 2c 32 33 38  | 320,256,318,238|
00027b50  3a c8 93 20 36 34 30 2c  32 35 36 2c 33 31 38 2c  |:.. 640,256,318,|
00027b60  32 33 38 0d 15 13 2a 20  c8 93 20 33 32 30 2c 34  |238...* .. 320,4|
00027b70  39 36 2c 33 31 38 2c 32  33 38 3a c8 93 20 36 34  |96,318,238:.. 64|
00027b80  30 2c 34 39 36 2c 33 31  38 2c 32 33 38 0d 15 14  |0,496,318,238...|
00027b90  06 20 e1 0d 15 15 04 0d  15 16 11 20 dd 20 f2 71  |. ......... . .q|
00027ba0  75 61 64 5f 6d 6f 76 65  0d 15 17 0e 20 c8 8e 20  |uad_move.... .. |
00027bb0  4d 42 31 25 20 ca 0d 15  18 0d 20 c9 20 34 3a 4d  |MB1% ..... . 4:M|
00027bc0  25 3d 31 0d 15 19 0d 20  c9 20 37 3a 4d 25 3d 38  |%=1.... . 7:M%=8|
00027bd0  0d 15 1a 0d 20 c9 20 38  3a 4d 25 3d 32 0d 15 1b  |.... . 8:M%=2...|
00027be0  0e 20 c9 20 31 31 3a 4d  25 3d 37 0d 15 1c 1c 20  |. . 11:M%=7.... |
00027bf0  c9 20 31 32 2c 31 33 2c  31 34 2c 31 35 3a 4d 25  |. 12,13,14,15:M%|
00027c00  3d 4d 42 31 25 2d 39 0d  15 1d 06 20 cb 0d 15 1e  |=MB1%-9.... ....|
00027c10  16 20 e7 20 4d 25 3c 3d  6d 65 6d 6f 72 69 65 73  |. . M%<=memories|
00027c20  25 20 8c 0d 15 1f 23 20  e7 20 4d 42 32 25 3d 35  |% ....# . MB2%=5|
00027c30  20 84 20 4d 42 32 25 3d  36 20 6f 25 3d 31 36 20  | . MB2%=6 o%=16 |
00027c40  8b 20 6f 25 3d 38 0d 15  20 43 20 21 64 65 73 74  |. o%=8.. C !dest|
00027c50  5f 61 64 64 72 65 73 73  3d 73 63 72 65 65 6e 25  |_address=screen%|
00027c60  2b 28 4d 42 32 25 20 81  20 34 29 2a 31 36 33 38  |+(MB2% . 4)*1638|
00027c70  34 30 2b 28 4d 42 32 25  20 83 20 34 29 2a 33 32  |40+(MB2% . 4)*32|
00027c80  30 2b 31 32 38 30 2a 6f  25 0d 15 21 4d 20 21 73  |0+1280*o%..!M !s|
00027c90  6f 75 72 63 65 5f 61 64  64 72 65 73 73 3d a4 6d  |ource_address=.m|
00027ca0  65 6d 5f 74 6f 5f 62 6c  6f 63 6b 28 4d 25 29 2b  |em_to_block(M%)+|
00027cb0  32 30 2b 31 32 38 30 2a  33 32 3a 21 6d 69 6e 69  |20+1280*32:!mini|
00027cc0  5f 6c 69 6e 65 73 3d 31  32 30 3a d6 20 6d 61 6b  |_lines=120:. mak|
00027cd0  65 5f 6d 69 6e 69 0d 15  22 12 20 f2 71 75 61 64  |e_mini..". .quad|
00027ce0  5f 62 6f 72 64 65 72 32  0d 15 23 0e 20 c8 8e 20  |_border2..#. .. |
00027cf0  4d 42 32 25 20 ca 0d 15  24 0f 20 c9 20 35 3a 74  |MB2% ...$. . 5:t|
00027d00  6c 25 3d 4d 25 0d 15 25  0f 20 c9 20 36 3a 74 72  |l%=M%..%. . 6:tr|
00027d10  25 3d 4d 25 0d 15 26 0f  20 c9 20 39 3a 62 6c 25  |%=M%..&. . 9:bl%|
00027d20  3d 4d 25 0d 15 27 10 20  c9 20 31 30 3a 62 72 25  |=M%..'. . 10:br%|
00027d30  3d 4d 25 0d 15 28 06 20  cb 0d 15 29 06 20 cd 0d  |=M%..(. ...). ..|
00027d40  15 2a 06 20 e1 0d 15 2b  04 0d 15 2c 20 20 dd 20  |.*. ...+...,  . |
00027d50  f2 71 75 61 64 5f 63 75  72 73 6f 72 28 73 6f 75  |.quad_cursor(sou|
00027d60  72 63 65 25 2c 78 2c 79  29 0d 15 2d 38 20 71 63  |rce%,x,y)..-8 qc|
00027d70  78 25 3d 28 73 6f 75 72  63 65 25 20 83 20 34 29  |x%=(source% . 4)|
00027d80  2a 33 32 30 3a 71 63 79  25 3d 37 36 38 2d 28 28  |*320:qcy%=768-((|
00027d90  73 6f 75 72 63 65 25 20  81 20 34 29 2a 32 35 36  |source% . 4)*256|
00027da0  29 0d 15 2e 28 20 78 6f  25 3d 78 2d 71 63 78 25  |)...( xo%=x-qcx%|
00027db0  3a 79 6f 25 3d 79 2d 71  63 79 25 3a e6 20 33 2c  |:yo%=y-qcy%:. 3,|
00027dc0  36 33 20 c8 9c 20 31 39  32 0d 15 2f 19 20 c8 93  |63 .. 192../. ..|
00027dd0  20 71 63 78 25 2c 71 63  79 25 2c 33 31 38 2c 32  | qcx%,qcy%,318,2|
00027de0  33 38 0d 15 30 06 20 f5  0d 15 31 11 20 f5 3a c8  |38..0. ...1. .:.|
00027df0  97 20 78 31 2c 79 31 2c  42 0d 15 32 1a 20 fd 20  |. x1,y1,B..2. . |
00027e00  78 31 3c 3e 78 20 84 20  79 31 3c 3e 79 20 84 20  |x1<>x . y1<>y . |
00027e10  42 3d 30 0d 15 33 0d 20  e7 20 42 3c 3e 30 20 8c  |B=0..3. . B<>0 .|
00027e20  0d 15 34 19 20 c8 93 20  71 63 78 25 2c 71 63 79  |..4. .. qcx%,qcy|
00027e30  25 2c 33 31 38 2c 32 33  38 0d 15 35 1c 20 71 63  |%,318,238..5. qc|
00027e40  78 25 3d 78 31 2d 78 6f  25 3a 71 63 79 25 3d 79  |x%=x1-xo%:qcy%=y|
00027e50  31 2d 79 6f 25 0d 15 36  19 20 c8 93 20 71 63 78  |1-yo%..6. .. qcx|
00027e60  25 2c 71 63 79 25 2c 33  31 38 2c 32 33 38 0d 15  |%,qcy%,318,238..|
00027e70  37 0e 20 78 3d 78 31 3a  79 3d 79 31 0d 15 38 06  |7. x=x1:y=y1..8.|
00027e80  20 cc 0d 15 39 19 20 c8  93 20 71 63 78 25 2c 71  | ...9. .. qcx%,q|
00027e90  63 79 25 2c 33 31 38 2c  32 33 38 0d 15 3a 06 20  |cy%,318,238..:. |
00027ea0  cd 0d 15 3b 0a 20 fd 20  42 3d 30 0d 15 3c 06 20  |...;. . B=0..<. |
00027eb0  e1 0d 15 3d 05 20 0d 15  3e 2a 20 dd 20 f2 71 75  |...=. ..>* . .qu|
00027ec0  61 64 5f 64 69 73 70 6c  61 79 5f 62 6f 72 64 65  |ad_display_borde|
00027ed0  72 28 72 25 2c 67 25 2c  62 25 2c 71 62 77 24 29  |r(r%,g%,b%,qbw$)|
00027ee0  0d 15 3f 14 20 f2 64 69  73 70 6c 61 79 5f 6d 65  |..?. .display_me|
00027ef0  6d 6f 72 79 0d 15 40 0e  20 c8 8e 20 71 62 77 24  |mory..@. .. qbw$|
00027f00  20 ca 0d 15 41 11 20 c9  20 22 6e 22 3a 71 77 25  | ...A. . "n":qw%|
00027f10  3d 31 30 0d 15 42 11 20  c9 20 22 6d 22 3a 71 77  |=10..B. . "m":qw|
00027f20  25 3d 32 30 0d 15 43 11  20 c9 20 22 77 22 3a 71  |%=20..C. . "w":q|
00027f30  77 25 3d 33 30 0d 15 44  06 20 cb 0d 15 45 1f 20  |w%=30..D. ...E. |
00027f40  e6 20 72 25 2c 67 25 2c  62 25 3a f2 64 69 73 70  |. r%,g%,b%:.disp|
00027f50  6c 61 79 5f 6d 65 6d 6f  72 79 0d 15 46 16 20 c8  |lay_memory..F. .|
00027f60  93 20 c8 90 20 30 2c 30  2c 71 77 25 2c 39 36 30  |. .. 0,0,qw%,960|
00027f70  0d 15 47 1d 20 c8 93 20  c8 90 20 30 2c 39 36 30  |..G. .. .. 0,960|
00027f80  2d 71 77 25 2c 31 32 38  30 2c 71 77 25 0d 15 48  |-qw%,1280,qw%..H|
00027f90  1d 20 c8 93 20 c8 90 20  31 32 37 39 2d 71 77 25  |. .. .. 1279-qw%|
00027fa0  2c 30 2c 71 77 25 2c 39  36 30 0d 15 49 17 20 c8  |,0,qw%,960..I. .|
00027fb0  93 20 c8 90 20 30 2c 30  2c 31 32 38 30 2c 71 77  |. .. 0,0,1280,qw|
00027fc0  25 0d 15 4a 1e 20 c8 93  20 c8 90 20 36 34 30 2d  |%..J. .. .. 640-|
00027fd0  71 77 25 2f 32 2c 30 2c  71 77 25 2c 39 36 30 0d  |qw%/2,0,qw%,960.|
00027fe0  15 4b 1f 20 c8 93 20 c8  90 20 30 2c 34 38 30 2d  |.K. .. .. 0,480-|
00027ff0  71 77 25 2f 32 2c 31 32  38 30 2c 71 77 25 0d 15  |qw%/2,1280,qw%..|
00028000  4c 0c 20 f2 75 70 6d 69  6e 69 0d 15 4d 06 20 e1  |L. .upmini..M. .|
00028010  0d 15 4e 05 20 0d 15 4f  18 20 dd 20 f2 71 75 61  |..N. ..O. . .qua|
00028020  64 5f 62 6f 72 64 65 72  5f 6d 65 6e 75 0d 15 50  |d_border_menu..P|
00028030  06 20 f5 0d 15 51 22 20  6d 65 6e 75 24 28 30 29  |. ...Q" menu$(0)|
00028040  3d 22 20 20 51 75 61 64  20 62 6f 72 64 65 72 73  |="  Quad borders|
00028050  20 20 20 20 22 0d 15 52  3f 20 e7 20 71 62 77 24  |    "..R? . qbw$|
00028060  3d 22 6e 22 20 8c 20 6d  65 6e 75 24 28 31 29 3d  |="n" . menu$(1)=|
00028070  bd 31 32 38 2b 22 20 4e  61 72 72 6f 77 22 20 8b  |.128+" Narrow" .|
00028080  20 6d 65 6e 75 24 28 31  29 3d 22 20 20 4e 61 72  | menu$(1)="  Nar|
00028090  72 6f 77 22 0d 15 53 3f  20 e7 20 71 62 77 24 3d  |row"..S? . qbw$=|
000280a0  22 6d 22 20 8c 20 6d 65  6e 75 24 28 32 29 3d bd  |"m" . menu$(2)=.|
000280b0  31 32 38 2b 22 20 4d 65  64 69 75 6d 22 20 8b 20  |128+" Medium" . |
000280c0  6d 65 6e 75 24 28 32 29  3d 22 20 20 4d 65 64 69  |menu$(2)="  Medi|
000280d0  75 6d 22 0d 15 54 3b 20  e7 20 71 62 77 24 3d 22  |um"..T; . qbw$="|
000280e0  77 22 20 8c 20 6d 65 6e  75 24 28 33 29 3d bd 31  |w" . menu$(3)=.1|
000280f0  32 38 2b 22 20 57 69 64  65 22 20 8b 20 6d 65 6e  |28+" Wide" . men|
00028100  75 24 28 33 29 3d 22 20  20 57 69 64 65 22 0d 15  |u$(3)="  Wide"..|
00028110  55 21 20 6d 65 6e 75 24  28 34 29 3d 22 20 20 43  |U! menu$(4)="  C|
00028120  6f 6c 6f 75 72 20 73 65  6c 65 63 74 6f 72 22 0d  |olour selector".|
00028130  15 56 20 20 6d 65 6e 75  24 28 35 29 3d 22 2a 22  |.V  menu$(5)="*"|
00028140  3a f2 6d 65 6e 75 28 30  2c 39 30 2c 2d 31 29 0d  |:.menu(0,90,-1).|
00028150  15 57 13 20 c8 8e 20 6d  65 6e 75 5f 62 6f 78 25  |.W. .. menu_box%|
00028160  20 ca 0d 15 58 11 20 c9  20 31 3a 71 62 77 24 3d  | ...X. . 1:qbw$=|
00028170  22 6e 22 0d 15 59 11 20  c9 20 32 3a 71 62 77 24  |"n"..Y. . 2:qbw$|
00028180  3d 22 6d 22 0d 15 5a 11  20 c9 20 33 3a 71 62 77  |="m"..Z. . 3:qbw|
00028190  24 3d 22 77 22 0d 15 5b  18 20 c9 20 34 3a f2 72  |$="w"..[. . 4:.r|
000281a0  67 62 5f 73 6c 69 64 65  72 73 28 30 29 0d 15 5c  |gb_sliders(0)..\|
000281b0  06 20 cb 0d 15 5d 21 20  fd 20 6d 65 6e 75 5f 62  |. ...]! . menu_b|
000281c0  6f 78 25 3d 34 20 84 20  6d 65 6e 75 5f 62 6f 78  |ox%=4 . menu_box|
000281d0  25 3d 39 39 0d 15 5e 4a  20 e7 20 6d 65 6e 75 5f  |%=99..^J . menu_|
000281e0  62 6f 78 25 3d 34 20 8c  20 f2 71 75 61 64 5f 64  |box%=4 . .quad_d|
000281f0  69 73 70 6c 61 79 5f 62  6f 72 64 65 72 28 72 65  |isplay_border(re|
00028200  64 25 2c 67 72 6e 25 2c  62 6c 75 25 2c 71 62 77  |d%,grn%,blu%,qbw|
00028210  24 29 3a 6d 65 6e 75 5f  62 6f 78 25 3d 31 0d 15  |$):menu_box%=1..|
00028220  5f 06 20 e1 0d 15 60 05  20 0d 15 61 19 20 dd 20  |_. ...`. ..a. . |
00028230  f2 72 65 73 65 74 5f 74  30 5f 61 73 73 65 6d 62  |.reset_t0_assemb|
00028240  6c 65 0d 15 62 18 20 de  20 72 65 73 65 74 5f 74  |le..b. . reset_t|
00028250  30 5f 63 6f 64 65 25 20  36 34 0d 15 63 11 20 e3  |0_code% 64..c. .|
00028260  20 50 3d 30 20 b8 20 32  20 88 32 0d 15 64 16 20  | P=0 . 2 .2..d. |
00028270  50 25 3d 72 65 73 65 74  5f 74 30 5f 63 6f 64 65  |P%=reset_t0_code|
00028280  25 0d 15 65 0b 20 5b 4f  50 54 20 50 0d 15 66 15  |%..e. [OPT P..f.|
00028290  20 53 57 49 20 22 4f 53  5f 45 6e 74 65 72 4f 53  | SWI "OS_EnterOS|
000282a0  22 0d 15 67 16 20 4d 4f  56 20 52 32 2c 23 26 30  |"..g. MOV R2,#&0|
000282b0  33 32 30 30 30 30 30 0d  15 68 21 20 4d 4f 56 20  |3200000..h! MOV |
000282c0  52 30 2c 23 33 31 3a 53  54 52 42 20 52 30 2c 5b  |R0,#31:STRB R0,[|
000282d0  52 32 2c 23 26 34 30 5d  0d 15 69 21 20 4d 4f 56  |R2,#&40]..i! MOV|
000282e0  20 52 30 2c 23 37 38 3a  53 54 52 42 20 52 30 2c  | R0,#78:STRB R0,|
000282f0  5b 52 32 2c 23 26 34 34  5d 0d 15 6a 24 20 54 45  |[R2,#&44]..j$ TE|
00028300  51 50 20 50 43 2c 23 30  3a 4d 4f 56 20 52 30 2c  |QP PC,#0:MOV R0,|
00028310  52 30 3a 4d 4f 56 20 50  43 2c 52 31 34 0d 15 6b  |R0:MOV PC,R14..k|
00028320  08 20 5d 3a ed 0d 15 6c  06 20 e1 0d 15 6d 05 20  |. ]:...l. ...m. |
00028330  0d 15 6e 14 20 dd 20 a4  70 64 31 36 30 5f 63 75  |..n. . .pd160_cu|
00028340  72 73 6f 72 0d 15 6f 26  20 f2 77 61 69 74 5f 6e  |rsor..o& .wait_n|
00028350  6f 5f 62 75 74 74 6f 6e  3a c8 97 20 c8 93 20 30  |o_button:.. .. 0|
00028360  2c 30 2c 32 35 34 2c 32  32 32 0d 15 70 24 20 c8  |,0,254,222..p$ .|
00028370  97 20 58 2c 59 2c 42 3a  e6 20 33 2c 36 33 3a c8  |. X,Y,B:. 3,63:.|
00028380  93 20 58 2c 59 2c 31 30  32 34 2c 37 36 38 0d 15  |. X,Y,1024,768..|
00028390  71 06 20 f5 0d 15 72 11  20 f5 3a c8 97 20 58 31  |q. ...r. .:.. X1|
000283a0  2c 59 31 2c 42 0d 15 73  1b 20 fd 20 58 31 3c 3e  |,Y1,B..s. . X1<>|
000283b0  58 20 84 20 59 31 3c 3e  59 20 84 20 42 3c 3e 30  |X . Y1<>Y . B<>0|
000283c0  0d 15 74 14 20 c8 93 20  58 2c 59 2c 31 30 32 34  |..t. .. X,Y,1024|
000283d0  2c 37 36 38 0d 15 75 16  20 c8 93 20 58 31 2c 59  |,768..u. .. X1,Y|
000283e0  31 2c 31 30 32 34 2c 37  36 38 0d 15 76 15 20 58  |1,1024,768..v. X|
000283f0  3d 58 31 3a 59 3d 59 31  3a fd 20 42 3c 3e 30 0d  |=X1:Y=Y1:. B<>0.|
00028400  15 77 16 20 c8 93 20 58  31 2c 59 31 2c 31 30 32  |.w. .. X1,Y1,102|
00028410  34 2c 37 36 38 0d 15 78  1e 20 58 25 3d 28 58 20  |4,768..x. X%=(X |
00028420  81 20 34 29 2a 34 3a 59  25 3d 28 59 20 81 20 32  |. 4)*4:Y%=(Y . 2|
00028430  29 2a 32 0d 15 79 18 20  c8 97 20 c8 93 20 30 2c  |)*2..y. .. .. 0,|
00028440  30 2c 31 32 38 30 2c 31  30 32 34 0d 15 7a 0c 20  |0,1280,1024..z. |
00028450  e7 20 42 3d 34 20 8c 0d  15 7b 0f 20 e6 20 33 32  |. B=4 ...{. . 32|
00028460  2c 33 32 2c 33 32 0d 15  7c 18 20 c8 93 20 c8 90  |,32,32..|. .. ..|
00028470  20 30 2c 30 2c 31 32 38  30 2c 59 25 2d 32 0d 15  | 0,0,1280,Y%-2..|
00028480  7d 18 20 c8 93 20 c8 90  20 30 2c 30 2c 58 25 2d  |}. .. .. 0,0,X%-|
00028490  32 2c 31 30 32 34 0d 15  7e 1d 20 c8 93 20 c8 90  |2,1024..~. .. ..|
000284a0  20 31 30 32 34 2b 58 25  2c 30 2c 32 35 36 2c 31  | 1024+X%,0,256,1|
000284b0  30 32 34 0d 15 7f 1c 20  c8 93 20 c8 90 20 30 2c  |024.... .. .. 0,|
000284c0  59 25 2b 37 36 38 2c 31  32 38 30 2c 32 38 30 0d  |Y%+768,1280,280.|
000284d0  15 80 1f 20 f2 70 64 5f  6d 6f 64 65 5f 68 65 61  |... .pd_mode_hea|
000284e0  64 65 72 28 58 25 2c 59  25 2b 37 36 38 29 0d 15  |der(X%,Y%+768)..|
000284f0  81 13 20 f2 75 70 6c 6f  61 64 5f 6d 65 6d 6f 72  |.. .upload_memor|
00028500  79 0d 15 82 1e 20 70 64  72 25 3d 28 28 32 32 34  |y.... pdr%=((224|
00028510  2d 59 25 29 2f 32 29 2a  31 32 38 30 2b 58 25 0d  |-Y%)/2)*1280+X%.|
00028520  15 83 06 20 cc 0d 15 84  0b 20 70 64 72 25 3d 31  |... ..... pdr%=1|
00028530  0d 15 85 06 20 cd 0d 15  86 0a 20 3d 70 64 72 25  |.... ..... =pdr%|
00028540  0d 15 87 04 0d 15 88 1d  20 dd 20 f2 70 64 5f 6d  |........ . .pd_m|
00028550  6f 64 65 5f 68 65 61 64  65 72 28 58 25 2c 59 25  |ode_header(X%,Y%|
00028560  29 0d 15 89 21 20 e7 20  6d 6f 64 65 25 3d 36 32  |)...! . mode%=62|
00028570  20 8c 20 57 25 3d 36 32  34 20 8b 20 57 25 3d 38  | . W%=624 . W%=8|
00028580  38 30 0d 15 8a 2a 20 e7  20 6d 6f 64 65 25 3d 36  |80...* . mode%=6|
00028590  33 20 84 20 6d 6f 64 65  25 3d 36 35 20 8c 20 48  |3 . mode%=65 . H|
000285a0  25 3d 36 34 20 8b 20 48  25 3d 33 32 0d 15 8b 10  |%=64 . H%=32....|
000285b0  20 e6 20 34 38 2c 34 38  2c 31 38 34 0d 15 8c 17  | . 48,48,184....|
000285c0  20 c8 93 20 c8 90 20 58  25 2c 59 25 2c 32 30 30  | .. .. X%,Y%,200|
000285d0  2c 48 25 0d 15 8d 1e 20  c8 93 20 c8 90 20 58 25  |,H%.... .. .. X%|
000285e0  2b 57 25 2b 31 39 38 2c  59 25 2c 32 30 34 2c 48  |+W%+198,Y%,204,H|
000285f0  25 0d 15 8e 25 20 c8 93  20 c8 90 20 58 25 2c 59  |%...% .. .. X%,Y|
00028600  25 2c 32 30 34 2c 48 25  3a e6 20 32 35 35 2c 32  |%,204,H%:. 255,2|
00028610  35 35 2c 32 35 35 0d 15  8f 04 0d 15 90 0f 20 c8  |55,255........ .|
00028620  8e 20 6d 6f 64 65 25 20  ca 0d 15 91 14 20 c9 20  |. mode% ..... . |
00028630  32 30 3a 70 64 24 3d 22  20 50 2d 33 22 0d 15 92  |20:pd$=" P-3"...|
00028640  14 20 c9 20 32 31 3a 70  64 24 3d 22 20 50 2d 35  |. . 21:pd$=" P-5|
00028650  22 0d 15 93 14 20 c9 20  32 32 3a 70 64 24 3d 22  |".... . 22:pd$="|
00028660  20 50 2d 37 22 0d 15 94  15 20 c9 20 36 30 3a 70  | P-7".... . 60:p|
00028670  64 24 3d 22 50 44 31 38  30 22 0d 15 95 15 20 c9  |d$="PD180".... .|
00028680  20 36 31 3a 70 64 24 3d  22 50 44 32 34 30 22 0d  | 61:pd$="PD240".|
00028690  15 96 15 20 c9 20 36 32  3a 70 64 24 3d 22 50 44  |... . 62:pd$="PD|
000286a0  31 36 30 22 0d 15 97 15  20 c9 20 36 33 3a 70 64  |160".... . 63:pd|
000286b0  24 3d 22 50 44 20 39 30  22 0d 15 98 15 20 c9 20  |$="PD 90".... . |
000286c0  36 34 3a 70 64 24 3d 22  50 44 31 32 30 22 0d 15  |64:pd$="PD120"..|
000286d0  99 15 20 c9 20 36 35 3a  70 64 24 3d 22 50 44 20  |.. . 65:pd$="PD |
000286e0  35 30 22 0d 15 9a 06 20  cb 0d 15 9b 07 20 ef 35  |50".... ..... .5|
000286f0  0d 15 9c 1c 20 e7 20 6d  6f 64 65 25 3d 36 33 20  |.... . mode%=63 |
00028700  84 20 6d 6f 64 65 25 3d  36 35 20 8c 0d 15 9d 18  |. mode%=65 .....|
00028710  20 ef 32 33 2c 31 37 2c  37 2c 36 2c 31 36 3b 33  | .23,17,7,6,16;3|
00028720  32 3b 30 3b 0d 15 9e 0a  20 68 25 3d 35 34 0d 15  |2;0;.... h%=54..|
00028730  9f 06 20 cc 0d 15 a0 18  20 ef 32 33 2c 31 37 2c  |.. ..... .23,17,|
00028740  37 2c 36 2c 31 36 3b 31  36 3b 30 3b 0d 15 a1 0a  |7,6,16;16;0;....|
00028750  20 68 25 3d 32 38 0d 15  a2 06 20 cd 0d 15 a3 1c  | h%=28.... .....|
00028760  20 ec 20 58 25 2b 57 25  2b 32 32 30 2c 59 25 2b  | . X%+W%+220,Y%+|
00028770  68 25 3a f1 20 70 64 24  0d 15 a4 20 20 e7 20 a9  |h%:. pd$...  . .|
00028780  28 63 61 6c 6c 24 29 3e  35 20 8c 20 78 25 3d 34  |(call$)>5 . x%=4|
00028790  20 8b 20 78 25 3d 31 36  0d 15 a5 1a 20 ec 20 58  | . x%=16.... . X|
000287a0  25 2b 78 25 2c 59 25 2b  68 25 3a f1 20 63 61 6c  |%+x%,Y%+h%:. cal|
000287b0  6c 24 0d 15 a6 1e 20 ef  32 33 2c 31 37 2c 37 2c  |l$.... .23,17,7,|
000287c0  36 2c 38 3b 38 3b 30 3b  3a ef 34 3a 87 3a c8 96  |6,8;8;0;:.4:.:..|
000287d0  0d 15 a7 11 20 47 25 3d  36 3a 77 3d 57 25 2f 33  |.... G%=6:w=W%/3|
000287e0  31 0d 15 a8 1e 20 e3 20  78 25 3d 58 25 2b 32 30  |1.... . x%=X%+20|
000287f0  30 20 b8 20 78 25 2b 57  25 2d 77 20 88 20 77 0d  |0 . x%+W%-w . w.|
00028800  15 a9 22 20 e6 20 47 25  2c 47 25 2c 47 25 3a c8  |.." . G%,G%,G%:.|
00028810  93 20 c8 90 20 78 25 2c  59 25 2c 77 2b 38 2c 48  |. .. x%,Y%,w+8,H|
00028820  25 0d 15 aa 0c 20 47 25  2b 3d 38 3a ed 0d 15 ab  |%.... G%+=8:....|
00028830  06 20 e1 0d 15 ac 04 0d  15 ad 1b 20 dd 20 f2 6c  |. ......... . .l|
00028840  6f 61 64 5f 6f 6e 5f 6c  69 6e 65 5f 6d 61 6e 75  |oad_on_line_manu|
00028850  61 6c 0d 15 ae 3e 20 20  6d 61 6e 74 69 6c 65 5f  |al...>  mantile_|
00028860  73 69 7a 65 25 3d a4 66  69 6c 65 5f 6c 65 6e 28  |size%=.file_len(|
00028870  22 3c 50 73 63 61 6e 24  44 69 72 3e 2e 50 53 73  |"<Pscan$Dir>.PSs|
00028880  70 72 69 74 65 73 2e 4d  61 6e 74 69 6c 65 22 29  |prites.Mantile")|
00028890  0d 15 af 32 20 20 6d 61  6e 75 61 6c 5f 73 69 7a  |...2  manual_siz|
000288a0  65 25 3d a4 66 69 6c 65  5f 6c 65 6e 28 22 3c 50  |e%=.file_len("<P|
000288b0  73 63 61 6e 24 44 69 72  3e 2e 4d 61 6e 75 61 6c  |scan$Dir>.Manual|
000288c0  22 29 0d 15 b0 31 20 20  de 20 73 70 72 5f 6d 61  |")...1  . spr_ma|
000288d0  6e 75 61 6c 25 20 6d 61  6e 74 69 6c 65 5f 73 69  |nual% mantile_si|
000288e0  7a 65 25 2b 6d 61 6e 75  61 6c 5f 73 69 7a 65 25  |ze%+manual_size%|
000288f0  2b 33 32 0d 15 b1 22 20  20 21 73 70 72 5f 6d 61  |+32..."  !spr_ma|
00028900  6e 75 61 6c 25 3d 6d 61  6e 74 69 6c 65 5f 73 69  |nual%=mantile_si|
00028910  7a 65 25 2b 34 0d 15 b2  38 20 20 73 70 72 5f 6d  |ze%+4...8  spr_m|
00028920  61 6e 75 61 6c 25 21 34  3d 30 3a 73 70 72 5f 6d  |anual%!4=0:spr_m|
00028930  61 6e 75 61 6c 25 21 38  3d 31 36 3a 73 70 72 5f  |anual%!8=16:spr_|
00028940  6d 61 6e 75 61 6c 25 21  31 32 3d 31 36 0d 15 b3  |manual%!12=16...|
00028950  43 20 20 c8 99 20 73 70  72 73 77 69 25 2c 32 35  |C  .. sprswi%,25|
00028960  36 2b 31 30 2c 73 70 72  5f 6d 61 6e 75 61 6c 25  |6+10,spr_manual%|
00028970  2c 22 3c 50 73 63 61 6e  24 44 69 72 3e 2e 50 53  |,"<Pscan$Dir>.PS|
00028980  73 70 72 69 74 65 73 2e  4d 61 6e 74 69 6c 65 22  |sprites.Mantile"|
00028990  0d 15 b4 44 20 20 ff 28  22 4c 4f 41 44 20 3c 50  |...D  .("LOAD <P|
000289a0  73 63 61 6e 24 44 69 72  3e 2e 4d 61 6e 75 61 6c  |scan$Dir>.Manual|
000289b0  20 22 2b c3 7e 28 73 70  72 5f 6d 61 6e 75 61 6c  | "+.~(spr_manual|
000289c0  25 2b 6d 61 6e 74 69 6c  65 5f 73 69 7a 65 25 2b  |%+mantile_size%+|
000289d0  31 36 29 29 0d 15 b5 06  20 e1 0d 15 b6 04 0d 15  |16)).... .......|
000289e0  b7 16 20 dd 20 f2 6f 6e  5f 6c 69 6e 65 5f 6d 61  |.. . .on_line_ma|
000289f0  6e 75 61 6c 0d 15 b8 24  20 54 25 3d 73 70 72 5f  |nual...$ T%=spr_|
00028a00  6d 61 6e 75 61 6c 25 2b  6d 61 6e 74 69 6c 65 5f  |manual%+mantile_|
00028a10  73 69 7a 65 25 2b 31 36  0d 15 b9 44 20 63 68 25  |size%+16...D ch%|
00028a20  3d 30 3a 21 6d 61 6e 5f  62 6c 6f 63 6b 5f 74 65  |=0:!man_block_te|
00028a30  6d 70 3d 54 25 3a 21 6d  61 6e 5f 6c 65 6e 5f 74  |mp=T%:!man_len_t|
00028a40  65 6d 70 3d 6d 61 6e 75  61 6c 5f 73 69 7a 65 25  |emp=manual_size%|
00028a50  3a d6 20 6d 61 6e 5f 63  6f 64 65 25 0d 15 ba 23  |:. man_code%...#|
00028a60  20 e6 20 38 30 2c 38 30  2c 38 30 3a c8 93 20 c8  | . 80,80,80:.. .|
00028a70  90 20 30 2c 30 2c 31 32  38 30 2c 31 30 32 34 0d  |. 0,0,1280,1024.|
00028a80  15 bb 25 20 e6 20 32 35  35 2c 32 35 35 2c 32 35  |..% . 255,255,25|
00028a90  35 3a 86 20 38 2c 31 30  30 38 2c 31 32 36 36 2c  |5:. 8,1008,1266,|
00028aa0  31 30 30 38 0d 15 bc 2e  20 86 20 38 2c 31 30 31  |1008.... . 8,101|
00028ab0  30 2c 31 32 36 36 2c 31  30 31 30 3a e6 20 30 2c  |0,1266,1010:. 0,|
00028ac0  30 2c 30 3a 86 20 38 2c  37 38 2c 31 32 36 36 2c  |0,0:. 8,78,1266,|
00028ad0  37 38 0d 15 bd 32 20 86  20 38 2c 37 36 2c 31 32  |78...2 . 8,76,12|
00028ae0  36 36 2c 37 36 3a e6 20  31 36 2c 31 36 2c 31 36  |66,76:. 16,16,16|
00028af0  3a 86 20 31 32 36 38 2c  37 36 2c 31 32 36 38 2c  |:. 1268,76,1268,|
00028b00  31 30 31 30 0d 15 be 31  20 86 20 31 32 37 30 2c  |1010...1 . 1270,|
00028b10  37 36 2c 31 32 37 30 2c  31 30 31 30 3a ef 35 2c  |76,1270,1010:.5,|
00028b20  32 36 3a ef 32 33 2c 31  37 2c 37 2c 36 2c 38 3b  |26:.23,17,7,6,8;|
00028b30  31 36 3b 30 3b 0d 15 bf  2d 20 43 52 25 3d 30 3a  |16;0;...- CR%=0:|
00028b40  4e 25 3d 30 3a 6d 61 6e  71 75 69 74 25 3d a3 3a  |N%=0:manquit%=.:|
00028b50  6e 65 77 70 61 72 61 25  3d a3 3a 70 61 67 65 25  |newpara%=.:page%|
00028b60  3d 30 0d 15 c0 28 20 f2  6d 61 6e 75 61 6c 5f 62  |=0...( .manual_b|
00028b70  75 74 74 6f 6e 73 3a 6d  61 6e 5f 62 6f 78 25 3d  |uttons:man_box%=|
00028b80  39 39 3a f2 6d 6f 75 73  65 33 0d 15 c1 04 0d 15  |99:.mouse3......|
00028b90  c2 19 20 f5 3a f2 6d 61  6e 75 61 6c 5f 62 61 63  |.. .:.manual_bac|
00028ba0  6b 67 72 6f 75 6e 64 0d  15 c3 3d 20 e7 20 6e 65  |kground...= . ne|
00028bb0  77 70 61 72 61 25 20 8c  20 e6 20 30 2c 36 34 2c  |wpara% . . 0,64,|
00028bc0  31 36 30 3a c8 93 20 c8  90 20 31 36 2c 39 35 34  |160:.. .. 16,954|
00028bd0  2c 31 32 34 30 2c 34 38  3a e6 20 32 35 35 2c 32  |,1240,48:. 255,2|
00028be0  35 35 2c 30 0d 15 c4 27  20 ec 20 32 34 2c 39 39  |55,0...' . 24,99|
00028bf0  32 3a 21 28 70 61 67 65  5f 73 74 6f 72 65 25 2b  |2:!(page_store%+|
00028c00  70 61 67 65 25 2a 34 29  3d 4e 25 0d 15 c5 04 0d  |page%*4)=N%.....|
00028c10  15 c6 25 20 f5 3a 4b 25  3d 3f 28 54 25 2b 4e 25  |..% .:K%=?(T%+N%|
00028c20  29 3a e7 20 4b 25 3d 97  22 bb 22 20 8c 20 43 52  |):. K%=."." . CR|
00028c30  25 3d 32 36 0d 15 c7 0e  20 e7 20 4b 25 3d 31 30  |%=26.... . K%=10|
00028c40  20 8c 0d 15 c8 26 20 ef  20 31 33 2c 31 30 3a 43  | ....& . 13,10:C|
00028c50  52 25 2b 3d 31 3a ec 20  42 59 20 32 34 2c 2d 34  |R%+=1:. BY 24,-4|
00028c60  3a e6 20 30 2c 30 2c 30  0d 15 c9 28 20 e7 20 3f  |:. 0,0,0...( . ?|
00028c70  28 54 25 2b 4e 25 2b 33  29 3d 34 31 20 8c 20 43  |(T%+N%+3)=41 . C|
00028c80  52 25 3d 32 35 3a 6e 65  77 70 61 72 61 25 3d b9  |R%=25:newpara%=.|
00028c90  0d 15 ca 11 20 cc 20 6e  65 77 70 61 72 61 25 3d  |.... . newpara%=|
00028ca0  a3 0d 15 cb 06 20 cd 0d  15 cc 13 20 e7 20 4b 25  |..... ..... . K%|
00028cb0  3e 33 30 20 8c 20 ef 20  4b 25 0d 15 cd 13 20 4e  |>30 . . K%.... N|
00028cc0  25 2b 3d 31 3a fd 20 43  52 25 3e 32 34 0d 15 ce  |%+=1:. CR%>24...|
00028cd0  04 0d 15 cf 0d 20 70 61  67 65 25 2b 3d 31 0d 15  |..... page%+=1..|
00028ce0  d0 1b 20 e7 20 6e 65 77  70 61 72 61 25 20 80 20  |.. . newpara% . |
00028cf0  70 61 67 65 25 3e 31 20  8c 0d 15 d1 30 20 ec 20  |page%>1 ....0 . |
00028d00  42 59 20 30 2c 33 32 3a  e6 20 36 34 2c 30 2c 31  |BY 0,32:. 64,0,1|
00028d10  39 36 3a f1 20 22 ab 20  45 6e 64 20 6f 66 20 63  |96:. ". End of c|
00028d20  68 61 70 74 65 72 20 bb  22 0d 15 d2 06 20 cd 0d  |hapter .".... ..|
00028d30  15 d3 20 20 e7 20 70 61  67 65 25 3e 31 20 8c 20  |..  . page%>1 . |
00028d40  f2 6d 61 6e 75 61 6c 5f  63 6f 6e 74 72 6f 6c 0d  |.manual_control.|
00028d50  15 d4 21 20 43 52 25 3d  30 3a ec 20 42 59 20 32  |..! CR%=0:. BY 2|
00028d60  34 2c 2d 31 36 3a fd 20  6d 61 6e 71 75 69 74 25  |4,-16:. manquit%|
00028d70  0d 15 d5 15 20 ef 34 3a  87 3a c8 96 3a f2 64 69  |.... .4:.:..:.di|
00028d80  73 6d 69 6e 69 0d 15 d6  0f 20 2a 50 4f 49 4e 54  |smini.... *POINT|
00028d90  45 52 20 31 0d 15 d7 06  20 e1 0d 15 d8 04 0d 15  |ER 1.... .......|
00028da0  d9 16 20 dd 20 f2 6d 61  6e 75 61 6c 5f 63 6f 6e  |.. . .manual_con|
00028db0  74 72 6f 6c 0d 15 da 21  20 e6 20 38 30 2c 38 30  |trol...! . 80,80|
00028dc0  2c 38 30 3a c8 93 20 c8  90 20 30 2c 31 36 2c 38  |,80:.. .. 0,16,8|
00028dd0  30 30 2c 35 34 0d 15 db  22 20 e6 20 31 32 38 2c  |00,54..." . 128,|
00028de0  30 2c 32 35 35 3a c8 93  20 c8 90 20 38 2c 32 32  |0,255:.. .. 8,22|
00028df0  2c 37 35 30 2c 34 38 0d  15 dc 10 20 e7 20 70 61  |,750,48.... . pa|
00028e00  67 65 25 3d 32 20 8c 0d  15 dd 4b 20 20 f2 77 72  |ge%=2 ....K  .wr|
00028e10  69 74 65 32 28 22 43 6c  69 63 6b 20 6f 6e 20 61  |ite2("Click on a|
00028e20  20 6c 69 6e 65 20 69 6e  20 74 68 65 20 69 6e 64  | line in the ind|
00028e30  65 78 20 74 6f 20 67 6f  20 74 6f 20 74 68 61 74  |ex to go to that|
00028e40  20 63 68 61 70 74 65 72  22 2c 32 34 2c 33 30 2c  | chapter",24,30,|
00028e50  31 29 0d 15 de 06 20 cc  0d 15 df 4b 20 20 f2 77  |1).... ....K  .w|
00028e60  72 69 74 65 32 28 22 43  6c 69 63 6b 20 61 6e 79  |rite2("Click any|
00028e70  77 68 65 72 65 20 6f 6e  20 74 68 69 73 20 70 61  |where on this pa|
00028e80  67 65 20 74 6f 20 72 65  74 75 72 6e 20 74 6f 20  |ge to return to |
00028e90  74 68 65 20 69 6e 64 65  78 22 2c 32 34 2c 33 30  |the index",24,30|
00028ea0  2c 31 29 0d 15 e0 06 20  cd 0d 15 e1 22 20 f2 77  |,1).... ...." .w|
00028eb0  61 69 74 5f 6e 6f 5f 62  75 74 74 6f 6e 3a e6 20  |ait_no_button:. |
00028ec0  33 2c 36 33 20 c8 9c 20  31 39 32 0d 15 e2 12 20  |3,63 .. 192.... |
00028ed0  c8 8e 20 6d 61 6e 5f 62  6f 78 25 20 ca 0d 15 e3  |.. man_box% ....|
00028ee0  1c 20 c9 20 38 3a c8 93  20 c8 90 20 39 32 34 2c  |. . 8:.. .. 924,|
00028ef0  32 32 2c 31 31 30 2c 34  38 0d 15 e4 1d 20 c9 20  |22,110,48.... . |
00028f00  39 3a c8 93 20 c8 90 20  31 30 33 38 2c 32 32 2c  |9:.. .. 1038,22,|
00028f10  31 31 30 2c 34 36 0d 15  e5 06 20 cb 0d 15 e6 27  |110,46.... ....'|
00028f20  20 f5 20 3a 20 f4 20 70  61 67 65 25 3d 32 20 77  | . : . page%=2 w|
00028f30  68 65 6e 20 69 6e 64 65  78 20 64 69 73 70 6c 61  |hen index displa|
00028f40  79 65 64 0d 15 e7 0f 20  f5 3a c8 97 20 58 2c 59  |yed.... .:.. X,Y|
00028f50  2c 42 0d 15 e8 2e 20 e7  20 59 3e 32 30 30 20 80  |,B.... . Y>200 .|
00028f60  20 59 3c 38 36 30 20 80  20 94 28 58 2d 36 34 30  | Y<860 . .(X-640|
00028f70  29 3e 33 32 20 80 20 70  61 67 65 25 3d 32 20 8c  |)>32 . page%=2 .|
00028f80  0d 15 e9 0d 20 20 f2 6d  6f 75 73 65 33 0d 15 ea  |....  .mouse3...|
00028f90  06 20 cc 0d 15 eb 10 20  20 2a 50 4f 49 4e 54 45  |. .....  *POINTE|
00028fa0  52 20 31 0d 15 ec 06 20  cd 0d 15 ed 25 20 69 6e  |R 1.... ....% in|
00028fb0  64 65 78 25 3d 28 28 28  31 30 32 34 2d 59 2b 38  |dex%=(((1024-Y+8|
00028fc0  29 20 81 20 33 36 29 2d  35 29 2a 32 2b 31 0d 15  |) . 36)-5)*2+1..|
00028fd0  ee 18 20 e7 20 58 3e 36  34 30 20 8c 20 69 6e 64  |.. . X>640 . ind|
00028fe0  65 78 25 2b 3d 31 0d 15  ef 0b 20 fd 20 42 3c 3e  |ex%+=1.... . B<>|
00028ff0  30 0d 15 f0 29 20 e7 20  28 69 6e 64 65 78 25 3e  |0...) . (index%>|
00029000  30 20 80 20 69 6e 64 65  78 25 3c 33 36 29 20 80  |0 . index%<36) .|
00029010  20 70 61 67 65 25 3d 32  20 8c 0d 15 f1 35 20 4e  | page%=2 ....5 N|
00029020  25 3d 6d 61 6e 5f 63 68  61 70 74 65 72 25 21 28  |%=man_chapter%!(|
00029030  69 6e 64 65 78 25 2a 34  29 3a 6d 61 6e 5f 62 6f  |index%*4):man_bo|
00029040  78 25 3d 32 3a 6e 65 77  70 61 72 61 25 3d b9 0d  |x%=2:newpara%=..|
00029050  15 f2 06 20 cc 0d 15 f3  37 20 e7 20 59 3e 31 38  |... ....7 . Y>18|
00029060  20 80 20 59 3c 37 32 20  8c 20 6d 61 6e 5f 62 6f  | . Y<72 . man_bo|
00029070  78 25 3d 28 58 2d 31 30  29 20 81 20 31 31 34 20  |x%=(X-10) . 114 |
00029080  8b 20 6d 61 6e 5f 62 6f  78 25 3d 30 0d 15 f4 06  |. man_box%=0....|
00029090  20 cd 0d 15 f5 12 20 c8  8e 20 6d 61 6e 5f 62 6f  | ..... .. man_bo|
000290a0  78 25 20 ca 0d 15 f6 15  20 c9 20 30 3a 4e 25 3d  |x% ..... . 0:N%=|
000290b0  30 3a 70 61 67 65 25 3d  30 0d 15 f7 17 20 c9 20  |0:page%=0.... . |
000290c0  38 3a f2 6d 61 6e 5f 70  61 67 65 5f 62 61 63 6b  |8:.man_page_back|
000290d0  0d 15 f8 43 20 c9 20 39  3a e7 20 43 52 25 3c 3e  |...C . 9:. CR%<>|
000290e0  32 36 20 8c 20 c8 93 20  c8 90 20 31 30 33 38 2c  |26 . .. .. 1038,|
000290f0  32 32 2c 31 31 30 2c 34  38 20 8b 20 4e 25 3d 30  |22,110,48 . N%=0|
00029100  3a 70 61 67 65 25 3d 30  3a 6d 61 6e 5f 62 6f 78  |:page%=0:man_box|
00029110  25 3d 30 0d 15 f9 14 20  c9 20 31 30 3a 6d 61 6e  |%=0.... . 10:man|
00029120  71 75 69 74 25 3d b9 0d  15 fa 06 20 cb 0d 15 fb  |quit%=..... ....|
00029130  39 20 fd 20 6d 61 6e 5f  62 6f 78 25 3d 30 20 84  |9 . man_box%=0 .|
00029140  20 6d 61 6e 5f 62 6f 78  25 3d 32 20 84 20 6d 61  | man_box%=2 . ma|
00029150  6e 5f 62 6f 78 25 3e 37  20 80 20 6d 61 6e 5f 62  |n_box%>7 . man_b|
00029160  6f 78 25 3c 31 31 0d 15  fc 0c 20 e6 20 30 2c 30  |ox%<11.... . 0,0|
00029170  2c 30 0d 15 fd 06 20 e1  0d 15 fe 04 0d 15 ff 15  |,0.... .........|
00029180  20 dd 20 f2 6d 61 6e 5f  70 61 67 65 5f 62 61 63  | . .man_page_bac|
00029190  6b 0d 16 00 1c 20 e7 20  70 61 67 65 25 3e 30 20  |k.... . page%>0 |
000291a0  80 20 70 61 67 65 25 3c  32 30 30 20 8c 0d 16 01  |. page%<200 ....|
000291b0  21 20 4e 25 3d 70 61 67  65 5f 73 74 6f 72 65 25  |! N%=page_store%|
000291c0  21 28 28 70 61 67 65 25  2d 32 29 2a 34 29 0d 16  |!((page%-2)*4)..|
000291d0  02 21 20 c8 93 20 c8 90  20 39 32 34 2c 32 32 2c  |.! .. .. 924,22,|
000291e0  31 31 30 2c 34 38 3a 70  61 67 65 25 2d 3d 32 0d  |110,48:page%-=2.|
000291f0  16 03 2e 20 e7 20 3f 28  54 25 2b 4e 25 2b 32 29  |... . ?(T%+N%+2)|
00029200  3d 34 31 20 8c 20 6e 65  77 70 61 72 61 25 3d b9  |=41 . newpara%=.|
00029210  20 8b 20 6e 65 77 70 61  72 61 25 3d a3 0d 16 04  | . newpara%=....|
00029220  06 20 cd 0d 16 05 06 20  e1 0d 16 06 04 0d 16 07  |. ..... ........|
00029230  19 20 dd 20 f2 6d 61 6e  75 61 6c 5f 62 61 63 6b  |. . .manual_back|
00029240  67 72 6f 75 6e 64 0d 16  08 2b 20 e3 20 58 25 3d  |ground...+ . X%=|
00029250  38 20 b8 20 38 34 38 20  88 20 34 32 30 3a e3 20  |8 . 848 . 420:. |
00029260  59 25 3d 38 30 20 b8 20  36 39 36 20 88 20 33 30  |Y%=80 . 696 . 30|
00029270  38 0d 16 09 48 20 c8 99  20 73 70 72 73 77 69 25  |8...H .. sprswi%|
00029280  2c 32 35 36 2b 35 32 2c  73 70 72 5f 6d 61 6e 75  |,256+52,spr_manu|
00029290  61 6c 25 2c 22 6d 61 6e  74 69 6c 65 22 2c 58 25  |al%,"mantile",X%|
000292a0  2c 59 25 2c 30 2c 30 2c  74 72 61 6e 73 6c 61 74  |,Y%,0,0,translat|
000292b0  65 32 35 36 25 3a ed 3a  ed 0d 16 0a 06 20 e1 0d  |e256%:.:..... ..|
000292c0  16 0b 04 0d 16 0c 16 20  dd 20 f2 6d 61 6e 75 61  |....... . .manua|
000292d0  6c 5f 62 75 74 74 6f 6e  73 0d 16 0d 38 20 e3 20  |l_buttons...8 . |
000292e0  58 25 3d 38 31 34 20 b8  20 31 31 35 36 20 88 20  |X%=814 . 1156 . |
000292f0  31 31 34 3a f2 72 61 69  73 65 64 5f 62 6c 6f 63  |114:.raised_bloc|
00029300  6b 28 58 25 2c 32 36 2c  31 30 32 2c 34 30 29 3a  |k(X%,26,102,40):|
00029310  ed 0d 16 0e 3c 20 f2 77  72 69 74 65 32 28 22 6e  |....< .write2("n|
00029320  65 78 74 20 3e 22 2c 31  30 33 36 2c 33 30 2c 34  |ext >",1036,30,4|
00029330  29 3a f2 77 72 69 74 65  32 28 22 43 61 6e 63 65  |):.write2("Cance|
00029340  6c 22 2c 31 31 35 30 2c  33 30 2c 34 29 0d 16 0f  |l",1150,30,4)...|
00029350  3a 20 f2 77 72 69 74 65  32 28 22 3c 20 62 61 63  |: .write2("< bac|
00029360  6b 22 2c 39 32 30 2c 33  30 2c 34 29 3a f2 77 72  |k",920,30,4):.wr|
00029370  69 74 65 32 28 22 53 65  61 72 63 68 22 2c 38 30  |ite2("Search",80|
00029380  36 2c 33 30 2c 36 29 0d  16 10 06 20 e1 0d 16 11  |6,30,6).... ....|
00029390  04 0d 16 12 17 20 dd 20  f2 6d 61 6e 75 61 6c 5f  |..... . .manual_|
000293a0  61 73 73 65 6d 62 6c 65  0d 16 13 14 20 de 20 6d  |assemble.... . m|
000293b0  61 6e 5f 63 6f 64 65 25  20 32 35 36 0d 16 14 11  |an_code% 256....|
000293c0  20 e3 20 50 3d 30 20 b8  20 32 20 88 32 0d 16 15  | . P=0 . 2 .2...|
000293d0  11 20 50 25 3d 6d 61 6e  5f 63 6f 64 65 25 0d 16  |. P%=man_code%..|
000293e0  16 0b 20 5b 4f 50 54 20  50 0d 16 17 2e 20 4c 44  |.. [OPT P.... LD|
000293f0  52 20 52 33 2c 6d 61 6e  5f 62 6c 6f 63 6b 5f 74  |R R3,man_block_t|
00029400  65 6d 70 3a 4c 44 52 20  52 34 2c 6d 61 6e 5f 6c  |emp:LDR R4,man_l|
00029410  65 6e 5f 74 65 6d 70 0d  16 18 2d 20 4c 44 52 20  |en_temp...- LDR |
00029420  52 35 2c 6d 61 6e 5f 63  68 61 70 5f 74 65 6d 70  |R5,man_chap_temp|
00029430  3a 4d 4f 56 20 52 32 2c  23 30 3a 4d 4f 56 20 52  |:MOV R2,#0:MOV R|
00029440  36 2c 23 30 0d 16 19 33  20 2e 6d 61 6e 5f 6c 6f  |6,#0...3 .man_lo|
00029450  6f 70 20 4c 44 52 42 20  52 30 2c 5b 52 33 2c 52  |op LDRB R0,[R3,R|
00029460  32 5d 3a 43 4d 50 20 52  30 2c 23 31 30 3a 42 4e  |2]:CMP R0,#10:BN|
00029470  45 20 6e 6f 5f 6c 66 0d  16 1a 2c 20 41 44 44 20  |E no_lf..., ADD |
00029480  52 32 2c 52 32 2c 23 33  3a 4c 44 52 42 20 52 30  |R2,R2,#3:LDRB R0|
00029490  2c 5b 52 33 2c 52 32 5d  3a 43 4d 50 20 52 30 2c  |,[R3,R2]:CMP R0,|
000294a0  23 34 31 0d 16 1b 40 20  53 55 42 20 52 32 2c 52  |#41...@ SUB R2,R|
000294b0  32 2c 23 32 3a 53 54 52  45 51 20 52 32 2c 5b 52  |2,#2:STREQ R2,[R|
000294c0  35 2c 52 36 5d 3a 41 44  44 45 51 20 52 36 2c 52  |5,R6]:ADDEQ R6,R|
000294d0  36 2c 23 34 3a 53 55 42  45 51 20 52 32 2c 52 32  |6,#4:SUBEQ R2,R2|
000294e0  2c 23 31 0d 16 1c 2f 20  2e 6e 6f 5f 6c 66 20 41  |,#1.../ .no_lf A|
000294f0  44 44 20 52 32 2c 52 32  2c 23 31 3a 43 4d 50 20  |DD R2,R2,#1:CMP |
00029500  52 32 2c 52 34 3a 42 4c  54 20 6d 61 6e 5f 6c 6f  |R2,R4:BLT man_lo|
00029510  6f 70 0d 16 1d 19 20 4d  4f 56 20 52 30 2c 52 36  |op.... MOV R0,R6|
00029520  3a 4d 4f 56 20 50 43 2c  52 31 34 0d 16 1e 1b 20  |:MOV PC,R14.... |
00029530  2e 6d 61 6e 5f 62 6c 6f  63 6b 5f 74 65 6d 70 20  |.man_block_temp |
00029540  45 51 55 44 20 30 0d 16  1f 1b 20 2e 6d 61 6e 5f  |EQUD 0.... .man_|
00029550  6c 65 6e 5f 74 65 6d 70  20 20 20 45 51 55 44 20  |len_temp   EQUD |
00029560  30 0d 16 20 1b 20 2e 6d  61 6e 5f 63 68 61 70 5f  |0.. . .man_chap_|
00029570  74 65 6d 70 20 20 45 51  55 44 20 30 0d 16 21 06  |temp  EQUD 0..!.|
00029580  20 5d 0d 16 22 06 20 ed  0d 16 23 46 20 de 20 70  | ]..". ...#F . p|
00029590  61 67 65 5f 73 74 6f 72  65 25 20 32 30 30 2a 34  |age_store% 200*4|
000295a0  2c 6d 61 6e 5f 63 68 61  70 74 65 72 25 20 35 30  |,man_chapter% 50|
000295b0  2a 34 3a 21 6d 61 6e 5f  63 68 61 70 5f 74 65 6d  |*4:!man_chap_tem|
000295c0  70 3d 6d 61 6e 5f 63 68  61 70 74 65 72 25 0d 16  |p=man_chapter%..|
000295d0  24 06 20 e1 0d 16 25 04  0d 16 26 11 20 dd 20 f2  |$. ...%...&. . .|
000295e0  74 72 61 6e 5f 6d 65 6e  75 0d 16 27 20 20 6d 65  |tran_menu..'  me|
000295f0  6e 75 24 28 30 29 3d 22  52 6f 74 61 74 65 20 6f  |nu$(0)="Rotate o|
00029600  72 20 66 6c 69 70 20 20  22 0d 16 28 1e 20 6d 65  |r flip  "..(. me|
00029610  6e 75 24 28 31 29 3d 22  52 6f 74 61 74 65 20 6c  |nu$(1)="Rotate l|
00029620  65 66 74 20 39 30 22 0d  16 29 1f 20 6d 65 6e 75  |eft 90"..). menu|
00029630  24 28 32 29 3d 22 52 6f  74 61 74 65 20 72 69 67  |$(2)="Rotate rig|
00029640  68 74 20 39 30 22 0d 16  2a 1a 20 6d 65 6e 75 24  |ht 90"..*. menu$|
00029650  28 33 29 3d 22 52 6f 74  61 74 65 20 31 38 30 22  |(3)="Rotate 180"|
00029660  0d 16 2b 1f 20 6d 65 6e  75 24 28 34 29 3d 22 46  |..+. menu$(4)="F|
00029670  6c 69 70 20 6c 65 66 74  2d 72 69 67 68 74 22 0d  |lip left-right".|
00029680  16 2c 1f 20 6d 65 6e 75  24 28 35 29 3d 22 46 6c  |.,. menu$(5)="Fl|
00029690  69 70 20 74 6f 70 2d 62  6f 74 74 6f 6d 22 0d 16  |ip top-bottom"..|
000296a0  2d 20 20 6d 65 6e 75 24  28 36 29 3d 22 2a 22 3a  |-  menu$(6)="*":|
000296b0  f2 6d 65 6e 75 28 30 2c  39 30 2c 2d 31 29 0d 16  |.menu(0,90,-1)..|
000296c0  2e 13 20 c8 8e 20 6d 65  6e 75 5f 62 6f 78 25 20  |.. .. menu_box% |
000296d0  ca 0d 16 2f 4e 20 c9 20  31 3a 78 31 25 3d 31 32  |.../N . 1:x1%=12|
000296e0  38 3a 79 31 25 3d 2d 31  32 38 3a 78 32 25 3d 31  |8:y1%=-128:x2%=1|
000296f0  32 38 3a 79 32 25 3d 31  31 35 31 3a 78 33 25 3d  |28:y2%=1151:x3%=|
00029700  31 31 35 31 3a 79 33 25  3d 31 31 35 31 3a 78 34  |1151:y3%=1151:x4|
00029710  25 3d 31 31 35 31 3a 79  34 25 3d 2d 31 32 38 0d  |%=1151:y4%=-128.|
00029720  16 30 4e 20 c9 20 32 3a  78 31 25 3d 31 31 35 31  |.0N . 2:x1%=1151|
00029730  3a 79 31 25 3d 31 31 35  31 3a 78 32 25 3d 31 31  |:y1%=1151:x2%=11|
00029740  35 31 3a 79 32 25 3d 2d  31 32 38 3a 78 33 25 3d  |51:y2%=-128:x3%=|
00029750  31 32 38 3a 79 33 25 3d  2d 31 32 38 3a 78 34 25  |128:y3%=-128:x4%|
00029760  3d 31 32 38 3a 79 34 25  3d 31 31 35 31 0d 16 31  |=128:y4%=1151..1|
00029770  44 20 c9 20 33 3a 78 31  25 3d 31 32 37 39 3a 79  |D . 3:x1%=1279:y|
00029780  31 25 3d 30 3a 78 32 25  3d 30 3a 79 32 25 3d 30  |1%=0:x2%=0:y2%=0|
00029790  3a 78 33 25 3d 30 3a 79  33 25 3d 31 30 32 33 3a  |:x3%=0:y3%=1023:|
000297a0  78 34 25 3d 31 32 37 39  3a 79 34 25 3d 31 30 32  |x4%=1279:y4%=102|
000297b0  33 0d 16 32 44 20 c9 20  34 3a 78 31 25 3d 31 32  |3..2D . 4:x1%=12|
000297c0  37 39 3a 79 31 25 3d 31  30 32 33 3a 78 32 25 3d  |79:y1%=1023:x2%=|
000297d0  30 3a 79 32 25 3d 31 30  32 33 3a 78 33 25 3d 30  |0:y2%=1023:x3%=0|
000297e0  3a 79 33 25 3d 30 3a 78  34 25 3d 31 32 37 39 3a  |:y3%=0:x4%=1279:|
000297f0  79 34 25 3d 30 0d 16 33  44 20 c9 20 35 3a 78 31  |y4%=0..3D . 5:x1|
00029800  25 3d 30 3a 79 31 25 3d  30 3a 78 32 25 3d 31 32  |%=0:y1%=0:x2%=12|
00029810  37 39 3a 79 32 25 3d 30  3a 78 33 25 3d 31 32 37  |79:y2%=0:x3%=127|
00029820  39 3a 79 33 25 3d 31 30  32 33 3a 78 34 25 3d 30  |9:y3%=1023:x4%=0|
00029830  3a 79 34 25 3d 31 30 32  33 0d 16 34 06 20 cb 0d  |:y4%=1023..4. ..|
00029840  16 35 16 20 e7 20 6d 65  6e 75 5f 62 6f 78 25 3c  |.5. . menu_box%<|
00029850  3e 39 39 20 8c 0d 16 36  14 20 f2 64 69 73 70 6c  |>99 ...6. .displ|
00029860  61 79 5f 6d 65 6d 6f 72  79 0d 16 37 24 20 74 72  |ay_memory..7$ tr|
00029870  61 6e 25 21 30 3d 78 31  25 2a 32 35 36 3a 74 72  |an%!0=x1%*256:tr|
00029880  61 6e 25 21 34 3d 79 31  25 2a 32 35 36 0d 16 38  |an%!4=y1%*256..8|
00029890  25 20 74 72 61 6e 25 21  38 3d 78 32 25 2a 32 35  |% tran%!8=x2%*25|
000298a0  36 3a 74 72 61 6e 25 21  31 32 3d 79 32 25 2a 32  |6:tran%!12=y2%*2|
000298b0  35 36 0d 16 39 26 20 74  72 61 6e 25 21 31 36 3d  |56..9& tran%!16=|
000298c0  78 33 25 2a 32 35 36 3a  74 72 61 6e 25 21 32 30  |x3%*256:tran%!20|
000298d0  3d 79 33 25 2a 32 35 36  0d 16 3a 26 20 74 72 61  |=y3%*256..:& tra|
000298e0  6e 25 21 32 34 3d 78 34  25 2a 32 35 36 3a 74 72  |n%!24=x4%*256:tr|
000298f0  61 6e 25 21 32 38 3d 79  34 25 2a 32 35 36 0d 16  |an%!28=y4%*256..|
00029900  3b 44 20 6d 65 6d 62 6c  6f 63 6b 25 21 30 3d 36  |;D memblock%!0=6|
00029910  35 35 34 32 30 3a 6d 65  6d 62 6c 6f 63 6b 25 21  |55420:memblock%!|
00029920  34 3d 30 3a 6d 65 6d 62  6c 6f 63 6b 25 21 38 3d  |4=0:memblock%!8=|
00029930  31 36 3a 6d 65 6d 62 6c  6f 63 6b 25 21 31 32 3d  |16:memblock%!12=|
00029940  31 36 0d 16 3c 37 20 c8  99 20 73 70 72 73 77 69  |16..<7 .. sprswi|
00029950  25 2c 32 35 36 2b 31 36  2c 6d 65 6d 62 6c 6f 63  |%,256+16,membloc|
00029960  6b 25 2c 22 74 72 61 6e  22 2c 30 2c 30 2c 30 2c  |k%,"tran",0,0,0,|
00029970  31 32 37 39 2c 31 30 32  33 0d 16 3d 23 20 e6 20  |1279,1023..=# . |
00029980  33 32 2c 33 32 2c 33 32  3a c8 93 20 c8 90 20 30  |32,32,32:.. .. 0|
00029990  2c 30 2c 31 32 38 30 2c  31 30 32 34 0d 16 3e 32  |,0,1280,1024..>2|
000299a0  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
000299b0  35 36 2c 6d 65 6d 62 6c  6f 63 6b 25 2c 22 74 72  |56,memblock%,"tr|
000299c0  61 6e 22 2c 31 2c 2c 30  2c 74 72 61 6e 25 0d 16  |an",1,,0,tran%..|
000299d0  3f 1f 20 6d 65 6e 75 5f  62 6f 78 25 3d 31 3a f2  |?. menu_box%=1:.|
000299e0  75 70 6c 6f 61 64 5f 6d  65 6d 6f 72 79 0d 16 40  |upload_memory..@|
000299f0  06 20 cd 0d 16 41 06 20  e1 0d 16 42 04 0d 16 43  |. ...A. ...B...C|
00029a00  0d 20 dd 20 f2 6d 65 72  67 65 0d 16 44 3c 20 21  |. . .merge..D< !|
00029a10  6d 65 72 67 65 5f 6d 65  6d 5f 74 65 6d 70 3d 6d  |merge_mem_temp=m|
00029a20  65 6d 62 6c 6f 63 6b 25  2b 32 30 3a 21 6d 65 72  |emblock%+20:!mer|
00029a30  67 65 5f 73 63 72 65 65  6e 5f 74 65 6d 70 3d 73  |ge_screen_temp=s|
00029a40  63 72 65 65 6e 25 0d 16  45 21 20 d6 20 6d 65 72  |creen%..E! . mer|
00029a50  67 65 5f 63 6f 64 65 25  3a f2 75 70 6c 6f 61 64  |ge_code%:.upload|
00029a60  5f 6d 65 6d 6f 72 79 0d  16 46 06 20 e1 0d 16 47  |_memory..F. ...G|
00029a70  04 0d 16 48 16 20 dd 20  f2 6d 65 72 67 65 5f 61  |...H. . .merge_a|
00029a80  73 73 65 6d 62 6c 65 0d  16 49 16 20 de 20 6d 65  |ssemble..I. . me|
00029a90  72 67 65 5f 63 6f 64 65  25 20 33 32 30 0d 16 4a  |rge_code% 320..J|
00029aa0  37 20 6d 65 6d 5f 62 61  73 65 3d 31 3a 73 63 72  |7 mem_base=1:scr|
00029ab0  6e 5f 62 61 73 65 3d 32  3a 6f 66 66 73 65 74 3d  |n_base=2:offset=|
00029ac0  33 3a 64 61 74 61 3d 34  3a 6e 65 77 5f 77 6f 72  |3:data=4:new_wor|
00029ad0  64 3d 31 32 0d 16 4b 3e  20 72 65 64 31 3d 35 3a  |d=12..K> red1=5:|
00029ae0  67 72 65 65 6e 31 3d 36  3a 62 6c 75 65 31 3d 37  |green1=6:blue1=7|
00029af0  3a 72 65 64 32 3d 38 3a  67 72 65 65 6e 32 3d 39  |:red2=8:green2=9|
00029b00  3a 62 6c 75 65 32 3d 31  30 3a 6c 69 6e 65 73 3d  |:blue2=10:lines=|
00029b10  31 31 0d 16 4c 12 20 e3  20 50 3d 30 20 b8 20 32  |11..L. . P=0 . 2|
00029b20  20 88 20 32 0d 16 4d 13  20 50 25 3d 6d 65 72 67  | . 2..M. P%=merg|
00029b30  65 5f 63 6f 64 65 25 0d  16 4e 0b 20 5b 4f 50 54  |e_code%..N. [OPT|
00029b40  20 50 0d 16 4f 40 20 4c  44 52 20 6d 65 6d 5f 62  | P..O@ LDR mem_b|
00029b50  61 73 65 2c 6d 65 72 67  65 5f 6d 65 6d 5f 74 65  |ase,merge_mem_te|
00029b60  6d 70 3a 4c 44 52 20 73  63 72 6e 5f 62 61 73 65  |mp:LDR scrn_base|
00029b70  2c 6d 65 72 67 65 5f 73  63 72 65 65 6e 5f 74 65  |,merge_screen_te|
00029b80  6d 70 0d 16 50 21 20 4d  4f 56 20 6f 66 66 73 65  |mp..P! MOV offse|
00029b90  74 2c 23 30 3a 4d 4f 56  20 6c 69 6e 65 73 2c 23  |t,#0:MOV lines,#|
00029ba0  35 31 32 0d 16 51 04 0d  16 52 10 20 2e 6d 65 72  |512..Q...R. .mer|
00029bb0  67 65 5f 6c 6f 6f 70 0d  16 53 2f 20 4c 44 52 20  |ge_loop..S/ LDR |
00029bc0  64 61 74 61 2c 5b 6d 65  6d 5f 62 61 73 65 2c 6f  |data,[mem_base,o|
00029bd0  66 66 73 65 74 5d 3a 80  20 72 65 64 31 2c 64 61  |ffset]:. red1,da|
00029be0  74 61 2c 23 33 31 0d 16  54 2a 20 4d 4f 56 20 64  |ta,#31..T* MOV d|
00029bf0  61 74 61 2c 64 61 74 61  2c 4c 53 52 23 35 3a 80  |ata,data,LSR#5:.|
00029c00  20 67 72 65 65 6e 31 2c  64 61 74 61 2c 23 33 31  | green1,data,#31|
00029c10  0d 16 55 29 20 4d 4f 56  20 64 61 74 61 2c 64 61  |..U) MOV data,da|
00029c20  74 61 2c 4c 53 52 23 35  3a 80 20 62 6c 75 65 31  |ta,LSR#5:. blue1|
00029c30  2c 64 61 74 61 2c 23 33  31 0d 16 56 40 20 4c 44  |,data,#31..V@ LD|
00029c40  52 20 52 30 2c 5b 73 63  72 6e 5f 62 61 73 65 2c  |R R0,[scrn_base,|
00029c50  6f 66 66 73 65 74 5d 3a  80 20 72 65 64 32 2c 52  |offset]:. red2,R|
00029c60  30 2c 23 33 31 3a 4d 4f  56 20 72 65 64 32 2c 72  |0,#31:MOV red2,r|
00029c70  65 64 32 2c 4c 53 52 23  31 0d 16 57 3c 20 4d 4f  |ed2,LSR#1..W< MO|
00029c80  56 20 52 30 2c 52 30 2c  4c 53 52 23 35 3a 80 20  |V R0,R0,LSR#5:. |
00029c90  67 72 65 65 6e 32 2c 52  30 2c 23 33 31 3a 4d 4f  |green2,R0,#31:MO|
00029ca0  56 20 67 72 65 65 6e 32  2c 67 72 65 65 6e 32 2c  |V green2,green2,|
00029cb0  4c 53 52 23 31 0d 16 58  39 20 4d 4f 56 20 52 30  |LSR#1..X9 MOV R0|
00029cc0  2c 52 30 2c 4c 53 52 23  35 3a 80 20 62 6c 75 65  |,R0,LSR#5:. blue|
00029cd0  32 2c 52 30 2c 23 33 31  3a 4d 4f 56 20 62 6c 75  |2,R0,#31:MOV blu|
00029ce0  65 32 2c 62 6c 75 65 32  2c 4c 53 52 23 31 0d 16  |e2,blue2,LSR#1..|
00029cf0  59 45 20 41 44 44 20 72  65 64 31 2c 72 65 64 31  |YE ADD red1,red1|
00029d00  2c 72 65 64 32 3a 43 4d  50 20 72 65 64 31 2c 23  |,red2:CMP red1,#|
00029d10  33 31 3a 4d 4f 56 47 54  20 72 65 64 31 2c 23 33  |31:MOVGT red1,#3|
00029d20  31 3a 4d 4f 56 20 6e 65  77 5f 77 6f 72 64 2c 72  |1:MOV new_word,r|
00029d30  65 64 31 0d 16 5a 3d 20  41 44 44 20 67 72 65 65  |ed1..Z= ADD gree|
00029d40  6e 31 2c 67 72 65 65 6e  31 2c 67 72 65 65 6e 32  |n1,green1,green2|
00029d50  3a 43 4d 50 20 67 72 65  65 6e 31 2c 23 33 31 3a  |:CMP green1,#31:|
00029d60  4d 4f 56 47 54 20 67 72  65 65 6e 31 2c 23 33 31  |MOVGT green1,#31|
00029d70  0d 16 5b 39 20 4d 4f 56  20 67 72 65 65 6e 31 2c  |..[9 MOV green1,|
00029d80  67 72 65 65 6e 31 2c 4c  53 4c 23 35 3a 41 44 44  |green1,LSL#5:ADD|
00029d90  20 6e 65 77 5f 77 6f 72  64 2c 6e 65 77 5f 77 6f  | new_word,new_wo|
00029da0  72 64 2c 67 72 65 65 6e  31 0d 16 5c 38 20 41 44  |rd,green1..\8 AD|
00029db0  44 20 62 6c 75 65 31 2c  62 6c 75 65 31 2c 62 6c  |D blue1,blue1,bl|
00029dc0  75 65 32 3a 43 4d 50 20  62 6c 75 65 31 2c 23 33  |ue2:CMP blue1,#3|
00029dd0  31 3a 4d 4f 56 47 54 20  62 6c 75 65 31 2c 23 33  |1:MOVGT blue1,#3|
00029de0  31 0d 16 5d 37 20 4d 4f  56 20 62 6c 75 65 31 2c  |1..]7 MOV blue1,|
00029df0  62 6c 75 65 31 2c 4c 53  4c 23 31 30 3a 41 44 44  |blue1,LSL#10:ADD|
00029e00  20 6e 65 77 5f 77 6f 72  64 2c 6e 65 77 5f 77 6f  | new_word,new_wo|
00029e10  72 64 2c 62 6c 75 65 31  0d 16 5e 04 0d 16 5f 28  |rd,blue1..^..._(|
00029e20  20 4d 4f 56 20 64 61 74  61 2c 64 61 74 61 2c 4c  | MOV data,data,L|
00029e30  53 52 23 36 3a 80 20 72  65 64 31 2c 64 61 74 61  |SR#6:. red1,data|
00029e40  2c 23 33 31 0d 16 60 2a  20 4d 4f 56 20 64 61 74  |,#31..`* MOV dat|
00029e50  61 2c 64 61 74 61 2c 4c  53 52 23 35 3a 80 20 67  |a,data,LSR#5:. g|
00029e60  72 65 65 6e 31 2c 64 61  74 61 2c 23 33 31 0d 16  |reen1,data,#31..|
00029e70  61 29 20 4d 4f 56 20 64  61 74 61 2c 64 61 74 61  |a) MOV data,data|
00029e80  2c 4c 53 52 23 35 3a 80  20 62 6c 75 65 31 2c 64  |,LSR#5:. blue1,d|
00029e90  61 74 61 2c 23 33 31 0d  16 62 36 20 4d 4f 56 20  |ata,#31..b6 MOV |
00029ea0  52 30 2c 52 30 2c 4c 53  52 23 36 3a 80 20 72 65  |R0,R0,LSR#6:. re|
00029eb0  64 32 2c 52 30 2c 23 33  31 3a 4d 4f 56 20 72 65  |d2,R0,#31:MOV re|
00029ec0  64 32 2c 72 65 64 32 2c  4c 53 52 23 31 0d 16 63  |d2,red2,LSR#1..c|
00029ed0  3c 20 4d 4f 56 20 52 30  2c 52 30 2c 4c 53 52 23  |< MOV R0,R0,LSR#|
00029ee0  35 3a 80 20 67 72 65 65  6e 32 2c 52 30 2c 23 33  |5:. green2,R0,#3|
00029ef0  31 3a 4d 4f 56 20 67 72  65 65 6e 32 2c 67 72 65  |1:MOV green2,gre|
00029f00  65 6e 32 2c 4c 53 52 23  31 0d 16 64 39 20 4d 4f  |en2,LSR#1..d9 MO|
00029f10  56 20 52 30 2c 52 30 2c  4c 53 52 23 35 3a 80 20  |V R0,R0,LSR#5:. |
00029f20  62 6c 75 65 32 2c 52 30  2c 23 33 31 3a 4d 4f 56  |blue2,R0,#31:MOV|
00029f30  20 62 6c 75 65 32 2c 62  6c 75 65 32 2c 4c 53 52  | blue2,blue2,LSR|
00029f40  23 31 0d 16 65 33 20 41  44 44 20 72 65 64 31 2c  |#1..e3 ADD red1,|
00029f50  72 65 64 31 2c 72 65 64  32 3a 43 4d 50 20 72 65  |red1,red2:CMP re|
00029f60  64 31 2c 23 33 31 3a 4d  4f 56 47 54 20 72 65 64  |d1,#31:MOVGT red|
00029f70  31 2c 23 33 31 0d 16 66  34 20 4d 4f 56 20 72 65  |1,#31..f4 MOV re|
00029f80  64 31 2c 72 65 64 31 2c  4c 53 4c 23 31 36 3a 41  |d1,red1,LSL#16:A|
00029f90  44 44 20 6e 65 77 5f 77  6f 72 64 2c 6e 65 77 5f  |DD new_word,new_|
00029fa0  77 6f 72 64 2c 72 65 64  31 0d 16 67 3d 20 41 44  |word,red1..g= AD|
00029fb0  44 20 67 72 65 65 6e 31  2c 67 72 65 65 6e 31 2c  |D green1,green1,|
00029fc0  67 72 65 65 6e 32 3a 43  4d 50 20 67 72 65 65 6e  |green2:CMP green|
00029fd0  31 2c 23 33 31 3a 4d 4f  56 47 54 20 67 72 65 65  |1,#31:MOVGT gree|
00029fe0  6e 31 2c 23 33 31 0d 16  68 3a 20 4d 4f 56 20 67  |n1,#31..h: MOV g|
00029ff0  72 65 65 6e 31 2c 67 72  65 65 6e 31 2c 4c 53 4c  |reen1,green1,LSL|
0002a000  23 32 31 3a 41 44 44 20  6e 65 77 5f 77 6f 72 64  |#21:ADD new_word|
0002a010  2c 6e 65 77 5f 77 6f 72  64 2c 67 72 65 65 6e 31  |,new_word,green1|
0002a020  0d 16 69 38 20 41 44 44  20 62 6c 75 65 31 2c 62  |..i8 ADD blue1,b|
0002a030  6c 75 65 31 2c 62 6c 75  65 32 3a 43 4d 50 20 62  |lue1,blue2:CMP b|
0002a040  6c 75 65 31 2c 23 33 31  3a 4d 4f 56 47 54 20 62  |lue1,#31:MOVGT b|
0002a050  6c 75 65 31 2c 23 33 31  0d 16 6a 37 20 4d 4f 56  |lue1,#31..j7 MOV|
0002a060  20 62 6c 75 65 31 2c 62  6c 75 65 31 2c 4c 53 4c  | blue1,blue1,LSL|
0002a070  23 32 36 3a 41 44 44 20  6e 65 77 5f 77 6f 72 64  |#26:ADD new_word|
0002a080  2c 6e 65 77 5f 77 6f 72  64 2c 62 6c 75 65 31 0d  |,new_word,blue1.|
0002a090  16 6b 24 20 53 54 52 20  6e 65 77 5f 77 6f 72 64  |.k$ STR new_word|
0002a0a0  2c 5b 73 63 72 6e 5f 62  61 73 65 2c 6f 66 66 73  |,[scrn_base,offs|
0002a0b0  65 74 5d 0d 16 6c 39 20  41 44 44 20 6f 66 66 73  |et]..l9 ADD offs|
0002a0c0  65 74 2c 6f 66 66 73 65  74 2c 23 34 3a 43 4d 50  |et,offset,#4:CMP|
0002a0d0  20 6f 66 66 73 65 74 2c  23 31 32 38 30 3a 42 4e  | offset,#1280:BN|
0002a0e0  45 20 6d 65 72 67 65 5f  6c 6f 6f 70 0d 16 6d 4c  |E merge_loop..mL|
0002a0f0  20 4d 4f 56 20 6f 66 66  73 65 74 2c 23 30 3a 41  | MOV offset,#0:A|
0002a100  44 44 20 6d 65 6d 5f 62  61 73 65 2c 6d 65 6d 5f  |DD mem_base,mem_|
0002a110  62 61 73 65 2c 23 31 32  38 30 3a 41 44 44 20 73  |base,#1280:ADD s|
0002a120  63 72 6e 5f 62 61 73 65  2c 73 63 72 6e 5f 62 61  |crn_base,scrn_ba|
0002a130  73 65 2c 23 31 32 38 30  0d 16 6e 27 20 53 55 42  |se,#1280..n' SUB|
0002a140  53 20 6c 69 6e 65 73 2c  6c 69 6e 65 73 2c 23 31  |S lines,lines,#1|
0002a150  3a 42 4e 45 20 6d 65 72  67 65 5f 6c 6f 6f 70 0d  |:BNE merge_loop.|
0002a160  16 6f 0f 20 4d 4f 56 20  50 43 2c 52 31 34 0d 16  |.o. MOV PC,R14..|
0002a170  70 04 0d 16 71 1e 20 2e  6d 65 72 67 65 5f 6d 65  |p...q. .merge_me|
0002a180  6d 5f 74 65 6d 70 20 20  20 20 45 51 55 44 20 30  |m_temp    EQUD 0|
0002a190  0d 16 72 1e 20 2e 6d 65  72 67 65 5f 73 63 72 65  |..r. .merge_scre|
0002a1a0  65 6e 5f 74 65 6d 70 20  45 51 55 44 20 30 0d 16  |en_temp EQUD 0..|
0002a1b0  73 06 20 5d 0d 16 74 06  20 ed 0d 16 75 06 20 e1  |s. ]..t. ...u. .|
0002a1c0  0d 16 76 04 0d 16 77 19  20 dd 20 a4 72 65 61 64  |..v...w. . .read|
0002a1d0  5f 73 79 73 5f 76 61 72  28 73 76 24 29 0d 16 78  |_sys_var(sv$)..x|
0002a1e0  31 20 c8 99 20 22 4f 53  5f 52 65 61 64 56 61 72  |1 .. "OS_ReadVar|
0002a1f0  56 61 6c 22 2c 73 76 24  2c 73 79 73 76 61 72 25  |Val",sv$,sysvar%|
0002a200  2c 32 35 35 2c 30 2c 33  20 b8 2c 2c 62 25 0d 16  |,255,0,3 .,,b%..|
0002a210  79 2e 20 56 24 3d 22 22  3a e3 20 4e 25 3d 30 20  |y. V$="":. N%=0 |
0002a220  b8 20 62 25 2d 31 3a 56  24 3d 56 24 2b bd 28 73  |. b%-1:V$=V$+.(s|
0002a230  79 73 76 61 72 25 3f 4e  25 29 3a ed 0d 16 7a 08  |ysvar%?N%):...z.|
0002a240  20 3d 56 24 0d 16 7b 05  20 0d 16 7c 14 20 dd 20  | =V$..{. ..|. . |
0002a250  a4 66 69 6c 65 5f 6c 65  6e 28 66 24 29 0d 16 7d  |.file_len(f$)..}|
0002a260  0e 20 ea 20 72 30 25 2c  72 35 25 0d 16 7e 24 20  |. . r0%,r5%..~$ |
0002a270  c8 99 20 22 4f 53 5f 46  69 6c 65 22 2c 31 37 2c  |.. "OS_File",17,|
0002a280  66 24 20 b8 20 72 30 25  2c 2c 2c 2c 72 35 25 0d  |f$ . r0%,,,,r5%.|
0002a290  16 7f 0e 20 e7 20 72 30  25 3d 30 20 8c 0d 16 80  |... . r0%=0 ....|
0002a2a0  29 20 20 e7 20 ac 20 69  6a 65 5f 64 65 76 25 20  |)  . . ije_dev% |
0002a2b0  8c 20 c8 99 20 22 4f 53  5f 42 79 74 65 22 2c 32  |. .. "OS_Byte",2|
0002a2c0  32 39 2c 31 2c 30 0d 16  81 22 20 20 c8 99 20 22  |29,1,0..."  .. "|
0002a2d0  57 69 6d 70 5f 53 65 74  4d 6f 64 65 22 2c 6d 6f  |Wimp_SetMode",mo|
0002a2e0  64 65 73 74 6f 72 65 25  0d 16 82 7f 20 20 85 20  |destore%....  . |
0002a2f0  30 2c 22 46 69 6c 65 20  22 2b 66 24 2b 22 20 6e  |0,"File "+f$+" n|
0002a300  6f 74 20 66 6f 75 6e 64  2e 20 54 68 69 73 20 63  |ot found. This c|
0002a310  6f 70 79 20 6f 66 20 50  73 63 61 6e 20 6d 61 79  |opy of Pscan may|
0002a320  20 62 65 20 63 6f 72 72  75 70 74 20 2d 20 70 6c  | be corrupt - pl|
0002a330  65 61 73 65 20 72 65 2d  69 6e 73 74 61 6c 6c 20  |ease re-install |
0002a340  69 74 20 66 72 6f 6d 20  74 68 65 20 6f 72 69 67  |it from the orig|
0002a350  69 6e 61 6c 20 64 69 73  6b 20 6f 72 20 5a 49 50  |inal disk or ZIP|
0002a360  20 66 69 6c 65 2e 22 0d  16 83 06 20 cc 0d 16 84  | file.".... ....|
0002a370  0e 20 20 3d 28 72 35 25  2b 34 29 0d 16 85 06 20  |.  =(r5%+4).... |
0002a380  cd 0d 16 86 04 0d 16 87  18 20 dd 20 f2 6d 69 73  |......... . .mis|
0002a390  63 5f 62 61 63 6b 67 72  6f 75 6e 64 73 0d 16 88  |c_backgrounds...|
0002a3a0  1e 20 6d 65 6e 75 24 28  30 29 3d 22 4d 69 73 63  |. menu$(0)="Misc|
0002a3b0  65 6c 6c 61 6e 65 6f 75  73 20 22 0d 16 89 17 20  |ellaneous ".... |
0002a3c0  6d 65 6e 75 24 28 31 29  3d 22 53 71 75 61 72 65  |menu$(1)="Square|
0002a3d0  73 22 0d 16 8a 17 20 6d  65 6e 75 24 28 32 29 3d  |s".... menu$(2)=|
0002a3e0  22 53 70 68 65 72 65 73  22 0d 16 8b 1a 20 6d 65  |"Spheres".... me|
0002a3f0  6e 75 24 28 33 29 3d 22  48 6f 72 69 7a 6f 6e 74  |nu$(3)="Horizont|
0002a400  61 6c 22 0d 16 8c 18 20  6d 65 6e 75 24 28 34 29  |al".... menu$(4)|
0002a410  3d 22 56 65 72 74 69 63  61 6c 22 0d 16 8d 18 20  |="Vertical".... |
0002a420  6d 65 6e 75 24 28 35 29  3d 22 44 69 61 67 6f 6e  |menu$(5)="Diagon|
0002a430  61 6c 22 0d 16 8e 1c 20  6d 65 6e 75 24 28 36 29  |al".... menu$(6)|
0002a440  3d 22 53 70 65 63 74 72  75 6d 20 2d 20 48 22 0d  |="Spectrum - H".|
0002a450  16 8f 1c 20 6d 65 6e 75  24 28 37 29 3d 22 53 70  |... menu$(7)="Sp|
0002a460  65 63 74 72 75 6d 20 2d  20 56 22 0d 16 90 20 20  |ectrum - V"...  |
0002a470  6d 65 6e 75 24 28 38 29  3d 22 2a 22 3a f2 6d 65  |menu$(8)="*":.me|
0002a480  6e 75 28 30 2c 39 30 2c  2d 31 29 0d 16 91 13 20  |nu(0,90,-1).... |
0002a490  c8 8e 20 6d 65 6e 75 5f  62 6f 78 25 20 ca 0d 16  |.. menu_box% ...|
0002a4a0  92 11 20 c9 20 31 3a f2  73 71 75 61 72 65 73 0d  |.. . 1:.squares.|
0002a4b0  16 93 11 20 c9 20 32 3a  f2 73 70 68 65 72 65 73  |... . 2:.spheres|
0002a4c0  0d 16 94 15 20 c9 20 33  3a f2 68 6f 72 69 7a 5f  |.... . 3:.horiz_|
0002a4d0  70 69 70 65 73 0d 16 95  14 20 c9 20 34 3a f2 76  |pipes.... . 4:.v|
0002a4e0  65 72 74 5f 70 69 70 65  73 0d 16 96 13 20 c9 20  |ert_pipes.... . |
0002a4f0  35 3a f2 64 69 61 67 6f  6e 61 6c 32 0d 16 97 1f  |5:.diagonal2....|
0002a500  20 c9 20 36 2c 37 3a f2  73 70 65 63 74 72 75 6d  | . 6,7:.spectrum|
0002a510  28 6d 65 6e 75 5f 62 6f  78 25 29 0d 16 98 06 20  |(menu_box%).... |
0002a520  cb 0d 16 99 06 20 e1 0d  16 9a 04 0d 16 9b 13 20  |..... ......... |
0002a530  dd 20 f2 68 6f 72 69 7a  5f 70 69 70 65 73 0d 16  |. .horiz_pipes..|
0002a540  9c 25 20 52 49 3d 32 3a  47 49 3d 36 3a 42 49 3d  |.% RI=2:GI=6:BI=|
0002a550  31 3a 52 3d 32 34 32 3a  47 3d 32 34 32 3a 42 3d  |1:R=242:G=242:B=|
0002a560  32 34 32 0d 16 9d 2c 20  e3 20 59 25 3d 30 20 b8  |242..., . Y%=0 .|
0002a570  20 31 30 32 34 20 88 32  3a e6 20 52 2c 47 2c 42  | 1024 .2:. R,G,B|
0002a580  3a 86 20 30 2c 59 25 2c  31 32 38 30 2c 59 25 0d  |:. 0,Y%,1280,Y%.|
0002a590  16 9e 16 20 52 2b 3d 52  49 3a 47 2b 3d 47 49 3a  |... R+=RI:G+=GI:|
0002a5a0  42 2b 3d 42 49 0d 16 9f  1c 20 e7 20 52 3e 32 34  |B+=BI.... . R>24|
0002a5b0  32 20 84 20 52 3c 31 32  20 8c 20 52 49 3d 2d 52  |2 . R<12 . RI=-R|
0002a5c0  49 0d 16 a0 1c 20 e7 20  47 3e 32 34 32 20 84 20  |I.... . G>242 . |
0002a5d0  47 3c 31 32 20 8c 20 47  49 3d 2d 47 49 0d 16 a1  |G<12 . GI=-GI...|
0002a5e0  1c 20 e7 20 42 3e 32 34  32 20 84 20 42 3c 31 32  |. . B>242 . B<12|
0002a5f0  20 8c 20 42 49 3d 2d 42  49 0d 16 a2 06 20 ed 0d  | . BI=-BI.... ..|
0002a600  16 a3 21 20 e7 20 ac 28  6d 65 72 67 65 25 29 20  |..! . .(merge%) |
0002a610  8c 20 f2 75 70 6c 6f 61  64 5f 6d 65 6d 6f 72 79  |. .upload_memory|
0002a620  0d 16 a4 06 20 e1 0d 16  a5 04 0d 16 a6 12 20 dd  |.... ......... .|
0002a630  20 f2 76 65 72 74 5f 70  69 70 65 73 0d 16 a7 25  | .vert_pipes...%|
0002a640  20 52 49 3d 32 3a 47 49  3d 36 3a 42 49 3d 31 3a  | RI=2:GI=6:BI=1:|
0002a650  52 3d 32 34 32 3a 47 3d  32 34 32 3a 42 3d 32 34  |R=242:G=242:B=24|
0002a660  32 0d 16 a8 2c 20 e3 20  58 25 3d 30 20 b8 20 31  |2..., . X%=0 . 1|
0002a670  32 38 30 20 88 32 3a e6  20 52 2c 47 2c 42 3a 86  |280 .2:. R,G,B:.|
0002a680  20 58 25 2c 30 2c 58 25  2c 31 30 32 34 0d 16 a9  | X%,0,X%,1024...|
0002a690  16 20 52 2b 3d 52 49 3a  47 2b 3d 47 49 3a 42 2b  |. R+=RI:G+=GI:B+|
0002a6a0  3d 42 49 0d 16 aa 1c 20  e7 20 52 3e 32 34 32 20  |=BI.... . R>242 |
0002a6b0  84 20 52 3c 31 32 20 8c  20 52 49 3d 2d 52 49 0d  |. R<12 . RI=-RI.|
0002a6c0  16 ab 1c 20 e7 20 47 3e  32 34 32 20 84 20 47 3c  |... . G>242 . G<|
0002a6d0  31 32 20 8c 20 47 49 3d  2d 47 49 0d 16 ac 1c 20  |12 . GI=-GI.... |
0002a6e0  e7 20 42 3e 32 34 32 20  84 20 42 3c 31 32 20 8c  |. B>242 . B<12 .|
0002a6f0  20 42 49 3d 2d 42 49 0d  16 ad 06 20 ed 0d 16 ae  | BI=-BI.... ....|
0002a700  21 20 e7 20 ac 28 6d 65  72 67 65 25 29 20 8c 20  |! . .(merge%) . |
0002a710  f2 75 70 6c 6f 61 64 5f  6d 65 6d 6f 72 79 0d 16  |.upload_memory..|
0002a720  af 06 20 e1 0d 16 b0 04  0d 16 b1 0f 20 dd 20 f2  |.. ......... . .|
0002a730  73 71 75 61 72 65 73 0d  16 b2 2e 20 db 3a e3 20  |squares.... .:. |
0002a740  79 25 3d 30 20 b8 20 31  30 32 34 20 88 20 31 32  |y%=0 . 1024 . 12|
0002a750  30 3a e3 20 78 25 3d 30  20 b8 20 31 32 38 30 20  |0:. x%=0 . 1280 |
0002a760  88 20 31 32 38 0d 16 b3  3c 20 58 25 3d 78 25 3a  |. 128...< X%=x%:|
0002a770  59 25 3d 79 25 3a 57 25  3d 31 32 38 3a 48 25 3d  |Y%=y%:W%=128:H%=|
0002a780  31 32 38 3a 52 25 3d 32  35 35 3a 47 25 3d 36 38  |128:R%=255:G%=68|
0002a790  3a 42 25 3d 30 3a e3 20  4e 25 3d 31 20 b8 20 33  |:B%=0:. N%=1 . 3|
0002a7a0  32 0d 16 b4 21 20 e6 20  52 25 2c 47 25 2c 42 25  |2...! . R%,G%,B%|
0002a7b0  3a c8 93 20 c8 90 20 58  25 2c 59 25 2c 57 25 2c  |:.. .. X%,Y%,W%,|
0002a7c0  48 25 0d 16 b5 28 20 47  25 2b 3d 36 3a 58 25 2b  |H%...( G%+=6:X%+|
0002a7d0  3d 32 3a 59 25 2b 3d 32  3a 57 25 2d 3d 34 3a 48  |=2:Y%+=2:W%-=4:H|
0002a7e0  25 2d 3d 34 3a ed 3a ed  3a ed 0d 16 b6 21 20 e7  |%-=4:.:.:....! .|
0002a7f0  20 ac 28 6d 65 72 67 65  25 29 20 8c 20 f2 75 70  | .(merge%) . .up|
0002a800  6c 6f 61 64 5f 6d 65 6d  6f 72 79 0d 16 b7 06 20  |load_memory.... |
0002a810  e1 0d 16 b8 04 0d 16 b9  0f 20 dd 20 f2 73 70 68  |......... . .sph|
0002a820  65 72 65 73 0d 16 ba 29  20 e6 20 32 35 35 2c 36  |eres...) . 255,6|
0002a830  38 2c 30 3a c8 93 20 c8  90 20 30 2c 30 2c 31 32  |8,0:.. .. 0,0,12|
0002a840  38 30 2c 31 30 32 34 3a  6f 25 3d 33 32 0d 16 bb  |80,1024:o%=32...|
0002a850  2c 20 e3 20 79 25 3d 30  20 b8 20 31 30 32 34 20  |, . y%=0 . 1024 |
0002a860  88 20 31 32 38 3a e3 20  78 25 3d 30 20 b8 20 31  |. 128:. x%=0 . 1|
0002a870  32 38 30 20 88 20 31 32  38 0d 16 bc 28 20 58 25  |280 . 128...( X%|
0002a880  3d 78 25 3a 59 25 3d 79  25 3a 72 25 3d 36 34 3a  |=x%:Y%=y%:r%=64:|
0002a890  52 25 3d 32 35 35 3a 47  25 3d 36 38 3a 42 25 3d  |R%=255:G%=68:B%=|
0002a8a0  30 0d 16 bd 33 20 e3 20  4e 25 3d 31 20 b8 20 33  |0...3 . N%=1 . 3|
0002a8b0  32 3a e6 20 52 25 2c 47  25 2c 42 25 3a c8 8f 20  |2:. R%,G%,B%:.. |
0002a8c0  c8 90 20 58 25 2b 6f 25  2b 33 32 2c 59 25 2b 36  |.. X%+o%+32,Y%+6|
0002a8d0  34 2c 72 25 0d 16 be 1d  20 47 25 2b 3d 36 3a 72  |4,r%.... G%+=6:r|
0002a8e0  25 2d 3d 32 3a ed 3a ed  3a 6f 25 3d 2d 6f 25 3a  |%-=2:.:.:o%=-o%:|
0002a8f0  ed 0d 16 bf 21 20 e7 20  ac 28 6d 65 72 67 65 25  |....! . .(merge%|
0002a900  29 20 8c 20 f2 75 70 6c  6f 61 64 5f 6d 65 6d 6f  |) . .upload_memo|
0002a910  72 79 0d 16 c0 06 20 e1  0d 16 c1 04 0d 16 c2 14  |ry.... .........|
0002a920  20 dd 20 f2 73 70 65 63  74 72 75 6d 28 74 25 29  | . .spectrum(t%)|
0002a930  0d 16 c3 26 20 db 3a 72  69 3d 30 3a 67 69 3d 30  |...& .:ri=0:gi=0|
0002a940  3a 62 69 3d 2d 32 3a 72  3d 32 35 35 3a 67 3d 30  |:bi=-2:r=255:g=0|
0002a950  3a 62 3d 32 35 35 0d 16  c4 0d 20 e7 20 74 25 3d  |:b=255.... . t%=|
0002a960  36 20 8c 0d 16 c5 2a 20  70 31 25 3d 32 35 34 3a  |6 ....* p1%=254:|
0002a970  70 32 25 3d 35 30 38 3a  70 33 25 3d 37 36 32 3a  |p2%=508:p3%=762:|
0002a980  70 34 25 3d 31 30 31 36  3a 70 69 3d 32 0d 16 c6  |p4%=1016:pi=2...|
0002a990  06 20 cc 0d 16 c7 2b 20  70 31 25 3d 32 30 34 3a  |. ....+ p1%=204:|
0002a9a0  70 32 25 3d 34 30 38 3a  70 33 25 3d 36 31 32 3a  |p2%=408:p3%=612:|
0002a9b0  70 34 25 3d 38 31 36 3a  70 69 3d 32 2e 34 0d 16  |p4%=816:pi=2.4..|
0002a9c0  c8 06 20 cd 0d 16 c9 15  20 e3 20 58 25 3d 30 20  |.. ..... . X%=0 |
0002a9d0  b8 20 31 32 37 32 20 88  32 0d 16 ca 0c 20 e6 20  |. 1272 .2.... . |
0002a9e0  72 2c 67 2c 62 0d 16 cb  33 20 e7 20 74 25 3d 36  |r,g,b...3 . t%=6|
0002a9f0  20 8c 20 c8 93 20 c8 90  20 58 25 2c 30 2c 32 2c  | . .. .. X%,0,2,|
0002aa00  31 30 32 34 20 8b 20 c8  93 20 c8 90 20 30 2c 58  |1024 . .. .. 0,X|
0002aa10  25 2c 31 32 38 30 2c 32  0d 16 cc 16 20 72 2b 3d  |%,1280,2.... r+=|
0002aa20  72 69 3a 67 2b 3d 67 69  3a 62 2b 3d 62 69 0d 16  |ri:g+=gi:b+=bi..|
0002aa30  cd 0c 20 c8 8e 20 58 25  20 ca 0d 16 ce 1e 20 c9  |.. .. X% ..... .|
0002aa40  20 70 31 25 3a 72 69 3d  30 3a 67 69 3d 70 69 3a  | p1%:ri=0:gi=pi:|
0002aa50  62 69 3d 30 3a 62 3d 30  0d 16 cf 1b 20 c9 20 70  |bi=0:b=0.... . p|
0002aa60  32 25 3a 72 69 3d 2d 70  69 3a 67 69 3d 30 3a 62  |2%:ri=-pi:gi=0:b|
0002aa70  69 3d 30 0d 16 d0 1a 20  c9 20 70 33 25 3a 72 69  |i=0.... . p3%:ri|
0002aa80  3d 30 3a 67 69 3d 30 3a  62 69 3d 70 69 0d 16 d1  |=0:gi=0:bi=pi...|
0002aa90  1b 20 c9 20 70 34 25 3a  72 69 3d 30 3a 67 69 3d  |. . p4%:ri=0:gi=|
0002aaa0  2d 70 69 3a 62 69 3d 30  0d 16 d2 06 20 cb 0d 16  |-pi:bi=0.... ...|
0002aab0  d3 06 20 ed 0d 16 d4 1f  20 e7 20 74 25 3d 36 20  |.. ..... . t%=6 |
0002aac0  8c 20 c8 93 20 c8 90 20  58 25 2c 30 2c 38 2c 31  |. .. .. X%,0,8,1|
0002aad0  30 32 34 0d 16 d5 21 20  e7 20 ac 28 6d 65 72 67  |024...! . .(merg|
0002aae0  65 25 29 20 8c 20 f2 75  70 6c 6f 61 64 5f 6d 65  |e%) . .upload_me|
0002aaf0  6d 6f 72 79 0d 16 d6 06  20 e1 0d 16 d7 04 0d 16  |mory.... .......|
0002ab00  d8 11 20 dd 20 f2 64 69  61 67 6f 6e 61 6c 32 0d  |.. . .diagonal2.|
0002ab10  16 d9 25 20 52 3d 30 3a  47 3d 32 35 35 3a 42 3d  |..% R=0:G=255:B=|
0002ab20  32 35 35 3a 52 49 3d 31  36 3a 47 49 3d 31 36 3a  |255:RI=16:GI=16:|
0002ab30  42 49 3d 34 0d 16 da 20  20 59 3d 32 30 34 38 3a  |BI=4...  Y=2048:|
0002ab40  e3 20 58 25 3d 2d 31 32  38 30 20 b8 20 31 32 38  |. X%=-1280 . 128|
0002ab50  30 20 88 38 0d 16 db 1c  20 e6 20 52 2c 47 2c 42  |0 .8.... . R,G,B|
0002ab60  3a ec 20 58 25 2c 30 3a  ec 20 31 32 38 30 2c 59  |:. X%,0:. 1280,Y|
0002ab70  0d 16 dc 22 20 f0 20 38  35 2c 31 32 38 30 2c 30  |..." . 85,1280,0|
0002ab80  3a 52 2b 3d 52 49 3a 47  2b 3d 47 49 3a 42 2b 3d  |:R+=RI:G+=GI:B+=|
0002ab90  42 49 0d 16 dd 19 20 e7  20 52 3e 32 35 35 20 52  |BI.... . R>255 R|
0002aba0  3d 32 35 35 3a 52 49 3d  2d 52 49 0d 16 de 19 20  |=255:RI=-RI.... |
0002abb0  e7 20 47 3e 32 35 35 20  47 3d 32 35 35 3a 47 49  |. G>255 G=255:GI|
0002abc0  3d 2d 47 49 0d 16 df 19  20 e7 20 42 3e 32 35 35  |=-GI.... . B>255|
0002abd0  20 42 3d 32 35 35 3a 42  49 3d 2d 42 49 0d 16 e0  | B=255:BI=-BI...|
0002abe0  15 20 e7 20 52 3c 30 20  52 3d 30 3a 52 49 3d 2d  |. . R<0 R=0:RI=-|
0002abf0  52 49 0d 16 e1 15 20 e7  20 47 3c 30 20 47 3d 30  |RI.... . G<0 G=0|
0002ac00  3a 47 49 3d 2d 47 49 0d  16 e2 15 20 e7 20 42 3c  |:GI=-GI.... . B<|
0002ac10  30 20 42 3d 30 3a 42 49  3d 2d 42 49 0d 16 e3 2a  |0 B=0:BI=-BI...*|
0002ac20  20 59 2d 3d 36 2e 34 3a  ed 3a e7 20 ac 28 6d 65  | Y-=6.4:.:. .(me|
0002ac30  72 67 65 25 29 20 8c 20  f2 75 70 6c 6f 61 64 5f  |rge%) . .upload_|
0002ac40  6d 65 6d 6f 72 79 0d 16  e4 06 20 e1 0d 16 e5 04  |memory.... .....|
0002ac50  0d 16 e6 16 20 dd 20 f2  74 65 78 74 5f 6d 61 73  |.... . .text_mas|
0002ac60  6b 5f 6d 65 6e 75 0d 16  e7 1b 20 6d 65 6e 75 24  |k_menu.... menu$|
0002ac70  28 30 29 3d 22 54 65 78  74 20 6d 61 73 6b 73 22  |(0)="Text masks"|
0002ac80  20 0d 16 e8 23 20 6d 65  6e 75 24 28 31 29 3d 22  | ...# menu$(1)="|
0002ac90  43 72 65 61 74 65 20 74  65 78 74 20 6d 61 73 6b  |Create text mask|
0002aca0  20 20 20 22 0d 16 e9 16  20 e7 20 6d 61 73 6b 5f  |   ".... . mask_|
0002acb0  63 72 65 61 74 65 64 25  20 8c 0d 16 ea 1e 20 6d  |created% ..... m|
0002acc0  65 6e 75 24 28 32 29 3d  22 50 6c 6f 74 20 74 65  |enu$(2)="Plot te|
0002acd0  78 74 20 6d 61 73 6b 22  0d 16 eb 06 20 cc 0d 16  |xt mask".... ...|
0002ace0  ec 21 20 6d 65 6e 75 24  28 32 29 3d 22 7b 6e 6f  |.! menu$(2)="{no|
0002acf0  20 6d 61 73 6b 20 63 72  65 61 74 65 64 7d 22 0d  | mask created}".|
0002ad00  16 ed 06 20 cd 0d 16 ee  20 20 6d 65 6e 75 24 28  |... ....  menu$(|
0002ad10  33 29 3d 22 2a 22 3a f2  6d 65 6e 75 28 30 2c 39  |3)="*":.menu(0,9|
0002ad20  30 2c 2d 31 29 0d 16 ef  13 20 c8 8e 20 6d 65 6e  |0,-1).... .. men|
0002ad30  75 5f 62 6f 78 25 20 ca  0d 16 f0 26 20 c9 20 31  |u_box% ....& . 1|
0002ad40  3a f2 63 72 65 61 74 65  5f 74 65 78 74 5f 6d 61  |:.create_text_ma|
0002ad50  73 6b 3a 6d 65 6e 75 5f  62 6f 78 25 3d 35 0d 16  |sk:menu_box%=5..|
0002ad60  f1 24 20 c9 20 32 3a f2  70 6c 6f 74 5f 74 65 78  |.$ . 2:.plot_tex|
0002ad70  74 5f 6d 61 73 6b 3a 6d  65 6e 75 5f 62 6f 78 25  |t_mask:menu_box%|
0002ad80  3d 31 0d 16 f2 06 20 cb  0d 16 f3 06 20 e1 0d 16  |=1.... ..... ...|
0002ad90  f4 04 0d 16 f5 18 20 dd  20 f2 63 72 65 61 74 65  |...... . .create|
0002ada0  5f 74 65 78 74 5f 6d 61  73 6b 0d 16 f6 23 20 66  |_text_mask...# f|
0002adb0  6f 6e 74 24 3d 22 22 3a  66 69 72 73 74 5f 74 69  |ont$="":first_ti|
0002adc0  6d 65 25 3d b9 3a 71 75  69 74 25 3d a3 0d 16 f7  |me%=.:quit%=....|
0002add0  34 20 f2 66 6f 6e 74 5f  74 65 78 74 28 2d 31 29  |4 .font_text(-1)|
0002ade0  3a 6d 65 6e 75 5f 72 65  64 72 61 77 25 3d b9 3a  |:menu_redraw%=.:|
0002adf0  78 70 73 25 3d 78 70 25  3a 79 70 73 25 3d 79 70  |xps%=xp%:yps%=yp|
0002ae00  25 0d 16 f8 04 0d 16 f9  06 20 f5 0d 16 fa 04 0d  |%........ ......|
0002ae10  16 fb 21 20 e6 33 32 20  c8 9c 30 3a c8 93 20 c8  |..! .32 ..0:.. .|
0002ae20  90 20 30 2c 34 30 34 2c  31 32 38 30 2c 36 32 30  |. 0,404,1280,620|
0002ae30  0d 16 fc 04 0d 16 fd 12  20 e7 20 66 6f 6e 74 24  |........ . font$|
0002ae40  3c 3e 22 22 20 8c 0d 16  fe 04 0d 16 ff 14 20 e7  |<>"" ......... .|
0002ae50  20 66 69 72 73 74 5f 74  69 6d 65 25 20 8c 0d 17  | first_time% ...|
0002ae60  00 22 20 e6 20 30 2c 30  2c 31 33 36 3a c8 93 20  |." . 0,0,136:.. |
0002ae70  c8 90 20 30 2c 30 2c 31  32 38 30 2c 31 30 32 34  |.. 0,0,1280,1024|
0002ae80  0d 17 01 25 20 e6 20 32  30 30 2c 32 30 30 2c 32  |...% . 200,200,2|
0002ae90  30 30 3a c8 93 20 c8 90  20 30 2c 30 2c 31 32 38  |00:.. .. 0,0,128|
0002aea0  30 2c 33 37 30 0d 17 02  22 20 f2 72 61 69 73 65  |0,370..." .raise|
0002aeb0  64 5f 62 6c 6f 63 6b 28  37 38 34 2c 31 36 2c 32  |d_block(784,16,2|
0002aec0  31 36 2c 33 34 32 29 0d  17 03 27 20 e6 20 32 35  |16,342)...' . 25|
0002aed0  35 2c 31 38 30 2c 31 30  30 3a c8 93 20 c8 90 20  |5,180,100:.. .. |
0002aee0  37 38 34 2c 33 32 30 2c  32 31 32 2c 33 38 0d 17  |784,320,212,38..|
0002aef0  04 39 20 c8 99 20 73 70  72 73 77 69 25 2c 32 35  |.9 .. sprswi%,25|
0002af00  36 2b 35 32 2c 73 70 62  25 2c 22 6c 65 66 74 22  |6+52,spb%,"left"|
0002af10  2c 38 31 30 2c 32 32 30  2c 38 2c 30 2c 74 72 61  |,810,220,8,0,tra|
0002af20  6e 73 6c 61 74 65 25 0d  17 05 3a 20 c8 99 20 73  |nslate%...: .. s|
0002af30  70 72 73 77 69 25 2c 32  35 36 2b 35 32 2c 73 70  |prswi%,256+52,sp|
0002af40  62 25 2c 22 72 69 67 68  74 22 2c 39 33 30 2c 32  |b%,"right",930,2|
0002af50  32 30 2c 38 2c 30 2c 74  72 61 6e 73 6c 61 74 65  |20,8,0,translate|
0002af60  25 0d 17 06 39 20 c8 99  20 73 70 72 73 77 69 25  |%...9 .. sprswi%|
0002af70  2c 32 35 36 2b 35 32 2c  73 70 62 25 2c 22 6c 65  |,256+52,spb%,"le|
0002af80  66 74 22 2c 38 31 30 2c  31 30 30 2c 38 2c 30 2c  |ft",810,100,8,0,|
0002af90  74 72 61 6e 73 6c 61 74  65 25 0d 17 07 3a 20 c8  |translate%...: .|
0002afa0  99 20 73 70 72 73 77 69  25 2c 32 35 36 2b 35 32  |. sprswi%,256+52|
0002afb0  2c 73 70 62 25 2c 22 72  69 67 68 74 22 2c 39 33  |,spb%,"right",93|
0002afc0  30 2c 31 30 30 2c 38 2c  30 2c 74 72 61 6e 73 6c  |0,100,8,0,transl|
0002afd0  61 74 65 25 0d 17 08 23  20 f2 77 72 69 74 65 32  |ate%...# .write2|
0002afe0  28 22 78 2f 79 20 70 6f  69 6e 74 22 2c 38 31 32  |("x/y point",812|
0002aff0  2c 32 37 32 2c 34 29 0d  17 09 21 20 f2 77 72 69  |,272,4)...! .wri|
0002b000  74 65 32 28 22 79 20 70  6f 69 6e 74 22 2c 38 32  |te2("y point",82|
0002b010  38 2c 31 35 32 2c 34 29  0d 17 0a 20 20 f2 72 61  |8,152,4)...  .ra|
0002b020  69 73 65 64 5f 62 6c 6f  63 6b 28 37 39 38 2c 33  |ised_block(798,3|
0002b030  32 2c 38 30 2c 33 32 29  0d 17 0b 20 20 f2 72 61  |2,80,32)...  .ra|
0002b040  69 73 65 64 5f 62 6c 6f  63 6b 28 39 30 34 2c 33  |ised_block(904,3|
0002b050  32 2c 38 30 2c 33 32 29  0d 17 0c 1d 20 f2 77 72  |2,80,32).... .wr|
0002b060  69 74 65 32 28 22 55 4e  44 4f 22 2c 37 39 32 2c  |ite2("UNDO",792,|
0002b070  33 32 2c 34 29 0d 17 0d  1b 20 f2 77 72 69 74 65  |32,4).... .write|
0002b080  32 28 22 4f 4b 22 2c 39  31 34 2c 33 32 2c 34 29  |2("OK",914,32,4)|
0002b090  0d 17 0e 23 20 f2 77 72  69 74 65 32 28 22 20 20  |...# .write2("  |
0002b0a0  52 65 2d 73 69 7a 65 22  2c 38 30 30 2c 33 32 34  |Re-size",800,324|
0002b0b0  2c 34 29 0d 17 0f 3f 20  f2 77 72 69 74 65 32 28  |,4)...? .write2(|
0002b0c0  22 43 6c 69 63 6b 20 4f  4b 20 6f 72 20 70 72 65  |"Click OK or pre|
0002b0d0  73 73 20 3c 72 65 74 75  72 6e 3e 20 74 6f 20 66  |ss <return> to f|
0002b0e0  69 6e 69 73 68 2e 22 2c  31 32 30 2c 32 32 30 2c  |inish.",120,220,|
0002b0f0  34 29 0d 17 10 27 20 c8  97 20 c8 93 20 37 38 34  |4)...' .. .. 784|
0002b100  2c 31 36 2c 32 31 36 2c  33 33 38 3a 66 69 72 73  |,16,216,338:firs|
0002b110  74 5f 74 69 6d 65 25 3d  a3 0d 17 11 06 20 cd 0d  |t_time%=..... ..|
0002b120  17 12 04 0d 17 13 31 20  21 73 70 72 25 3d 74 78  |......1 !spr%=tx|
0002b130  74 73 69 7a 65 25 3a 73  70 72 25 21 34 3d 30 3a  |tsize%:spr%!4=0:|
0002b140  73 70 72 25 21 38 3d 31  36 3a 73 70 72 25 21 31  |spr%!8=16:spr%!1|
0002b150  32 3d 31 36 0d 17 14 31  20 f2 6d 61 6b 65 5f 74  |2=16...1 .make_t|
0002b160  65 78 74 5f 6d 61 73 6b  28 66 6f 6e 74 24 2c 74  |ext_mask(font$,t|
0002b170  65 78 74 31 24 2c 74 65  78 74 32 24 2c 78 70 25  |ext1$,text2$,xp%|
0002b180  2c 79 70 25 29 0d 17 15  33 20 c8 99 20 73 70 72  |,yp%)...3 .. spr|
0002b190  73 77 69 25 2c 32 35 36  2b 35 32 2c 73 70 72 25  |swi%,256+52,spr%|
0002b1a0  2c 22 74 65 78 74 6d 61  73 6b 22 2c 33 32 2c 34  |,"textmask",32,4|
0002b1b0  36 30 2c 38 2c 30 2c 30  0d 17 16 16 20 f2 73 68  |60,8,0,0.... .sh|
0002b1c0  6f 77 5f 70 6f 69 6e 74  5f 73 69 7a 65 73 0d 17  |ow_point_sizes..|
0002b1d0  17 04 0d 17 18 14 20 f5  3a 4b 3d a6 28 31 29 3a  |...... .:K=.(1):|
0002b1e0  fd 20 4b 3d 2d 31 0d 17  19 15 20 70 6f 69 6e 74  |. K=-1.... point|
0002b1f0  5f 62 75 74 74 6f 6e 24  3d 22 22 0d 17 1a 24 20  |_button$=""...$ |
0002b200  f5 3a c8 97 20 58 2c 59  2c 42 3a 4b 3d a6 28 35  |.:.. X,Y,B:K=.(5|
0002b210  29 3a fd 20 42 3c 3e 30  20 84 20 4b 3d 31 33 0d  |):. B<>0 . K=13.|
0002b220  17 1b 04 0d 17 1c 13 20  e7 20 4b 3d 31 33 20 71  |....... . K=13 q|
0002b230  75 69 74 25 3d b9 0d 17  1d 04 0d 17 1e 12 20 e7  |uit%=......... .|
0002b240  20 42 3d 31 20 84 20 42  3d 34 20 8c 0d 17 1f 31  | B=1 . B=4 ....1|
0002b250  20 e7 20 94 28 58 2d 38  33 38 29 3c 34 34 20 80  | . .(X-838)<44 .|
0002b260  20 94 28 59 2d 34 38 29  3c 32 32 20 78 70 25 3d  | .(Y-48)<22 xp%=|
0002b270  78 70 73 25 3a 79 70 25  3d 79 70 73 25 0d 17 20  |xps%:yp%=yps%.. |
0002b280  27 20 e7 20 94 28 58 2d  39 34 32 29 3c 34 34 20  |' . .(X-942)<44 |
0002b290  80 20 94 28 59 2d 34 38  29 3c 32 32 20 71 75 69  |. .(Y-48)<22 qui|
0002b2a0  74 25 3d b9 0d 17 21 33  20 e7 20 94 28 58 2d 38  |t%=...!3 . .(X-8|
0002b2b0  33 30 29 3c 32 38 20 80  20 94 28 59 2d 32 34 30  |30)<28 . .(Y-240|
0002b2c0  29 3c 32 38 20 70 6f 69  6e 74 5f 62 75 74 74 6f  |)<28 point_butto|
0002b2d0  6e 24 3d 22 78 6d 22 0d  17 22 33 20 e7 20 94 28  |n$="xm".."3 . .(|
0002b2e0  58 2d 39 34 32 29 3c 32  38 20 80 20 94 28 59 2d  |X-942)<28 . .(Y-|
0002b2f0  32 34 30 29 3c 32 38 20  70 6f 69 6e 74 5f 62 75  |240)<28 point_bu|
0002b300  74 74 6f 6e 24 3d 22 78  70 22 0d 17 23 33 20 e7  |tton$="xp"..#3 .|
0002b310  20 94 28 58 2d 38 33 30  29 3c 32 38 20 80 20 94  | .(X-830)<28 . .|
0002b320  28 59 2d 31 32 30 29 3c  32 38 20 70 6f 69 6e 74  |(Y-120)<28 point|
0002b330  5f 62 75 74 74 6f 6e 24  3d 22 79 6d 22 0d 17 24  |_button$="ym"..$|
0002b340  33 20 e7 20 94 28 58 2d  39 34 32 29 3c 32 38 20  |3 . .(X-942)<28 |
0002b350  80 20 94 28 59 2d 31 32  30 29 3c 32 38 20 70 6f  |. .(Y-120)<28 po|
0002b360  69 6e 74 5f 62 75 74 74  6f 6e 24 3d 22 79 70 22  |int_button$="yp"|
0002b370  0d 17 25 17 20 c8 8e 20  70 6f 69 6e 74 5f 62 75  |..%. .. point_bu|
0002b380  74 74 6f 6e 24 20 ca 0d  17 26 22 20 c9 20 22 78  |tton$ ...&" . "x|
0002b390  6d 22 3a e7 20 78 70 25  3e 31 30 20 78 70 25 2d  |m":. xp%>10 xp%-|
0002b3a0  3d 32 3a 79 70 25 2d 3d  32 0d 17 27 23 20 c9 20  |=2:yp%-=2..'# . |
0002b3b0  22 78 70 22 3a e7 20 78  70 25 3c 32 30 30 20 78  |"xp":. xp%<200 x|
0002b3c0  70 25 2b 3d 32 3a 79 70  25 2b 3d 32 0d 17 28 1b  |p%+=2:yp%+=2..(.|
0002b3d0  20 c9 20 22 79 6d 22 3a  e7 20 79 70 25 3e 31 30  | . "ym":. yp%>10|
0002b3e0  20 79 70 25 2d 3d 32 0d  17 29 1c 20 c9 20 22 79  | yp%-=2..). . "y|
0002b3f0  70 22 3a e7 20 79 70 25  3c 32 30 30 20 79 70 25  |p":. yp%<200 yp%|
0002b400  2b 3d 32 0d 17 2a 06 20  cb 0d 17 2b 06 20 cd 0d  |+=2..*. ...+. ..|
0002b410  17 2c 04 0d 17 2d 14 20  6d 61 73 6b 5f 63 72 65  |.,...-. mask_cre|
0002b420  61 74 65 64 25 3d b9 0d  17 2e 06 20 cd 0d 17 2f  |ated%=..... .../|
0002b430  17 20 fd 20 71 75 69 74  25 20 84 20 66 6f 6e 74  |. . quit% . font|
0002b440  24 3d 22 22 0d 17 30 0d  20 f2 64 69 73 6d 69 6e  |$=""..0. .dismin|
0002b450  69 0d 17 31 06 20 e1 0d  17 32 04 0d 17 33 16 20  |i..1. ...2...3. |
0002b460  dd 20 f2 70 6c 6f 74 5f  74 65 78 74 5f 6d 61 73  |. .plot_text_mas|
0002b470  6b 0d 17 34 16 20 e7 20  6d 61 73 6b 5f 63 72 65  |k..4. . mask_cre|
0002b480  61 74 65 64 25 20 8c 0d  17 35 24 20 20 f2 64 69  |ated% ...5$  .di|
0002b490  73 70 6c 61 79 5f 6d 65  6d 6f 72 79 3a f2 70 6f  |splay_memory:.po|
0002b4a0  73 69 74 69 6f 6e 5f 6d  61 73 6b 0d 17 36 0e 20  |sition_mask..6. |
0002b4b0  20 20 e7 20 42 3d 34 20  8c 0d 17 37 42 20 20 20  |  . B=4 ...7B   |
0002b4c0  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 34  |.. sprswi%,256+4|
0002b4d0  30 2c 73 70 72 25 2c 22  74 65 78 74 6d 61 73 6b  |0,spr%,"textmask|
0002b4e0  22 20 b8 2c 2c 2c 57 25  2c 48 25 3a 57 25 3d 57  |" .,,,W%,H%:W%=W|
0002b4f0  25 2a 32 3a 48 25 3d 48  25 2a 32 0d 17 38 3c 20  |%*2:H%=H%*2..8< |
0002b500  20 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |  .. sprswi%,256|
0002b510  2b 31 36 2c 73 70 72 25  2c 22 74 65 78 74 6d 61  |+16,spr%,"textma|
0002b520  73 6b 22 2c 30 2c 58 25  2c 59 25 2c 58 25 2b 57  |sk",0,X%,Y%,X%+W|
0002b530  25 2c 59 25 2b 48 25 0d  17 39 28 20 20 20 c8 99  |%,Y%+H%..9(   ..|
0002b540  20 73 70 72 73 77 69 25  2c 32 35 36 2b 32 39 2c  | sprswi%,256+29,|
0002b550  73 70 72 25 2c 22 74 65  78 74 6d 61 73 6b 22 0d  |spr%,"textmask".|
0002b560  17 3a 2a 20 20 20 c8 99  20 73 70 72 73 77 69 25  |.:*   .. sprswi%|
0002b570  2c 32 35 36 2b 36 31 2c  73 70 72 25 2c 22 74 65  |,256+61,spr%,"te|
0002b580  78 74 6d 61 73 6b 22 2c  30 0d 17 3b 1a 20 20 20  |xtmask",0..;.   |
0002b590  e6 20 30 3a c8 93 20 c8  90 20 30 2c 30 2c 57 25  |. 0:.. .. 0,0,W%|
0002b5a0  2c 48 25 0d 17 3c 15 20  20 20 e7 20 74 65 78 74  |,H%..<.   . text|
0002b5b0  32 24 3c 3e 22 22 20 8c  0d 17 3d 36 20 20 20 f2  |2$<>"" ...=6   .|
0002b5c0  77 72 69 74 65 28 66 6f  6e 74 24 2c 74 65 78 74  |write(font$,text|
0002b5d0  31 24 2c 34 2c 59 4f 31  25 2b 48 32 25 2b 79 70  |1$,4,YO1%+H2%+yp|
0002b5e0  25 2f 32 2c 78 70 25 2c  79 70 25 2c 34 29 0d 17  |%/2,xp%,yp%,4)..|
0002b5f0  3e 2b 20 20 20 f2 77 72  69 74 65 28 66 6f 6e 74  |>+   .write(font|
0002b600  24 2c 74 65 78 74 32 24  2c 34 2c 59 4f 25 2c 78  |$,text2$,4,YO%,x|
0002b610  70 25 2c 79 70 25 2c 34  29 0d 17 3f 08 20 20 20  |p%,yp%,4)..?.   |
0002b620  cc 0d 17 40 2b 20 20 20  f2 77 72 69 74 65 28 66  |...@+   .write(f|
0002b630  6f 6e 74 24 2c 74 65 78  74 31 24 2c 34 2c 59 4f  |ont$,text1$,4,YO|
0002b640  25 2c 78 70 25 2c 79 70  25 2c 34 29 0d 17 41 08  |%,xp%,yp%,4)..A.|
0002b650  20 20 20 cd 0d 17 42 26  20 20 20 c8 99 20 73 70  |   ...B&   .. sp|
0002b660  72 73 77 69 25 2c 32 35  36 2b 36 31 2c 73 70 72  |rswi%,256+61,spr|
0002b670  25 2c 30 2c 30 3a 87 3a  c8 96 0d 17 43 43 20 20  |%,0,0:.:....CC  |
0002b680  20 6f 76 65 72 6c 61 79  25 3d b9 3a 6f 76 65 72  | overlay%=.:over|
0002b690  6c 61 79 5f 6f 75 74 6c  69 6e 65 25 3d b9 3a 73  |lay_outline%=.:s|
0002b6a0  70 72 69 74 65 5f 6e 61  6d 65 24 3d 22 74 65 78  |prite_name$="tex|
0002b6b0  74 6d 61 73 6b 22 3a 4f  4f 43 25 3d 31 0d 17 44  |tmask":OOC%=1..D|
0002b6c0  16 20 20 20 6d 61 73 6b  5f 63 72 65 61 74 65 64  |.   mask_created|
0002b6d0  25 3d a3 0d 17 45 08 20  20 20 cd 0d 17 46 06 20  |%=...E.   ...F. |
0002b6e0  cd 0d 17 47 06 20 e1 0d  17 48 04 0d 17 49 27 20  |...G. ...H...I' |
0002b6f0  dd 20 f2 77 72 69 74 65  28 46 24 2c 74 65 78 74  |. .write(F$,text|
0002b700  24 2c 78 25 2c 79 25 2c  78 70 25 2c 79 70 25 2c  |$,x%,y%,xp%,yp%,|
0002b710  63 29 0d 17 4a 29 20 e7  20 66 6f 6e 74 25 3c 3e  |c)..J) . font%<>|
0002b720  2d 31 20 c8 99 20 22 46  6f 6e 74 5f 4c 6f 73 65  |-1 .. "Font_Lose|
0002b730  46 6f 6e 74 22 2c 66 6f  6e 74 25 0d 17 4b 31 20  |Font",font%..K1 |
0002b740  c8 99 20 22 46 6f 6e 74  5f 46 69 6e 64 46 6f 6e  |.. "Font_FindFon|
0002b750  74 22 2c 2c 46 24 2c 78  70 25 2a 31 36 2c 79 70  |t",,F$,xp%*16,yp|
0002b760  25 2a 31 36 20 b8 20 66  6f 6e 74 25 0d 17 4c 11  |%*16 . font%..L.|
0002b770  20 74 25 3d 26 36 35 37  35 37 32 35 34 0d 17 4d  | t%=&65757254..M|
0002b780  0b 20 c8 8e 20 63 20 ca  0d 17 4e 45 20 20 c9 20  |. .. c ...NE  . |
0002b790  30 3a c8 99 20 22 46 6f  6e 74 5f 53 65 74 50 61  |0:.. "Font_SetPa|
0002b7a0  6c 65 74 74 65 22 2c 2c  30 2c 30 2c 30 2c 26 46  |lette",,0,0,0,&F|
0002b7b0  46 46 46 46 46 30 30 2c  30 2c 74 25 20 3a f4 20  |FFFFF00,0,t% :. |
0002b7c0  42 6c 61 63 6b 20 6e 6f  20 61 6e 74 69 0d 17 4f  |Black no anti..O|
0002b7d0  45 20 20 c9 20 31 3a c8  99 20 22 46 6f 6e 74 5f  |E  . 1:.. "Font_|
0002b7e0  53 65 74 50 61 6c 65 74  74 65 22 2c 2c 30 2c 30  |SetPalette",,0,0|
0002b7f0  2c 30 2c 30 2c 26 46 46  46 46 46 46 30 30 2c 74  |,0,0,&FFFFFF00,t|
0002b800  25 20 3a f4 20 57 68 69  74 65 20 6e 6f 20 61 6e  |% :. White no an|
0002b810  74 69 0d 17 50 42 20 20  c9 20 32 3a c8 99 20 22  |ti..PB  . 2:.. "|
0002b820  46 6f 6e 74 5f 53 65 74  50 61 6c 65 74 74 65 22  |Font_SetPalette"|
0002b830  2c 2c 30 2c 31 2c 31 34  2c 26 46 46 46 46 46 46  |,,0,1,14,&FFFFFF|
0002b840  30 30 2c 30 2c 74 25 3a  f4 20 42 6c 61 63 6b 20  |00,0,t%:. Black |
0002b850  61 6e 74 69 0d 17 51 2c  20 20 c9 20 33 3a c8 99  |anti..Q,  . 3:..|
0002b860  20 22 46 6f 6e 74 5f 53  65 74 50 61 6c 65 74 74  | "Font_SetPalett|
0002b870  65 22 2c 2c 30 2c 30 2c  30 2c 30 2c 30 2c 74 25  |e",,0,0,0,0,0,t%|
0002b880  0d 17 52 2e 20 20 c9 20  34 3a c8 99 20 22 46 6f  |..R.  . 4:.. "Fo|
0002b890  6e 74 5f 53 65 74 46 6f  6e 74 43 6f 6c 6f 75 72  |nt_SetFontColour|
0002b8a0  73 22 2c 66 6f 6e 74 25  2c 31 2c 31 2c 30 0d 17  |s",font%,1,1,0..|
0002b8b0  53 4b 20 20 c9 20 35 3a  c8 99 20 22 46 6f 6e 74  |SK  . 5:.. "Font|
0002b8c0  5f 53 65 74 50 61 6c 65  74 74 65 22 2c 2c 30 2c  |_SetPalette",,0,|
0002b8d0  31 2c 31 34 2c 26 44 43  30 30 30 30 30 30 2c 26  |1,14,&DC000000,&|
0002b8e0  30 30 46 46 46 46 30 30  2c 74 25 3a f4 20 59 65  |00FFFF00,t%:. Ye|
0002b8f0  6c 6c 6f 77 20 61 6e 74  69 0d 17 54 46 20 20 c9  |llow anti..TF  .|
0002b900  20 36 3a c8 99 20 22 46  6f 6e 74 5f 53 65 74 50  | 6:.. "Font_SetP|
0002b910  61 6c 65 74 74 65 22 2c  2c 30 2c 30 2c 30 2c 30  |alette",,0,0,0,0|
0002b920  2c 26 30 30 46 46 46 46  30 30 2c 74 25 20 3a f4  |,&00FFFF00,t% :.|
0002b930  20 59 65 6c 6c 6f 77 20  6e 6f 20 61 6e 74 69 0d  | Yellow no anti.|
0002b940  17 55 4a 20 20 c9 20 37  3a c8 99 20 22 46 6f 6e  |.UJ  . 7:.. "Fon|
0002b950  74 5f 53 65 74 50 61 6c  65 74 74 65 22 2c 2c 30  |t_SetPalette",,0|
0002b960  2c 31 2c 31 34 2c 26 44  43 30 30 30 30 30 30 2c  |,1,14,&DC000000,|
0002b970  26 46 46 46 46 46 46 30  30 2c 74 25 3a f4 20 57  |&FFFFFF00,t%:. W|
0002b980  68 69 74 65 20 61 6e 74  69 0d 17 56 06 20 7f 0d  |hite anti..V. ..|
0002b990  17 57 3a 20 20 c8 99 20  22 46 6f 6e 74 5f 53 65  |.W:  .. "Font_Se|
0002b9a0  74 50 61 6c 65 74 74 65  22 2c 2c 30 2c 30 2c 30  |tPalette",,0,0,0|
0002b9b0  2c 30 2c 63 2c 74 25 20  3a 20 f4 20 52 47 42 20  |,0,c,t% : . RGB |
0002b9c0  2d 20 6e 6f 20 61 6e 74  69 0d 17 58 06 20 cb 0d  |- no anti..X. ..|
0002b9d0  17 59 04 0d 17 5a 29 20  c8 99 20 22 46 6f 6e 74  |.Y...Z) .. "Font|
0002b9e0  5f 50 61 69 6e 74 22 2c  66 6f 6e 74 25 2c 74 65  |_Paint",font%,te|
0002b9f0  78 74 24 2c 31 36 2c 78  25 2c 79 25 0d 17 5b 22  |xt$,16,x%,y%..["|
0002ba00  20 c8 99 20 22 46 6f 6e  74 5f 4c 6f 73 65 46 6f  | .. "Font_LoseFo|
0002ba10  6e 74 22 2c 66 6f 6e 74  25 3a 87 3a c8 96 0d 17  |nt",font%:.:....|
0002ba20  5c 06 20 e1 0d 17 5d 04  0d 17 5e 2b 20 dd 20 f2  |\. ...]...^+ . .|
0002ba30  74 65 78 74 5f 62 6f 75  6e 64 5f 62 6f 78 28 66  |text_bound_box(f|
0002ba40  6f 6e 74 24 2c 74 65 78  74 24 2c 78 70 25 2c 79  |ont$,text$,xp%,y|
0002ba50  70 25 29 0d 17 5f 29 20  e7 20 66 6f 6e 74 25 3c  |p%).._) . font%<|
0002ba60  3e 2d 31 20 c8 99 20 22  46 6f 6e 74 5f 4c 6f 73  |>-1 .. "Font_Los|
0002ba70  65 46 6f 6e 74 22 2c 66  6f 6e 74 25 0d 17 60 38  |eFont",font%..`8|
0002ba80  20 c8 99 20 22 46 6f 6e  74 5f 46 69 6e 64 46 6f  | .. "Font_FindFo|
0002ba90  6e 74 22 2c 2c 66 6f 6e  74 24 2c 31 36 2a 78 70  |nt",,font$,16*xp|
0002baa0  25 2c 31 36 2a 79 70 25  2c 30 2c 30 20 b8 20 66  |%,16*yp%,0,0 . f|
0002bab0  6f 6e 74 25 0d 17 61 19  20 48 25 3d 30 3a 79 6d  |ont%..a. H%=0:ym|
0002bac0  69 6e 25 3d 30 3a 79 6d  61 78 25 3d 30 0d 17 62  |in%=0:ymax%=0..b|
0002bad0  16 20 e3 20 4e 25 3d 31  20 b8 20 a9 28 74 65 78  |. . N%=1 . .(tex|
0002bae0  74 24 29 0d 17 63 42 20  c8 99 20 22 46 6f 6e 74  |t$)..cB .. "Font|
0002baf0  5f 43 68 61 72 42 42 6f  78 22 2c 66 6f 6e 74 25  |_CharBBox",font%|
0002bb00  2c 97 28 c1 74 65 78 74  24 2c 4e 25 2c 31 29 29  |,.(.text$,N%,1))|
0002bb10  2c 31 36 20 b8 2c 72 31  25 2c 72 32 25 2c 72 33  |,16 .,r1%,r2%,r3|
0002bb20  25 2c 72 34 25 0d 17 64  1c 20 e7 20 72 32 25 3c  |%,r4%..d. . r2%<|
0002bb30  79 6d 69 6e 25 20 8c 20  79 6d 69 6e 25 3d 72 32  |ymin% . ymin%=r2|
0002bb40  25 0d 17 65 1c 20 e7 20  72 34 25 3e 79 6d 61 78  |%..e. . r4%>ymax|
0002bb50  25 20 8c 20 79 6d 61 78  25 3d 72 34 25 0d 17 66  |% . ymax%=r4%..f|
0002bb60  34 20 c8 99 20 22 46 6f  6e 74 5f 43 6f 6e 76 65  |4 .. "Font_Conve|
0002bb70  72 74 74 6f 70 6f 69 6e  74 73 22 2c 2c 31 32 38  |rttopoints",,128|
0002bb80  30 2c 31 30 32 34 20 b8  20 2c 70 78 25 2c 70 79  |0,1024 . ,px%,py|
0002bb90  25 0d 17 67 36 20 c8 99  20 22 46 6f 6e 74 5f 53  |%..g6 .. "Font_S|
0002bba0  74 72 69 6e 67 57 69 64  74 68 22 2c 2c 74 65 78  |tringWidth",,tex|
0002bbb0  74 24 2c 70 78 25 2c 70  79 25 2c 2d 31 2c 32 35  |t$,px%,py%,-1,25|
0002bbc0  36 20 b8 2c 2c 57 25 0d  17 68 23 20 c8 99 20 22  |6 .,,W%..h# .. "|
0002bbd0  46 6f 6e 74 5f 43 6f 6e  76 65 72 74 74 6f 4f 53  |Font_ConverttoOS|
0002bbe0  22 2c 2c 57 25 20 b8 2c  57 25 0d 17 69 06 20 ed  |",,W% .,W%..i. .|
0002bbf0  0d 17 6a 2b 20 57 25 2b  3d 31 32 3a 48 25 3d 79  |..j+ W%+=12:H%=y|
0002bc00  6d 61 78 25 2d 79 6d 69  6e 25 2b 34 3a 59 4f 25  |max%-ymin%+4:YO%|
0002bc10  3d 28 2d 79 6d 69 6e 25  29 2b 34 0d 17 6b 06 20  |=(-ymin%)+4..k. |
0002bc20  e1 0d 17 6c 04 0d 17 6d  33 20 dd 20 f2 6d 61 6b  |...l...m3 . .mak|
0002bc30  65 5f 74 65 78 74 5f 6d  61 73 6b 28 66 6f 6e 74  |e_text_mask(font|
0002bc40  24 2c 74 65 78 74 31 24  2c 74 65 78 74 32 24 2c  |$,text1$,text2$,|
0002bc50  78 70 25 2c 79 70 25 29  0d 17 6e 41 20 f2 74 65  |xp%,yp%)..nA .te|
0002bc60  78 74 5f 62 6f 75 6e 64  5f 62 6f 78 28 66 6f 6e  |xt_bound_box(fon|
0002bc70  74 24 2c 74 65 78 74 31  24 2c 78 70 25 2c 79 70  |t$,text1$,xp%,yp|
0002bc80  25 29 3a 48 31 25 3d 48  25 3a 57 31 25 3d 57 25  |%):H1%=H%:W1%=W%|
0002bc90  3a 59 4f 31 25 3d 59 4f  25 0d 17 6f 13 20 e7 20  |:YO1%=YO%..o. . |
0002bca0  74 65 78 74 32 24 3c 3e  22 22 20 8c 0d 17 70 41  |text2$<>"" ...pA|
0002bcb0  20 f2 74 65 78 74 5f 62  6f 75 6e 64 5f 62 6f 78  | .text_bound_box|
0002bcc0  28 66 6f 6e 74 24 2c 74  65 78 74 32 24 2c 78 70  |(font$,text2$,xp|
0002bcd0  25 2c 79 70 25 29 3a 48  32 25 3d 48 25 3a 48 25  |%,yp%):H2%=H%:H%|
0002bce0  3d 48 25 2b 48 31 25 2b  79 70 25 2f 32 0d 17 71  |=H%+H1%+yp%/2..q|
0002bcf0  16 20 e7 20 57 31 25 3e  57 25 20 8c 20 57 25 3d  |. . W1%>W% . W%=|
0002bd00  57 31 25 0d 17 72 06 20  cd 0d 17 73 32 20 c8 99  |W1%..r. ...s2 ..|
0002bd10  20 73 70 72 73 77 69 25  2c 32 35 36 2b 31 36 2c  | sprswi%,256+16,|
0002bd20  73 70 72 25 2c 22 74 65  78 74 6d 61 73 6b 22 2c  |spr%,"textmask",|
0002bd30  30 2c 30 2c 30 2c 57 25  2c 48 25 0d 17 74 26 20  |0,0,0,W%,H%..t& |
0002bd40  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 32  |.. sprswi%,256+2|
0002bd50  39 2c 73 70 72 25 2c 22  74 65 78 74 6d 61 73 6b  |9,spr%,"textmask|
0002bd60  22 0d 17 75 28 20 c8 99  20 73 70 72 73 77 69 25  |"..u( .. sprswi%|
0002bd70  2c 32 35 36 2b 36 30 2c  73 70 72 25 2c 22 74 65  |,256+60,spr%,"te|
0002bd80  78 74 6d 61 73 6b 22 2c  30 0d 17 76 22 20 e6 20  |xtmask",0..v" . |
0002bd90  32 35 35 2c 32 35 35 2c  32 35 35 3a c8 93 20 c8  |255,255,255:.. .|
0002bda0  90 20 30 2c 30 2c 57 25  2c 48 25 0d 17 77 24 20  |. 0,0,W%,H%..w$ |
0002bdb0  c8 99 20 73 70 72 73 77  69 25 2c 32 35 36 2b 36  |.. sprswi%,256+6|
0002bdc0  30 2c 73 70 72 25 2c 30  2c 30 3a 87 3a c8 96 0d  |0,spr%,0,0:.:...|
0002bdd0  17 78 28 20 c8 99 20 73  70 72 73 77 69 25 2c 32  |.x( .. sprswi%,2|
0002bde0  35 36 2b 36 31 2c 73 70  72 25 2c 22 74 65 78 74  |56+61,spr%,"text|
0002bdf0  6d 61 73 6b 22 2c 30 0d  17 79 13 20 e7 20 74 65  |mask",0..y. . te|
0002be00  78 74 32 24 3c 3e 22 22  20 8c 0d 17 7a 34 20 f2  |xt2$<>"" ...z4 .|
0002be10  77 72 69 74 65 28 66 6f  6e 74 24 2c 74 65 78 74  |write(font$,text|
0002be20  31 24 2c 34 2c 59 4f 31  25 2b 48 32 25 2b 79 70  |1$,4,YO1%+H2%+yp|
0002be30  25 2f 32 2c 78 70 25 2c  79 70 25 2c 33 29 0d 17  |%/2,xp%,yp%,3)..|
0002be40  7b 29 20 f2 77 72 69 74  65 28 66 6f 6e 74 24 2c  |{) .write(font$,|
0002be50  74 65 78 74 32 24 2c 34  2c 59 4f 25 2c 78 70 25  |text2$,4,YO%,xp%|
0002be60  2c 79 70 25 2c 33 29 0d  17 7c 06 20 cc 0d 17 7d  |,yp%,3)..|. ...}|
0002be70  29 20 f2 77 72 69 74 65  28 66 6f 6e 74 24 2c 74  |) .write(font$,t|
0002be80  65 78 74 31 24 2c 34 2c  59 4f 25 2c 78 70 25 2c  |ext1$,4,YO%,xp%,|
0002be90  79 70 25 2c 33 29 0d 17  7e 06 20 cd 0d 17 7f 24  |yp%,3)..~. ....$|
0002bea0  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
0002beb0  36 31 2c 73 70 72 25 2c  30 2c 30 3a 87 3a c8 96  |61,spr%,0,0:.:..|
0002bec0  0d 17 80 34 20 73 63 72  65 65 6e 5f 67 72 61 62  |...4 screen_grab|
0002bed0  62 65 64 25 3d 30 3a 6f  76 65 72 6c 61 79 25 3d  |bed%=0:overlay%=|
0002bee0  b9 3a 6f 76 65 72 6c 61  79 5f 6f 75 74 6c 69 6e  |.:overlay_outlin|
0002bef0  65 25 3d 30 0d 17 81 23  20 73 70 72 69 74 65 5f  |e%=0...# sprite_|
0002bf00  6e 61 6d 65 24 3d 22 74  65 78 74 6d 61 73 6b 22  |name$="textmask"|
0002bf10  3a 4f 4f 43 25 3d 30 0d  17 82 06 20 e1 0d 17 83  |:OOC%=0.... ....|
0002bf20  04 0d 17 84 15 20 dd 20  f2 70 6f 73 69 74 69 6f  |..... . .positio|
0002bf30  6e 5f 6d 61 73 6b 0d 17  85 16 20 c8 97 20 58 25  |n_mask.... .. X%|
0002bf40  2c 59 25 2c 42 25 3a 70  25 3d 31 31 0d 17 86 33  |,Y%,B%:p%=11...3|
0002bf50  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
0002bf60  35 32 2c 73 70 72 25 2c  22 74 65 78 74 6d 61 73  |52,spr%,"textmas|
0002bf70  6b 22 2c 58 25 2c 59 25  2c 70 25 2c 30 2c 30 0d  |k",X%,Y%,p%,0,0.|
0002bf80  17 87 30 20 f5 3a f5 20  c8 97 20 58 31 25 2c 59  |..0 .:. .. X1%,Y|
0002bf90  31 25 2c 42 3a fd 20 58  31 25 3c 3e 58 25 20 84  |1%,B:. X1%<>X% .|
0002bfa0  20 59 31 25 3c 3e 59 25  20 84 20 42 3c 3e 30 0d  | Y1%<>Y% . B<>0.|
0002bfb0  17 88 33 20 c8 99 20 73  70 72 73 77 69 25 2c 32  |..3 .. sprswi%,2|
0002bfc0  35 36 2b 35 32 2c 73 70  72 25 2c 22 74 65 78 74  |56+52,spr%,"text|
0002bfd0  6d 61 73 6b 22 2c 58 25  2c 59 25 2c 70 25 2c 30  |mask",X%,Y%,p%,0|
0002bfe0  2c 30 0d 17 89 26 20 e7  20 42 3d 32 20 8c 20 70  |,0...& . B=2 . p|
0002bff0  25 3d 70 25 20 82 20 38  3a f2 77 61 69 74 5f 6e  |%=p% . 8:.wait_n|
0002c000  6f 5f 62 75 74 74 6f 6e  0d 17 8a 35 20 c8 99 20  |o_button...5 .. |
0002c010  73 70 72 73 77 69 25 2c  32 35 36 2b 35 32 2c 73  |sprswi%,256+52,s|
0002c020  70 72 25 2c 22 74 65 78  74 6d 61 73 6b 22 2c 58  |pr%,"textmask",X|
0002c030  31 25 2c 59 31 25 2c 70  25 2c 30 2c 30 0d 17 8b  |1%,Y1%,p%,0,0...|
0002c040  12 20 58 25 3d 58 31 25  3a 59 25 3d 59 31 25 0d  |. X%=X1%:Y%=Y1%.|
0002c050  17 8c 10 20 fd 20 42 3d  31 20 84 20 42 3d 34 0d  |... . B=1 . B=4.|
0002c060  17 8d 3a 20 e7 20 42 3d  34 20 8c 20 c8 99 20 73  |..: . B=4 . .. s|
0002c070  70 72 73 77 69 25 2c 32  35 36 2b 35 32 2c 73 70  |prswi%,256+52,sp|
0002c080  72 25 2c 22 74 65 78 74  6d 61 73 6b 22 2c 58 25  |r%,"textmask",X%|
0002c090  2c 59 25 2c 38 2c 30 2c  30 0d 17 8e 06 20 e1 0d  |,Y%,8,0,0.... ..|
0002c0a0  17 8f 04 0d 17 90 23 20  dd 20 f2 73 70 72 69 74  |......# . .sprit|
0002c0b0  65 5f 73 68 61 64 6f 77  28 73 73 78 25 2c 73 73  |e_shadow(ssx%,ss|
0002c0c0  79 25 2c 73 25 29 0d 17  91 36 20 c8 99 20 73 70  |y%,s%)...6 .. sp|
0002c0d0  72 73 77 69 25 2c 32 35  36 2b 34 30 2c 73 70 72  |rswi%,256+40,spr|
0002c0e0  25 2c 73 70 72 69 74 65  5f 6e 61 6d 65 24 20 b8  |%,sprite_name$ .|
0002c0f0  2c 2c 2c 73 73 77 25 2c  73 73 68 25 0d 17 92 33  |,,,ssw%,ssh%...3|
0002c100  20 c8 99 20 73 70 72 73  77 69 25 2c 32 35 36 2b  | .. sprswi%,256+|
0002c110  32 34 2c 73 70 72 25 2c  73 70 72 69 74 65 5f 6e  |24,spr%,sprite_n|
0002c120  61 6d 65 24 20 b8 2c 2c  73 70 72 61 64 64 25 0d  |ame$ .,,spradd%.|
0002c130  17 93 0d 20 e7 20 73 25  3d 31 20 8c 0d 17 94 24  |... . s%=1 ....$|
0002c140  20 e3 20 4e 25 3d 30 20  b8 20 33 31 3a 64 25 3d  | . N%=0 . 31:d%=|
0002c150  4e 25 2d 32 3a e7 20 64  25 3c 30 20 64 25 3d 30  |N%-2:. d%<0 d%=0|
0002c160  0d 17 95 26 20 67 72 6e  64 61 74 61 3f 4e 25 3d  |...& grndata?N%=|
0002c170  64 25 3a ed 3a 73 73 78  25 3d 28 73 73 78 25 20  |d%:.:ssx%=(ssx% |
0002c180  81 20 34 29 2a 34 0d 17  96 3e 20 21 73 70 72 73  |. 4)*4...> !sprs|
0002c190  68 61 64 5f 6d 61 73 6b  3d 73 70 72 61 64 64 25  |had_mask=spradd%|
0002c1a0  2b 28 73 70 72 61 64 64  25 21 33 36 29 3a 21 73  |+(spradd%!36):!s|
0002c1b0  70 72 73 68 61 64 5f 74  61 62 6c 65 3d 67 72 6e  |prshad_table=grn|
0002c1c0  64 61 74 61 0d 17 97 32  20 21 73 70 72 73 68 61  |data...2 !sprsha|
0002c1d0  64 5f 62 79 74 65 73 3d  28 73 73 77 25 81 34 29  |d_bytes=(ssw%.4)|
0002c1e0  2a 38 3a 21 73 70 72 73  68 61 64 5f 6c 69 6e 65  |*8:!sprshad_line|
0002c1f0  73 3d 73 73 68 25 0d 17  98 34 20 73 74 61 72 74  |s=ssh%...4 start|
0002c200  25 3d 73 63 72 65 65 6e  25 2b 28 28 28 31 30 32  |%=screen%+(((102|
0002c210  34 2d 73 73 79 25 29 81  32 29 2d 73 73 68 25 29  |4-ssy%).2)-ssh%)|
0002c220  2a 31 32 38 30 2b 73 73  78 25 0d 17 99 20 20 73  |*1280+ssx%...  s|
0002c230  74 61 72 74 25 2b 3d 31  33 2a 31 32 38 34 3a e3  |tart%+=13*1284:.|
0002c240  20 53 25 3d 31 20 b8 20  31 36 0d 17 9a 45 20 e7  | S%=1 . 16...E .|
0002c250  20 73 74 61 72 74 25 2d  73 63 72 65 65 6e 25 3c  | start%-screen%<|
0002c260  31 32 38 30 2a 34 20 85  20 37 39 36 2c 22 53 68  |1280*4 . 796,"Sh|
0002c270  61 64 6f 77 20 69 73 20  74 6f 6f 20 6e 65 61 72  |adow is too near|
0002c280  20 74 6f 70 20 6f 66 20  73 63 72 65 65 6e 22 0d  | top of screen".|
0002c290  17 9b 2b 20 21 73 70 72  73 68 61 64 5f 73 63 72  |..+ !sprshad_scr|
0002c2a0  65 65 6e 3d 73 74 61 72  74 25 3a d6 20 73 70 72  |een=start%:. spr|
0002c2b0  73 68 61 64 5f 63 6f 64  65 25 0d 17 9c 13 20 73  |shad_code%.... s|
0002c2c0  74 61 72 74 25 2d 3d 31  32 38 34 3a ed 0d 17 9d  |tart%-=1284:....|
0002c2d0  06 20 cc 0d 17 9e 3a 20  e3 20 4e 25 3d 30 20 b8  |. ....: . N%=0 .|
0002c2e0  20 33 31 3a 64 25 3d 4e  25 2f 32 3a 67 72 6e 64  | 31:d%=N%/2:grnd|
0002c2f0  61 74 61 3f 4e 25 3d 64  25 3a ed 3a 73 73 78 25  |ata?N%=d%:.:ssx%|
0002c300  3d 28 73 73 78 25 20 81  20 34 29 2a 34 0d 17 9f  |=(ssx% . 4)*4...|
0002c310  3e 20 21 73 70 72 73 68  61 64 5f 6d 61 73 6b 3d  |> !sprshad_mask=|
0002c320  73 70 72 61 64 64 25 2b  28 73 70 72 61 64 64 25  |spradd%+(spradd%|
0002c330  21 33 36 29 3a 21 73 70  72 73 68 61 64 5f 74 61  |!36):!sprshad_ta|
0002c340  62 6c 65 3d 67 72 6e 64  61 74 61 0d 17 a0 32 20  |ble=grndata...2 |
0002c350  21 73 70 72 73 68 61 64  5f 62 79 74 65 73 3d 28  |!sprshad_bytes=(|
0002c360  73 73 77 25 81 34 29 2a  38 3a 21 73 70 72 73 68  |ssw%.4)*8:!sprsh|
0002c370  61 64 5f 6c 69 6e 65 73  3d 73 73 68 25 0d 17 a1  |ad_lines=ssh%...|
0002c380  34 20 73 74 61 72 74 25  3d 73 63 72 65 65 6e 25  |4 start%=screen%|
0002c390  2b 28 28 28 31 30 32 34  2d 73 73 79 25 29 81 32  |+(((1024-ssy%).2|
0002c3a0  29 2d 73 73 68 25 29 2a  31 32 38 30 2b 73 73 78  |)-ssh%)*1280+ssx|
0002c3b0  25 0d 17 a2 45 20 e7 20  73 74 61 72 74 25 2d 73  |%...E . start%-s|
0002c3c0  63 72 65 65 6e 25 3c 31  32 38 30 2a 34 20 85 20  |creen%<1280*4 . |
0002c3d0  37 39 36 2c 22 53 68 61  64 6f 77 20 69 73 20 74  |796,"Shadow is t|
0002c3e0  6f 6f 20 6e 65 61 72 20  74 6f 70 20 6f 66 20 73  |oo near top of s|
0002c3f0  63 72 65 65 6e 22 0d 17  a3 2f 20 e7 20 73 25 3d  |creen".../ . s%=|
0002c400  32 20 8c 20 73 74 61 72  74 25 2b 3d 31 32 2a 31  |2 . start%+=12*1|
0002c410  32 38 32 20 8b 20 73 74  61 72 74 25 2b 3d 32 30  |282 . start%+=20|
0002c420  2a 31 32 38 32 0d 17 a4  2b 20 21 73 70 72 73 68  |*1282...+ !sprsh|
0002c430  61 64 5f 73 63 72 65 65  6e 3d 73 74 61 72 74 25  |ad_screen=start%|
0002c440  3a d6 20 73 70 72 73 68  61 64 5f 63 6f 64 65 25  |:. sprshad_code%|
0002c450  0d 17 a5 06 20 cd 0d 17  a6 06 20 e1 0d 17 a7 04  |.... ..... .....|
0002c460  0d 17 a8 1e 20 dd 20 f2  73 70 72 69 74 65 5f 73  |.... . .sprite_s|
0002c470  68 61 64 6f 77 5f 61 73  73 65 6d 62 6c 65 0d 17  |hadow_assemble..|
0002c480  a9 18 20 de 20 73 70 72  73 68 61 64 5f 63 6f 64  |.. . sprshad_cod|
0002c490  65 25 20 33 32 30 0d 17  aa 3f 20 73 63 72 6e 5f  |e% 320...? scrn_|
0002c4a0  62 61 73 65 3d 31 3a 6d  61 73 6b 5f 62 61 73 65  |base=1:mask_base|
0002c4b0  3d 32 3a 74 61 62 6c 65  3d 33 3a 64 61 74 61 31  |=2:table=3:data1|
0002c4c0  3d 34 3a 6c 69 6e 65 73  3d 35 3a 6d 61 73 6b 62  |=4:lines=5:maskb|
0002c4d0  69 74 73 3d 36 0d 17 ab  3b 20 77 6f 72 64 3d 37  |its=6...; word=7|
0002c4e0  3a 53 6f 66 66 73 65 74  3d 38 3a 6d 61 73 6b 3d  |:Soffset=8:mask=|
0002c4f0  39 3a 4d 6f 66 66 73 65  74 3d 31 30 3a 70 69 78  |9:Moffset=10:pix|
0002c500  65 6c 31 3d 31 31 3a 70  69 78 65 6c 32 3d 31 32  |el1=11:pixel2=12|
0002c510  0d 17 ac 12 20 e3 20 50  3d 30 20 b8 20 32 20 88  |.... . P=0 . 2 .|
0002c520  20 32 0d 17 ad 15 20 50  25 3d 73 70 72 73 68 61  | 2.... P%=sprsha|
0002c530  64 5f 63 6f 64 65 25 0d  17 ae 0b 20 5b 4f 50 54  |d_code%.... [OPT|
0002c540  20 50 0d 17 af 3c 20 4c  44 52 20 73 63 72 6e 5f  | P...< LDR scrn_|
0002c550  62 61 73 65 2c 73 70 72  73 68 61 64 5f 73 63 72  |base,sprshad_scr|
0002c560  65 65 6e 3a 4c 44 52 20  6d 61 73 6b 5f 62 61 73  |een:LDR mask_bas|
0002c570  65 2c 73 70 72 73 68 61  64 5f 6d 61 73 6b 0d 17  |e,sprshad_mask..|
0002c580  b0 3a 20 4c 44 52 20 74  61 62 6c 65 2c 73 70 72  |.: LDR table,spr|
0002c590  73 68 61 64 5f 74 61 62  6c 65 3a 4d 4f 56 20 53  |shad_table:MOV S|
0002c5a0  6f 66 66 73 65 74 2c 23  30 3a 4d 4f 56 20 4d 6f  |offset,#0:MOV Mo|
0002c5b0  66 66 73 65 74 2c 23 30  0d 17 b1 2d 20 4c 44 52  |ffset,#0...- LDR|
0002c5c0  20 6c 69 6e 65 73 2c 73  70 72 73 68 61 64 5f 6c  | lines,sprshad_l|
0002c5d0  69 6e 65 73 3a 4d 4f 56  20 6d 61 73 6b 62 69 74  |ines:MOV maskbit|
0002c5e0  73 2c 23 33 32 0d 17 b2  21 20 4c 44 52 20 6d 61  |s,#32...! LDR ma|
0002c5f0  73 6b 2c 5b 6d 61 73 6b  5f 62 61 73 65 2c 4d 6f  |sk,[mask_base,Mo|
0002c600  66 66 73 65 74 5d 0d 17  b3 04 0d 17 b4 12 20 2e  |ffset]........ .|
0002c610  73 70 72 73 68 61 64 5f  6c 6f 6f 70 0d 17 b5 22  |sprshad_loop..."|
0002c620  20 4c 44 52 20 64 61 74  61 31 2c 5b 73 63 72 6e  | LDR data1,[scrn|
0002c630  5f 62 61 73 65 2c 53 6f  66 66 73 65 74 5d 0d 17  |_base,Soffset]..|
0002c640  b6 35 20 4d 4f 56 20 70  69 78 65 6c 31 2c 64 61  |.5 MOV pixel1,da|
0002c650  74 61 31 2c 4c 53 4c 23  31 36 3a 4d 4f 56 20 70  |ta1,LSL#16:MOV p|
0002c660  69 78 65 6c 31 2c 70 69  78 65 6c 31 2c 4c 53 52  |ixel1,pixel1,LSR|
0002c670  23 31 36 0d 17 b7 1d 20  4d 4f 56 20 70 69 78 65  |#16.... MOV pixe|
0002c680  6c 32 2c 64 61 74 61 31  2c 4c 53 52 23 31 36 20  |l2,data1,LSR#16 |
0002c690  0d 17 b8 04 0d 17 b9 1b  20 54 53 54 20 6d 61 73  |........ TST mas|
0002c6a0  6b 2c 23 31 3a 42 45 51  20 73 65 63 6f 6e 64 0d  |k,#1:BEQ second.|
0002c6b0  17 ba 04 0d 17 bb 10 20  4d 4f 56 20 77 6f 72 64  |....... MOV word|
0002c6c0  2c 23 30 0d 17 bc 2f 20  80 20 64 61 74 61 31 2c  |,#0.../ . data1,|
0002c6d0  70 69 78 65 6c 31 2c 23  33 31 3a 4c 44 52 42 20  |pixel1,#31:LDRB |
0002c6e0  77 6f 72 64 2c 5b 74 61  62 6c 65 2c 64 61 74 61  |word,[table,data|
0002c6f0  31 5d 0d 17 bd 2f 20 4d  4f 56 20 70 69 78 65 6c  |1].../ MOV pixel|
0002c700  31 2c 70 69 78 65 6c 31  2c 4c 53 52 23 35 3a 80  |1,pixel1,LSR#5:.|
0002c710  20 64 61 74 61 31 2c 70  69 78 65 6c 31 2c 23 33  | data1,pixel1,#3|
0002c720  31 0d 17 be 31 20 4c 44  52 42 20 52 30 2c 5b 74  |1...1 LDRB R0,[t|
0002c730  61 62 6c 65 2c 64 61 74  61 31 5d 3a 41 44 44 20  |able,data1]:ADD |
0002c740  77 6f 72 64 2c 77 6f 72  64 2c 52 30 2c 4c 53 4c  |word,word,R0,LSL|
0002c750  23 35 0d 17 bf 2f 20 4d  4f 56 20 70 69 78 65 6c  |#5.../ MOV pixel|
0002c760  31 2c 70 69 78 65 6c 31  2c 4c 53 52 23 35 3a 80  |1,pixel1,LSR#5:.|
0002c770  20 64 61 74 61 31 2c 70  69 78 65 6c 31 2c 23 33  | data1,pixel1,#3|
0002c780  31 0d 17 c0 42 20 4c 44  52 42 20 52 30 2c 5b 74  |1...B LDRB R0,[t|
0002c790  61 62 6c 65 2c 64 61 74  61 31 5d 3a 41 44 44 20  |able,data1]:ADD |
0002c7a0  77 6f 72 64 2c 77 6f 72  64 2c 52 30 2c 4c 53 4c  |word,word,R0,LSL|
0002c7b0  23 31 30 3a 4d 4f 56 20  70 69 78 65 6c 31 2c 77  |#10:MOV pixel1,w|
0002c7c0  6f 72 64 0d 17 c1 04 0d  17 c2 0c 20 2e 73 65 63  |ord........ .sec|
0002c7d0  6f 6e 64 0d 17 c3 33 20  4d 4f 56 20 6d 61 73 6b  |ond...3 MOV mask|
0002c7e0  2c 6d 61 73 6b 2c 4c 53  52 23 31 3a 54 53 54 20  |,mask,LSR#1:TST |
0002c7f0  6d 61 73 6b 2c 23 31 3a  42 45 51 20 77 6f 72 64  |mask,#1:BEQ word|
0002c800  5f 72 65 61 64 79 0d 17  c4 04 0d 17 c5 10 20 4d  |_ready........ M|
0002c810  4f 56 20 77 6f 72 64 2c  23 30 0d 17 c6 2f 20 80  |OV word,#0.../ .|
0002c820  20 64 61 74 61 31 2c 70  69 78 65 6c 32 2c 23 33  | data1,pixel2,#3|
0002c830  31 3a 4c 44 52 42 20 77  6f 72 64 2c 5b 74 61 62  |1:LDRB word,[tab|
0002c840  6c 65 2c 64 61 74 61 31  5d 0d 17 c7 2f 20 4d 4f  |le,data1].../ MO|
0002c850  56 20 70 69 78 65 6c 32  2c 70 69 78 65 6c 32 2c  |V pixel2,pixel2,|
0002c860  4c 53 52 23 35 3a 80 20  64 61 74 61 31 2c 70 69  |LSR#5:. data1,pi|
0002c870  78 65 6c 32 2c 23 33 31  0d 17 c8 31 20 4c 44 52  |xel2,#31...1 LDR|
0002c880  42 20 52 30 2c 5b 74 61  62 6c 65 2c 64 61 74 61  |B R0,[table,data|
0002c890  31 5d 3a 41 44 44 20 77  6f 72 64 2c 77 6f 72 64  |1]:ADD word,word|
0002c8a0  2c 52 30 2c 4c 53 4c 23  35 0d 17 c9 2f 20 4d 4f  |,R0,LSL#5.../ MO|
0002c8b0  56 20 70 69 78 65 6c 32  2c 70 69 78 65 6c 32 2c  |V pixel2,pixel2,|
0002c8c0  4c 53 52 23 35 3a 80 20  64 61 74 61 31 2c 70 69  |LSR#5:. data1,pi|
0002c8d0  78 65 6c 32 2c 23 33 31  0d 17 ca 42 20 4c 44 52  |xel2,#31...B LDR|
0002c8e0  42 20 52 30 2c 5b 74 61  62 6c 65 2c 64 61 74 61  |B R0,[table,data|
0002c8f0  31 5d 3a 41 44 44 20 77  6f 72 64 2c 77 6f 72 64  |1]:ADD word,word|
0002c900  2c 52 30 2c 4c 53 4c 23  31 30 3a 4d 4f 56 20 70  |,R0,LSL#10:MOV p|
0002c910  69 78 65 6c 32 2c 77 6f  72 64 0d 17 cb 04 0d 17  |ixel2,word......|
0002c920  cc 10 20 2e 77 6f 72 64  5f 72 65 61 64 79 0d 17  |.. .word_ready..|
0002c930  cd 3f 20 41 44 44 20 77  6f 72 64 2c 70 69 78 65  |.? ADD word,pixe|
0002c940  6c 31 2c 70 69 78 65 6c  32 2c 4c 53 4c 23 31 36  |l1,pixel2,LSL#16|
0002c950  3a 53 54 52 20 77 6f 72  64 2c 5b 73 63 72 6e 5f  |:STR word,[scrn_|
0002c960  62 61 73 65 2c 53 6f 66  66 73 65 74 5d 0d 17 ce  |base,Soffset]...|
0002c970  40 20 4d 4f 56 20 6d 61  73 6b 2c 6d 61 73 6b 2c  |@ MOV mask,mask,|
0002c980  4c 53 52 23 31 3a 53 55  42 53 20 6d 61 73 6b 62  |LSR#1:SUBS maskb|
0002c990  69 74 73 2c 6d 61 73 6b  62 69 74 73 2c 23 32 3a  |its,maskbits,#2:|
0002c9a0  42 4e 45 20 6d 6f 72 65  5f 62 69 74 73 0d 17 cf  |BNE more_bits...|
0002c9b0  2c 20 4d 4f 56 20 6d 61  73 6b 62 69 74 73 2c 23  |, MOV maskbits,#|
0002c9c0  33 32 3a 41 44 44 20 4d  6f 66 66 73 65 74 2c 4d  |32:ADD Moffset,M|
0002c9d0  6f 66 66 73 65 74 2c 23  34 0d 17 d0 21 20 4c 44  |offset,#4...! LD|
0002c9e0  52 20 6d 61 73 6b 2c 5b  6d 61 73 6b 5f 62 61 73  |R mask,[mask_bas|
0002c9f0  65 2c 4d 6f 66 66 73 65  74 5d 0d 17 d1 0f 20 2e  |e,Moffset].... .|
0002ca00  6d 6f 72 65 5f 62 69 74  73 0d 17 d2 30 20 41 44  |more_bits...0 AD|
0002ca10  44 20 53 6f 66 66 73 65  74 2c 53 6f 66 66 73 65  |D Soffset,Soffse|
0002ca20  74 2c 23 34 3a 4c 44 52  20 52 30 2c 73 70 72 73  |t,#4:LDR R0,sprs|
0002ca30  68 61 64 5f 62 79 74 65  73 0d 17 d3 24 20 43 4d  |had_bytes...$ CM|
0002ca40  50 20 53 6f 66 66 73 65  74 2c 52 30 3a 42 4c 54  |P Soffset,R0:BLT|
0002ca50  20 73 70 72 73 68 61 64  5f 6c 6f 6f 70 0d 17 d4  | sprshad_loop...|
0002ca60  2c 20 4d 4f 56 20 6d 61  73 6b 62 69 74 73 2c 23  |, MOV maskbits,#|
0002ca70  33 32 3a 41 44 44 20 4d  6f 66 66 73 65 74 2c 4d  |32:ADD Moffset,M|
0002ca80  6f 66 66 73 65 74 2c 23  34 0d 17 d5 21 20 4c 44  |offset,#4...! LD|
0002ca90  52 20 6d 61 73 6b 2c 5b  6d 61 73 6b 5f 62 61 73  |R mask,[mask_bas|
0002caa0  65 2c 4d 6f 66 66 73 65  74 5d 0d 17 d6 31 20 4d  |e,Moffset]...1 M|
0002cab0  4f 56 20 53 6f 66 66 73  65 74 2c 23 30 3a 41 44  |OV Soffset,#0:AD|
0002cac0  44 20 73 63 72 6e 5f 62  61 73 65 2c 73 63 72 6e  |D scrn_base,scrn|
0002cad0  5f 62 61 73 65 2c 23 31  32 38 30 0d 17 d7 29 20  |_base,#1280...) |
0002cae0  53 55 42 53 20 6c 69 6e  65 73 2c 6c 69 6e 65 73  |SUBS lines,lines|
0002caf0  2c 23 31 3a 42 4e 45 20  73 70 72 73 68 61 64 5f  |,#1:BNE sprshad_|
0002cb00  6c 6f 6f 70 0d 17 d8 0f  20 4d 4f 56 20 50 43 2c  |loop.... MOV PC,|
0002cb10  52 31 34 0d 17 d9 04 0d  17 da 1b 20 2e 73 70 72  |R14........ .spr|
0002cb20  73 68 61 64 5f 73 63 72  65 65 6e 20 45 51 55 44  |shad_screen EQUD|
0002cb30  20 30 0d 17 db 1b 20 2e  73 70 72 73 68 61 64 5f  | 0.... .sprshad_|
0002cb40  6d 61 73 6b 20 20 20 45  51 55 44 20 30 0d 17 dc  |mask   EQUD 0...|
0002cb50  1b 20 2e 73 70 72 73 68  61 64 5f 74 61 62 6c 65  |. .sprshad_table|
0002cb60  20 20 45 51 55 44 20 30  0d 17 dd 1b 20 2e 73 70  |  EQUD 0.... .sp|
0002cb70  72 73 68 61 64 5f 62 79  74 65 73 20 20 45 51 55  |rshad_bytes  EQU|
0002cb80  44 20 30 0d 17 de 1b 20  2e 73 70 72 73 68 61 64  |D 0.... .sprshad|
0002cb90  5f 6c 69 6e 65 73 20 20  45 51 55 44 20 30 0d 17  |_lines  EQUD 0..|
0002cba0  df 06 20 5d 0d 17 e0 06  20 ed 0d 17 e1 06 20 e1  |.. ].... ..... .|
0002cbb0  0d 17 e2 04 0d 17 e3 19  20 dd 20 f2 74 68 75 6d  |........ . .thum|
0002cbc0  62 5f 63 75 72 73 6f 72  28 78 2c 79 29 0d 17 e4  |b_cursor(x,y)...|
0002cbd0  40 20 74 63 78 25 3d 28  74 68 75 6d 62 5f 62 6f  |@ tcx%=(thumb_bo|
0002cbe0  78 25 20 83 20 38 29 2a  31 36 30 2b 32 3a 74 63  |x% . 8)*160+2:tc|
0002cbf0  79 25 3d 38 39 38 2d 28  28 74 68 75 6d 62 5f 62  |y%=898-((thumb_b|
0002cc00  6f 78 25 20 81 20 38 29  2a 31 32 38 29 0d 17 e5  |ox% . 8)*128)...|
0002cc10  28 20 78 6f 25 3d 78 2d  74 63 78 25 3a 79 6f 25  |( xo%=x-tcx%:yo%|
0002cc20  3d 79 2d 74 63 79 25 3a  e6 20 33 2c 36 33 20 c8  |=y-tcy%:. 3,63 .|
0002cc30  9c 20 31 39 32 0d 17 e6  19 20 c8 93 20 74 63 78  |. 192.... .. tcx|
0002cc40  25 2c 74 63 79 25 2c 31  35 34 2c 31 32 32 0d 17  |%,tcy%,154,122..|
0002cc50  e7 06 20 f5 0d 17 e8 11  20 f5 3a c8 97 20 78 31  |.. ..... .:.. x1|
0002cc60  2c 79 31 2c 42 0d 17 e9  1a 20 fd 20 78 31 3c 3e  |,y1,B.... . x1<>|
0002cc70  78 20 84 20 79 31 3c 3e  79 20 84 20 42 3d 30 0d  |x . y1<>y . B=0.|
0002cc80  17 ea 0d 20 e7 20 42 3c  3e 30 20 8c 0d 17 eb 31  |... . B<>0 ....1|
0002cc90  20 c8 93 20 74 63 78 25  2c 74 63 79 25 2c 31 35  | .. tcx%,tcy%,15|
0002cca0  34 2c 31 32 32 3a 74 63  78 25 3d 78 31 2d 78 6f  |4,122:tcx%=x1-xo|
0002ccb0  25 3a 74 63 79 25 3d 79  31 2d 79 6f 25 0d 17 ec  |%:tcy%=y1-yo%...|
0002ccc0  23 20 c8 93 20 74 63 78  25 2c 74 63 79 25 2c 31  |# .. tcx%,tcy%,1|
0002ccd0  35 34 2c 31 32 32 3a 78  3d 78 31 3a 79 3d 79 31  |54,122:x=x1:y=y1|
0002cce0  0d 17 ed 06 20 cc 0d 17  ee 19 20 c8 93 20 74 63  |.... ..... .. tc|
0002ccf0  78 25 2c 74 63 79 25 2c  31 35 34 2c 31 32 32 0d  |x%,tcy%,154,122.|
0002cd00  17 ef 06 20 cd 0d 17 f0  0a 20 fd 20 42 3d 30 0d  |... ..... . B=0.|
0002cd10  17 f1 06 20 e1 0d 17 f2  04 0d 17 f3 17 20 dd 20  |... ......... . |
0002cd20  f2 73 68 6f 77 5f 74 68  75 6d 62 6e 61 69 6c 73  |.show_thumbnails|
0002cd30  0d 17 f4 25 20 e6 20 34  38 2c 34 38 2c 31 38 34  |...% . 48,48,184|
0002cd40  3a c8 93 20 c8 90 20 30  2c 30 2c 31 32 38 30 2c  |:.. .. 0,0,1280,|
0002cd50  31 30 32 34 20 0d 17 f5  17 20 e3 20 4d 25 3d 31  |1024 .... . M%=1|
0002cd60  20 b8 20 6d 65 6d 6f 72  69 65 73 25 0d 17 f6 29  | . memories%...)|
0002cd70  20 21 73 6f 75 72 63 65  5f 61 64 64 72 65 73 73  | !source_address|
0002cd80  3d a4 6d 65 6d 5f 74 6f  5f 62 6c 6f 63 6b 28 4d  |=.mem_to_block(M|
0002cd90  25 29 2b 32 30 0d 17 f7  2d 20 21 64 65 73 74 5f  |%)+20...- !dest_|
0002cda0  61 64 64 72 65 73 73 3d  73 63 72 65 65 6e 25 2b  |address=screen%+|
0002cdb0  31 36 30 2a 28 4d 25 2d  31 29 2b 31 32 38 30 2a  |160*(M%-1)+1280*|
0002cdc0  36 34 0d 17 f8 17 20 d6  20 6d 61 6b 65 5f 74 68  |64.... . make_th|
0002cdd0  75 6d 62 6e 61 69 6c 3a  ed 0d 17 f9 23 20 e3 20  |umbnail:....# . |
0002cde0  4e 25 3d 31 20 b8 20 38  3a 6c 6f 61 64 5f 6c 69  |N%=1 . 8:load_li|
0002cdf0  73 74 24 28 4e 25 29 3d  22 22 3a ed 0d 17 fa 39  |st$(N%)="":....9|
0002ce00  20 e6 20 32 35 35 2c 32  35 35 2c 32 35 35 3a c8  | . 255,255,255:.|
0002ce10  93 20 c8 90 20 33 30 2c  39 38 30 2c 34 32 30 2c  |. .. 30,980,420,|
0002ce20  38 3a c8 93 20 c8 90 20  38 31 38 2c 39 38 30 2c  |8:.. .. 818,980,|
0002ce30  34 32 30 2c 38 0d 17 fb  31 20 f2 77 72 69 74 65  |420,8...1 .write|
0002ce40  32 28 22 50 73 63 61 6e  20 74 68 75 6d 62 6e 61  |2("Pscan thumbna|
0002ce50  69 6c 20 64 69 73 70 6c  61 79 22 2c 34 36 30 2c  |il display",460,|
0002ce60  39 36 34 2c 30 29 0d 17  fc 31 20 f2 77 72 69 74  |964,0)...1 .writ|
0002ce70  65 32 28 22 50 73 63 61  6e 20 74 68 75 6d 62 6e  |e2("Pscan thumbn|
0002ce80  61 69 6c 20 64 69 73 70  6c 61 79 22 2c 34 35 36  |ail display",456|
0002ce90  2c 39 36 38 2c 31 29 0d  17 fd 3b 20 f2 72 61 69  |,968,1)...; .rai|
0002cea0  73 65 64 5f 62 6c 6f 63  6b 28 33 32 2c 34 30 2c  |sed_block(32,40,|
0002ceb0  34 30 2c 34 30 29 3a f2  72 61 69 73 65 64 5f 62  |40,40):.raised_b|
0002cec0  6c 6f 63 6b 28 38 30 2c  34 30 2c 31 38 34 2c 34  |lock(80,40,184,4|
0002ced0  30 29 0d 17 fe 3f 20 f2  72 61 69 73 65 64 5f 62  |0)...? .raised_b|
0002cee0  6c 6f 63 6b 28 32 37 32  2c 34 30 2c 34 30 2c 34  |lock(272,40,40,4|
0002cef0  30 29 3a f2 77 72 69 74  65 32 28 22 42 61 6e 6b  |0):.write2("Bank|
0002cf00  20 73 65 6c 65 63 74 22  2c 37 36 2c 34 34 2c 34  | select",76,44,4|
0002cf10  29 0d 17 ff 2f 20 f2 77  72 69 74 65 32 28 22 3c  |).../ .write2("<|
0002cf20  22 2c 33 32 2c 34 34 2c  34 29 3a f2 77 72 69 74  |",32,44,4):.writ|
0002cf30  65 32 28 22 3e 22 2c 32  37 32 2c 34 34 2c 34 29  |e2(">",272,44,4)|
0002cf40  0d 18 00 45 20 f2 72 61  69 73 65 64 5f 62 6c 6f  |...E .raised_blo|
0002cf50  63 6b 28 33 34 30 2c 34  30 2c 32 38 30 2c 34 30  |ck(340,40,280,40|
0002cf60  29 3a f2 77 72 69 74 65  32 28 22 43 72 65 61 74  |):.write2("Creat|
0002cf70  65 20 6e 65 77 20 62 61  6e 6b 22 2c 33 35 34 2c  |e new bank",354,|
0002cf80  34 34 2c 34 29 0d 18 01  3e 20 f2 72 61 69 73 65  |44,4)...> .raise|
0002cf90  64 5f 62 6c 6f 63 6b 28  36 36 30 2c 34 30 2c 32  |d_block(660,40,2|
0002cfa0  38 30 2c 34 30 29 3a f2  72 61 69 73 65 64 5f 62  |80,40):.raised_b|
0002cfb0  6c 6f 63 6b 28 39 37 30  2c 34 30 2c 32 38 30 2c  |lock(970,40,280,|
0002cfc0  34 30 29 0d 18 02 2a 20  f2 77 72 69 74 65 32 28  |40)...* .write2(|
0002cfd0  22 55 6e 64 6f 20 6c 61  73 74 20 75 70 64 61 74  |"Undo last updat|
0002cfe0  65 73 22 2c 36 36 30 2c  34 34 2c 34 29 0d 18 03  |es",660,44,4)...|
0002cff0  29 20 f2 77 72 69 74 65  32 28 22 43 6c 6f 73 65  |) .write2("Close|
0002d000  20 74 68 75 6d 62 6e 61  69 6c 73 22 2c 39 38 30  | thumbnails",980|
0002d010  2c 34 34 2c 34 29 0d 18  04 38 20 c8 99 20 73 70  |,44,4)...8 .. sp|
0002d020  72 73 77 69 25 2c 32 35  36 2b 35 32 2c 74 68 62  |rswi%,256+52,thb|
0002d030  6c 6f 63 6b 25 2c 22 74  68 75 6d 62 6e 61 69 6c  |lock%,"thumbnail|
0002d040  73 22 2c 30 2c 31 32 38  2c 30 2c 30 2c 30 0d 18  |s",0,128,0,0,0..|
0002d050  05 2f 20 74 68 6d 6f 64  69 66 79 25 3d a3 3a 74  |./ thmodify%=.:t|
0002d060  68 75 6d 62 5f 6c 6f 61  64 5f 66 69 6c 65 25 3d  |humb_load_file%=|
0002d070  a3 3a 66 66 25 3d 30 3a  66 74 25 3d 30 0d 18 06  |.:ff%=0:ft%=0...|
0002d080  06 20 f5 0d 18 07 29 20  e6 20 31 32 38 2c 32 35  |. ....) . 128,25|
0002d090  35 2c 32 35 35 3a c8 93  20 30 2c 37 36 36 2c 31  |5,255:.. 0,766,1|
0002d0a0  32 37 36 2c 31 32 36 3a  4e 25 3d 31 0d 18 08 1b  |276,126:N%=1....|
0002d0b0  20 e3 20 58 25 3d 30 20  b8 20 31 32 38 30 2d 31  | . X%=0 . 1280-1|
0002d0c0  36 30 20 88 31 36 30 0d  18 09 20 20 e7 20 4e 25  |60 .160...  . N%|
0002d0d0  3d 4d 45 4d 25 2b 31 20  8c 20 74 63 25 3d 30 20  |=MEM%+1 . tc%=0 |
0002d0e0  8b 20 74 63 25 3d 35 0d  18 0a 2a 20 e7 20 74 63  |. tc%=5...* . tc|
0002d0f0  25 3d 30 20 8c 20 e6 20  32 35 35 2c 32 35 35 2c  |%=0 . . 255,255,|
0002d100  32 35 35 20 8b 20 e6 20  34 38 2c 34 38 2c 31 38  |255 . . 48,48,18|
0002d110  34 0d 18 0b 2c 20 c8 93  20 c8 90 20 58 25 2c 38  |4..., .. .. X%,8|
0002d120  39 38 2c 31 36 30 2c 34  30 3a c8 93 20 c8 90 20  |98,160,40:.. .. |
0002d130  58 25 2c 37 32 30 2c 31  36 30 2c 34 30 0d 18 0c  |X%,720,160,40...|
0002d140  31 20 e7 20 4e 25 3d 4d  45 4d 25 2b 31 20 8c 20  |1 . N%=MEM%+1 . |
0002d150  f2 77 72 69 74 65 32 28  22 43 75 72 72 65 6e 74  |.write2("Current|
0002d160  22 2c 58 25 2b 31 34 2c  37 32 34 2c 30 29 0d 18  |",X%+14,724,0)..|
0002d170  0d 33 20 e7 20 4e 25 3c  3d 6d 65 6d 6f 72 69 65  |.3 . N%<=memorie|
0002d180  73 25 20 8c 20 f2 77 72  69 74 65 32 28 c3 28 4e  |s% . .write2(.(N|
0002d190  25 29 2c 58 25 2b 35 36  2c 39 30 30 2c 74 63 25  |%),X%+56,900,tc%|
0002d1a0  29 0d 18 0e 2c 20 4e 25  2b 3d 31 3a e6 20 31 32  |)..., N%+=1:. 12|
0002d1b0  38 2c 32 35 35 2c 32 35  35 3a c8 93 20 58 25 2c  |8,255,255:.. X%,|
0002d1c0  37 36 34 2c 31 35 38 2c  31 33 30 3a ed 0d 18 0f  |764,158,130:....|
0002d1d0  23 20 e6 20 32 35 35 2c  32 35 35 2c 30 3a c8 93  |# . 255,255,0:..|
0002d1e0  20 c8 90 20 30 2c 36 34  30 2c 31 32 38 30 2c 32  | .. 0,640,1280,2|
0002d1f0  0d 18 10 25 20 e6 20 31  32 38 2c 31 38 30 2c 32  |...% . 128,180,2|
0002d200  35 35 3a c8 93 20 c8 90  20 30 2c 36 34 34 2c 33  |55:.. .. 0,644,3|
0002d210  38 30 2c 35 30 0d 18 11  49 20 f2 77 72 69 74 65  |80,50...I .write|
0002d220  32 28 22 54 68 75 6d 62  6e 61 69 6c 20 62 61 6e  |2("Thumbnail ban|
0002d230  6b 20 22 2b c3 20 74 68  75 6d 62 5f 62 61 6e 6b  |k "+. thumb_bank|
0002d240  25 2b 22 20 6f 66 20 22  2b c3 20 74 68 75 6d 62  |%+" of "+. thumb|
0002d250  5f 6d 61 78 25 2c 38 2c  36 35 34 2c 30 29 0d 18  |_max%,8,654,0)..|
0002d260  12 2c 20 f2 77 61 69 74  5f 6e 6f 5f 62 75 74 74  |., .wait_no_butt|
0002d270  6f 6e 3a 66 73 74 61 72  74 24 3d 22 22 3a e6 20  |on:fstart$="":. |
0002d280  36 34 2c 32 35 35 2c 31  32 38 0d 18 13 0f 20 f5  |64,255,128.... .|
0002d290  3a c8 97 20 58 2c 59 2c  42 0d 18 14 16 20 f2 63  |:.. X,Y,B.... .c|
0002d2a0  68 65 63 6b 5f 61 6c 74  5f 73 5f 73 61 76 65 0d  |heck_alt_s_save.|
0002d2b0  18 15 29 20 74 68 75 6d  62 5f 62 6f 78 25 3d 28  |..) thumb_box%=(|
0002d2c0  28 31 30 32 34 2d 59 29  81 31 32 38 29 2a 38 2b  |(1024-Y).128)*8+|
0002d2d0  28 58 20 81 31 36 30 29  0d 18 16 25 20 46 24 3d  |(X .160)...% F$=|
0002d2e0  24 28 74 68 70 61 74 68  25 2b 28 74 68 75 6d 62  |$(thpath%+(thumb|
0002d2f0  5f 62 6f 78 25 2d 32 34  29 2a 38 30 29 0d 18 17  |_box%-24)*80)...|
0002d300  14 20 e7 20 46 24 3c 3e  66 73 74 61 72 74 24 20  |. . F$<>fstart$ |
0002d310  8c 0d 18 18 19 20 c8 93  20 c8 90 20 33 38 30 2c  |..... .. .. 380,|
0002d320  36 34 34 2c 39 30 30 2c  35 30 0d 18 19 45 20 e7  |644,900,50...E .|
0002d330  20 74 68 75 6d 62 5f 62  6f 78 25 3e 32 33 20 80  | thumb_box%>23 .|
0002d340  20 74 68 75 6d 62 5f 62  6f 78 25 3c 35 36 20 f2  | thumb_box%<56 .|
0002d350  77 72 69 74 65 32 28 46  24 2c 33 38 38 2c 36 35  |write2(F$,388,65|
0002d360  34 2c 30 29 3a 66 73 74  61 72 74 24 3d 46 24 0d  |4,0):fstart$=F$.|
0002d370  18 1a 06 20 cd 0d 18 1b  10 20 fd 20 42 3d 34 20  |... ..... . B=4 |
0002d380  84 20 42 3d 31 0d 18 1c  04 0d 18 1d 20 20 e7 20  |. B=1.......  . |
0002d390  94 28 58 2d 35 30 29 3c  33 30 20 80 20 94 28 59  |.(X-50)<30 . .(Y|
0002d3a0  2d 36 34 29 3c 33 30 20  8c 0d 18 1e 16 20 e7 20  |-64)<30 ..... . |
0002d3b0  74 68 75 6d 62 5f 62 61  6e 6b 25 3e 31 20 8c 0d  |thumb_bank%>1 ..|
0002d3c0  18 1f 2b 20 e7 20 42 3d  31 20 8c 20 74 68 75 6d  |..+ . B=1 . thum|
0002d3d0  62 5f 62 61 6e 6b 25 3d  31 20 8b 20 74 68 75 6d  |b_bank%=1 . thum|
0002d3e0  62 5f 62 61 6e 6b 25 2d  3d 31 0d 18 20 26 20 f2  |b_bank%-=1.. & .|
0002d3f0  6c 6f 61 64 5f 74 68 75  6d 62 6e 61 69 6c 5f 62  |load_thumbnail_b|
0002d400  61 6e 6b 28 74 68 75 6d  62 5f 62 61 6e 6b 25 29  |ank(thumb_bank%)|
0002d410  0d 18 21 38 20 c8 99 20  73 70 72 73 77 69 25 2c  |..!8 .. sprswi%,|
0002d420  32 35 36 2b 35 32 2c 74  68 62 6c 6f 63 6b 25 2c  |256+52,thblock%,|
0002d430  22 74 68 75 6d 62 6e 61  69 6c 73 22 2c 30 2c 31  |"thumbnails",0,1|
0002d440  32 38 2c 30 2c 30 2c 30  0d 18 22 06 20 cd 0d 18  |28,0,0,0..". ...|
0002d450  23 06 20 cd 0d 18 24 04  0d 18 25 21 20 e7 20 94  |#. ...$...%! . .|
0002d460  28 58 2d 32 38 38 29 3c  33 30 20 80 20 94 28 59  |(X-288)<30 . .(Y|
0002d470  2d 36 34 29 3c 33 30 20  8c 0d 18 26 1f 20 e7 20  |-64)<30 ...&. . |
0002d480  74 68 75 6d 62 5f 62 61  6e 6b 25 3c 74 68 75 6d  |thumb_bank%<thum|
0002d490  62 5f 6d 61 78 25 20 8c  0d 18 27 34 20 e7 20 42  |b_max% ...'4 . B|
0002d4a0  3d 31 20 8c 20 74 68 75  6d 62 5f 62 61 6e 6b 25  |=1 . thumb_bank%|
0002d4b0  3d 74 68 75 6d 62 5f 6d  61 78 25 20 8b 20 74 68  |=thumb_max% . th|
0002d4c0  75 6d 62 5f 62 61 6e 6b  25 2b 3d 31 0d 18 28 26  |umb_bank%+=1..(&|
0002d4d0  20 f2 6c 6f 61 64 5f 74  68 75 6d 62 6e 61 69 6c  | .load_thumbnail|
0002d4e0  5f 62 61 6e 6b 28 74 68  75 6d 62 5f 62 61 6e 6b  |_bank(thumb_bank|
0002d4f0  25 29 0d 18 29 38 20 c8  99 20 73 70 72 73 77 69  |%)..)8 .. sprswi|
0002d500  25 2c 32 35 36 2b 35 32  2c 74 68 62 6c 6f 63 6b  |%,256+52,thblock|
0002d510  25 2c 22 74 68 75 6d 62  6e 61 69 6c 73 22 2c 30  |%,"thumbnails",0|
0002d520  2c 31 32 38 2c 30 2c 30  2c 30 0d 18 2a 06 20 cd  |,128,0,0,0..*. .|
0002d530  0d 18 2b 06 20 cd 0d 18  2c 04 0d 18 2d 26 20 e7  |..+. ...,...-& .|
0002d540  20 74 68 75 6d 62 5f 62  6f 78 25 3e 32 33 20 80  | thumb_box%>23 .|
0002d550  20 74 68 75 6d 62 5f 62  6f 78 25 3c 35 36 20 8c  | thumb_box%<56 .|
0002d560  0d 18 2e 19 20 f4 20 43  6c 69 63 6b 20 6f 6e 20  |.... . Click on |
0002d570  74 68 75 6d 62 6e 61 69  6c 0d 18 2f 20 20 f2 74  |thumbnail../  .t|
0002d580  68 75 6d 62 5f 63 75 72  73 6f 72 28 58 2c 59 29  |humb_cursor(X,Y)|
0002d590  3a c8 97 20 58 2c 59 2c  42 0d 18 30 2a 20 74 68  |:.. X,Y,B..0* th|
0002d5a0  75 6d 62 5f 62 6f 78 32  25 3d 28 28 31 30 32 34  |umb_box2%=((1024|
0002d5b0  2d 59 29 81 31 32 38 29  2a 38 2b 28 58 20 81 31  |-Y).128)*8+(X .1|
0002d5c0  36 30 29 0d 18 31 20 20  20 e7 20 74 68 75 6d 62  |60)..1   . thumb|
0002d5d0  5f 62 6f 78 32 25 3d 74  68 75 6d 62 5f 62 6f 78  |_box2%=thumb_box|
0002d5e0  25 20 8c 0d 18 32 27 20  20 20 46 24 3d 24 28 74  |% ...2'   F$=$(t|
0002d5f0  68 70 61 74 68 25 2b 28  74 68 75 6d 62 5f 62 6f  |hpath%+(thumb_bo|
0002d600  78 25 2d 32 34 29 2a 38  30 29 0d 18 33 18 20 20  |x%-24)*80)..3.  |
0002d610  20 e7 20 46 24 3c 3e 22  7b 45 6d 70 74 79 7d 22  | . F$<>"{Empty}"|
0002d620  20 8c 0d 18 34 28 20 20  20 c8 99 20 22 4f 53 5f  | ...4(   .. "OS_|
0002d630  46 69 6c 65 22 2c 32 30  2c 46 24 20 b8 20 66 66  |File",20,F$ . ff|
0002d640  25 2c 2c 2c 2c 2c 2c 66  74 25 0d 18 35 27 20 20  |%,,,,,,ft%..5'  |
0002d650  20 74 68 75 6d 62 5f 62  6f 78 25 3d 39 39 3a 74  | thumb_box%=99:t|
0002d660  68 75 6d 62 5f 6c 6f 61  64 5f 66 69 6c 65 25 3d  |humb_load_file%=|
0002d670  b9 0d 18 36 08 20 20 20  cd 0d 18 37 07 20 20 cc  |...6.   ...7.  .|
0002d680  0d 18 38 43 20 20 20 e7  20 74 68 75 6d 62 5f 62  |..8C   . thumb_b|
0002d690  6f 78 32 25 3e 37 20 80  20 74 68 75 6d 62 5f 62  |ox2%>7 . thumb_b|
0002d6a0  6f 78 32 25 3c 31 36 20  80 20 74 68 75 6d 62 5f  |ox2%<16 . thumb_|
0002d6b0  62 6f 78 32 25 2d 38 3c  6d 65 6d 6f 72 69 65 73  |box2%-8<memories|
0002d6c0  25 20 8c 0d 18 39 27 20  20 20 4c 24 3d 24 28 74  |% ...9'   L$=$(t|
0002d6d0  68 70 61 74 68 25 2b 28  74 68 75 6d 62 5f 62 6f  |hpath%+(thumb_bo|
0002d6e0  78 25 2d 32 34 29 2a 38  30 29 0d 18 3a 18 20 20  |x%-24)*80)..:.  |
0002d6f0  20 e7 20 4c 24 3c 3e 22  7b 45 6d 70 74 79 7d 22  | . L$<>"{Empty}"|
0002d700  20 8c 0d 18 3b 23 20 20  20 6c 6f 61 64 5f 6c 69  | ...;#   load_li|
0002d710  73 74 24 28 74 68 75 6d  62 5f 62 6f 78 32 25 2d  |st$(thumb_box2%-|
0002d720  37 29 3d 4c 24 0d 18 3c  4e 20 20 20 73 6f 75 72  |7)=L$..<N   sour|
0002d730  63 65 58 25 3d 28 74 68  75 6d 62 5f 62 6f 78 25  |ceX%=(thumb_box%|
0002d740  20 83 20 38 29 2a 31 36  30 2b 32 3a 73 6f 75 72  | . 8)*160+2:sour|
0002d750  63 65 59 25 3d 31 30 32  38 2d 28 28 28 74 68 75  |ceY%=1028-(((thu|
0002d760  6d 62 5f 62 6f 78 25 81  20 38 29 2b 31 29 2a 31  |mb_box%. 8)+1)*1|
0002d770  32 38 29 0d 18 3d 4c 20  20 20 64 65 73 74 58 25  |28)..=L   destX%|
0002d780  3d 28 74 68 75 6d 62 5f  62 6f 78 32 25 20 83 20  |=(thumb_box2% . |
0002d790  38 29 2a 31 36 30 2b 32  3a 64 65 73 74 59 25 3d  |8)*160+2:destY%=|
0002d7a0  31 30 32 34 2d 28 28 28  74 68 75 6d 62 5f 62 6f  |1024-(((thumb_bo|
0002d7b0  78 32 25 81 20 38 29 2b  31 29 2a 31 32 38 29 0d  |x2%. 8)+1)*128).|
0002d7c0  18 3e 3b 20 20 20 ec 20  73 6f 75 72 63 65 58 25  |.>;   . sourceX%|
0002d7d0  2c 73 6f 75 72 63 65 59  25 3a ec 20 42 59 20 31  |,sourceY%:. BY 1|
0002d7e0  35 34 2c 31 32 32 3a f0  20 26 42 45 2c 64 65 73  |54,122:. &BE,des|
0002d7f0  74 58 25 2c 64 65 73 74  59 25 0d 18 3f 08 20 20  |tX%,destY%..?.  |
0002d800  20 cd 0d 18 40 08 20 20  20 cd 0d 18 41 07 20 20  | ...@.   ...A.  |
0002d810  cd 0d 18 42 06 20 cd 0d  18 43 04 0d 18 44 3e 20  |...B. ...C...D> |
0002d820  e7 20 74 68 75 6d 62 5f  62 6f 78 25 3e 37 20 80  |. thumb_box%>7 .|
0002d830  20 74 68 75 6d 62 5f 62  6f 78 25 3c 31 36 20 80  | thumb_box%<16 .|
0002d840  20 74 68 75 6d 62 5f 62  6f 78 25 2d 38 3c 6d 65  | thumb_box%-8<me|
0002d850  6d 6f 72 69 65 73 25 20  8c 0d 18 45 34 20 f4 20  |mories% ...E4 . |
0002d860  43 6c 69 63 6b 20 6f 6e  20 70 69 63 20 6d 65 6d  |Click on pic mem|
0002d870  20 2d 20 70 6f 73 73 69  62 6c 65 20 64 72 61 67  | - possible drag|
0002d880  20 74 6f 20 74 68 75 6d  62 6e 61 69 6c 0d 18 46  | to thumbnail..F|
0002d890  20 20 f2 74 68 75 6d 62  5f 63 75 72 73 6f 72 28  |  .thumb_cursor(|
0002d8a0  58 2c 59 29 3a c8 97 20  58 2c 59 2c 42 0d 18 47  |X,Y):.. X,Y,B..G|
0002d8b0  3b 20 74 68 75 6d 62 5f  62 6f 78 32 25 3d 28 28  |; thumb_box2%=((|
0002d8c0  31 30 32 34 2d 59 29 81  31 32 38 29 2a 38 2b 28  |1024-Y).128)*8+(|
0002d8d0  58 20 81 31 36 30 29 3a  4d 25 3d 74 68 75 6d 62  |X .160):M%=thumb|
0002d8e0  5f 62 6f 78 32 25 2d 38  0d 18 48 3d 20 e7 20 4d  |_box2%-8..H= . M|
0002d8f0  25 3c 6d 65 6d 6f 72 69  65 73 25 20 8c 20 4d 45  |%<memories% . ME|
0002d900  4d 25 3d 4d 25 3a 6d 65  6d 62 6c 6f 63 6b 25 3d  |M%=M%:memblock%=|
0002d910  a4 6d 65 6d 5f 74 6f 5f  62 6c 6f 63 6b 28 4d 45  |.mem_to_block(ME|
0002d920  4d 25 2b 31 29 0d 18 49  28 20 e7 20 74 68 75 6d  |M%+1)..I( . thum|
0002d930  62 5f 62 6f 78 32 25 3e  32 33 20 80 20 74 68 75  |b_box2%>23 . thu|
0002d940  6d 62 5f 62 6f 78 32 25  3c 35 36 20 8c 0d 18 4a  |mb_box2%<56 ...J|
0002d950  4c 20 73 6f 75 72 63 65  58 25 3d 28 74 68 75 6d  |L sourceX%=(thum|
0002d960  62 5f 62 6f 78 25 20 83  20 38 29 2a 31 36 30 2b  |b_box% . 8)*160+|
0002d970  32 3a 73 6f 75 72 63 65  59 25 3d 31 30 32 34 2d  |2:sourceY%=1024-|
0002d980  28 28 28 74 68 75 6d 62  5f 62 6f 78 25 81 20 38  |(((thumb_box%. 8|
0002d990  29 2b 31 29 2a 31 32 38  29 0d 18 4b 4a 20 64 65  |)+1)*128)..KJ de|
0002d9a0  73 74 58 25 3d 28 74 68  75 6d 62 5f 62 6f 78 32  |stX%=(thumb_box2|
0002d9b0  25 20 83 20 38 29 2a 31  36 30 2b 32 3a 64 65 73  |% . 8)*160+2:des|
0002d9c0  74 59 25 3d 31 30 32 38  2d 28 28 28 74 68 75 6d  |tY%=1028-(((thum|
0002d9d0  62 5f 62 6f 78 32 25 81  20 38 29 2b 31 29 2a 31  |b_box2%. 8)+1)*1|
0002d9e0  32 38 29 0d 18 4c 39 20  ec 20 73 6f 75 72 63 65  |28)..L9 . source|
0002d9f0  58 25 2c 73 6f 75 72 63  65 59 25 3a ec 20 42 59  |X%,sourceY%:. BY|
0002da00  20 31 35 34 2c 31 32 32  3a f0 20 26 42 45 2c 64  | 154,122:. &BE,d|
0002da10  65 73 74 58 25 2c 64 65  73 74 59 25 0d 18 4d 47  |estX%,destY%..MG|
0002da20  20 f2 75 70 64 61 74 65  5f 74 68 75 6d 62 5f 70  | .update_thumb_p|
0002da30  61 74 68 28 74 68 75 6d  62 5f 62 6f 78 32 25 2d  |ath(thumb_box2%-|
0002da40  32 34 2c 70 61 74 68 24  28 74 68 75 6d 62 5f 62  |24,path$(thumb_b|
0002da50  6f 78 25 2d 37 29 29 3a  74 68 6d 6f 64 69 66 79  |ox%-7)):thmodify|
0002da60  25 3d b9 0d 18 4e 06 20  cd 0d 18 4f 06 20 cd 0d  |%=...N. ...O. ..|
0002da70  18 50 04 0d 18 51 40 20  e7 20 74 68 75 6d 62 5f  |.P...Q@ . thumb_|
0002da80  62 6f 78 25 3d 35 38 20  84 20 74 68 75 6d 62 5f  |box%=58 . thumb_|
0002da90  62 6f 78 25 3d 35 39 20  f2 63 72 65 61 74 65 5f  |box%=59 .create_|
0002daa0  62 6c 61 6e 6b 5f 74 68  75 6d 62 6e 61 69 6c 28  |blank_thumbnail(|
0002dab0  22 22 29 0d 18 52 04 0d  18 53 14 20 fd 20 74 68  |"")..R...S. . th|
0002dac0  75 6d 62 5f 62 6f 78 25  3e 35 39 0d 18 54 04 0d  |umb_box%>59..T..|
0002dad0  18 55 26 20 e7 20 74 68  75 6d 62 5f 62 6f 78 25  |.U& . thumb_box%|
0002dae0  3d 36 30 20 84 20 74 68  75 6d 62 5f 62 6f 78 25  |=60 . thumb_box%|
0002daf0  3d 36 31 20 8c 0d 18 56  29 20 c8 99 20 73 70 72  |=61 ...V) .. spr|
0002db00  73 77 69 25 2c 32 35 36  2b 31 30 2c 74 68 62 6c  |swi%,256+10,thbl|
0002db10  6f 63 6b 25 2c 74 68 75  6d 62 70 69 78 24 0d 18  |ock%,thumbpix$..|
0002db20  57 28 20 ff 28 22 4c 4f  41 44 20 22 2b 74 68 75  |W( .("LOAD "+thu|
0002db30  6d 62 70 61 74 68 24 2b  22 20 22 2b c3 7e 74 68  |mbpath$+" "+.~th|
0002db40  70 61 74 68 25 29 0d 18  58 2f 20 74 68 6d 6f 64  |path%)..X/ thmod|
0002db50  69 66 79 25 3d a3 3a e3  20 4e 25 3d 31 20 b8 20  |ify%=.:. N%=1 . |
0002db60  38 3a 6c 6f 61 64 5f 6c  69 73 74 24 28 4e 25 29  |8:load_list$(N%)|
0002db70  3d 22 22 3a ed 0d 18 59  06 20 cd 0d 18 5a 04 0d  |="":...Y. ...Z..|
0002db80  18 5b 12 20 e7 20 74 68  6d 6f 64 69 66 79 25 20  |.[. . thmodify% |
0002db90  8c 0d 18 5c 3d 20 c8 99  20 73 70 72 73 77 69 25  |...\= .. sprswi%|
0002dba0  2c 32 35 36 2b 31 36 2c  74 68 62 6c 6f 63 6b 25  |,256+16,thblock%|
0002dbb0  2c 22 74 68 75 6d 62 6e  61 69 6c 73 22 2c 30 2c  |,"thumbnails",0,|
0002dbc0  30 2c 31 32 38 2c 31 32  37 39 2c 36 33 39 0d 18  |0,128,1279,639..|
0002dbd0  5d 29 20 c8 99 20 73 70  72 73 77 69 25 2c 32 35  |]) .. sprswi%,25|
0002dbe0  36 2b 31 32 2c 74 68 62  6c 6f 63 6b 25 2c 74 68  |6+12,thblock%,th|
0002dbf0  75 6d 62 70 69 78 24 0d  18 5e 3c 20 c8 99 20 22  |umbpix$..^< .. "|
0002dc00  4f 53 5f 46 69 6c 65 22  2c 31 30 2c 74 68 75 6d  |OS_File",10,thum|
0002dc10  62 70 61 74 68 24 2c 26  46 46 44 2c 30 2c 74 68  |bpath$,&FFD,0,th|
0002dc20  70 61 74 68 25 2c 74 68  70 61 74 68 25 2b 32 35  |path%,thpath%+25|
0002dc30  36 30 20 0d 18 5f 06 20  cd 0d 18 60 04 0d 18 61  |60 .._. ...`...a|
0002dc40  19 20 e7 20 74 68 75 6d  62 5f 6c 6f 61 64 5f 66  |. . thumb_load_f|
0002dc50  69 6c 65 25 20 8c 0d 18  62 0f 20 20 e7 20 66 66  |ile% ...b.  . ff|
0002dc60  25 3d 30 20 8c 0d 18 63  3d 20 20 58 3d 28 74 68  |%=0 ...c=  X=(th|
0002dc70  75 6d 62 5f 62 6f 78 32  25 20 83 20 38 29 2a 31  |umb_box2% . 8)*1|
0002dc80  36 30 2b 32 3a 59 3d 39  30 30 2d 28 28 74 68 75  |60+2:Y=900-((thu|
0002dc90  6d 62 5f 62 6f 78 32 25  20 81 20 38 29 2a 31 32  |mb_box2% . 8)*12|
0002dca0  38 29 0d 18 64 23 20 20  e6 20 34 38 2c 34 38 2c  |8)..d#  . 48,48,|
0002dcb0  31 38 34 3a c8 93 20 c8  90 20 58 2c 59 2c 31 35  |184:.. .. X,Y,15|
0002dcc0  34 2c 31 32 32 0d 18 65  2e 20 20 24 28 74 68 70  |4,122..e.  $(thp|
0002dcd0  61 74 68 25 2b 28 74 68  75 6d 62 5f 62 6f 78 32  |ath%+(thumb_box2|
0002dce0  25 2d 32 34 29 2a 38 30  29 3d 22 7b 45 6d 70 74  |%-24)*80)="{Empt|
0002dcf0  79 7d 22 0d 18 66 3e 20  20 c8 99 20 73 70 72 73  |y}"..f>  .. sprs|
0002dd00  77 69 25 2c 32 35 36 2b  31 36 2c 74 68 62 6c 6f  |wi%,256+16,thblo|
0002dd10  63 6b 25 2c 22 74 68 75  6d 62 6e 61 69 6c 73 22  |ck%,"thumbnails"|
0002dd20  2c 30 2c 30 2c 31 32 38  2c 31 32 37 39 2c 36 33  |,0,0,128,1279,63|
0002dd30  39 0d 18 67 2a 20 20 c8  99 20 73 70 72 73 77 69  |9..g*  .. sprswi|
0002dd40  25 2c 32 35 36 2b 31 32  2c 74 68 62 6c 6f 63 6b  |%,256+12,thblock|
0002dd50  25 2c 74 68 75 6d 62 70  69 78 24 0d 18 68 3c 20  |%,thumbpix$..h< |
0002dd60  20 c8 99 20 22 4f 53 5f  46 69 6c 65 22 2c 31 30  | .. "OS_File",10|
0002dd70  2c 74 68 75 6d 62 70 61  74 68 24 2c 26 46 46 44  |,thumbpath$,&FFD|
0002dd80  2c 30 2c 74 68 70 61 74  68 25 2c 74 68 70 61 74  |,0,thpath%,thpat|
0002dd90  68 25 2b 32 35 36 30 0d  18 69 7a 20 20 85 20 31  |h%+2560..iz  . 1|
0002dda0  2c 22 54 68 69 73 20 70  69 63 74 75 72 65 20 73  |,"This picture s|
0002ddb0  65 65 6d 73 20 74 6f 20  68 61 76 65 20 62 65 65  |eems to have bee|
0002ddc0  6e 20 64 65 6c 65 74 65  64 2c 20 72 65 6e 61 6d  |n deleted, renam|
0002ddd0  65 64 20 6f 72 20 6d 6f  76 65 64 2e 22 2b bd 31  |ed or moved."+.1|
0002dde0  33 2b bd 31 33 2b 22 54  68 65 20 74 68 75 6d 62  |3+.13+"The thumb|
0002ddf0  6e 61 69 6c 20 65 6e 74  72 79 20 68 61 73 20 6e  |nail entry has n|
0002de00  6f 77 20 62 65 65 6e 20  65 6d 70 74 69 65 64 2e  |ow been emptied.|
0002de10  22 0d 18 6a 07 20 20 cd  0d 18 6b 0d 20 c8 8e 20  |"..j.  ...k. .. |
0002de20  66 74 25 20 ca 0d 18 6c  1e 20 c9 20 26 46 46 39  |ft% ...l. . &FF9|
0002de30  3a db 3a f2 6c 6f 61 64  5f 73 70 72 69 74 65 28  |:.:.load_sprite(|
0002de40  46 24 29 0d 18 6d 1c 20  c9 20 26 43 38 35 3a db  |F$)..m. . &C85:.|
0002de50  3a f2 6c 6f 61 64 5f 6a  70 65 67 28 46 24 29 0d  |:.load_jpeg(F$).|
0002de60  18 6e 1d 20 c9 20 26 39  36 41 3a db 3a f2 6c 6f  |.n. . &96A:.:.lo|
0002de70  61 64 5f 70 73 63 61 6e  28 46 24 29 0d 18 6f 1d  |ad_pscan(F$)..o.|
0002de80  20 c9 20 26 36 39 44 3a  db 3a f2 6c 6f 61 64 5f  | . &69D:.:.load_|
0002de90  74 61 72 67 61 28 46 24  29 0d 18 70 06 20 7f 0d  |targa(F$)..p. ..|
0002dea0  18 71 4c 20 85 20 31 2c  46 24 2b 22 20 68 61 73  |.qL . 1,F$+" has|
0002deb0  20 61 20 66 69 6c 65 74  79 70 65 20 6f 66 20 26  | a filetype of &|
0002dec0  22 2b c3 7e 66 74 25 2b  22 2e 20 54 68 69 73 20  |"+.~ft%+". This |
0002ded0  63 61 6e 6e 6f 74 20 62  65 20 6c 6f 61 64 65 64  |cannot be loaded|
0002dee0  20 62 79 20 50 73 63 61  6e 2e 22 0d 18 72 06 20  | by Pscan."..r. |
0002def0  cb 0d 18 73 06 20 cd 0d  18 74 04 0d 18 75 10 20  |...s. ...t...u. |
0002df00  e3 20 4e 4e 25 3d 31 20  b8 20 38 0d 18 76 39 20  |. NN%=1 . 8..v9 |
0002df10  e7 20 6c 6f 61 64 5f 6c  69 73 74 24 28 4e 4e 25  |. load_list$(NN%|
0002df20  29 3c 3e 22 22 20 80 20  6c 6f 61 64 5f 6c 69 73  |)<>"" . load_lis|
0002df30  74 24 28 4e 4e 25 29 3c  3e 22 7b 45 6d 70 74 79  |t$(NN%)<>"{Empty|
0002df40  7d 22 20 8c 0d 18 77 2a  20 46 24 3d 6c 6f 61 64  |}" ...w* F$=load|
0002df50  5f 6c 69 73 74 24 28 4e  4e 25 29 3a 6c 6f 61 64  |_list$(NN%):load|
0002df60  5f 6c 69 73 74 24 28 4e  4e 25 29 3d 22 22 0d 18  |_list$(NN%)=""..|
0002df70  78 26 20 c8 99 20 22 4f  53 5f 46 69 6c 65 22 2c  |x& .. "OS_File",|
0002df80  32 30 2c 46 24 20 b8 20  66 66 25 2c 2c 2c 2c 2c  |20,F$ . ff%,,,,,|
0002df90  2c 66 74 25 0d 18 79 2c  20 4d 45 4d 25 3d 4e 4e  |,ft%..y, MEM%=NN|
0002dfa0  25 2d 31 3a 6d 65 6d 62  6c 6f 63 6b 25 3d a4 6d  |%-1:memblock%=.m|
0002dfb0  65 6d 5f 74 6f 5f 62 6c  6f 63 6b 28 4e 4e 25 29  |em_to_block(NN%)|
0002dfc0  0d 18 7a 0d 20 c8 8e 20  66 74 25 20 ca 0d 18 7b  |..z. .. ft% ...{|
0002dfd0  1e 20 c9 20 26 46 46 39  3a db 3a f2 6c 6f 61 64  |. . &FF9:.:.load|
0002dfe0  5f 73 70 72 69 74 65 28  46 24 29 0d 18 7c 1c 20  |_sprite(F$)..|. |
0002dff0  c9 20 26 43 38 35 3a db  3a f2 6c 6f 61 64 5f 6a  |. &C85:.:.load_j|
0002e000  70 65 67 28 46 24 29 0d  18 7d 1d 20 c9 20 26 39  |peg(F$)..}. . &9|
0002e010  36 41 3a db 3a f2 6c 6f  61 64 5f 70 73 63 61 6e  |6A:.:.load_pscan|
0002e020  28 46 24 29 0d 18 7e 1d  20 c9 20 26 36 39 44 3a  |(F$)..~. . &69D:|
0002e030  db 3a f2 6c 6f 61 64 5f  74 61 72 67 61 28 46 24  |.:.load_targa(F$|
0002e040  29 0d 18 7f 06 20 7f 0d  18 80 4c 20 85 20 31 2c  |).... ....L . 1,|
0002e050  46 24 2b 22 20 68 61 73  20 61 20 66 69 6c 65 74  |F$+" has a filet|
0002e060  79 70 65 20 6f 66 20 26  22 2b c3 7e 66 74 25 2b  |ype of &"+.~ft%+|
0002e070  22 2e 20 54 68 69 73 20  63 61 6e 6e 6f 74 20 62  |". This cannot b|
0002e080  65 20 6c 6f 61 64 65 64  20 62 79 20 50 73 63 61  |e loaded by Psca|
0002e090  6e 2e 22 0d 18 81 06 20  cb 0d 18 82 06 20 cd 0d  |n.".... ..... ..|
0002e0a0  18 83 06 20 ed 0d 18 84  04 0d 18 85 0d 20 f2 64  |... ......... .d|
0002e0b0  69 73 6d 69 6e 69 0d 18  86 06 20 e1 0d 18 87 04  |ismini.... .....|
0002e0c0  0d 18 88 20 20 dd 20 f2  75 70 64 61 74 65 5f 74  |...  . .update_t|
0002e0d0  68 75 6d 62 5f 70 61 74  68 28 4e 25 2c 50 24 29  |humb_path(N%,P$)|
0002e0e0  0d 18 89 8f 20 e7 20 50  24 3d 22 58 22 20 85 20  |.... . P$="X" . |
0002e0f0  31 2c 22 4f 6e 6c 79 20  70 69 63 74 75 72 65 73  |1,"Only pictures|
0002e100  20 6c 6f 61 64 65 64 20  66 72 6f 6d 20 64 69 73  | loaded from dis|
0002e110  6b 20 63 61 6e 20 62 65  20 61 64 64 65 64 20 74  |k can be added t|
0002e120  6f 20 74 68 75 6d 62 6e  61 69 6c 20 62 61 6e 6b  |o thumbnail bank|
0002e130  2e 22 2b bd 31 33 2b bd  31 33 2b 22 4d 6f 64 69  |."+.13+.13+"Modi|
0002e140  66 69 65 64 20 6f 72 20  72 65 63 65 69 76 65 64  |fied or received|
0002e150  20 70 69 63 74 75 72 65  73 20 6d 75 73 74 20 62  | pictures must b|
0002e160  65 20 73 61 76 65 64 20  66 69 72 73 74 2e 22 0d  |e saved first.".|
0002e170  18 8a 47 20 e7 20 a9 28  50 24 29 3e 37 38 20 85  |..G . .(P$)>78 .|
0002e180  20 31 2c 22 50 61 74 68  20 6e 61 6d 65 20 69 73  | 1,"Path name is|
0002e190  20 74 6f 6f 20 6c 6f 6e  67 20 74 6f 20 73 74 6f  | too long to sto|
0002e1a0  72 65 20 69 6e 20 74 68  75 6d 62 6e 61 69 6c 20  |re in thumbnail |
0002e1b0  66 69 6c 65 2e 22 0d 18  8b 18 20 24 28 74 68 70  |file.".... $(thp|
0002e1c0  61 74 68 25 2b 4e 25 2a  38 30 29 3d 50 24 0d 18  |ath%+N%*80)=P$..|
0002e1d0  8c 06 20 e1 0d 18 8d 04  0d 18 8e 22 20 dd 20 f2  |.. ........" . .|
0002e1e0  63 72 65 61 74 65 5f 62  6c 61 6e 6b 5f 74 68 75  |create_blank_thu|
0002e1f0  6d 62 6e 61 69 6c 28 74  24 29 0d 18 8f 10 20 e6  |mbnail(t$).... .|
0002e200  20 34 38 2c 34 38 2c 31  38 34 0d 18 90 11 20 e7  | 48,48,184.... .|
0002e210  20 74 24 3d 22 6e 65 77  22 20 8c 0d 18 91 18 20  | t$="new" ..... |
0002e220  c8 93 20 c8 90 20 30 2c  30 2c 31 32 38 30 2c 31  |.. .. 0,0,1280,1|
0002e230  30 32 34 0d 18 92 06 20  cc 0d 18 93 19 20 c8 93  |024.... ..... ..|
0002e240  20 c8 90 20 30 2c 31 32  38 2c 31 32 38 30 2c 35  | .. 0,128,1280,5|
0002e250  31 34 0d 18 94 06 20 cd  0d 18 95 10 20 e6 20 32  |14.... ..... . 2|
0002e260  35 35 2c 32 35 35 2c 30  0d 18 96 16 20 c8 93 20  |55,255,0.... .. |
0002e270  30 2c 31 32 38 2c 31 32  37 36 2c 35 31 34 0d 18  |0,128,1276,514..|
0002e280  97 1c 20 e3 20 59 25 3d  31 33 30 20 b8 20 36 34  |.. . Y%=130 . 64|
0002e290  32 2d 31 32 38 20 88 31  32 38 0d 18 98 1b 20 e3  |2-128 .128.... .|
0002e2a0  20 58 25 3d 30 20 b8 20  31 32 38 30 2d 31 36 30  | X%=0 . 1280-160|
0002e2b0  20 88 31 36 30 0d 18 99  19 20 c8 93 20 58 25 2c  | .160.... .. X%,|
0002e2c0  59 25 2c 31 35 38 2c 31  32 36 3a ed 3a ed 0d 18  |Y%,158,126:.:...|
0002e2d0  9a 32 20 e7 20 74 24 3d  22 6e 65 77 22 20 8c 20  |.2 . t$="new" . |
0002e2e0  4e 25 3d 30 20 8b 20 4e  25 3d a4 63 6f 75 6e 74  |N%=0 . N%=.count|
0002e2f0  5f 74 68 75 6d 62 6e 61  69 6c 5f 62 61 6e 6b 73  |_thumbnail_banks|
0002e300  0d 18 9b 4b 20 e7 20 4e  25 3e 33 31 20 85 20 31  |...K . N%>31 . 1|
0002e310  2c 22 4d 61 78 69 6d 75  6d 20 6e 75 6d 62 65 72  |,"Maximum number|
0002e320  20 6f 66 20 74 68 75 6d  62 6e 61 69 6c 20 62 61  | of thumbnail ba|
0002e330  6e 6b 73 20 28 33 32 29  20 68 61 73 20 62 65 65  |nks (32) has bee|
0002e340  6e 20 72 65 61 63 68 65  64 2e 22 0d 18 9c 27 20  |n reached."...' |
0002e350  4e 24 3d c3 28 4e 25 2b  31 29 3a e7 20 28 4e 25  |N$=.(N%+1):. (N%|
0002e360  2b 31 29 3c 31 30 20 8c  20 4e 24 3d 22 30 22 2b  |+1)<10 . N$="0"+|
0002e370  4e 24 0d 18 9d 27 20 74  68 75 6d 62 70 69 78 24  |N$...' thumbpix$|
0002e380  3d 54 68 75 6d 62 64 69  72 24 2b 22 2e 54 68 75  |=Thumbdir$+".Thu|
0002e390  6d 62 50 69 78 22 2b 4e  24 0d 18 9e 28 20 74 68  |mbPix"+N$...( th|
0002e3a0  75 6d 62 70 61 74 68 24  3d 54 68 75 6d 62 64 69  |umbpath$=Thumbdi|
0002e3b0  72 24 2b 22 2e 54 68 75  6d 50 61 74 68 22 2b 4e  |r$+".ThumPath"+N|
0002e3c0  24 0d 18 9f 3d 20 c8 99  20 73 70 72 73 77 69 25  |$...= .. sprswi%|
0002e3d0  2c 32 35 36 2b 31 36 2c  74 68 62 6c 6f 63 6b 25  |,256+16,thblock%|
0002e3e0  2c 22 74 68 75 6d 62 6e  61 69 6c 73 22 2c 30 2c  |,"thumbnails",0,|
0002e3f0  30 2c 31 32 38 2c 31 32  37 39 2c 36 33 39 0d 18  |0,128,1279,639..|
0002e400  a0 29 20 c8 99 20 73 70  72 73 77 69 25 2c 32 35  |.) .. sprswi%,25|
0002e410  36 2b 31 32 2c 74 68 62  6c 6f 63 6b 25 2c 74 68  |6+12,thblock%,th|
0002e420  75 6d 62 70 69 78 24 0d  18 a1 22 20 e3 20 4e 25  |umbpix$..." . N%|
0002e430  3d 30 20 b8 20 32 35 35  39 3a 74 68 70 61 74 68  |=0 . 2559:thpath|
0002e440  25 3f 4e 25 3d 33 32 3a  ed 0d 18 a2 2d 20 e3 20  |%?N%=32:....- . |
0002e450  4e 25 3d 30 20 b8 20 33  31 3a 24 28 74 68 70 61  |N%=0 . 31:$(thpa|
0002e460  74 68 25 2b 4e 25 2a 38  30 29 3d 22 7b 45 6d 70  |th%+N%*80)="{Emp|
0002e470  74 79 7d 22 3a ed 0d 18  a3 3b 20 c8 99 20 22 4f  |ty}":....; .. "O|
0002e480  53 5f 46 69 6c 65 22 2c  31 30 2c 74 68 75 6d 62  |S_File",10,thumb|
0002e490  70 61 74 68 24 2c 26 46  46 44 2c 30 2c 74 68 70  |path$,&FFD,0,thp|
0002e4a0  61 74 68 25 2c 74 68 70  61 74 68 25 2b 26 41 30  |ath%,thpath%+&A0|
0002e4b0  30 0d 18 a4 29 20 74 68  75 6d 62 5f 6d 61 78 25  |0...) thumb_max%|
0002e4c0  2b 3d 31 3a 74 68 75 6d  62 5f 62 61 6e 6b 25 3d  |+=1:thumb_bank%=|
0002e4d0  74 68 75 6d 62 5f 6d 61  78 25 0d 18 a5 06 20 e1  |thumb_max%.... .|
0002e4e0  0d 18 a6 04 0d 18 a7 1d  20 dd 20 a4 63 6f 75 6e  |........ . .coun|
0002e4f0  74 5f 74 68 75 6d 62 6e  61 69 6c 5f 62 61 6e 6b  |t_thumbnail_bank|
0002e500  73 0d 18 a8 2b 20 4e 25  3d 31 3a f5 3a e7 20 4e  |s...+ N%=1:.:. N|
0002e510  25 3c 31 30 20 4e 24 3d  22 30 22 2b c3 28 4e 25  |%<10 N$="0"+.(N%|
0002e520  29 20 8b 20 4e 24 3d c3  28 4e 25 29 0d 18 a9 3d  |) . N$=.(N%)...=|
0002e530  20 46 25 3d 8e 28 54 68  75 6d 62 64 69 72 24 2b  | F%=.(Thumbdir$+|
0002e540  22 2e 54 68 75 6d 50 61  74 68 22 2b 4e 24 29 3a  |".ThumPath"+N$):|
0002e550  d9 23 46 25 3a 4e 25 2b  3d 31 3a fd 20 46 25 3d  |.#F%:N%+=1:. F%=|
0002e560  30 20 84 20 4e 25 3e 33  35 0d 18 aa 0a 20 3d 4e  |0 . N%>35.... =N|
0002e570  25 2d 32 0d 18 ab 04 0d  18 ac 1f 20 dd 20 f2 6c  |%-2........ . .l|
0002e580  6f 61 64 5f 74 68 75 6d  62 6e 61 69 6c 5f 62 61  |oad_thumbnail_ba|
0002e590  6e 6b 28 4e 25 29 0d 18  ad 1f 20 4e 24 3d c3 28  |nk(N%).... N$=.(|
0002e5a0  4e 25 29 3a e7 20 4e 25  3c 31 30 20 4e 24 3d 22  |N%):. N%<10 N$="|
0002e5b0  30 22 2b 4e 24 0d 18 ae  27 20 74 68 75 6d 62 70  |0"+N$...' thumbp|
0002e5c0  69 78 24 3d 54 68 75 6d  62 64 69 72 24 2b 22 2e  |ix$=Thumbdir$+".|
0002e5d0  54 68 75 6d 62 50 69 78  22 2b 4e 24 0d 18 af 28  |ThumbPix"+N$...(|
0002e5e0  20 74 68 75 6d 62 70 61  74 68 24 3d 54 68 75 6d  | thumbpath$=Thum|
0002e5f0  62 64 69 72 24 2b 22 2e  54 68 75 6d 50 61 74 68  |bdir$+".ThumPath|
0002e600  22 2b 4e 24 0d 18 b0 29  20 c8 99 20 73 70 72 73  |"+N$...) .. sprs|
0002e610  77 69 25 2c 32 35 36 2b  31 30 2c 74 68 62 6c 6f  |wi%,256+10,thblo|
0002e620  63 6b 25 2c 74 68 75 6d  62 70 69 78 24 0d 18 b1  |ck%,thumbpix$...|
0002e630  28 20 ff 28 22 4c 4f 41  44 20 22 2b 74 68 75 6d  |( .("LOAD "+thum|
0002e640  62 70 61 74 68 24 2b 22  20 22 2b c3 7e 74 68 70  |bpath$+" "+.~thp|
0002e650  61 74 68 25 29 0d 18 b2  06 20 e1 0d 18 b3 06 20  |ath%).... ..... |
0002e660  20 0d 18 b4 10 20 dd 20  f2 71 77 69 6b 74 65 78  | .... . .qwiktex|
0002e670  74 0d 18 b5 2d 20 f2 64  69 73 70 6c 61 79 5f 6d  |t...- .display_m|
0002e680  65 6d 6f 72 79 3a 58 3d  30 3a 79 73 25 3d 38 36  |emory:X=0:ys%=86|
0002e690  34 3a 59 3d 79 73 25 3a  71 62 25 3d 2d 31 0d 18  |4:Y=ys%:qb%=-1..|
0002e6a0  b6 0b 20 e6 20 33 2c 36  33 0d 18 b7 1a 20 c8 8e  |.. . 3,63.... ..|
0002e6b0  20 71 77 69 6b 74 65 78  74 5f 63 6f 6c 6f 75 72  | qwiktext_colour|
0002e6c0  25 20 ca 0d 18 b8 17 20  c9 20 31 3a 63 6f 6c 25  |% ..... . 1:col%|
0002e6d0  3d 26 46 46 46 46 46 46  30 30 0d 18 b9 17 20 c9  |=&FFFFFF00.... .|
0002e6e0  20 32 3a 63 6f 6c 25 3d  26 30 30 46 46 46 46 30  | 2:col%=&00FFFF0|
0002e6f0  30 0d 18 ba 17 20 c9 20  33 3a 63 6f 6c 25 3d 26  |0.... . 3:col%=&|
0002e700  46 46 46 46 30 30 30 30  0d 18 bb 17 20 c9 20 34  |FFFF0000.... . 4|
0002e710  3a 63 6f 6c 25 3d 26 30  30 46 46 30 30 30 30 0d  |:col%=&00FF0000.|
0002e720  18 bc 17 20 c9 20 35 3a  63 6f 6c 25 3d 26 46 46  |... . 5:col%=&FF|
0002e730  30 30 46 46 30 30 0d 18  bd 17 20 c9 20 36 3a 63  |00FF00.... . 6:c|
0002e740  6f 6c 25 3d 26 30 30 30  30 46 46 30 30 0d 18 be  |ol%=&0000FF00...|
0002e750  17 20 c9 20 37 3a 63 6f  6c 25 3d 26 46 46 30 30  |. . 7:col%=&FF00|
0002e760  30 30 30 30 0d 18 bf 17  20 c9 20 38 3a 63 6f 6c  |0000.... . 8:col|
0002e770  25 3d 26 30 30 30 30 30  30 30 30 0d 18 c0 06 20  |%=&00000000.... |
0002e780  cb 0d 18 c1 19 20 c8 8e  20 71 77 69 6b 74 65 78  |..... .. qwiktex|
0002e790  74 5f 62 6c 6f 63 6b 25  20 ca 0d 18 c2 1e 20 c9  |t_block% ..... .|
0002e7a0  20 31 30 3a 72 25 3d 32  35 35 3a 67 25 3d 32 35  | 10:r%=255:g%=25|
0002e7b0  35 3a 62 25 3d 32 35 35  0d 18 c3 1c 20 c9 20 31  |5:b%=255.... . 1|
0002e7c0  31 3a 72 25 3d 32 35 35  3a 67 25 3d 32 35 35 3a  |1:r%=255:g%=255:|
0002e7d0  62 25 3d 30 0d 18 c4 1c  20 c9 20 31 32 3a 72 25  |b%=0.... . 12:r%|
0002e7e0  3d 30 3a 67 25 3d 32 35  35 3a 62 25 3d 32 35 35  |=0:g%=255:b%=255|
0002e7f0  0d 18 c5 1a 20 c9 20 31  33 3a 72 25 3d 30 3a 67  |.... . 13:r%=0:g|
0002e800  25 3d 32 35 35 3a 62 25  3d 30 0d 18 c6 1c 20 c9  |%=255:b%=0.... .|
0002e810  20 31 34 3a 72 25 3d 32  35 35 3a 67 25 3d 30 3a  | 14:r%=255:g%=0:|
0002e820  62 25 3d 32 35 35 0d 18  c7 1a 20 c9 20 31 35 3a  |b%=255.... . 15:|
0002e830  72 25 3d 32 35 35 3a 67  25 3d 30 3a 62 25 3d 30  |r%=255:g%=0:b%=0|
0002e840  0d 18 c8 1a 20 c9 20 31  36 3a 72 25 3d 30 3a 67  |.... . 16:r%=0:g|
0002e850  25 3d 30 3a 62 25 3d 32  35 35 0d 18 c9 18 20 c9  |%=0:b%=255.... .|
0002e860  20 31 37 3a 72 25 3d 30  3a 67 25 3d 30 3a 62 25  | 17:r%=0:g%=0:b%|
0002e870  3d 30 0d 18 ca 0f 20 c9  20 31 38 3a 71 62 25 3d  |=0.... . 18:qb%=|
0002e880  30 0d 18 cb 06 20 cb 0d  18 cc 1b 20 58 31 3d 31  |0.... ..... X1=1|
0002e890  32 38 30 2d 28 a9 20 63  61 6c 6c 24 2b 33 29 2a  |280-(. call$+3)*|
0002e8a0  38 30 0d 18 cd 0c 20 e7  20 71 62 25 20 8c 0d 18  |80.... . qb% ...|
0002e8b0  ce 23 20 20 e6 20 72 25  2c 67 25 2c 62 25 3a c8  |.#  . r%,g%,b%:.|
0002e8c0  93 20 c8 90 20 58 31 2c  30 2c 31 36 30 2c 31 31  |. .. X1,0,160,11|
0002e8d0  38 0d 18 cf 1e 20 20 c8  93 20 c8 90 20 58 31 2b  |8....  .. .. X1+|
0002e8e0  38 30 2a 33 2c 30 2c 31  32 38 30 2c 31 31 38 0d  |80*3,0,1280,118.|
0002e8f0  18 d0 07 20 20 cd 0d 18  d1 0b 20 e6 20 33 2c 36  |...  ..... . 3,6|
0002e900  33 0d 18 d2 1d 20 f2 71  77 72 69 74 65 28 22 44  |3.... .qwrite("D|
0002e910  45 22 2c 63 6f 6c 25 2c  58 31 2c 32 34 29 0d 18  |E",col%,X1,24)..|
0002e920  d3 23 20 f2 71 77 72 69  74 65 28 63 61 6c 6c 24  |.# .qwrite(call$|
0002e930  2c 63 6f 6c 25 2c 58 31  2b 38 30 2a 33 2c 32 34  |,col%,X1+80*3,24|
0002e940  29 0d 18 d4 2c 20 c8 99  20 22 4f 53 5f 42 79 74  |)..., .. "OS_Byt|
0002e950  65 22 2c 32 33 37 2c 30  2c 32 35 35 20 b8 2c 63  |e",237,0,255 .,c|
0002e960  75 72 73 6f 72 5f 73 74  61 74 75 73 25 0d 18 d5  |ursor_status%...|
0002e970  19 20 c8 99 20 22 4f 53  5f 42 79 74 65 22 2c 32  |. .. "OS_Byte",2|
0002e980  33 37 2c 31 2c 30 0d 18  d6 06 20 f5 0d 18 d7 08  |37,1,0.... .....|
0002e990  20 43 3d 30 0d 18 d8 06  20 f5 0d 18 d9 1f 20 c8  | C=0.... ..... .|
0002e9a0  93 20 c8 90 20 58 2c 59  2d 32 34 2c 38 30 2c 31  |. .. X,Y-24,80,1|
0002e9b0  31 38 3a 43 3d ac 28 43  29 0d 18 da 15 20 c8 97  |18:C=.(C).... ..|
0002e9c0  20 78 2c 79 2c 62 3a 4b  3d a6 28 32 30 29 0d 18  | x,y,b:K=.(20)..|
0002e9d0  db 10 20 fd 20 28 ac 20  4b 29 20 84 20 62 0d 18  |.. . (. K) . b..|
0002e9e0  dc 1c 20 e7 20 43 20 c8  93 20 c8 90 20 58 2c 59  |.. . C .. .. X,Y|
0002e9f0  2d 32 34 2c 38 30 2c 31  31 38 0d 18 dd 04 0d 18  |-24,80,118......|
0002ea00  de 16 20 e7 20 4b 3e 31  33 35 20 80 20 4b 3c 31  |.. . K>135 . K<1|
0002ea10  34 30 20 8c 0d 18 df 0b  20 c8 8e 20 4b 20 ca 0d  |40 ..... .. K ..|
0002ea20  18 e0 31 20 c9 20 31 33  36 3a 58 2d 3d 38 30 3a  |..1 . 136:X-=80:|
0002ea30  e7 20 58 3c 30 20 58 3d  31 32 30 30 3a 59 2b 3d  |. X<0 X=1200:Y+=|
0002ea40  31 32 30 3a e7 20 59 3e  79 73 25 20 59 3d 32 34  |120:. Y>ys% Y=24|
0002ea50  0d 18 e1 30 20 c9 20 31  33 37 3a 58 2b 3d 38 30  |...0 . 137:X+=80|
0002ea60  3a e7 20 58 3e 31 32 30  30 20 58 3d 30 3a 59 2d  |:. X>1200 X=0:Y-|
0002ea70  3d 31 32 30 3a e7 20 59  3c 30 20 59 3d 79 73 25  |=120:. Y<0 Y=ys%|
0002ea80  0d 18 e2 1d 20 c9 20 31  33 38 3a 59 2d 3d 31 32  |.... . 138:Y-=12|
0002ea90  30 3a e7 20 59 3c 30 20  59 3d 79 73 25 0d 18 e3  |0:. Y<0 Y=ys%...|
0002eaa0  1e 20 c9 20 31 33 39 3a  59 2b 3d 31 32 30 3a e7  |. . 139:Y+=120:.|
0002eab0  20 59 3e 79 73 25 20 59  3d 32 34 0d 18 e4 06 20  | Y>ys% Y=24.... |
0002eac0  cb 0d 18 e5 06 20 cd 0d  18 e6 04 0d 18 e7 1e 20  |..... ......... |
0002ead0  e7 20 4b 3d 33 30 20 8c  20 58 3d 30 3a 59 3d 79  |. K=30 . X=0:Y=y|
0002eae0  73 25 3a f4 20 48 6f 6d  65 0d 18 e8 25 20 e7 20  |s%:. Home...% . |
0002eaf0  4b 3d 31 33 35 20 8c 20  58 3d 31 32 30 30 3a 59  |K=135 . X=1200:Y|
0002eb00  3d 32 34 3a f4 20 45 6e  64 2f 43 6f 70 79 0d 18  |=24:. End/Copy..|
0002eb10  e9 22 20 e7 20 4b 3d 32  37 20 8c 20 62 3d 31 3a  |." . K=27 . b=1:|
0002eb20  f4 20 51 75 69 74 20 6f  6e 20 45 73 63 61 70 65  |. Quit on Escape|
0002eb30  0d 18 ea 04 0d 18 eb 15  20 e7 20 4b 3e 33 31 20  |........ . K>31 |
0002eb40  80 20 4b 3c 31 32 37 20  8c 0d 18 ec 15 20 20 e7  |. K<127 .....  .|
0002eb50  20 71 62 25 20 80 20 4b  3c 3e 33 32 20 8c 0d 18  | qb% . K<>32 ...|
0002eb60  ed 24 20 20 e6 20 72 25  2c 67 25 2c 62 25 3a c8  |.$  . r%,g%,b%:.|
0002eb70  93 20 c8 90 20 58 2c 59  2d 32 34 2c 38 30 2c 31  |. .. X,Y-24,80,1|
0002eb80  31 38 0d 18 ee 0c 20 20  e6 20 33 2c 36 33 0d 18  |18....  . 3,63..|
0002eb90  ef 07 20 20 cd 0d 18 f0  0b 20 6b 24 3d bd 20 4b  |..  ..... k$=. K|
0002eba0  0d 18 f1 3f 20 e7 20 6b  24 3d 22 67 22 20 84 20  |...? . k$="g" . |
0002ebb0  6b 24 3d 22 6a 22 20 84  20 6b 24 3d 22 70 22 20  |k$="j" . k$="p" |
0002ebc0  84 20 6b 24 3d 22 71 22  20 84 20 6b 24 3d 22 79  |. k$="q" . k$="y|
0002ebd0  22 20 79 6f 25 3d 34 20  8b 20 79 6f 25 3d 30 0d  |" yo%=4 . yo%=0.|
0002ebe0  18 f2 1e 20 f2 71 77 72  69 74 65 28 bd 20 4b 2c  |... .qwrite(. K,|
0002ebf0  63 6f 6c 25 2c 58 2c 59  2b 79 6f 25 29 0d 18 f3  |col%,X,Y+yo%)...|
0002ec00  0a 20 58 2b 3d 38 30 0d  18 f4 10 20 20 e7 20 58  |. X+=80....  . X|
0002ec10  3e 31 32 30 30 20 8c 0d  18 f5 1c 20 20 58 3d 30  |>1200 .....  X=0|
0002ec20  3a 59 2d 3d 31 32 30 3a  e7 20 59 3c 30 20 59 3d  |:Y-=120:. Y<0 Y=|
0002ec30  79 73 25 0d 18 f6 07 20  20 cd 0d 18 f7 06 20 cd  |ys%....  ..... .|
0002ec40  0d 18 f8 04 0d 18 f9 22  20 e7 20 4b 3d 31 33 20  |......." . K=13 |
0002ec50  58 3d 30 3a 59 2d 3d 31  32 30 3a e7 20 59 3c 30  |X=0:Y-=120:. Y<0|
0002ec60  20 59 3d 79 73 25 0d 18  fa 04 0d 18 fb 14 20 e7  | Y=ys%........ .|
0002ec70  20 4b 3d 38 20 84 20 4b  3d 31 32 37 20 8c 0d 18  | K=8 . K=127 ...|
0002ec80  fc 2b 20 58 2d 3d 38 30  3a e7 20 58 3c 30 20 58  |.+ X-=80:. X<0 X|
0002ec90  3d 31 32 30 30 3a 59 2b  3d 31 32 30 3a e7 20 59  |=1200:Y+=120:. Y|
0002eca0  3e 79 73 25 20 59 3d 32  34 0d 18 fd 1b 20 f2 72  |>ys% Y=24.... .r|
0002ecb0  65 64 72 61 77 28 58 2c  59 2d 32 34 2c 38 34 2c  |edraw(X,Y-24,84,|
0002ecc0  31 32 30 29 0d 18 fe 06  20 cd 0d 18 ff 04 0d 19  |120).... .......|
0002ecd0  00 0b 20 fd 20 62 3c 3e  30 0d 19 01 19 20 e7 20  |.. . b<>0.... . |
0002ece0  62 3d 34 20 f2 75 70 6c  6f 61 64 5f 6d 65 6d 6f  |b=4 .upload_memo|
0002ecf0  72 79 0d 19 02 26 20 c8  99 20 22 4f 53 5f 42 79  |ry...& .. "OS_By|
0002ed00  74 65 22 2c 32 33 37 2c  63 75 72 73 6f 72 5f 73  |te",237,cursor_s|
0002ed10  74 61 74 75 73 25 2c 30  0d 19 03 0d 20 f2 64 69  |tatus%,0.... .di|
0002ed20  73 6d 69 6e 69 0d 19 04  06 20 e1 0d 19 05 04 0d  |smini.... ......|
0002ed30  19 06 22 20 dd 20 f2 71  77 72 69 74 65 28 74 65  |.." . .qwrite(te|
0002ed40  78 74 24 2c 71 74 63 6f  6c 25 2c 78 25 2c 79 25  |xt$,qtcol%,x%,y%|
0002ed50  29 0d 19 07 33 20 c8 99  20 22 46 6f 6e 74 5f 53  |)...3 .. "Font_S|
0002ed60  65 74 50 61 6c 65 74 74  65 22 2c 2c 30 2c 30 2c  |etPalette",,0,0,|
0002ed70  30 2c 30 2c 71 74 63 6f  6c 25 2c 26 36 35 37 35  |0,0,qtcol%,&6575|
0002ed80  37 32 35 34 0d 19 08 29  20 e7 20 66 6f 6e 74 25  |7254...) . font%|
0002ed90  3c 3e 2d 31 20 c8 99 20  22 46 6f 6e 74 5f 4c 6f  |<>-1 .. "Font_Lo|
0002eda0  73 65 46 6f 6e 74 22 2c  66 6f 6e 74 25 0d 19 09  |seFont",font%...|
0002edb0  3a 20 c8 99 20 22 46 6f  6e 74 5f 46 69 6e 64 46  |: .. "Font_FindF|
0002edc0  6f 6e 74 22 2c 2c 22 43  6f 72 70 75 73 2e 42 6f  |ont",,"Corpus.Bo|
0002edd0  6c 64 22 2c 35 32 2a 31  36 2c 35 36 2a 31 36 20  |ld",52*16,56*16 |
0002ede0  b8 20 66 6f 6e 74 25 0d  19 0a 25 20 c8 99 20 22  |. font%...% .. "|
0002edf0  46 6f 6e 74 5f 50 61 69  6e 74 22 2c 2c 74 65 78  |Font_Paint",,tex|
0002ee00  74 24 2c 26 31 34 2c 78  25 2c 79 25 0d 19 0b 27  |t$,&14,x%,y%...'|
0002ee10  20 c8 99 20 22 46 6f 6e  74 5f 50 61 69 6e 74 22  | .. "Font_Paint"|
0002ee20  2c 2c 74 65 78 74 24 2c  26 31 34 2c 78 25 2b 34  |,,text$,&14,x%+4|
0002ee30  2c 79 25 0d 19 0c 1d 20  c8 99 20 22 46 6f 6e 74  |,y%.... .. "Font|
0002ee40  5f 4c 6f 73 65 46 6f 6e  74 22 2c 66 6f 6e 74 25  |_LoseFont",font%|
0002ee50  0d 19 0d 06 20 e1 0d 19  0e 04 0d 19 0f 16 20 dd  |.... ......... .|
0002ee60  20 f2 61 75 74 6f 5f 6d  6f 64 65 5f 66 69 6e 64  | .auto_mode_find|
0002ee70  0d 19 10 25 20 e6 20 31  39 36 2c 31 39 36 2c 31  |...% . 196,196,1|
0002ee80  39 36 3a c8 93 20 c8 90  20 33 39 30 2c 36 2c 31  |96:.. .. 390,6,1|
0002ee90  31 32 2c 34 36 0d 19 11  22 20 f2 72 61 69 73 65  |12,46..." .raise|
0002eea0  64 5f 62 6c 6f 63 6b 28  34 32 36 2c 31 30 30 2c  |d_block(426,100,|
0002eeb0  34 33 34 2c 39 30 29 0d  19 12 35 20 f2 77 72 69  |434,90)...5 .wri|
0002eec0  74 65 32 28 22 53 65 61  72 63 68 69 6e 67 20 66  |te2("Searching f|
0002eed0  6f 72 20 53 53 54 56 20  6d 6f 64 65 20 2e 2e 2e  |or SSTV mode ...|
0002eee0  22 2c 34 34 30 2c 31 32  38 2c 34 29 0d 19 13 14  |",440,128,4)....|
0002eef0  20 f2 77 61 69 74 5f 6e  6f 5f 62 75 74 74 6f 6e  | .wait_no_button|
0002ef00  0d 19 14 0d 20 f1 20 8a  30 2c 32 29 3b 0d 19 15  |.... . .0,2);...|
0002ef10  38 20 61 75 74 6f 5f 63  6f 64 65 25 21 31 32 3d  |8 auto_code%!12=|
0002ef20  33 30 30 30 30 20 3a 20  f4 20 33 30 30 30 30 20  |30000 : . 30000 |
0002ef30  78 20 35 30 30 20 b5 53  20 3d 20 31 35 20 73 65  |x 500 .S = 15 se|
0002ef40  63 6f 6e 64 73 0d 19 16  1f 20 61 75 74 6f 5f 63  |conds.... auto_c|
0002ef50  6f 64 65 25 21 31 36 3d  73 65 72 69 61 6c 5f 62  |ode%!16=serial_b|
0002ef60  61 73 65 25 0d 19 17 06  20 f5 0d 19 18 1e 20 61  |ase%.... ..... a|
0002ef70  75 74 6f 5f 63 6f 64 65  25 21 34 3d 49 6f 66 66  |uto_code%!4=Ioff|
0002ef80  73 65 74 25 20 81 20 32  0d 19 19 21 20 d6 20 61  |set% . 2...! . a|
0002ef90  75 74 6f 5f 63 6f 64 65  25 3a 4c 25 3d 61 75 74  |uto_code%:L%=aut|
0002efa0  6f 5f 63 6f 64 65 25 21  38 0d 19 1a 0f 20 f4 20  |o_code%!8.... . |
0002efb0  50 52 49 4e 54 20 4c 25  0d 19 1b 1d 20 f2 6d 6f  |PRINT L%.... .mo|
0002efc0  64 65 5f 66 72 6f 6d 5f  6c 69 6e 65 5f 74 69 6d  |de_from_line_tim|
0002efd0  65 28 4c 25 29 0d 19 1c  1a 20 fd 20 4d 25 3c 3e  |e(L%).... . M%<>|
0002efe0  30 20 84 20 4c 25 3d 31  20 84 20 4c 25 3d 32 0d  |0 . L%=1 . L%=2.|
0002eff0  19 1d 2b 20 f4 20 4c 25  3d 31 20 6f 6e 20 6d 6f  |..+ . L%=1 on mo|
0002f000  75 73 65 20 61 62 6f 72  74 2c 20 4c 25 3d 32 20  |use abort, L%=2 |
0002f010  6f 6e 20 74 69 6d 65 6f  75 74 0d 19 1e 0e 20 e7  |on timeout.... .|
0002f020  20 4d 25 3c 3e 30 20 8c  0d 19 1f 0d 20 6d 6f 64  | M%<>0 ..... mod|
0002f030  65 25 3d 4d 25 0d 19 20  2d 20 ef 35 3a e6 30 20  |e%=M%.. - .5:.0 |
0002f040  c8 9c 30 3a ec 34 30 30  2c 33 36 3a f1 20 6d 6f  |..0:.400,36:. mo|
0002f050  64 65 24 28 6d 6f 64 65  25 29 3a ef 34 3a 87 3a  |de$(mode%):.4:.:|
0002f060  c8 96 0d 19 21 06 20 cd  0d 19 22 06 20 e1 0d 19  |....!. ...". ...|
0002f070  23 04 0d 19 24 1f 20 dd  20 f2 6d 6f 64 65 5f 66  |#...$. . .mode_f|
0002f080  72 6f 6d 5f 6c 69 6e 65  5f 74 69 6d 65 28 4c 25  |rom_line_time(L%|
0002f090  29 0d 19 25 09 20 4d 25  3d 30 0d 19 26 1f 20 e7  |)..%. M%=0..&. .|
0002f0a0  20 94 28 4c 25 2d 38 39  33 29 3c 34 20 20 4d 25  | .(L%-893)<4  M%|
0002f0b0  3d 31 20 20 3a f4 20 4d  31 0d 19 27 1f 20 e7 20  |=1  :. M1..'. . |
0002f0c0  94 28 4c 25 2d 34 35 34  29 3c 34 20 20 4d 25 3d  |.(L%-454)<4  M%=|
0002f0d0  32 20 20 3a f4 20 4d 32  0d 19 28 1f 20 e7 20 94  |2  :. M2..(. . .|
0002f0e0  28 4c 25 2d 38 35 36 29  3c 34 20 20 4d 25 3d 35  |(L%-856)<4  M%=5|
0002f0f0  20 20 3a f4 20 53 31 0d  19 29 1f 20 e7 20 94 28  |  :. S1..). . .(|
0002f100  4c 25 2d 35 35 35 29 3c  34 20 20 4d 25 3d 36 20  |L%-555)<4  M%=6 |
0002f110  20 3a f4 20 53 32 0d 19  2a 21 20 e7 20 94 28 4c  | :. S2..*! . .(L|
0002f120  25 2d 32 31 30 31 29 3c  34 20 4d 25 3d 39 20 20  |%-2101)<4 M%=9  |
0002f130  3a f4 20 53 2d 44 58 0d  19 2b 24 20 e7 20 94 28  |:. S-DX..+$ . .(|
0002f140  4c 25 2d 31 34 32 32 29  3c 34 20 4d 25 3d 31 31  |L%-1422)<4 M%=11|
0002f150  20 3a f4 20 53 43 32 2d  31 38 30 0d 19 2c 1f 20  | :. SC2-180..,. |
0002f160  e7 20 94 28 4c 25 2d 38  31 39 29 3c 34 20 20 4d  |. .(L%-819)<4  M|
0002f170  25 3d 32 30 20 3a f4 20  50 33 0d 19 2d 1f 20 e7  |%=20 :. P3..-. .|
0002f180  20 94 28 4c 25 2d 31 32  32 38 29 3c 34 20 4d 25  | .(L%-1228)<4 M%|
0002f190  3d 32 31 20 3a f4 20 50  35 0d 19 2e 1f 20 e7 20  |=21 :. P5.... . |
0002f1a0  94 28 4c 25 2d 31 36 33  38 29 3c 34 20 4d 25 3d  |.(L%-1638)<4 M%=|
0002f1b0  32 32 20 3a f4 20 50 37  0d 19 2f 22 20 e7 20 94  |22 :. P7../" . .|
0002f1c0  28 4c 25 2d 31 34 30 36  29 3c 33 20 4d 25 3d 36  |(L%-1406)<3 M%=6|
0002f1d0  33 20 3a f4 20 50 44 2d  39 30 0d 19 30 23 20 e7  |3 :. PD-90..0# .|
0002f1e0  20 94 28 4c 25 2d 31 30  31 37 29 3c 34 20 4d 25  | .(L%-1017)<4 M%|
0002f1f0  3d 36 34 20 3a f4 20 50  44 2d 31 32 30 0d 19 31  |=64 :. PD-120..1|
0002f200  23 20 e7 20 94 28 4c 25  2d 31 36 30 39 29 3c 34  |# . .(L%-1609)<4|
0002f210  20 4d 25 3d 36 32 20 3a  f4 20 50 44 2d 31 36 30  | M%=62 :. PD-160|
0002f220  0d 19 32 23 20 e7 20 94  28 4c 25 2d 31 35 30 38  |..2# . .(L%-1508|
0002f230  29 3c 34 20 4d 25 3d 36  30 20 3a f4 20 50 44 2d  |)<4 M%=60 :. PD-|
0002f240  31 38 30 0d 19 33 23 20  e7 20 94 28 4c 25 2d 32  |180..3# . .(L%-2|
0002f250  30 30 30 29 3c 34 20 4d  25 3d 36 31 20 3a f4 20  |000)<4 M%=61 :. |
0002f260  50 44 2d 32 34 30 0d 19  34 22 20 e7 20 94 28 4c  |PD-240..4" . .(L|
0002f270  25 2d 37 37 36 29 3c 34  20 20 4d 25 3d 36 35 20  |%-776)<4  M%=65 |
0002f280  3a f4 20 50 44 2d 35 30  0d 19 35 21 20 e7 20 94  |:. PD-50..5! . .|
0002f290  28 4c 25 2d 31 34 31 31  29 3c 33 20 4d 25 3d 37  |(L%-1411)<3 M%=7|
0002f2a0  30 20 3a f4 20 48 51 2d  31 0d 19 36 21 20 e7 20  |0 :. HQ-1..6! . |
0002f2b0  94 28 4c 25 2d 31 37 34  37 29 3c 34 20 4d 25 3d  |.(L%-1747)<4 M%=|
0002f2c0  37 31 20 3a f4 20 48 51  2d 32 0d 19 37 06 20 e1  |71 :. HQ-2..7. .|
0002f2d0  0d 19 38 04 0d 19 39 32  20 dd 20 f2 75 73 65 72  |..8...92 . .user|
0002f2e0  5f 70 61 74 68 6e 61 6d  65 28 f8 20 73 74 61 72  |_pathname(. star|
0002f2f0  74 24 2c 75 78 25 2c 75  79 25 2c 6c 65 6e 25 2c  |t$,ux%,uy%,len%,|
0002f300  66 6c 61 67 25 29 0d 19  3a 1a 20 c8 91 20 30 2c  |flag%)..:. .. 0,|
0002f310  30 3a 73 74 61 72 74 32  24 3d 73 74 61 72 74 24  |0:start2$=start$|
0002f320  0d 19 3b 0e 20 e7 20 66  6c 61 67 25 20 8c 0d 19  |..;. . flag% ...|
0002f330  3c 18 20 c8 97 20 c8 93  20 30 2c 39 34 32 2c 31  |<. .. .. 0,942,1|
0002f340  32 38 30 2c 36 30 0d 19  3d 22 20 e6 20 30 2c 30  |280,60..=" . 0,0|
0002f350  2c 30 3a c8 93 20 75 78  25 2b 38 36 30 2c 75 79  |,0:.. ux%+860,uy|
0002f360  25 2c 31 34 30 2c 34 30  0d 19 3e 26 20 f2 77 72  |%,140,40..>& .wr|
0002f370  69 74 65 32 28 22 43 61  6e 63 65 6c 22 2c 75 78  |ite2("Cancel",ux|
0002f380  25 2b 38 37 34 2c 75 79  25 2b 34 2c 34 29 0d 19  |%+874,uy%+4,4)..|
0002f390  3f 3f 20 c8 99 20 73 70  72 73 77 69 25 2c 32 35  |?? .. sprswi%,25|
0002f3a0  36 2b 35 32 2c 73 70 62  25 2c 22 6c 69 73 74 22  |6+52,spb%,"list"|
0002f3b0  2c 75 78 25 2b 38 30 38  2c 75 79 25 2d 32 2c 30  |,ux%+808,uy%-2,0|
0002f3c0  2c 30 2c 74 72 61 6e 73  6c 61 74 65 25 0d 19 40  |,0,translate%..@|
0002f3d0  06 20 cd 0d 19 41 04 0d  19 42 27 20 e6 20 32 35  |. ...A...B' . 25|
0002f3e0  35 2c 32 35 35 2c 32 35  35 3a c8 93 20 c8 90 20  |5,255,255:.. .. |
0002f3f0  75 78 25 2c 75 79 25 2c  37 38 30 2c 34 30 0d 19  |ux%,uy%,780,40..|
0002f400  43 28 20 f2 77 72 69 74  65 32 28 73 74 61 72 74  |C( .write2(start|
0002f410  24 2b 22 7c 22 2c 75 78  25 2b 34 2c 75 79 25 2b  |$+"|",ux%+4,uy%+|
0002f420  34 2c 31 30 30 29 0d 19  44 06 20 f5 0d 19 45 26  |4,100)..D. ...E&|
0002f430  20 f2 77 61 69 74 5f 6e  6f 5f 62 75 74 74 6f 6e  | .wait_no_button|
0002f440  3a f5 3a 4b 24 3d bf 28  31 29 3a fd 20 4b 24 3d  |:.:K$=.(1):. K$=|
0002f450  22 22 0d 19 46 2c 20 f5  3a c8 97 20 58 2c 59 2c  |""..F, .:.. X,Y,|
0002f460  42 3a 4b 24 3d bf 28 31  29 3a fd 20 42 3d 34 20  |B:K$=.(1):. B=4 |
0002f470  84 20 42 3d 31 20 84 20  4b 24 3c 3e 22 22 0d 19  |. B=1 . K$<>""..|
0002f480  47 16 20 e7 20 4b 24 3d  bd 38 20 8c 20 4b 24 3d  |G. . K$=.8 . K$=|
0002f490  bd 31 32 37 0d 19 48 20  20 e7 20 97 28 4b 24 29  |.127..H  . .(K$)|
0002f4a0  3d 31 32 37 20 80 20 a9  28 73 74 61 72 74 24 29  |=127 . .(start$)|
0002f4b0  3e 30 20 8c 0d 19 49 26  20 4c 25 3d a9 28 73 74  |>0 ...I& L%=.(st|
0002f4c0  61 72 74 24 29 3a 73 74  61 72 74 24 3d c0 73 74  |art$):start$=.st|
0002f4d0  61 72 74 24 2c 4c 25 2d  31 29 0d 19 4a 27 20 e6  |art$,L%-1)..J' .|
0002f4e0  20 32 35 35 2c 32 35 35  2c 32 35 35 3a c8 93 20  | 255,255,255:.. |
0002f4f0  c8 90 20 75 78 25 2c 75  79 25 2c 37 38 30 2c 34  |.. ux%,uy%,780,4|
0002f500  30 0d 19 4b 28 20 f2 77  72 69 74 65 32 28 73 74  |0..K( .write2(st|
0002f510  61 72 74 24 2b 22 7c 22  2c 75 78 25 2b 34 2c 75  |art$+"|",ux%+4,u|
0002f520  79 25 2b 34 2c 31 30 30  29 0d 19 4c 06 20 cd 0d  |y%+4,100)..L. ..|
0002f530  19 4d 11 20 e7 20 97 28  4b 24 29 3d 32 31 20 8c  |.M. . .(K$)=21 .|
0002f540  0d 19 4e 31 20 73 74 61  72 74 24 3d 22 22 3a e6  |..N1 start$="":.|
0002f550  20 32 35 35 2c 32 35 35  2c 32 35 35 3a c8 93 20  | 255,255,255:.. |
0002f560  c8 90 20 75 78 25 2c 75  79 25 2c 37 38 30 2c 34  |.. ux%,uy%,780,4|
0002f570  30 0d 19 4f 28 20 f2 77  72 69 74 65 32 28 73 74  |0..O( .write2(st|
0002f580  61 72 74 24 2b 22 7c 22  2c 75 78 25 2b 34 2c 75  |art$+"|",ux%+4,u|
0002f590  79 25 2b 34 2c 31 30 30  29 0d 19 50 06 20 cd 0d  |y%+4,100)..P. ..|
0002f5a0  19 51 2e 20 e7 20 a9 28  73 74 61 72 74 24 29 3c  |.Q. . .(start$)<|
0002f5b0  6c 65 6e 25 20 80 20 97  28 4b 24 29 3e 33 32 20  |len% . .(K$)>32 |
0002f5c0  80 20 97 28 4b 24 29 3c  31 32 37 20 8c 0d 19 52  |. .(K$)<127 ...R|
0002f5d0  32 20 73 74 61 72 74 24  2b 3d 4b 24 3a e6 20 32  |2 start$+=K$:. 2|
0002f5e0  35 35 2c 32 35 35 2c 32  35 35 3a c8 93 20 c8 90  |55,255,255:.. ..|
0002f5f0  20 75 78 25 2c 75 79 25  2c 37 38 30 2c 34 30 0d  | ux%,uy%,780,40.|
0002f600  19 53 28 20 f2 77 72 69  74 65 32 28 73 74 61 72  |.S( .write2(star|
0002f610  74 24 2b 22 7c 22 2c 75  78 25 2b 34 2c 75 79 25  |t$+"|",ux%+4,uy%|
0002f620  2b 34 2c 31 30 30 29 0d  19 54 06 20 cd 0d 19 55  |+4,100)..T. ...U|
0002f630  21 20 fd 20 4b 24 3d bd  31 33 20 84 20 4b 24 3d  |! . K$=.13 . K$=|
0002f640  bd 39 20 84 20 42 3d 34  20 84 20 42 3d 31 0d 19  |.9 . B=4 . B=1..|
0002f650  56 04 0d 19 57 19 20 c8  91 20 30 2c 35 30 3a e6  |V...W. .. 0,50:.|
0002f660  20 33 2c 36 33 20 c8 9c  31 39 32 0d 19 58 1c 20  | 3,63 ..192..X. |
0002f670  c8 97 20 c8 93 20 30 2c  2d 35 30 2c 31 32 38 30  |.. .. 0,-50,1280|
0002f680  2c 39 32 36 2b 38 30 0d  19 59 04 0d 19 5a 0e 20  |,926+80..Y...Z. |
0002f690  e7 20 66 6c 61 67 25 20  8c 0d 19 5b 28 20 e7 20  |. flag% ...[( . |
0002f6a0  28 42 3d 34 20 80 20 58  3c 31 30 36 33 29 20 84  |(B=4 . X<1063) .|
0002f6b0  20 4b 24 3d bd 39 20 84  20 4b 24 3d bd 31 33 20  | K$=.9 . K$=.13 |
0002f6c0  8c 0d 19 5c 33 20 20 e7  20 c2 73 74 61 72 74 24  |...\3  . .start$|
0002f6d0  2c 31 29 3d 22 2e 22 20  73 74 61 72 74 24 3d c0  |,1)="." start$=.|
0002f6e0  73 74 61 72 74 24 2c 28  a9 20 73 74 61 72 74 24  |start$,(. start$|
0002f6f0  29 2d 31 29 0d 19 5d 33  20 20 e7 20 a9 28 73 74  |)-1)..]3  . .(st|
0002f700  61 72 74 24 29 3e 36 20  64 69 72 24 3d 73 74 61  |art$)>6 dir$=sta|
0002f710  72 74 24 3a 64 72 76 25  3d 32 30 3a f2 63 6c 69  |rt$:drv%=20:.cli|
0002f720  63 6b 5f 69 6e 66 6f 0d  19 5e 07 20 20 cc 0d 19  |ck_info..^.  ...|
0002f730  5f 14 20 20 73 74 61 72  74 24 3d 73 74 61 72 74  |_.  start$=start|
0002f740  32 24 0d 19 60 06 20 cd  0d 19 61 26 20 e7 20 58  |2$..`. ...a& . X|
0002f750  3e 31 30 36 32 20 80 20  58 3c 31 31 31 30 20 f2  |>1062 . X<1110 .|
0002f760  6c 69 73 74 5f 50 61 74  68 6e 61 6d 65 73 0d 19  |list_Pathnames..|
0002f770  62 06 20 cd 0d 19 63 04  0d 19 64 24 20 e7 20 ac  |b. ...c...d$ . .|
0002f780  28 66 6c 61 67 25 29 20  80 20 42 3d 31 20 73 74  |(flag%) . B=1 st|
0002f790  61 72 74 24 3d 73 74 61  72 74 32 24 0d 19 65 04  |art$=start2$..e.|
0002f7a0  0d 19 66 06 20 e1 0d 19  67 04 0d 19 68 16 20 dd  |..f. ...g...h. .|
0002f7b0  20 f2 6c 69 73 74 5f 50  61 74 68 6e 61 6d 65 73  | .list_Pathnames|
0002f7c0  0d 19 69 0b 20 72 65 66  25 3d b9 0d 19 6a 06 20  |..i. ref%=...j. |
0002f7d0  f5 0d 19 6b 04 0d 19 6c  0d 20 e7 20 72 65 66 25  |...k...l. . ref%|
0002f7e0  20 8c 0d 19 6d 15 20 f2  6c 6f 61 64 5f 75 73 65  | ...m. .load_use|
0002f7f0  72 5f 70 61 74 68 73 0d  19 6e 40 20 c8 99 20 73  |r_paths..n@ .. s|
0002f800  70 72 73 77 69 25 2c 32  35 36 2b 35 32 2c 73 70  |prswi%,256+52,sp|
0002f810  62 25 2c 22 6c 69 73 74  5f 6f 6e 22 2c 32 36 30  |b%,"list_on",260|
0002f820  2b 38 30 38 2c 38 39 38  2c 30 2c 30 2c 74 72 61  |+808,898,0,0,tra|
0002f830  6e 73 6c 61 74 65 25 0d  19 6f 28 20 e6 20 32 32  |nslate%..o( . 22|
0002f840  30 2c 32 32 30 2c 32 35  35 3a c8 93 20 c8 90 20  |0,220,255:.. .. |
0002f850  32 35 36 2c 32 33 36 2c  37 38 32 2c 36 34 32 0d  |256,236,782,642.|
0002f860  19 70 26 20 e6 20 32 35  35 2c 30 2c 30 3a c8 93  |.p& . 255,0,0:..|
0002f870  20 32 35 34 2c 32 33 34  2c 37 38 36 2c 36 34 36  | 254,234,786,646|
0002f880  3a 4e 25 3d 31 0d 19 71  18 20 e3 20 79 25 3d 38  |:N%=1..q. . y%=8|
0002f890  39 30 20 b8 20 32 39 30  20 88 2d 34 30 0d 19 72  |90 . 290 .-40..r|
0002f8a0  2c 20 e7 20 79 25 3d 38  39 30 20 f2 77 72 69 74  |, . y%=890 .writ|
0002f8b0  65 32 28 22 5b 20 43 61  6e 63 65 6c 20 5d 22 2c  |e2("[ Cancel ]",|
0002f8c0  32 36 30 2c 79 25 2c 37  29 0d 19 73 2e 20 e7 20  |260,y%,7)..s. . |
0002f8d0  79 25 3d 38 35 30 20 f2  77 72 69 74 65 32 28 64  |y%=850 .write2(d|
0002f8e0  65 66 61 75 6c 74 5f 64  69 72 24 2c 32 36 30 2c  |efault_dir$,260,|
0002f8f0  79 25 2c 31 30 32 29 0d  19 74 36 20 e7 20 79 25  |y%,102)..t6 . y%|
0002f900  3c 38 35 30 20 f2 77 72  69 74 65 32 28 75 73 65  |<850 .write2(use|
0002f910  72 5f 70 61 74 68 24 28  4e 25 29 2c 32 36 30 2c  |r_path$(N%),260,|
0002f920  79 25 2c 31 30 30 29 3a  4e 25 2b 3d 31 0d 19 75  |y%,100):N%+=1..u|
0002f930  06 20 ed 0d 19 76 2a 20  c8 97 20 c8 93 20 32 35  |. ...v* .. .. 25|
0002f940  34 2c 32 33 34 2c 37 37  30 2c 36 34 36 3a f2 77  |4,234,770,646:.w|
0002f950  61 69 74 5f 6e 6f 5f 62  75 74 74 6f 6e 0d 19 77  |ait_no_button..w|
0002f960  24 20 c8 97 20 58 2c 59  2c 42 3a 79 25 3d 59 20  |$ .. X,Y,B:y%=Y |
0002f970  81 20 34 30 3a e6 20 33  2c 36 33 20 c8 9c 31 39  |. 40:. 3,63 ..19|
0002f980  32 0d 19 78 12 20 e7 20  79 25 3d 32 32 20 79 25  |2..x. . y%=22 y%|
0002f990  3d 32 31 0d 19 79 1d 20  c8 93 20 c8 90 20 32 36  |=21..y. .. .. 26|
0002f9a0  30 2c 79 25 2a 34 30 2d  31 2c 37 35 38 2c 33 38  |0,y%*40-1,758,38|
0002f9b0  0d 19 7a 0b 20 72 65 66  25 3d a3 0d 19 7b 06 20  |..z. ref%=...{. |
0002f9c0  cd 0d 19 7c 04 0d 19 7d  06 20 f5 0d 19 7e 04 0d  |...|...}. ...~..|
0002f9d0  19 7f 1a 20 f5 3a c8 97  20 58 2c 59 2c 42 3a 79  |... .:.. X,Y,B:y|
0002f9e0  32 25 3d 59 20 81 20 34  30 0d 19 80 15 20 20 e7  |2%=Y . 40....  .|
0002f9f0  20 79 32 25 3d 32 32 20  79 32 25 3d 32 31 0d 19  | y2%=22 y2%=21..|
0002fa00  81 13 20 20 e7 20 79 32  25 3d 35 20 79 32 25 3d  |..  . y2%=5 y2%=|
0002fa10  36 0d 19 82 15 20 fd 20  79 32 25 3c 3e 79 25 20  |6.... . y2%<>y% |
0002fa20  84 20 42 3c 3e 30 0d 19  83 1d 20 c8 93 20 c8 90  |. B<>0.... .. ..|
0002fa30  20 32 36 30 2c 79 25 2a  34 30 2d 31 2c 37 35 38  | 260,y%*40-1,758|
0002fa40  2c 33 38 0d 19 84 1e 20  c8 93 20 c8 90 20 32 36  |,38.... .. .. 26|
0002fa50  30 2c 79 32 25 2a 34 30  2d 31 2c 37 35 38 2c 33  |0,y2%*40-1,758,3|
0002fa60  38 0d 19 85 0b 20 79 25  3d 79 32 25 0d 19 86 04  |8.... y%=y2%....|
0002fa70  0d 19 87 14 20 e7 20 42  3d 31 20 80 20 79 25 3c  |.... . B=1 . y%<|
0002fa80  32 30 20 8c 0d 19 88 1d  20 73 74 61 72 74 24 3d  |20 ..... start$=|
0002fa90  75 73 65 72 5f 70 61 74  68 24 28 32 30 2d 79 25  |user_path$(20-y%|
0002faa0  29 0d 19 89 2d 20 f2 75  73 65 72 5f 70 61 74 68  |)...- .user_path|
0002fab0  6e 61 6d 65 28 73 74 61  72 74 24 2c 32 35 36 2c  |name(start$,256,|
0002fac0  79 25 2a 34 30 2b 34 36  2c 34 36 2c a3 29 0d 19  |y%*40+46,46,.)..|
0002fad0  8a 2a 20 e7 20 a9 20 73  74 61 72 74 24 3e 35 20  |.* . . start$>5 |
0002fae0  75 73 65 72 5f 70 61 74  68 24 28 32 30 2d 79 25  |user_path$(20-y%|
0002faf0  29 3d 73 74 61 72 74 24  0d 19 8b 1b 20 f2 75 70  |)=start$.... .up|
0002fb00  64 61 74 65 5f 70 61 74  68 6e 61 6d 65 73 5f 66  |date_pathnames_f|
0002fb10  69 6c 65 0d 19 8c 0f 20  72 65 66 25 3d b9 3a 42  |ile.... ref%=.:B|
0002fb20  3d 31 0d 19 8d 06 20 cd  0d 19 8e 04 0d 19 8f 0b  |=1.... .........|
0002fb30  20 fd 20 42 3c 3e 30 0d  19 90 04 0d 19 91 0d 20  | . B<>0........ |
0002fb40  fd 20 ac 20 72 65 66 25  0d 19 92 04 0d 19 93 0e  |. . ref%........|
0002fb50  20 e7 20 79 25 3c 32 30  20 8c 0d 19 94 35 20 20  | . y%<20 ....5  |
0002fb60  e7 20 a9 28 75 73 65 72  5f 70 61 74 68 24 28 32  |. .(user_path$(2|
0002fb70  30 2d 79 25 29 29 3e 35  20 64 69 72 24 3d 75 73  |0-y%))>5 dir$=us|
0002fb80  65 72 5f 70 61 74 68 24  28 32 30 2d 79 25 29 0d  |er_path$(20-y%).|
0002fb90  19 95 19 20 20 64 72 76  25 3d 32 30 3a f2 63 6c  |...  drv%=20:.cl|
0002fba0  69 63 6b 5f 69 6e 66 6f  0d 19 96 07 20 20 cd 0d  |ick_info....  ..|
0002fbb0  19 97 1e 20 e7 20 79 25  3d 32 30 20 64 69 72 24  |... . y%=20 dir$|
0002fbc0  3d 64 65 66 61 75 6c 74  5f 64 69 72 24 0d 19 98  |=default_dir$...|
0002fbd0  06 20 e1 0d 19 99 04 0d  19 9a 17 20 dd 20 f2 6c  |. ......... . .l|
0002fbe0  6f 61 64 5f 75 73 65 72  5f 70 61 74 68 73 0d 19  |oad_user_paths..|
0002fbf0  9b 2d 20 20 46 25 3d 8e  28 22 3c 50 73 63 61 6e  |.-  F%=.("<Pscan|
0002fc00  24 44 69 72 3e 2e 55 73  65 72 46 69 6c 65 73 2e  |$Dir>.UserFiles.|
0002fc10  50 61 74 68 6e 61 6d 65  73 22 29 0d 19 9c 11 20  |Pathnames").... |
0002fc20  20 e3 20 4e 25 3d 31 20  b8 20 31 34 0d 19 9d 1a  | . N%=1 . 14....|
0002fc30  20 20 20 75 73 65 72 5f  70 61 74 68 24 28 4e 25  |   user_path$(N%|
0002fc40  29 3d be 23 46 25 0d 19  9e 07 20 20 ed 0d 19 9f  |)=.#F%....  ....|
0002fc50  0a 20 20 d9 23 46 25 0d  19 a0 06 20 e1 0d 19 a1  |.  .#F%.... ....|
0002fc60  04 0d 19 a2 1d 20 dd 20  f2 75 70 64 61 74 65 5f  |..... . .update_|
0002fc70  70 61 74 68 6e 61 6d 65  73 5f 66 69 6c 65 0d 19  |pathnames_file..|
0002fc80  a3 2d 20 20 46 25 3d ad  28 22 3c 50 73 63 61 6e  |.-  F%=.("<Pscan|
0002fc90  24 44 69 72 3e 2e 55 73  65 72 46 69 6c 65 73 2e  |$Dir>.UserFiles.|
0002fca0  50 61 74 68 6e 61 6d 65  73 22 29 0d 19 a4 11 20  |Pathnames").... |
0002fcb0  20 e3 20 4e 25 3d 31 20  b8 20 31 34 0d 19 a5 1a  | . N%=1 . 14....|
0002fcc0  20 20 20 d5 23 46 25 2c  75 73 65 72 5f 70 61 74  |   .#F%,user_pat|
0002fcd0  68 24 28 4e 25 29 0d 19  a6 07 20 20 ed 0d 19 a7  |h$(N%)....  ....|
0002fce0  0a 20 20 d9 23 46 25 0d  19 a8 06 20 e1 0d 19 a9  |.  .#F%.... ....|
0002fcf0  04 0d 19 aa 1c 20 dd 20  f2 70 69 70 65 5f 62 6f  |..... . .pipe_bo|
0002fd00  72 64 65 72 5f 6d 65 6e  75 28 79 25 29 0d 19 ab  |rder_menu(y%)...|
0002fd10  25 20 6d 65 6e 75 24 28  30 29 3d 22 50 69 70 65  |% menu$(0)="Pipe|
0002fd20  20 62 6f 72 64 65 72 20  6f 70 74 69 6f 6e 73 20  | border options |
0002fd30  20 22 0d 19 ac 21 20 6d  65 6e 75 24 28 31 29 3d  | "...! menu$(1)=|
0002fd40  22 57 68 69 74 65 20 70  69 70 65 20 62 6f 72 64  |"White pipe bord|
0002fd50  65 72 22 0d 19 ad 22 20  6d 65 6e 75 24 28 32 29  |er"..." menu$(2)|
0002fd60  3d 22 59 65 6c 6c 6f 77  20 70 69 70 65 20 62 6f  |="Yellow pipe bo|
0002fd70  72 64 65 72 22 0d 19 ae  20 20 6d 65 6e 75 24 28  |rder"...  menu$(|
0002fd80  33 29 3d 22 43 79 61 6e  20 70 69 70 65 20 62 6f  |3)="Cyan pipe bo|
0002fd90  72 64 65 72 22 0d 19 af  21 20 6d 65 6e 75 24 28  |rder"...! menu$(|
0002fda0  34 29 3d 22 47 72 65 65  6e 20 70 69 70 65 20 62  |4)="Green pipe b|
0002fdb0  6f 72 64 65 72 22 0d 19  b0 23 20 6d 65 6e 75 24  |order"...# menu$|
0002fdc0  28 35 29 3d 22 4d 61 67  65 6e 74 61 20 70 69 70  |(5)="Magenta pip|
0002fdd0  65 20 62 6f 72 64 65 72  22 0d 19 b1 1f 20 6d 65  |e border".... me|
0002fde0  6e 75 24 28 36 29 3d 22  52 65 64 20 70 69 70 65  |nu$(6)="Red pipe|
0002fdf0  20 62 6f 72 64 65 72 22  0d 19 b2 20 20 6d 65 6e  | border"...  men|
0002fe00  75 24 28 37 29 3d 22 42  6c 75 65 20 70 69 70 65  |u$(7)="Blue pipe|
0002fe10  20 62 6f 72 64 65 72 22  0d 19 b3 20 20 6d 65 6e  | border"...  men|
0002fe20  75 24 28 38 29 3d 22 2a  22 3a f2 6d 65 6e 75 28  |u$(8)="*":.menu(|
0002fe30  30 2c 39 30 2c 2d 31 29  0d 19 b4 2f 20 e7 20 6d  |0,90,-1).../ . m|
0002fe40  65 6e 75 5f 62 6f 78 25  3c 3e 39 39 20 f2 70 69  |enu_box%<>99 .pi|
0002fe50  70 65 5f 62 6f 72 64 65  72 28 6d 65 6e 75 5f 62  |pe_border(menu_b|
0002fe60  6f 78 25 2c 79 25 29 0d  19 b5 06 20 e1 0d 19 b6  |ox%,y%).... ....|
0002fe70  04 0d 19 b7 21 20 dd 20  f2 70 69 70 65 5f 62 6f  |....! . .pipe_bo|
0002fe80  72 64 65 72 28 70 69 70  65 5f 63 6f 6c 25 2c 79  |rder(pipe_col%,y|
0002fe90  25 29 0d 19 b8 14 20 f2  64 69 73 70 6c 61 79 5f  |%).... .display_|
0002fea0  6d 65 6d 6f 72 79 0d 19  b9 13 20 c8 8e 20 70 69  |memory.... .. pi|
0002feb0  70 65 5f 63 6f 6c 25 20  ca 0d 19 ba 2f 20 c9 20  |pe_col% ..../ . |
0002fec0  31 3a 72 25 3d 36 34 3a  67 25 3d 36 34 3a 62 25  |1:r%=64:g%=64:b%|
0002fed0  3d 36 34 3a 72 69 25 3d  31 32 3a 67 69 25 3d 31  |=64:ri%=12:gi%=1|
0002fee0  32 3a 62 69 25 3d 31 32  0d 19 bb 2d 20 c9 20 32  |2:bi%=12...- . 2|
0002fef0  3a 72 25 3d 36 34 3a 67  25 3d 36 34 3a 62 25 3d  |:r%=64:g%=64:b%=|
0002ff00  30 3a 72 69 25 3d 31 32  3a 67 69 25 3d 31 32 3a  |0:ri%=12:gi%=12:|
0002ff10  62 69 25 3d 30 0d 19 bc  2d 20 c9 20 33 3a 72 25  |bi%=0...- . 3:r%|
0002ff20  3d 30 3a 67 25 3d 36 34  3a 62 25 3d 36 34 3a 72  |=0:g%=64:b%=64:r|
0002ff30  69 25 3d 30 3a 67 69 25  3d 31 32 3a 62 69 25 3d  |i%=0:gi%=12:bi%=|
0002ff40  31 32 0d 19 bd 2b 20 c9  20 34 3a 72 25 3d 30 3a  |12...+ . 4:r%=0:|
0002ff50  67 25 3d 36 34 3a 62 25  3d 30 3a 72 69 25 3d 30  |g%=64:b%=0:ri%=0|
0002ff60  3a 67 69 25 3d 31 32 3a  62 69 25 3d 30 0d 19 be  |:gi%=12:bi%=0...|
0002ff70  2d 20 c9 20 35 3a 72 25  3d 36 34 3a 67 25 3d 30  |- . 5:r%=64:g%=0|
0002ff80  3a 62 25 3d 36 34 3a 72  69 25 3d 31 32 3a 67 69  |:b%=64:ri%=12:gi|
0002ff90  25 3d 30 3a 62 69 25 3d  31 32 0d 19 bf 2b 20 c9  |%=0:bi%=12...+ .|
0002ffa0  20 36 3a 72 25 3d 36 34  3a 67 25 3d 30 3a 62 25  | 6:r%=64:g%=0:b%|
0002ffb0  3d 30 3a 72 69 25 3d 31  32 3a 67 69 25 3d 30 3a  |=0:ri%=12:gi%=0:|
0002ffc0  62 69 25 3d 30 0d 19 c0  2b 20 c9 20 37 3a 72 25  |bi%=0...+ . 7:r%|
0002ffd0  3d 30 3a 67 25 3d 30 3a  62 25 3d 36 34 3a 72 69  |=0:g%=0:b%=64:ri|
0002ffe0  25 3d 30 3a 67 69 25 3d  30 3a 62 69 25 3d 31 32  |%=0:gi%=0:bi%=12|
0002fff0  0d 19 c1 06 20 cb 0d 19  c2 1e 20 e7 20 79 25 3d  |.... ..... . y%=|
00030000  39 20 79 79 25 3d 31 30  32 32 20 8b 20 79 79 25  |9 yy%=1022 . yy%|
00030010  3d 39 35 38 0d 19 c3 13  20 e3 20 58 25 3d 30 20  |=958.... . X%=0 |
00030020  b8 20 36 34 20 88 32 0d  19 c4 0f 20 e6 20 72 25  |. 64 .2.... . r%|
00030030  2c 67 25 2c 62 25 0d 19  c5 20 20 c8 93 20 58 25  |,g%,b%...  .. X%|
00030040  2c 58 25 2c 31 32 37 38  2d 58 25 2a 32 2c 79 79  |,X%,1278-X%*2,yy|
00030050  25 2d 58 25 2a 32 0d 19  c6 1e 20 72 25 2b 3d 72  |%-X%*2.... r%+=r|
00030060  69 25 3a e7 20 72 25 3e  32 34 30 20 72 69 25 3d  |i%:. r%>240 ri%=|
00030070  2d 72 69 25 0d 19 c7 1e  20 67 25 2b 3d 67 69 25  |-ri%.... g%+=gi%|
00030080  3a e7 20 67 25 3e 32 34  30 20 67 69 25 3d 2d 67  |:. g%>240 gi%=-g|
00030090  69 25 0d 19 c8 1e 20 62  25 2b 3d 62 69 25 3a e7  |i%.... b%+=bi%:.|
000300a0  20 62 25 3e 32 34 30 20  62 69 25 3d 2d 62 69 25  | b%>240 bi%=-bi%|
000300b0  0d 19 c9 0e 20 ed 3a f2  75 70 6d 69 6e 69 0d 19  |.... .:.upmini..|
000300c0  ca 06 20 e1 0d 19 cb 04  0d 19 cc 2a 20 dd 20 f2  |.. ........* . .|
000300d0  70 6c 69 6e 74 68 32 28  78 2c 79 2c 77 2c 68 2c  |plinth2(x,y,w,h,|
000300e0  52 31 2c 47 31 2c 42 31  2c 52 49 2c 47 49 2c 42  |R1,G1,B1,RI,GI,B|
000300f0  49 29 0d 19 cd 13 20 52  3d 52 31 3a 47 3d 47 31  |I).... R=R1:G=G1|
00030100  3a 42 3d 42 31 0d 19 ce  16 20 ef 20 32 34 2c 78  |:B=B1.... . 24,x|
00030110  3b 79 3b 78 2b 77 3b 79  2b 68 3b 0d 19 cf 16 20  |;y;x+w;y+h;.... |
00030120  e3 20 78 32 3d 78 2d 77  20 b8 20 78 2b 77 20 88  |. x2=x-w . x+w .|
00030130  38 0d 19 d0 20 20 e6 20  52 2c 47 2c 42 3a ec 20  |8...  . R,G,B:. |
00030140  78 32 2c 79 3a ec 20 78  32 2b 77 2c 79 2b 68 2b  |x2,y:. x2+w,y+h+|
00030150  68 0d 19 d1 22 20 f0 20  38 35 2c 78 32 2b 77 2c  |h..." . 85,x2+w,|
00030160  79 3a 52 2b 3d 52 49 3a  47 2b 3d 47 49 3a 42 2b  |y:R+=RI:G+=GI:B+|
00030170  3d 42 49 0d 19 d2 19 20  e7 20 52 3e 32 35 35 20  |=BI.... . R>255 |
00030180  52 3d 32 35 35 3a 52 49  3d 2d 52 49 0d 19 d3 19  |R=255:RI=-RI....|
00030190  20 e7 20 47 3e 32 35 35  20 47 3d 32 35 35 3a 47  | . G>255 G=255:G|
000301a0  49 3d 2d 47 49 0d 19 d4  19 20 e7 20 42 3e 32 35  |I=-GI.... . B>25|
000301b0  35 20 42 3d 32 35 35 3a  42 49 3d 2d 42 49 0d 19  |5 B=255:BI=-BI..|
000301c0  d5 15 20 e7 20 52 3c 30  20 52 3d 30 3a 52 49 3d  |.. . R<0 R=0:RI=|
000301d0  2d 52 49 0d 19 d6 15 20  e7 20 47 3c 30 20 47 3d  |-RI.... . G<0 G=|
000301e0  30 3a 47 49 3d 2d 47 49  0d 19 d7 15 20 e7 20 42  |0:GI=-GI.... . B|
000301f0  3c 30 20 42 3d 30 3a 42  49 3d 2d 42 49 0d 19 d8  |<0 B=0:BI=-BI...|
00030200  0f 20 ed 3a ef 32 36 3a  c8 96 3a 87 0d 19 d9 0f  |. .:.26:..:.....|
00030210  20 e6 20 52 31 2c 47 31  2c 42 31 0d 19 da 38 20  | . R1,G1,B1...8 |
00030220  86 20 78 2c 79 2c 78 2c  79 2b 68 3a 86 20 78 2b  |. x,y,x,y+h:. x+|
00030230  32 2c 79 2b 32 2c 78 2b  32 2c 79 2b 68 2d 32 3a  |2,y+2,x+2,y+h-2:|
00030240  86 20 78 2b 34 2c 79 2b  34 2c 78 2b 34 2c 79 2b  |. x+4,y+4,x+4,y+|
00030250  68 2d 34 0d 19 db 18 20  52 32 3d 52 31 2f 32 3a  |h-4.... R2=R1/2:|
00030260  e7 20 52 32 3c 30 20 52  32 3d 30 0d 19 dc 18 20  |. R2<0 R2=0.... |
00030270  47 32 3d 47 31 2f 32 3a  e7 20 47 32 3c 30 20 47  |G2=G1/2:. G2<0 G|
00030280  32 3d 30 0d 19 dd 18 20  42 32 3d 42 31 2f 32 3a  |2=0.... B2=B1/2:|
00030290  e7 20 42 32 3c 30 20 42  32 3d 30 0d 19 de 0f 20  |. B2<0 B2=0.... |
000302a0  e6 20 52 32 2c 47 32 2c  42 32 0d 19 df 44 20 86  |. R2,G2,B2...D .|
000302b0  20 78 2b 77 2d 32 2c 79  2b 32 2c 78 2b 77 2d 32  | x+w-2,y+2,x+w-2|
000302c0  2c 79 2b 68 2d 32 3a 86  20 78 2b 77 2c 79 2c 78  |,y+h-2:. x+w,y,x|
000302d0  2b 77 2c 79 2b 68 3a 86  20 78 2b 77 2d 34 2c 79  |+w,y+h:. x+w-4,y|
000302e0  2b 34 2c 78 2b 77 2d 34  2c 79 2b 68 2d 34 0d 19  |+4,x+w-4,y+h-4..|
000302f0  e0 0c 20 e6 20 30 2c 30  2c 30 0d 19 e1 3c 20 86  |.. . 0,0,0...< .|
00030300  20 78 2b 32 2c 79 2c 78  2b 77 2d 32 2c 79 3a 86  | x+2,y,x+w-2,y:.|
00030310  20 78 2b 34 2c 79 2b 32  2c 78 2b 77 2d 34 2c 79  | x+4,y+2,x+w-4,y|
00030320  2b 32 3a 86 20 78 2b 36  2c 79 2b 34 2c 78 2b 77  |+2:. x+6,y+4,x+w|
00030330  2d 36 2c 79 2b 34 0d 19  e2 1c 20 52 33 3d 52 31  |-6,y+4.... R3=R1|
00030340  2a 32 3a e7 20 52 33 3e  32 35 35 20 52 33 3d 32  |*2:. R3>255 R3=2|
00030350  35 35 0d 19 e3 1c 20 47  33 3d 47 31 2a 32 3a e7  |55.... G3=G1*2:.|
00030360  20 47 33 3e 32 35 35 20  47 33 3d 32 35 35 0d 19  | G3>255 G3=255..|
00030370  e4 1c 20 42 33 3d 42 31  2a 32 3a e7 20 42 33 3e  |.. B3=B1*2:. B3>|
00030380  32 35 35 20 42 33 3d 32  35 35 0d 19 e5 0f 20 e6  |255 B3=255.... .|
00030390  20 52 33 2c 47 33 2c 42  33 0d 19 e6 48 20 86 20  | R3,G3,B3...H . |
000303a0  78 2b 32 2c 79 2b 68 2c  78 2b 77 2d 32 2c 79 2b  |x+2,y+h,x+w-2,y+|
000303b0  68 3a 86 20 78 2b 34 2c  79 2b 68 2d 32 2c 78 2b  |h:. x+4,y+h-2,x+|
000303c0  77 2d 34 2c 79 2b 68 2d  32 3a 86 20 78 2b 36 2c  |w-4,y+h-2:. x+6,|
000303d0  79 2b 68 2d 34 2c 78 2b  77 2d 36 2c 79 2b 68 2d  |y+h-4,x+w-6,y+h-|
000303e0  34 0d 19 e7 06 20 e1 0d  19 e8 04 0d 19 e9 1f 20  |4.... ......... |
000303f0  dd 20 f2 64 69 73 70 6c  61 79 5f 68 65 61 64 65  |. .display_heade|
00030400  72 5f 74 65 78 74 28 68  24 29 0d 19 ea 12 20 e7  |r_text(h$).... .|
00030410  20 68 24 3d 22 4e 4f 4e  45 22 20 e1 0d 19 eb 0f  | h$="NONE" .....|
00030420  20 68 24 3d c0 68 24 2c  32 38 29 0d 19 ec 27 20  | h$=.h$,28)...' |
00030430  e7 20 6d 6f 64 65 25 3c  32 30 20 84 20 6d 6f 64  |. mode%<20 . mod|
00030440  65 25 3d 36 33 20 84 20  6d 6f 64 65 25 3d 36 35  |e%=63 . mode%=65|
00030450  20 8c 0d 19 ed 33 20 20  f2 77 72 69 74 65 28 22  | ....3  .write("|
00030460  50 61 6e 65 6c 2e 46 69  78 65 64 22 2c bd 31 32  |Panel.Fixed",.12|
00030470  37 2b 68 24 2c 31 39 30  2c 39 35 36 2c 32 34 2c  |7+h$,190,956,24,|
00030480  32 34 2c 36 29 0d 19 ee  06 20 cc 0d 19 ef 33 20  |24,6).... ....3 |
00030490  20 f2 77 72 69 74 65 28  22 50 61 6e 65 6c 2e 46  | .write("Panel.F|
000304a0  69 78 65 64 22 2c bd 31  32 37 2b 68 24 2c 31 39  |ixed",.127+h$,19|
000304b0  30 2c 39 35 38 2c 31 32  2c 31 32 2c 36 29 0d 19  |0,958,12,12,6)..|
000304c0  f0 06 20 cd 0d 19 f1 13  20 f2 75 70 6c 6f 61 64  |.. ..... .upload|
000304d0  5f 6d 65 6d 6f 72 79 0d  19 f2 06 20 e1 0d 19 f3  |_memory.... ....|
000304e0  04 0d 19 f4 23 20 dd 20  f2 63 72 65 61 74 65 5f  |....# . .create_|
000304f0  64 65 66 61 75 6c 74 5f  6f 70 74 69 6f 6e 73 5f  |default_options_|
00030500  66 69 6c 65 0d 19 f5 34  20 f4 20 55 73 65 64 20  |file...4 . Used |
00030510  77 68 65 6e 20 61 64 64  65 64 20 70 61 72 61 6d  |when added param|
00030520  65 74 65 72 73 20 63 61  75 73 65 20 61 6e 20 45  |eters cause an E|
00030530  4f 46 20 65 72 72 6f 72  0d 19 f6 45 20 f4 20 4f  |OF error...E . O|
00030540  6e 6c 79 20 6e 65 77 2f  6d 69 73 73 69 6e 67 20  |nly new/missing |
00030550  70 61 72 61 6d 65 74 65  72 73 20 61 72 65 20 61  |parameters are a|
00030560  64 64 65 64 20 2d 20 65  78 69 73 74 69 6e 67 20  |dded - existing |
00030570  6f 6e 65 73 20 72 65 74  61 69 6e 65 64 0d 19 f7  |ones retained...|
00030580  30 20 e7 20 63 68 6f 69  63 65 73 5f 6c 69 73 74  |0 . choices_list|
00030590  24 28 31 29 3c 3e 22 6f  6b 22 20 73 61 76 65 5f  |$(1)<>"ok" save_|
000305a0  74 79 70 65 24 3d 22 70  73 63 61 6e 22 0d 19 f8  |type$="pscan"...|
000305b0  30 20 e7 20 63 68 6f 69  63 65 73 5f 6c 69 73 74  |0 . choices_list|
000305c0  24 28 32 29 3c 3e 22 6f  6b 22 20 71 77 69 6b 74  |$(2)<>"ok" qwikt|
000305d0  65 78 74 5f 63 6f 6c 6f  75 72 25 3d 32 0d 19 f9  |ext_colour%=2...|
000305e0  30 20 e7 20 63 68 6f 69  63 65 73 5f 6c 69 73 74  |0 . choices_list|
000305f0  24 28 33 29 3c 3e 22 6f  6b 22 20 71 77 69 6b 74  |$(3)<>"ok" qwikt|
00030600  65 78 74 5f 62 6c 6f 63  6b 25 3d 31 36 0d 19 fa  |ext_block%=16...|
00030610  29 20 e7 20 63 68 6f 69  63 65 73 5f 6c 69 73 74  |) . choices_list|
00030620  24 28 34 29 3c 3e 22 6f  6b 22 20 6a 70 65 67 5f  |$(4)<>"ok" jpeg_|
00030630  6f 70 74 25 3d 31 0d 19  fb 2c 20 e7 20 63 68 6f  |opt%=1..., . cho|
00030640  69 63 65 73 5f 6c 69 73  74 24 28 35 29 3c 3e 22  |ices_list$(5)<>"|
00030650  6f 6b 22 20 70 6c 6f 74  5f 73 68 61 64 6f 77 25  |ok" plot_shadow%|
00030660  3d 31 0d 19 fc 2d 20 e7  20 63 68 6f 69 63 65 73  |=1...- . choices|
00030670  5f 6c 69 73 74 24 28 36  29 3c 3e 22 6f 6b 22 20  |_list$(6)<>"ok" |
00030680  70 6c 6f 74 5f 62 6f 72  64 65 72 25 3d 2d 31 0d  |plot_border%=-1.|
00030690  19 fd 2c 20 e7 20 63 68  6f 69 63 65 73 5f 6c 69  |.., . choices_li|
000306a0  73 74 24 28 37 29 3c 3e  22 6f 6b 22 20 66 61 78  |st$(7)<>"ok" fax|
000306b0  5f 61 76 65 72 61 67 65  25 3d 32 0d 19 fe 25 20  |_average%=2...% |
000306c0  e7 20 63 68 6f 69 63 65  73 5f 6c 69 73 74 24 28  |. choices_list$(|
000306d0  38 29 3c 3e 22 6f 6b 22  20 72 65 64 25 3d 34 30  |8)<>"ok" red%=40|
000306e0  0d 19 ff 25 20 e7 20 63  68 6f 69 63 65 73 5f 6c  |...% . choices_l|
000306f0  69 73 74 24 28 39 29 3c  3e 22 6f 6b 22 20 67 72  |ist$(9)<>"ok" gr|
00030700  6e 25 3d 39 36 0d 1a 00  27 20 e7 20 63 68 6f 69  |n%=96...' . choi|
00030710  63 65 73 5f 6c 69 73 74  24 28 31 30 29 3c 3e 22  |ces_list$(10)<>"|
00030720  6f 6b 22 20 62 6c 75 25  3d 32 30 30 0d 1a 01 27  |ok" blu%=200...'|
00030730  20 e7 20 63 68 6f 69 63  65 73 5f 6c 69 73 74 24  | . choices_list$|
00030740  28 31 31 29 3c 3e 22 6f  6b 22 20 6a 70 67 71 25  |(11)<>"ok" jpgq%|
00030750  3d 37 35 0d 1a 02 2a 20  e7 20 63 68 6f 69 63 65  |=75...* . choice|
00030760  73 5f 6c 69 73 74 24 28  31 32 29 3c 3e 22 6f 6b  |s_list$(12)<>"ok|
00030770  22 20 49 6f 66 66 73 65  74 25 3d 34 30 0d 1a 03  |" Ioffset%=40...|
00030780  2d 20 e7 20 63 68 6f 69  63 65 73 5f 6c 69 73 74  |- . choices_list|
00030790  24 28 31 33 29 3c 3e 22  6f 6b 22 20 68 65 61 64  |$(13)<>"ok" head|
000307a0  65 72 5f 74 65 78 74 25  3d a3 0d 1a 04 2f 20 e7  |er_text%=..../ .|
000307b0  20 63 68 6f 69 63 65 73  5f 6c 69 73 74 24 28 31  | choices_list$(1|
000307c0  34 29 3c 3e 22 6f 6b 22  20 70 64 5f 61 75 74 6f  |4)<>"ok" pd_auto|
000307d0  5f 6c 69 6e 65 73 25 3d  38 0d 1a 05 2b 20 e7 20  |_lines%=8...+ . |
000307e0  63 68 6f 69 63 65 73 5f  6c 69 73 74 24 28 31 35  |choices_list$(15|
000307f0  29 3c 3e 22 6f 6b 22 20  73 73 74 76 5f 74 69 6d  |)<>"ok" sstv_tim|
00030800  65 25 3d 32 0d 1a 06 2f  20 e7 20 63 68 6f 69 63  |e%=2.../ . choic|
00030810  65 73 5f 6c 69 73 74 24  28 31 36 29 3c 3e 22 6f  |es_list$(16)<>"o|
00030820  6b 22 20 6f 75 74 6c 69  6e 65 5f 77 69 64 74 68  |k" outline_width|
00030830  25 3d 32 0d 1a 07 2b 20  e7 20 63 68 6f 69 63 65  |%=2...+ . choice|
00030840  73 5f 6c 69 73 74 24 28  31 37 29 3c 3e 22 6f 6b  |s_list$(17)<>"ok|
00030850  22 20 62 65 61 63 6f 6e  5f 6f 6e 25 3d b9 0d 1a  |" beacon_on%=...|
00030860  08 04 0d 1a 09 2a 20 46  25 3d ae 28 22 3c 50 73  |.....* F%=.("<Ps|
00030870  63 61 6e 24 44 69 72 3e  2e 55 73 65 72 46 69 6c  |can$Dir>.UserFil|
00030880  65 73 2e 4f 70 74 69 6f  6e 73 22 29 0d 1a 0a 14  |es.Options")....|
00030890  20 f1 23 46 25 2c 73 61  76 65 5f 74 79 70 65 24  | .#F%,save_type$|
000308a0  0d 1a 0b 1a 20 f1 23 46  25 2c 71 77 69 6b 74 65  |.... .#F%,qwikte|
000308b0  78 74 5f 63 6f 6c 6f 75  72 25 0d 1a 0c 19 20 f1  |xt_colour%.... .|
000308c0  23 46 25 2c 71 77 69 6b  74 65 78 74 5f 62 6c 6f  |#F%,qwiktext_blo|
000308d0  63 6b 25 0d 1a 0d 13 20  f1 23 46 25 2c 6a 70 65  |ck%.... .#F%,jpe|
000308e0  67 5f 6f 70 74 25 0d 1a  0e 16 20 f1 23 46 25 2c  |g_opt%.... .#F%,|
000308f0  70 6c 6f 74 5f 73 68 61  64 6f 77 25 0d 1a 0f 16  |plot_shadow%....|
00030900  20 f1 23 46 25 2c 70 6c  6f 74 5f 62 6f 72 64 65  | .#F%,plot_borde|
00030910  72 25 0d 1a 10 16 20 f1  23 46 25 2c 66 61 78 5f  |r%.... .#F%,fax_|
00030920  61 76 65 72 61 67 65 25  0d 1a 11 0e 20 f1 23 46  |average%.... .#F|
00030930  25 2c 72 65 64 25 0d 1a  12 0e 20 f1 23 46 25 2c  |%,red%.... .#F%,|
00030940  67 72 6e 25 0d 1a 13 0e  20 f1 23 46 25 2c 62 6c  |grn%.... .#F%,bl|
00030950  75 25 0d 1a 14 0f 20 f1  23 46 25 2c 6a 70 67 71  |u%.... .#F%,jpgq|
00030960  25 0d 1a 15 12 20 f1 23  46 25 2c 49 6f 66 66 73  |%.... .#F%,Ioffs|
00030970  65 74 25 0d 1a 16 16 20  f1 23 46 25 2c 68 65 61  |et%.... .#F%,hea|
00030980  64 65 72 5f 74 65 78 74  25 0d 1a 17 18 20 f1 23  |der_text%.... .#|
00030990  46 25 2c 70 64 5f 61 75  74 6f 5f 6c 69 6e 65 73  |F%,pd_auto_lines|
000309a0  25 0d 1a 18 14 20 f1 23  46 25 2c 73 73 74 76 5f  |%.... .#F%,sstv_|
000309b0  74 69 6d 65 25 0d 1a 19  18 20 f1 23 46 25 2c 6f  |time%.... .#F%,o|
000309c0  75 74 6c 69 6e 65 5f 77  69 64 74 68 25 0d 1a 1a  |utline_width%...|
000309d0  14 20 f1 23 46 25 2c 62  65 61 63 6f 6e 5f 6f 6e  |. .#F%,beacon_on|
000309e0  25 0d 1a 1b 09 20 d9 23  46 25 0d 1a 1c 04 0d 1a  |%.... .#F%......|
000309f0  1d 06 20 e1 0d 1a 1e 04  0d 1a 1f 29 20 dd 20 a4  |.. ........) . .|
00030a00  63 68 65 63 6b 5f 62 75  74 74 6f 6e 28 63 62 78  |check_button(cbx|
00030a10  25 2c 63 62 79 25 2c 63  62 77 25 2c 63 62 68 25  |%,cby%,cbw%,cbh%|
00030a20  29 0d 1a 20 1e 20 63 62  78 25 2b 3d 63 62 77 25  |).. . cbx%+=cbw%|
00030a30  2f 32 3a 63 62 79 25 2b  3d 63 62 68 25 2f 32 0d  |/2:cby%+=cbh%/2.|
00030a40  1a 21 18 20 c8 97 20 63  62 6d 78 25 2c 63 62 6d  |.!. .. cbmx%,cbm|
00030a50  79 25 2c 63 62 62 25 0d  1a 22 3c 20 e7 20 94 28  |y%,cbb%.."< . .(|
00030a60  63 62 78 25 2d 63 62 6d  78 25 29 3c 28 63 62 77  |cbx%-cbmx%)<(cbw|
00030a70  25 2f 32 29 2b 34 20 80  20 94 28 63 62 79 25 2d  |%/2)+4 . .(cby%-|
00030a80  63 62 6d 79 25 29 3c 28  63 62 68 25 2f 32 29 2b  |cbmy%)<(cbh%/2)+|
00030a90  34 20 8c 0d 1a 23 08 20  20 3d b9 0d 1a 24 06 20  |4 ...#.  =...$. |
00030aa0  cc 0d 1a 25 08 20 20 3d  a3 0d 1a 26 06 20 cd 0d  |...%.  =...&. ..|
00030ab0  1a 27 04 0d 1a 28 21 20  dd 20 f2 76 69 73 5f 63  |.'...(! . .vis_c|
00030ac0  6f 6e 76 65 72 74 5f 74  6f 5f 6d 6f 64 65 28 76  |onvert_to_mode(v|
00030ad0  69 73 25 29 0d 1a 29 10  20 67 6f 6f 64 5f 76 69  |is%)..). good_vi|
00030ae0  73 25 3d b9 0d 1a 2a 0e  20 c8 8e 20 76 69 73 25  |s%=...*. .. vis%|
00030af0  20 ca 0d 1a 2b 12 20 c9  20 31 37 32 3a 6d 6f 64  | ...+. . 172:mod|
00030b00  65 25 3d 31 0d 1a 2c 12  20 c9 20 34 30 20 3a 6d  |e%=1..,. . 40 :m|
00030b10  6f 64 65 25 3d 32 0d 1a  2d 12 20 c9 20 36 30 20  |ode%=2..-. . 60 |
00030b20  3a 6d 6f 64 65 25 3d 35  0d 1a 2e 12 20 c9 20 31  |:mode%=5.... . 1|
00030b30  38 34 3a 6d 6f 64 65 25  3d 36 0d 1a 2f 12 20 c9  |84:mode%=6../. .|
00030b40  20 32 30 34 3a 6d 6f 64  65 25 3d 39 0d 1a 30 21  | 204:mode%=9..0!|
00030b50  20 c9 20 31 38 33 3a e7  20 6d 6f 64 65 25 3c 3e  | . 183:. mode%<>|
00030b60  31 32 20 8c 20 6d 6f 64  65 25 3d 31 31 0d 1a 31  |12 . mode%=11..1|
00030b70  1e 20 c9 20 39 36 20 3a  6d 6f 64 65 25 3d 36 30  |. . 96 :mode%=60|
00030b80  20 3a 20 f4 20 50 44 2d  31 38 30 0d 1a 32 1e 20  | : . PD-180..2. |
00030b90  c9 20 32 32 35 3a 6d 6f  64 65 25 3d 36 31 20 3a  |. 225:mode%=61 :|
00030ba0  20 f4 20 50 44 2d 32 34  30 0d 1a 33 1e 20 c9 20  | . PD-240..3. . |
00030bb0  32 32 36 3a 6d 6f 64 65  25 3d 36 32 20 3a 20 f4  |226:mode%=62 : .|
00030bc0  20 50 44 2d 31 36 30 0d  1a 34 1d 20 c9 20 39 39  | PD-160..4. . 99|
00030bd0  20 3a 6d 6f 64 65 25 3d  36 33 20 3a 20 f4 20 50  | :mode%=63 : . P|
00030be0  44 2d 39 30 0d 1a 35 1e  20 c9 20 39 35 20 3a 6d  |D-90..5. . 95 :m|
00030bf0  6f 64 65 25 3d 36 34 20  3a 20 f4 20 50 44 2d 31  |ode%=64 : . PD-1|
00030c00  32 30 0d 1a 36 1d 20 c9  20 32 32 31 3a 6d 6f 64  |20..6. . 221:mod|
00030c10  65 25 3d 36 35 20 3a 20  f4 20 50 44 2d 35 30 0d  |e%=65 : . PD-50.|
00030c20  1a 37 1a 20 c9 20 31 31  33 3a 6d 6f 64 65 25 3d  |.7. . 113:mode%=|
00030c30  32 30 20 3a 20 f4 20 50  33 0d 1a 38 1a 20 c9 20  |20 : . P3..8. . |
00030c40  31 31 34 3a 6d 6f 64 65  25 3d 32 31 20 3a 20 f4  |114:mode%=21 : .|
00030c50  20 50 35 0d 1a 39 1a 20  c9 20 32 34 33 3a 6d 6f  | P5..9. . 243:mo|
00030c60  64 65 25 3d 32 32 20 3a  20 f4 20 50 37 0d 1a 3a  |de%=22 : . P7..:|
00030c70  1b 20 c9 20 31 36 39 3a  6d 6f 64 65 25 3d 37 30  |. . 169:mode%=70|
00030c80  20 3a 20 f4 20 48 51 31  0d 1a 3b 1b 20 c9 20 31  | : . HQ1..;. . 1|
00030c90  37 30 3a 6d 6f 64 65 25  3d 37 31 20 3a 20 f4 20  |70:mode%=71 : . |
00030ca0  48 51 32 0d 1a 3c 06 20  7f 0d 1a 3d 10 20 67 6f  |HQ2..<. ...=. go|
00030cb0  6f 64 5f 76 69 73 25 3d  a3 0d 1a 3e 06 20 cb 0d  |od_vis%=...>. ..|
00030cc0  1a 3f 06 20 e1 0d 1a 40  04 0d 1a 41 12 20 dd 20  |.?. ...@...A. . |
00030cd0  f2 63 77 5f 74 78 28 43  57 24 29 0d 1a 42 2c 20  |.cw_tx(CW$)..B, |
00030ce0  f2 63 77 5f 70 72 65 70  61 72 65 28 43 57 24 29  |.cw_prepare(CW$)|
00030cf0  3a 76 69 73 5f 70 61 72  61 6d 25 21 39 32 3d 63  |:vis_param%!92=c|
00030d00  77 5f 64 61 74 61 25 0d  1a 43 23 20 66 25 3d 31  |w_data%..C# f%=1|
00030d10  30 30 30 20 3a 20 f4 20  43 57 20 74 6f 6e 65 20  |000 : . CW tone |
00030d20  69 73 20 31 30 30 30 20  48 7a 0d 1a 44 18 20 e7  |is 1000 Hz..D. .|
00030d30  20 58 34 25 20 8c 20 4d  25 3d 34 20 8b 20 4d 25  | X4% . M%=4 . M%|
00030d40  3d 31 0d 1a 45 25 20 63  25 3d a8 28 31 2f 28 66  |=1..E% c%=.(1/(f|
00030d50  25 2a 4d 25 29 2f 32 2a  31 30 30 30 30 30 30 2a  |%*M%)/2*1000000*|
00030d60  32 2d 31 2b 2e 35 29 0d  1a 46 32 20 76 69 73 5f  |2-1+.5)..F2 vis_|
00030d70  70 61 72 61 6d 25 21 35  36 3d 63 25 20 83 20 32  |param%!56=c% . 2|
00030d80  35 36 3a 76 69 73 5f 70  61 72 61 6d 25 21 36 30  |56:vis_param%!60|
00030d90  3d 63 25 20 81 20 32 35  36 0d 1a 47 14 20 76 69  |=c% . 256..G. vi|
00030da0  73 5f 70 61 72 61 6d 25  21 38 30 3d 33 0d 1a 48  |s_param%!80=3..H|
00030db0  1e 20 76 69 73 5f 70 61  72 61 6d 25 21 34 3d 73  |. vis_param%!4=s|
00030dc0  65 72 69 61 6c 5f 62 61  73 65 25 0d 1a 49 14 20  |erial_base%..I. |
00030dd0  f2 77 61 69 74 5f 6e 6f  5f 62 75 74 74 6f 6e 0d  |.wait_no_button.|
00030de0  1a 4a 1e 20 d6 20 76 69  73 5f 63 6f 64 65 25 2b  |.J. . vis_code%+|
00030df0  28 76 69 73 5f 63 6f 64  65 25 21 38 29 0d 1a 4b  |(vis_code%!8)..K|
00030e00  14 20 f2 77 61 69 74 5f  6e 6f 5f 62 75 74 74 6f  |. .wait_no_butto|
00030e10  6e 0d 1a 4c 06 20 e1 0d  1a 4d 04 0d 1a 4e 17 20  |n..L. ...M...N. |
00030e20  dd 20 f2 63 77 5f 70 72  65 70 61 72 65 28 43 57  |. .cw_prepare(CW|
00030e30  24 29 0d 1a 4f 09 20 f7  20 2b 30 0d 1a 50 27 20  |$)..O. . +0..P' |
00030e40  e3 20 4e 25 3d 30 20 b8  20 34 32 3a f3 20 63 77  |. N%=0 . 42:. cw|
00030e50  5f 74 61 62 6c 65 24 28  4e 25 29 3a ed 3a 41 25  |_table$(N%):.:A%|
00030e60  3d 30 0d 1a 51 18 20 63  77 5f 64 61 74 61 25 3f  |=0..Q. cw_data%?|
00030e70  41 25 3d 30 3a 41 25 2b  3d 31 0d 1a 52 13 20 e3  |A%=0:A%+=1..R. .|
00030e80  20 4e 25 3d 31 20 b8 20  a9 20 43 57 24 0d 1a 53  | N%=1 . . CW$..S|
00030e90  15 20 43 25 3d 97 28 c1  43 57 24 2c 4e 25 2c 31  |. C%=.(.CW$,N%,1|
00030ea0  29 29 0d 1a 54 41 20 e7  20 43 25 3e 3d 97 22 61  |))..TA . C%>=."a|
00030eb0  22 20 80 20 43 25 3c 3d  97 22 7a 22 20 43 25 2d  |" . C%<=."z" C%-|
00030ec0  3d 33 32 20 3a 20 f4 20  43 6f 6e 76 65 72 74 20  |=32 : . Convert |
00030ed0  6c 6f 77 65 72 20 63 61  73 65 20 74 6f 20 75 70  |lower case to up|
00030ee0  70 65 72 0d 1a 55 29 20  e7 20 28 43 25 3c 97 22  |per..U) . (C%<."|
00030ef0  2f 22 20 84 20 43 25 3e  97 22 5a 22 29 20 80 20  |/" . C%>."Z") . |
00030f00  43 25 3c 3e 33 32 20 43  25 3d 33 32 0d 1a 56 2d  |C%<>32 C%=32..V-|
00030f10  20 e7 20 43 25 3d 33 32  20 63 77 32 24 3d 22 35  | . C%=32 cw2$="5|
00030f20  22 20 8b 20 63 77 32 24  3d 63 77 5f 74 61 62 6c  |" . cw2$=cw_tabl|
00030f30  65 24 28 43 25 2d 34 37  29 0d 1a 57 16 20 e3 20  |e$(C%-47)..W. . |
00030f40  4e 32 25 3d 31 20 b8 20  a9 28 63 77 32 24 29 0d  |N2%=1 . .(cw2$).|
00030f50  1a 58 16 20 63 77 33 24  3d c1 63 77 32 24 2c 4e  |.X. cw3$=.cw2$,N|
00030f60  32 25 2c 31 29 0d 1a 59  1f 20 f2 63 77 5f 6f 6e  |2%,1)..Y. .cw_on|
00030f70  65 73 5f 61 6e 64 5f 6e  6f 75 67 68 74 73 28 63  |es_and_noughts(c|
00030f80  77 33 24 29 0d 1a 5a 06  20 ed 0d 1a 5b 1e 20 f2  |w3$)..Z. ...[. .|
00030f90  63 77 5f 6f 6e 65 73 5f  61 6e 64 5f 6e 6f 75 67  |cw_ones_and_noug|
00030fa0  68 74 73 28 22 33 22 29  0d 1a 5c 06 20 ed 0d 1a  |hts("3")..\. ...|
00030fb0  5d 35 20 63 77 5f 64 61  74 61 25 3f 41 25 3d 30  |]5 cw_data%?A%=0|
00030fc0  3a 41 25 2b 3d 31 3a 63  77 5f 64 61 74 61 25 3f  |:A%+=1:cw_data%?|
00030fd0  41 25 3d 32 20 3a 20 f4  20 45 6e 64 20 6d 61 72  |A%=2 : . End mar|
00030fe0  6b 65 72 0d 1a 5e 04 0d  1a 5f 18 20 dc 20 22 32  |ker..^..._. . "2|
00030ff0  31 31 32 31 22 20 3a 20  52 45 4d 20 22 2f 22 0d  |1121" : REM "/".|
00031000  1a 60 18 20 dc 20 22 32  32 32 32 32 22 20 3a 20  |.`. . "22222" : |
00031010  52 45 4d 20 22 30 22 0d  1a 61 0e 20 dc 20 22 31  |REM "0"..a. . "1|
00031020  32 32 32 32 22 0d 1a 62  0e 20 dc 20 22 31 31 32  |2222"..b. . "112|
00031030  32 32 22 0d 1a 63 0e 20  dc 20 22 31 31 31 32 32  |22"..c. . "11122|
00031040  22 0d 1a 64 0e 20 dc 20  22 31 31 31 31 32 22 0d  |"..d. . "11112".|
00031050  1a 65 0e 20 dc 20 22 31  31 31 31 31 22 0d 1a 66  |.e. . "11111"..f|
00031060  0e 20 dc 20 22 32 31 31  31 31 22 0d 1a 67 0e 20  |. . "21111"..g. |
00031070  dc 20 22 32 32 31 31 31  22 0d 1a 68 0e 20 dc 20  |. "22111"..h. . |
00031080  22 32 32 32 31 31 22 0d  1a 69 18 20 dc 20 22 32  |"22211"..i. . "2|
00031090  32 32 32 31 22 20 3a 20  52 45 4d 20 22 39 22 0d  |2221" : REM "9".|
000310a0  1a 6a 22 20 dc 20 22 31  22 2c 22 31 22 2c 22 31  |.j" . "1","1","1|
000310b0  22 2c 22 31 22 2c 22 31  22 2c 22 31 22 2c 22 31  |","1","1","1","1|
000310c0  22 0d 1a 6b 18 20 dc 20  22 31 32 22 20 20 20 20  |"..k. . "12"    |
000310d0  3a 20 52 45 4d 20 22 41  22 0d 1a 6c 0d 20 dc 20  |: REM "A"..l. . |
000310e0  22 32 31 31 31 22 0d 1a  6d 0d 20 dc 20 22 32 31  |"2111"..m. . "21|
000310f0  32 31 22 0d 1a 6e 0c 20  dc 20 22 32 31 31 22 0d  |21"..n. . "211".|
00031100  1a 6f 0a 20 dc 20 22 31  22 0d 1a 70 0d 20 dc 20  |.o. . "1"..p. . |
00031110  22 31 31 32 31 22 0d 1a  71 0c 20 dc 20 22 32 32  |"1121"..q. . "22|
00031120  31 22 0d 1a 72 0d 20 dc  20 22 31 31 31 31 22 0d  |1"..r. . "1111".|
00031130  1a 73 0b 20 dc 20 22 31  31 22 0d 1a 74 0d 20 dc  |.s. . "11"..t. .|
00031140  20 22 31 32 32 32 22 0d  1a 75 0c 20 dc 20 22 32  | "1222"..u. . "2|
00031150  31 32 22 0d 1a 76 0d 20  dc 20 22 31 32 31 31 22  |12"..v. . "1211"|
00031160  0d 1a 77 0b 20 dc 20 22  32 32 22 0d 1a 78 0b 20  |..w. . "22"..x. |
00031170  dc 20 22 32 31 22 0d 1a  79 0c 20 dc 20 22 32 32  |. "21"..y. . "22|
00031180  32 22 0d 1a 7a 0d 20 dc  20 22 31 32 32 31 22 0d  |2"..z. . "1221".|
00031190  1a 7b 0d 20 dc 20 22 32  32 31 32 22 0d 1a 7c 0c  |.{. . "2212"..|.|
000311a0  20 dc 20 22 31 32 31 22  0d 1a 7d 0c 20 dc 20 22  | . "121"..}. . "|
000311b0  31 31 31 22 0d 1a 7e 0a  20 dc 20 22 32 22 0d 1a  |111"..~. . "2"..|
000311c0  7f 0c 20 dc 20 22 31 31  32 22 0d 1a 80 0d 20 dc  |.. . "112".... .|
000311d0  20 22 31 31 31 32 22 0d  1a 81 0c 20 dc 20 22 31  | "1112".... . "1|
000311e0  32 32 22 0d 1a 82 0d 20  dc 20 22 32 31 31 32 22  |22".... . "2112"|
000311f0  0d 1a 83 0d 20 dc 20 22  32 31 32 32 22 0d 1a 84  |.... . "2122"...|
00031200  18 20 dc 20 22 32 32 31  31 22 20 20 3a 20 52 45  |. . "2211"  : RE|
00031210  4d 20 22 5a 22 0d 1a 85  06 20 e1 0d 1a 86 04 0d  |M "Z".... ......|
00031220  1a 87 1f 20 dd 20 f2 63  77 5f 6f 6e 65 73 5f 61  |... . .cw_ones_a|
00031230  6e 64 5f 6e 6f 75 67 68  74 73 28 43 24 29 0d 1a  |nd_noughts(C$)..|
00031240  88 2e 20 f4 20 31 3d 64  69 74 20 32 3d 64 61 68  |.. . 1=dit 2=dah|
00031250  20 33 3d 6c 65 74 74 65  72 20 73 70 61 63 65 20  | 3=letter space |
00031260  35 3d 77 6f 72 64 20 73  70 61 63 65 0d 1a 89 13  |5=word space....|
00031270  20 e3 20 6e 25 3d 31 20  b8 20 a9 28 43 24 29 0d  | . n%=1 . .(C$).|
00031280  1a 8a 11 20 63 24 3d c1  43 24 2c 6e 25 2c 31 29  |... c$=.C$,n%,1)|
00031290  0d 1a 8b 0c 20 c8 8e 20  63 24 20 ca 0d 1a 8c 20  |.... .. c$ .... |
000312a0  20 c9 20 22 31 22 20 3a  20 63 77 5f 64 61 74 61  | . "1" : cw_data|
000312b0  25 3f 41 25 3d 31 3a 41  25 2b 3d 31 0d 1a 8d 20  |%?A%=1:A%+=1... |
000312c0  20 c9 20 22 32 22 20 3a  20 63 77 5f 64 61 74 61  | . "2" : cw_data|
000312d0  25 3f 41 25 3d 31 3a 41  25 2b 3d 31 0d 1a 8e 23  |%?A%=1:A%+=1...#|
000312e0  20 20 20 20 20 20 20 20  20 20 20 20 63 77 5f 64  |            cw_d|
000312f0  61 74 61 25 3f 41 25 3d  31 3a 41 25 2b 3d 31 0d  |ata%?A%=1:A%+=1.|
00031300  1a 8f 23 20 20 20 20 20  20 20 20 20 20 20 20 63  |..#            c|
00031310  77 5f 64 61 74 61 25 3f  41 25 3d 31 3a 41 25 2b  |w_data%?A%=1:A%+|
00031320  3d 31 0d 1a 90 20 20 c9  20 22 33 22 20 3a 20 63  |=1...  . "3" : c|
00031330  77 5f 64 61 74 61 25 3f  41 25 3d 30 3a 41 25 2b  |w_data%?A%=0:A%+|
00031340  3d 31 0d 1a 91 1d 20 c9  20 22 35 22 20 3a 20 f4  |=1.... . "5" : .|
00031350  20 6e 6f 74 68 69 6e 67  20 6e 65 65 64 65 64 0d  | nothing needed.|
00031360  1a 92 06 20 cb 0d 1a 93  18 20 63 77 5f 64 61 74  |... ..... cw_dat|
00031370  61 25 3f 41 25 3d 30 3a  41 25 2b 3d 31 0d 1a 94  |a%?A%=0:A%+=1...|
00031380  06 20 e1 0d 1a 95 04 0d  1a 96 15 20 dd 20 a4 62  |. ......... . .b|
00031390  75 73 79 28 73 65 63 6f  6e 64 73 29 0d 1a 97 14  |usy(seconds)....|
000313a0  20 f2 77 61 69 74 5f 6e  6f 5f 62 75 74 74 6f 6e  | .wait_no_button|
000313b0  0d 1a 98 1f 20 61 75 74  6f 5f 63 6f 64 65 25 21  |.... auto_code%!|
000313c0  31 32 3d 32 30 30 30 2a  73 65 63 6f 6e 64 73 0d  |12=2000*seconds.|
000313d0  1a 99 1e 20 61 75 74 6f  5f 63 6f 64 65 25 21 34  |... auto_code%!4|
000313e0  3d 49 6f 66 66 73 65 74  25 20 81 20 32 0d 1a 9a  |=Ioffset% . 2...|
000313f0  22 20 d6 20 61 75 74 6f  5f 63 6f 64 65 25 3a 4c  |" . auto_code%:L|
00031400  31 25 3d 61 75 74 6f 5f  63 6f 64 65 25 21 38 0d  |1%=auto_code%!8.|
00031410  1a 9b 1f 20 61 75 74 6f  5f 63 6f 64 65 25 21 31  |... auto_code%!1|
00031420  32 3d 32 30 30 30 2a 73  65 63 6f 6e 64 73 0d 1a  |2=2000*seconds..|
00031430  9c 22 20 d6 20 61 75 74  6f 5f 63 6f 64 65 25 3a  |." . auto_code%:|
00031440  4c 32 25 3d 61 75 74 6f  5f 63 6f 64 65 25 21 38  |L2%=auto_code%!8|
00031450  0d 1a 9d 1d 20 e7 20 4c  31 25 3d 31 20 84 20 4c  |.... . L1%=1 . L|
00031460  32 25 3d 31 20 72 71 75  69 74 25 3d b9 0d 1a 9e  |2%=1 rquit%=....|
00031470  2a 20 e7 20 94 28 4c 32  25 2d 4c 31 25 29 3c 31  |* . .(L2%-L1%)<1|
00031480  30 20 80 20 4c 31 25 3e  32 32 30 20 80 20 4c 32  |0 . L1%>220 . L2|
00031490  25 3e 32 32 30 20 8c 0d  1a 9f 07 20 3d b9 0d 1a  |%>220 ..... =...|
000314a0  a0 06 20 cc 0d 1a a1 07  20 3d a3 0d 1a a2 04 0d  |.. ..... =......|
000314b0  1a a3 11 20 dd 20 a4 74  6f 6e 65 62 75 72 73 74  |... . .toneburst|
000314c0  0d 1a a4 3e 20 76 69 73  5f 70 61 72 61 6d 25 21  |...> vis_param%!|
000314d0  38 30 3d 32 20 3a 20 f4  20 32 3d 74 6f 6e 65 62  |80=2 : . 2=toneb|
000314e0  75 72 73 74 2c 20 31 3d  56 49 53 20 6e 61 72 72  |urst, 1=VIS narr|
000314f0  6f 77 2c 20 30 3d 56 49  53 20 77 69 64 65 0d 1a  |ow, 0=VIS wide..|
00031500  a5 1e 20 76 69 73 5f 70  61 72 61 6d 25 21 34 3d  |.. vis_param%!4=|
00031510  73 65 72 69 61 6c 5f 62  61 73 65 25 0d 1a a6 23  |serial_base%...#|
00031520  20 46 4c 3d 31 37 35 30  2d 74 6f 6e 65 62 75 72  | FL=1750-tonebur|
00031530  73 74 5f 62 61 6e 64 77  69 64 74 68 25 2f 32 0d  |st_bandwidth%/2.|
00031540  1a a7 23 20 46 48 3d 31  37 35 30 2b 74 6f 6e 65  |..# FH=1750+tone|
00031550  62 75 72 73 74 5f 62 61  6e 64 77 69 64 74 68 25  |burst_bandwidth%|
00031560  2f 32 0d 1a a8 2c 20 43  3d 34 30 39 36 2d 28 28  |/2..., C=4096-((|
00031570  31 2f 46 4c 29 2a 31 30  30 30 30 30 30 29 3a 76  |1/FL)*1000000):v|
00031580  69 73 5f 70 61 72 61 6d  25 21 38 34 3d 43 0d 1a  |is_param%!84=C..|
00031590  a9 2c 20 43 3d 34 30 39  36 2d 28 28 31 2f 46 48  |., C=4096-((1/FH|
000315a0  29 2a 31 30 30 30 30 30  30 29 3a 76 69 73 5f 70  |)*1000000):vis_p|
000315b0  61 72 61 6d 25 21 38 38  3d 43 0d 1a aa 10 20 d6  |aram%!88=C.... .|
000315c0  20 76 69 73 5f 63 6f 64  65 25 0d 1a ab 11 20 3d  | vis_code%.... =|
000315d0  21 76 69 73 5f 70 61 72  61 6d 25 0d 1a ac 04 0d  |!vis_param%.....|
000315e0  1a ad 10 20 dd 20 f2 6c  65 64 73 5f 6f 66 66 0d  |... . .leds_off.|
000315f0  1a ae 0d 20 e6 20 30 2c  33 32 2c 30 0d 1a af 18  |... . 0,32,0....|
00031600  20 e3 20 59 3d 38 35 34  20 b8 20 37 30 34 20 88  | . Y=854 . 704 .|
00031610  20 2d 35 30 0d 1a b0 18  20 c8 93 20 c8 90 20 38  | -50.... .. .. 8|
00031620  38 34 2c 59 2b 34 2c 31  32 2c 31 32 0d 1a b1 06  |84,Y+4,12,12....|
00031630  20 ed 0d 1a b2 06 20 e1  0d 1a b3 04 0d 1a b4 18  | ..... .........|
00031640  20 dd 20 f2 72 65 70 65  61 74 65 72 5f 63 6f 6e  | . .repeater_con|
00031650  74 72 6f 6c 0d 1a b5 17  20 20 72 65 70 65 61 74  |trol....  repeat|
00031660  65 72 5f 74 69 6d 65 72  25 3d 30 0d 1a b6 07 20  |er_timer%=0.... |
00031670  20 f5 0d 1a b7 10 20 20  20 f2 72 65 70 65 61 74  | .....   .repeat|
00031680  65 72 0d 1a b8 31 20 20  20 e7 20 74 6f 6e 65 62  |er...1   . toneb|
00031690  75 72 73 74 5f 72 65 73  75 6c 74 25 3d 32 35 36  |urst_result%=256|
000316a0  20 72 65 70 65 61 74 65  72 5f 74 69 6d 65 72 25  | repeater_timer%|
000316b0  2b 3d 31 0d 1a b9 2b 20  20 20 20 e7 20 72 65 70  |+=1...+    . rep|
000316c0  65 61 74 65 72 5f 74 69  6d 65 72 25 3e 31 37 20  |eater_timer%>17 |
000316d0  80 20 62 65 61 63 6f 6e  5f 6f 6e 25 20 8c 0d 1a  |. beacon_on% ...|
000316e0  ba 17 20 20 20 20 20 e7  20 ac 20 a4 62 75 73 79  |..     . . .busy|
000316f0  28 35 29 20 8c 0d 1a bb  1f 20 20 20 20 20 20 f2  |(5) .....      .|
00031700  72 65 70 65 61 74 65 72  5f 62 65 61 63 6f 6e 5f  |repeater_beacon_|
00031710  74 65 78 74 0d 1a bc 22  20 20 20 20 20 20 74 65  |text..."      te|
00031720  6d 70 5f 6d 6f 64 65 25  3d 6d 6f 64 65 25 3a 6d  |mp_mode%=mode%:m|
00031730  6f 64 65 25 3d 31 0d 1a  bd 16 20 20 20 20 20 20  |ode%=1....      |
00031740  f2 74 78 5f 66 72 61 6d  65 28 b9 29 0d 1a be 19  |.tx_frame(.)....|
00031750  20 20 20 20 20 20 54 3d  91 3a f5 20 fd 20 91 2d  |      T=.:. . .-|
00031760  54 3e 31 30 30 0d 1a bf  18 20 20 20 20 20 20 f2  |T>100....      .|
00031770  63 77 5f 74 78 28 63 77  5f 69 64 24 29 0d 1a c0  |cw_tx(cw_id$)...|
00031780  1a 20 20 20 20 20 20 6d  6f 64 65 25 3d 74 65 6d  |.      mode%=tem|
00031790  70 5f 6d 6f 64 65 25 0d  1a c1 1b 20 20 20 20 20  |p_mode%....     |
000317a0  20 72 65 70 65 61 74 65  72 5f 74 69 6d 65 72 25  | repeater_timer%|
000317b0  3d 30 0d 1a c2 0a 20 20  20 20 20 cd 0d 1a c3 09  |=0....     .....|
000317c0  20 20 20 20 cd 0d 1a c4  1d 20 20 fd 20 74 6f 6e  |    .....  . ton|
000317d0  65 62 75 72 73 74 5f 72  65 73 75 6c 74 25 3d 33  |eburst_result%=3|
000317e0  32 30 0d 1a c5 06 20 e1  0d 1a c6 04 0d 1a c7 10  |20.... .........|
000317f0  20 dd 20 f2 72 65 70 65  61 74 65 72 0d 1a c8 21  | . .repeater...!|
00031800  20 72 71 75 69 74 25 3d  a3 3a 74 6f 6e 65 62 75  | rquit%=.:tonebu|
00031810  72 73 74 5f 72 65 73 75  6c 74 25 3d 30 0d 1a c9  |rst_result%=0...|
00031820  07 20 20 f5 0d 1a ca 25  20 20 20 e6 20 36 34 2c  |.  ....%   . 64,|
00031830  36 34 2c 36 34 3a c8 93  20 c8 90 20 30 2c 30 2c  |64,64:.. .. 0,0,|
00031840  31 32 38 30 2c 31 30 32  34 0d 1a cb 25 20 20 20  |1280,1024...%   |
00031850  f2 72 61 69 73 65 64 5f  62 6c 6f 63 6b 28 32 30  |.raised_block(20|
00031860  30 2c 36 30 30 2c 38 38  30 2c 33 38 30 29 0d 1a  |0,600,880,380)..|
00031870  cc 28 20 20 20 e6 20 32  32 30 2c 32 32 30 2c 36  |.(   . 220,220,6|
00031880  34 3a c8 93 20 c8 90 20  32 34 30 2c 39 31 34 2c  |4:.. .. 240,914,|
00031890  37 38 38 2c 34 30 0d 1a  cd 36 20 20 20 f2 77 72  |788,40...6   .wr|
000318a0  69 74 65 32 28 22 50 73  63 61 6e 20 53 53 54 56  |ite2("Pscan SSTV|
000318b0  20 72 65 70 65 61 74 65  72 20 73 74 61 74 75 73  | repeater status|
000318c0  22 2c 34 32 30 2c 39 32  30 2c 34 29 0d 1a ce 44  |",420,920,4)...D|
000318d0  20 20 20 f2 77 72 69 74  65 32 28 22 31 29 20 53  |   .write2("1) S|
000318e0  65 61 72 63 68 69 6e 67  20 66 6f 72 20 31 37 35  |earching for 175|
000318f0  30 20 48 7a 20 74 6f 6e  65 62 75 72 73 74 20 2e  |0 Hz toneburst .|
00031900  2e 2e 2e 2e 22 2c 33 30  30 2c 38 35 30 2c 30 29  |....",300,850,0)|
00031910  0d 1a cf 44 20 20 20 f2  77 72 69 74 65 32 28 22  |...D   .write2("|
00031920  32 29 20 43 68 65 63 6b  69 6e 67 20 63 68 61 6e  |2) Checking chan|
00031930  6e 65 6c 20 66 6f 72 20  53 53 54 56 20 61 63 74  |nel for SSTV act|
00031940  69 76 69 74 79 20 2e 2e  22 2c 33 30 30 2c 38 30  |ivity ..",300,80|
00031950  30 2c 30 29 0d 1a d0 47  20 20 20 f2 77 72 69 74  |0,0)...G   .writ|
00031960  65 32 28 22 33 29 20 53  65 6e 64 69 6e 67 20 43  |e2("3) Sending C|
00031970  57 20 69 64 65 6e 74 69  66 69 63 61 74 69 6f 6e  |W identification|
00031980  20 74 65 78 74 20 2e 2e  2e 2e 2e 2e 2e 2e 2e 22  | text ........."|
00031990  2c 33 30 30 2c 37 35 30  2c 30 29 0d 1a d1 48 20  |,300,750,0)...H |
000319a0  20 20 f2 77 72 69 74 65  32 28 22 34 29 20 57 61  |  .write2("4) Wa|
000319b0  69 74 69 6e 67 20 66 6f  72 20 61 20 76 61 6c 69  |iting for a vali|
000319c0  64 20 56 49 53 20 63 6f  64 65 20 2e 2e 2e 2e 2e  |d VIS code .....|
000319d0  2e 2e 2e 2e 2e 2e 2e 22  2c 33 30 30 2c 37 30 30  |.......",300,700|
000319e0  2c 30 29 0d 1a d2 50 20  20 20 f2 77 72 69 74 65  |,0)...P   .write|
000319f0  32 28 22 43 6c 69 63 6b  20 6c 65 66 74 20 6d 6f  |2("Click left mo|
00031a00  75 73 65 20 62 75 74 74  6f 6e 20 61 74 20 61 6e  |use button at an|
00031a10  79 20 74 69 6d 65 20 74  6f 20 65 78 69 74 20 72  |y time to exit r|
00031a20  65 70 65 61 74 65 72 22  2c 32 36 30 2c 36 33 30  |epeater",260,630|
00031a30  2c 34 29 0d 1a d3 1a 20  20 20 e3 20 59 3d 38 35  |,4)....   . Y=85|
00031a40  34 20 b8 20 37 30 34 20  88 20 2d 35 30 0d 1a d4  |4 . 704 . -50...|
00031a50  11 20 20 20 e6 20 38 30  2c 38 30 2c 38 30 0d 1a  |.   . 80,80,80..|
00031a60  d5 27 20 20 20 ec 20 38  38 30 2c 59 3a ec 20 38  |.'   . 880,Y:. 8|
00031a70  38 30 2c 59 2b 32 30 3a  f0 20 38 35 2c 39 30 30  |80,Y+20:. 85,900|
00031a80  2c 59 2b 32 30 0d 1a d6  14 20 20 20 e6 20 32 35  |,Y+20....   . 25|
00031a90  35 2c 32 35 35 2c 32 35  35 0d 1a d7 24 20 20 20  |5,255,255...$   |
00031aa0  ec 20 38 38 30 2c 59 3a  ec 20 39 30 30 2c 59 3a  |. 880,Y:. 900,Y:|
00031ab0  f0 20 38 35 2c 39 30 30  2c 59 2b 32 30 0d 1a d8  |. 85,900,Y+20...|
00031ac0  08 20 20 20 ed 0d 1a d9  11 20 20 20 fb 20 31 32  |.   .....   . 12|
00031ad0  38 20 c8 9c 20 30 0d 1a  da 18 20 20 20 ef 20 32  |8 .. 0....   . 2|
00031ae0  38 2c 35 2c 36 30 2c 37  34 2c 33 30 3a db 0d 1a  |8,5,60,74,30:...|
00031af0  db 12 20 20 20 fb 20 31  32 38 2c 32 35 35 2c 30  |..   . 128,255,0|
00031b00  0d 1a dc 16 20 20 20 f2  77 61 69 74 5f 6e 6f 5f  |....   .wait_no_|
00031b10  62 75 74 74 6f 6e 0d 1a  dd 04 0d 1a de 0a 20 20  |button........  |
00031b20  20 20 20 f5 0d 1a df 04  0d 1a e0 0c 20 20 20 20  |   .........    |
00031b30  20 20 20 f5 0d 1a e1 04  0d 1a e2 16 20 20 20 20  |   .........    |
00031b40  20 20 20 20 20 f2 6c 65  64 73 5f 6f 66 66 0d 1a  |     .leds_off..|
00031b50  e3 2e 20 20 20 20 20 20  20 20 20 f1 27 27 22 20  |..         .''" |
00031b60  53 65 61 72 63 68 69 6e  67 20 66 6f 72 20 74 6f  |Searching for to|
00031b70  6e 65 62 75 72 73 74 20  2e 2e 2e 22 0d 1a e4 2c  |neburst ..."...,|
00031b80  20 20 20 20 20 20 20 20  20 e6 20 32 35 35 2c 32  |         . 255,2|
00031b90  35 35 2c 30 3a c8 93 20  c8 90 20 38 38 34 2c 38  |55,0:.. .. 884,8|
00031ba0  35 38 2c 31 32 2c 31 32  0d 1a e5 04 0d 1a e6 29  |58,12,12.......)|
00031bb0  20 20 20 20 20 20 20 20  20 74 6f 6e 65 62 75 72  |         tonebur|
00031bc0  73 74 5f 72 65 73 75 6c  74 25 3d a4 74 6f 6e 65  |st_result%=.tone|
00031bd0  62 75 72 73 74 0d 1a e7  23 20 20 20 20 20 20 20  |burst...#       |
00031be0  20 20 c8 8e 20 74 6f 6e  65 62 75 72 73 74 5f 72  |  .. toneburst_r|
00031bf0  65 73 75 6c 74 25 20 ca  0d 1a e8 15 20 20 20 20  |esult% .....    |
00031c00  20 20 20 20 20 20 c9 20  36 34 30 20 3a 0d 1a e9  |      . 640 :...|
00031c10  31 20 20 20 20 20 20 20  20 20 20 20 f2 75 70 64  |1           .upd|
00031c20  61 74 65 5f 72 74 63 28  a3 29 3a 74 24 3d 24 28  |ate_rtc(.):t$=$(|
00031c30  72 74 63 5f 62 75 66 66  65 72 25 2b 31 29 0d 1a  |rtc_buffer%+1)..|
00031c40  ea 26 20 20 20 20 20 20  20 20 20 20 20 fb 20 32  |.&           . 2|
00031c50  35 35 2c 32 35 35 2c 32  35 35 3a f1 27 22 20 22  |55,255,255:.'" "|
00031c60  3b 74 24 3b 0d 1a eb 18  20 20 20 20 20 20 20 20  |;t$;....        |
00031c70  20 20 20 fb 20 30 2c 32  35 35 2c 30 0d 1a ec 46  |   . 0,255,0...F|
00031c80  20 20 20 20 20 20 20 20  20 20 20 f1 22 20 54 6f  |           ." To|
00031c90  6e 65 62 75 72 73 74 20  66 6f 75 6e 64 20 2d 20  |neburst found - |
00031ca0  63 68 65 63 6b 69 6e 67  20 66 6f 72 20 63 68 61  |checking for cha|
00031cb0  6e 6e 65 6c 20 61 63 74  69 76 69 74 79 20 2e 2e  |nnel activity ..|
00031cc0  2e 22 0d 1a ed 2c 20 20  20 20 20 20 20 20 20 20  |."...,          |
00031cd0  20 e6 20 30 2c 32 35 35  2c 30 3a c8 93 20 c8 90  | . 0,255,0:.. ..|
00031ce0  20 38 38 34 2c 38 35 38  2c 31 32 2c 31 32 0d 1a  | 884,858,12,12..|
00031cf0  ee 2e 20 20 20 20 20 20  20 20 20 20 20 e6 20 32  |..           . 2|
00031d00  35 35 2c 32 35 35 2c 30  3a c8 93 20 c8 90 20 38  |55,255,0:.. .. 8|
00031d10  38 34 2c 38 30 38 2c 31  32 2c 31 32 0d 1a ef 1d  |84,808,12,12....|
00031d20  20 20 20 20 20 20 20 20  20 20 c9 20 33 32 30 20  |          . 320 |
00031d30  3a 20 f2 72 65 6e 64 3a  e1 0d 1a f0 17 20 20 20  |: .rend:.....   |
00031d40  20 20 20 20 20 20 20 c9  20 32 35 36 20 3a 20 e1  |       . 256 : .|
00031d50  0d 1a f1 0e 20 20 20 20  20 20 20 20 20 cb 0d 1a  |....         ...|
00031d60  f2 04 0d 1a f3 19 20 20  20 20 20 20 20 20 20 e7  |......         .|
00031d70  20 a4 62 75 73 79 28 33  29 20 8c 0d 1a f4 3b 20  | .busy(3) ....; |
00031d80  20 20 20 20 20 20 20 20  20 f1 27 22 20 2a 2a 2a  |         .'" ***|
00031d90  2a 2a 20 43 68 61 6e 6e  65 6c 20 62 75 73 79 20  |** Channel busy |
00031da0  2d 20 61 63 63 65 73 73  20 64 65 6e 69 65 64 20  |- access denied |
00031db0  2a 2a 2a 2a 2a 22 0d 1a  f5 1b 20 20 20 20 20 20  |*****"....      |
00031dc0  20 20 20 20 63 68 61 6e  5f 63 6c 65 61 72 25 3d  |    chan_clear%=|
00031dd0  a3 0d 1a f6 0e 20 20 20  20 20 20 20 20 20 cc 0d  |.....         ..|
00031de0  1a f7 1b 20 20 20 20 20  20 20 20 20 20 63 68 61  |...          cha|
00031df0  6e 5f 63 6c 65 61 72 25  3d b9 0d 1a f8 0e 20 20  |n_clear%=.....  |
00031e00  20 20 20 20 20 20 20 cd  0d 1a f9 04 0d 1a fa 21  |       ........!|
00031e10  20 20 20 20 20 20 20 fd  20 63 68 61 6e 5f 63 6c  |       . chan_cl|
00031e20  65 61 72 25 20 84 20 72  71 75 69 74 25 0d 1a fb  |ear% . rquit%...|
00031e30  04 0d 1a fc 1b 20 20 20  20 20 20 20 e7 20 72 71  |.....       . rq|
00031e40  75 69 74 25 20 f2 72 65  6e 64 3a e1 0d 1a fd 04  |uit% .rend:.....|
00031e50  0d 1a fe 44 20 20 20 20  20 20 20 f1 27 22 20 43  |...D       .'" C|
00031e60  68 61 6e 6e 65 6c 20 73  65 65 6d 73 20 63 6c 65  |hannel seems cle|
00031e70  61 72 20 2d 20 73 65 6e  64 69 6e 67 20 27 22 3b  |ar - sending '";|
00031e80  63 77 5f 69 64 24 3b 22  27 20 6f 6e 20 43 57 20  |cw_id$;"' on CW |
00031e90  2e 2e 2e 22 0d 1a ff 28  20 20 20 20 20 20 20 e6  |..."...(       .|
00031ea0  20 30 2c 32 35 35 2c 30  3a c8 93 20 c8 90 20 38  | 0,255,0:.. .. 8|
00031eb0  38 34 2c 38 30 38 2c 31  32 2c 31 32 0d 1b 00 2a  |84,808,12,12...*|
00031ec0  20 20 20 20 20 20 20 e6  20 32 35 35 2c 32 35 35  |       . 255,255|
00031ed0  2c 30 3a c8 93 20 c8 90  20 38 38 34 2c 37 35 38  |,0:.. .. 884,758|
00031ee0  2c 31 32 2c 31 32 0d 1b  01 19 20 20 20 20 20 20  |,12,12....      |
00031ef0  20 f2 63 77 5f 74 78 28  63 77 5f 69 64 24 29 0d  | .cw_tx(cw_id$).|
00031f00  1b 02 0c 20 20 20 20 20  20 20 cd 0d 1b 03 04 0d  |...       ......|
00031f10  1b 04 29 20 20 20 20 20  20 20 76 69 73 5f 70 61  |..)       vis_pa|
00031f20  72 61 6d 25 21 38 30 3d  31 20 3a 20 f4 20 4e 61  |ram%!80=1 : . Na|
00031f30  72 72 6f 77 20 56 49 53  0d 1b 05 24 20 20 20 20  |rrow VIS...$    |
00031f40  20 20 20 76 69 73 5f 70  61 72 61 6d 25 21 34 3d  |   vis_param%!4=|
00031f50  73 65 72 69 61 6c 5f 62  61 73 65 25 0d 1b 06 24  |serial_base%...$|
00031f60  20 20 20 20 20 20 20 72  25 3d 32 35 35 3a 67 25  |       r%=255:g%|
00031f70  3d 32 35 35 3a 67 6f 6f  64 5f 76 69 73 25 3d a3  |=255:good_vis%=.|
00031f80  0d 1b 07 3a 20 20 20 20  20 20 20 f1 27 22 20 4e  |...:       .'" N|
00031f90  6f 77 20 77 61 69 74 69  6e 67 20 75 70 20 74 6f  |ow waiting up to|
00031fa0  20 31 35 20 73 65 63 6f  6e 64 73 20 66 6f 72 20  | 15 seconds for |
00031fb0  61 20 56 49 53 20 2e 2e  2e 22 0d 1b 08 28 20 20  |a VIS ..."...(  |
00031fc0  20 20 20 20 20 e6 20 30  2c 32 35 35 2c 30 3a c8  |     . 0,255,0:.|
00031fd0  93 20 c8 90 20 38 38 34  2c 37 35 38 2c 31 32 2c  |. .. 884,758,12,|
00031fe0  31 32 0d 1b 09 2a 20 20  20 20 20 20 20 e6 20 32  |12...*       . 2|
00031ff0  35 35 2c 32 35 35 2c 30  3a c8 93 20 c8 90 20 38  |55,255,0:.. .. 8|
00032000  38 34 2c 37 30 38 2c 31  32 2c 31 32 0d 1b 0a 17  |84,708,12,12....|
00032010  20 20 20 20 20 20 20 20  e3 20 76 25 3d 31 20 b8  |        . v%=1 .|
00032020  20 33 30 0d 1b 0b 17 20  20 20 20 20 20 20 20 d6  | 30....        .|
00032030  20 76 69 73 5f 63 6f 64  65 25 0d 1b 0c 24 20 20  | vis_code%...$  |
00032040  20 20 20 20 20 20 e7 20  21 76 69 73 5f 70 61 72  |      . !vis_par|
00032050  61 6d 25 3c 3e 32 35 36  20 76 25 3d 33 30 0d 1b  |am%<>256 v%=30..|
00032060  0d 3d 20 20 20 20 20 20  20 20 72 25 3d 72 25 82  |.=        r%=r%.|
00032070  32 35 35 3a 67 25 3d 67  25 82 32 35 35 3a e6 20  |255:g%=g%.255:. |
00032080  72 25 2c 67 25 2c 30 3a  c8 93 20 c8 90 20 38 38  |r%,g%,0:.. .. 88|
00032090  34 2c 37 30 38 2c 31 32  2c 31 32 0d 1b 0e 0d 20  |4,708,12,12.... |
000320a0  20 20 20 20 20 20 20 ed  0d 1b 0f 25 20 20 20 20  |       ....%    |
000320b0  20 20 20 20 e7 20 21 76  69 73 5f 70 61 72 61 6d  |    . !vis_param|
000320c0  25 3d 33 32 30 20 f2 72  65 6e 64 3a e1 0d 1b 10  |%=320 .rend:....|
000320d0  1f 20 20 20 20 20 20 20  20 e7 20 21 76 69 73 5f  |.        . !vis_|
000320e0  70 61 72 61 6d 25 3c 32  35 36 20 8c 0d 1b 11 2e  |param%<256 .....|
000320f0  20 20 20 20 20 20 20 20  20 f2 76 69 73 5f 63 6f  |         .vis_co|
00032100  6e 76 65 72 74 5f 74 6f  5f 6d 6f 64 65 28 21 76  |nvert_to_mode(!v|
00032110  69 73 5f 70 61 72 61 6d  25 29 0d 1b 12 0d 20 20  |is_param%)....  |
00032120  20 20 20 20 20 20 cc 0d  1b 13 37 20 20 20 20 20  |      ....7     |
00032130  20 20 20 20 f1 27 22 20  4e 6f 20 56 49 53 20 66  |    .'" No VIS f|
00032140  6f 75 6e 64 20 2d 20 72  65 74 75 72 6e 69 6e 67  |ound - returning|
00032150  20 74 6f 20 73 74 61 72  74 20 2e 2e 2e 22 0d 1b  | to start ..."..|
00032160  14 0d 20 20 20 20 20 20  20 20 cd 0d 1b 15 04 0d  |..        ......|
00032170  1b 16 14 20 20 20 20 20  fd 20 67 6f 6f 64 5f 76  |...     . good_v|
00032180  69 73 25 0d 1b 17 04 0d  1b 18 28 20 20 20 20 20  |is%.......(     |
00032190  20 20 e7 20 6d 6f 64 65  25 3d 37 30 20 84 20 6d  |  . mode%=70 . m|
000321a0  6f 64 65 25 3d 37 31 20  6d 6f 64 65 25 3d 31 0d  |ode%=71 mode%=1.|
000321b0  1b 19 2a 20 20 20 20 20  20 20 ef 32 36 3a e6 20  |..*       .26:. |
000321c0  30 2c 30 2c 30 3a c8 93  20 c8 90 20 30 2c 30 2c  |0,0,0:.. .. 0,0,|
000321d0  31 32 38 30 2c 31 30 32  34 0d 1b 1a 28 20 20 20  |1280,1024...(   |
000321e0  20 20 20 20 f2 72 78 5f  73 73 74 76 28 b9 29 3a  |    .rx_sstv(.):|
000321f0  72 65 70 65 61 74 65 72  5f 74 69 6d 65 72 25 3d  |repeater_timer%=|
00032200  30 0d 1b 1b 24 20 20 20  20 20 20 20 e7 20 72 78  |0...$       . rx|
00032210  5f 70 61 72 61 6d 25 21  36 34 3d 34 38 20 f2 72  |_param%!64=48 .r|
00032220  65 6e 64 3a e1 0d 1b 1c  1a 20 20 20 20 20 20 20  |end:.....       |
00032230  54 3d 91 3a f5 20 fd 20  91 2d 54 3e 31 30 30 0d  |T=.:. . .-T>100.|
00032240  1b 1d 29 20 20 20 20 20  20 20 e6 20 33 32 2c 33  |..)       . 32,3|
00032250  32 2c 33 32 3a c8 93 20  c8 90 20 30 2c 39 36 30  |2,32:.. .. 0,960|
00032260  2c 31 32 38 30 2c 36 34  0d 1b 1e 24 20 20 20 20  |,1280,64...$    |
00032270  20 20 20 fb 20 32 35 35  2c 32 35 35 2c 30 3a fb  |   . 255,255,0:.|
00032280  20 31 32 38 2b 32 31 20  c8 9c 20 30 0d 1b 1f 5b  | 128+21 .. 0...[|
00032290  20 20 20 20 20 20 20 f1  20 8a 34 2c 31 29 22 43  |       . .4,1)"C|
000322a0  68 65 63 6b 69 6e 67 20  63 68 61 6e 6e 65 6c 20  |hecking channel |
000322b0  66 6f 72 20 53 53 54 56  20 61 63 74 69 76 69 74  |for SSTV activit|
000322c0  79 20 62 65 66 6f 72 65  20 72 65 2d 74 72 61 6e  |y before re-tran|
000322d0  73 6d 69 74 74 69 6e 67  20 70 69 63 74 75 72 65  |smitting picture|
000322e0  20 2e 2e 2e 20 22 3b 0d  1b 20 04 0d 1b 21 47 20  | ... ";.. ...!G |
000322f0  20 20 20 20 20 e3 20 77  61 69 74 69 6e 67 33 25  |     . waiting3%|
00032300  3d 31 20 b8 20 33 36 20  3a 20 f4 20 57 61 69 74  |=1 . 36 : . Wait|
00032310  20 75 70 20 74 6f 20 33  20 6d 69 6e 73 20 66 6f  | up to 3 mins fo|
00032320  72 20 63 68 61 6e 6e 65  6c 20 74 6f 20 63 6c 65  |r channel to cle|
00032330  61 72 0d 1b 22 19 20 20  20 20 20 20 20 e7 20 ac  |ar..".       . .|
00032340  20 a4 62 75 73 79 28 33  29 20 8c 0d 1b 23 19 20  | .busy(3) ...#. |
00032350  20 20 20 20 20 20 20 f2  74 6f 70 73 63 61 6c 65  |       .topscale|
00032360  32 28 30 29 0d 1b 24 18  20 20 20 20 20 20 20 20  |2(0)..$.        |
00032370  f2 74 78 5f 66 72 61 6d  65 28 b9 29 0d 1b 25 18  |.tx_frame(.)..%.|
00032380  20 20 20 20 20 20 20 20  77 61 69 74 69 6e 67 33  |        waiting3|
00032390  25 3d 33 36 0d 1b 26 0c  20 20 20 20 20 20 20 cc  |%=36..&.       .|
000323a0  0d 1b 27 1a 20 20 20 20  20 20 20 54 3d 91 3a f5  |..'.       T=.:.|
000323b0  20 fd 20 91 2d 54 3e 34  30 30 0d 1b 28 0c 20 20  | . .-T>400..(.  |
000323c0  20 20 20 20 20 cd 0d 1b  29 0b 20 20 20 20 20 20  |     ...).      |
000323d0  ed 0d 1b 2a 04 0d 1b 2b  09 20 20 fd 20 30 0d 1b  |...*...+.  . 0..|
000323e0  2c 04 0d 1b 2d 06 20 e1  0d 1b 2e 05 20 0d 1b 2f  |,...-. ..... ../|
000323f0  04 0d 1b 30 0c 20 dd 20  f2 72 65 6e 64 0d 1b 31  |...0. . .rend..1|
00032400  11 20 20 ef 32 36 3a c8  96 3a 87 3a c8 96 0d 1b  |.  .26:..:.:....|
00032410  32 1e 20 20 f2 64 69 73  6d 69 6e 69 3a f2 77 61  |2.  .dismini:.wa|
00032420  69 74 5f 6e 6f 5f 62 75  74 74 6f 6e 0d 1b 33 1b  |it_no_button..3.|
00032430  20 20 74 6f 6e 65 62 75  72 73 74 5f 72 65 73 75  |  toneburst_resu|
00032440  6c 74 25 3d 33 32 30 0d  1b 34 06 20 e1 0d 1b 35  |lt%=320..4. ...5|
00032450  04 0d 1b 36 1c 20 dd 20  f2 72 65 70 65 61 74 65  |...6. . .repeate|
00032460  72 5f 62 65 61 63 6f 6e  5f 74 65 78 74 0d 1b 37  |r_beacon_text..7|
00032470  2f 20 20 21 73 70 72 25  3d 34 30 30 30 30 3a 73  |/  !spr%=40000:s|
00032480  70 72 25 21 34 3d 30 3a  73 70 72 25 21 38 3d 31  |pr%!4=0:spr%!8=1|
00032490  36 3a 73 70 72 25 21 31  32 3d 31 36 0d 1b 38 37  |6:spr%!12=16..87|
000324a0  20 20 c8 99 20 73 70 72  73 77 69 25 2c 32 35 36  |  .. sprswi%,256|
000324b0  2b 31 30 2c 73 70 72 25  2c 22 3c 50 73 63 61 6e  |+10,spr%,"<Pscan|
000324c0  24 44 69 72 3e 2e 50 53  73 70 72 69 74 65 73 2e  |$Dir>.PSsprites.|
000324d0  54 31 22 0d 1b 39 31 20  20 73 70 72 69 74 65 5f  |T1"..91  sprite_|
000324e0  6e 61 6d 65 24 3d 22 74  31 22 3a f2 74 69 6c 65  |name$="t1":.tile|
000324f0  64 5f 73 70 72 69 74 65  5f 62 61 63 6b 67 72 6f  |d_sprite_backgro|
00032500  75 6e 64 20 0d 1b 3a 26  20 20 f2 74 6f 70 73 63  |und ..:&  .topsc|
00032510  61 6c 65 32 28 32 29 3a  66 24 3d 22 48 6f 6d 65  |ale2(2):f$="Home|
00032520  72 74 6f 6e 2e 42 6f 6c  64 22 0d 1b 3b 23 20 20  |rton.Bold"..;#  |
00032530  e6 20 30 2c 30 2c 32 35  35 3a c8 93 20 c8 90 20  |. 0,0,255:.. .. |
00032540  31 36 2c 38 37 36 2c 31  32 34 30 2c 38 0d 1b 3c  |16,876,1240,8..<|
00032550  23 20 20 e6 20 30 2c 32  35 35 2c 30 3a c8 93 20  |#  . 0,255,0:.. |
00032560  c8 90 20 31 36 2c 38 38  36 2c 31 32 34 30 2c 38  |.. 16,886,1240,8|
00032570  0d 1b 3d 23 20 20 e6 20  32 35 35 2c 30 2c 30 3a  |..=#  . 255,0,0:|
00032580  c8 93 20 c8 90 20 31 36  2c 38 39 36 2c 31 32 34  |.. .. 16,896,124|
00032590  30 2c 38 0d 1b 3e 3e 20  20 f2 62 65 61 63 6f 6e  |0,8..>>  .beacon|
000325a0  5f 74 65 78 74 28 66 24  2c 22 50 53 43 41 4e 20  |_text(f$,"PSCAN |
000325b0  20 52 45 50 45 41 54 45  52 20 20 49 4e 46 4f 22  | REPEATER  INFO"|
000325c0  2c 31 33 30 2c 38 34 38  2c 33 32 2c 34 30 2c 36  |,130,848,32,40,6|
000325d0  29 0d 1b 3f 4e 20 20 f2  62 65 61 63 6f 6e 5f 74  |)..?N  .beacon_t|
000325e0  65 78 74 28 66 24 2c 22  31 20 54 72 61 6e 73 6d  |ext(f$,"1 Transm|
000325f0  69 74 20 61 20 31 37 35  30 20 48 7a 20 74 6f 6e  |it a 1750 Hz ton|
00032600  65 62 75 72 73 74 22 2c  34 34 2c 37 32 30 2c 33  |eburst",44,720,3|
00032610  32 2c 33 32 2c 26 38 30  46 46 38 30 30 30 29 0d  |2,32,&80FF8000).|
00032620  1b 40 4d 20 20 f2 62 65  61 63 6f 6e 5f 74 65 78  |.@M  .beacon_tex|
00032630  74 28 66 24 2c 22 32 20  57 61 69 74 20 75 70 20  |t(f$,"2 Wait up |
00032640  74 6f 20 35 20 73 65 63  73 20 66 6f 72 20 43 57  |to 5 secs for CW|
00032650  20 49 44 22 2c 34 34 2c  36 30 30 2c 33 32 2c 33  | ID",44,600,32,3|
00032660  32 2c 26 30 30 46 46 38  30 30 30 29 0d 1b 41 4e  |2,&00FF8000)..AN|
00032670  20 20 f2 62 65 61 63 6f  6e 5f 74 65 78 74 28 66  |  .beacon_text(f|
00032680  24 2c 22 33 20 53 65 6e  64 20 53 53 54 56 20 2d  |$,"3 Send SSTV -|
00032690  20 77 69 74 68 20 56 49  53 20 73 74 61 72 74 20  | with VIS start |
000326a0  2d 22 2c 34 34 2c 34 38  30 2c 33 32 2c 33 32 2c  |-",44,480,32,32,|
000326b0  26 38 30 46 46 38 30 30  30 29 0d 1b 42 45 20 20  |&80FF8000)..BE  |
000326c0  f2 62 65 61 63 6f 6e 5f  74 65 78 74 28 66 24 2c  |.beacon_text(f$,|
000326d0  22 20 20 20 20 77 69 74  68 69 6e 20 31 35 20 73  |"    within 15 s|
000326e0  65 63 6f 6e 64 73 22 2c  34 34 2c 33 39 30 2c 33  |econds",44,390,3|
000326f0  32 2c 33 32 2c 26 38 30  46 46 38 30 30 30 29 0d  |2,32,&80FF8000).|
00032700  1b 43 4a 20 20 f2 62 65  61 63 6f 6e 5f 74 65 78  |.CJ  .beacon_tex|
00032710  74 28 66 24 2c 22 34 20  50 69 63 74 75 72 65 20  |t(f$,"4 Picture |
00032720  77 69 6c 6c 20 62 65 20  72 65 70 6c 61 79 65 64  |will be replayed|
00032730  22 2c 34 34 2c 32 37 30  2c 33 32 2c 33 32 2c 26  |",44,270,32,32,&|
00032740  30 30 46 46 38 30 30 30  29 0d 1b 44 49 20 20 f2  |00FF8000)..DI  .|
00032750  62 65 61 63 6f 6e 5f 74  65 78 74 28 66 24 2c 22  |beacon_text(f$,"|
00032760  20 20 20 20 69 6e 20 74  68 65 20 73 61 6d 65 20  |    in the same |
00032770  53 53 54 56 20 6d 6f 64  65 22 2c 34 34 2c 31 38  |SSTV mode",44,18|
00032780  30 2c 33 32 2c 33 32 2c  26 30 30 46 46 38 30 30  |0,32,32,&00FF800|
00032790  30 29 0d 1b 45 24 20 20  e6 20 32 35 35 2c 32 35  |0)..E$  . 255,25|
000327a0  35 2c 30 3a c8 93 20 c8  90 20 31 36 2c 35 38 2c  |5,0:.. .. 16,58,|
000327b0  31 32 34 30 2c 38 0d 1b  46 24 20 20 e6 20 30 2c  |1240,8..F$  . 0,|
000327c0  32 35 35 2c 32 35 35 3a  c8 93 20 c8 90 20 31 36  |255,255:.. .. 16|
000327d0  2c 36 38 2c 31 32 34 30  2c 38 0d 1b 47 24 20 20  |,68,1240,8..G$  |
000327e0  e6 20 32 35 35 2c 30 2c  32 35 35 3a c8 93 20 c8  |. 255,0,255:.. .|
000327f0  90 20 31 36 2c 37 38 2c  31 32 34 30 2c 38 0d 1b  |. 16,78,1240,8..|
00032800  48 4f 20 20 57 25 3d a4  74 65 78 74 5f 77 69 64  |HO  W%=.text_wid|
00032810  74 68 28 66 24 2c 22 44  45 20 20 22 2b 63 61 6c  |th(f$,"DE  "+cal|
00032820  6c 24 2b 22 20 20 53 53  54 56 20 20 52 45 50 45  |l$+"  SSTV  REPE|
00032830  41 54 45 52 22 2c 32 38  2c 33 38 29 3a 58 25 3d  |ATER",28,38):X%=|
00032840  28 31 32 38 30 2d 57 25  29 2f 32 2d 38 0d 1b 49  |(1280-W%)/2-8..I|
00032850  4c 20 20 f2 62 65 61 63  6f 6e 5f 74 65 78 74 28  |L  .beacon_text(|
00032860  66 24 2c 22 44 45 20 20  22 2b 63 61 6c 6c 24 2b  |f$,"DE  "+call$+|
00032870  22 20 20 53 53 54 56 20  20 52 45 50 45 41 54 45  |"  SSTV  REPEATE|
00032880  52 22 2c 58 25 2c 33 30  2c 32 38 2c 33 38 2c 26  |R",X%,30,28,38,&|
00032890  46 46 46 46 38 30 30 30  29 0d 1b 4a 0d 20 20 f2  |FFFF8000)..J.  .|
000328a0  75 70 6d 69 6e 69 0d 1b  4b 06 20 e1 0d 1b 4c 04  |upmini..K. ...L.|
000328b0  0d 1b 4d 2a 20 dd 20 f2  62 65 61 63 6f 6e 5f 74  |..M* . .beacon_t|
000328c0  65 78 74 28 66 24 2c 74  24 2c 78 25 2c 79 25 2c  |ext(f$,t$,x%,y%,|
000328d0  78 70 25 2c 79 70 25 2c  63 29 0d 1b 4e 19 20 20  |xp%,yp%,c)..N.  |
000328e0  e3 20 58 25 3d 78 25 20  b8 20 78 25 2b 31 36 20  |. X%=x% . x%+16 |
000328f0  88 20 38 0d 1b 4f 1a 20  20 20 e3 20 59 25 3d 79  |. 8..O.   . Y%=y|
00032900  25 20 b8 20 79 25 2b 31  36 20 88 20 38 0d 1b 50  |% . y%+16 . 8..P|
00032910  25 20 20 20 20 f2 77 72  69 74 65 28 66 24 2c 74  |%    .write(f$,t|
00032920  24 2c 58 25 2c 59 25 2c  78 70 25 2c 79 70 25 2c  |$,X%,Y%,xp%,yp%,|
00032930  30 29 0d 1b 51 08 20 20  20 ed 0d 1b 52 07 20 20  |0)..Q.   ...R.  |
00032940  ed 0d 1b 53 27 20 20 f2  77 72 69 74 65 28 66 24  |...S'  .write(f$|
00032950  2c 74 24 2c 78 25 2b 38  2c 79 25 2b 38 2c 78 70  |,t$,x%+8,y%+8,xp|
00032960  25 2c 79 70 25 2c 63 29  0d 1b 54 06 20 e1 0d 1b  |%,yp%,c)..T. ...|
00032970  55 04 0d 1b 56 1f 20 dd  20 f2 73 65 74 5f 72 74  |U...V. . .set_rt|
00032980  73 5f 6c 6f 77 5f 6f 6e  5f 61 74 6f 6d 77 69 64  |s_low_on_atomwid|
00032990  65 0d 1b 57 0d 20 20 de  20 63 25 20 36 34 0d 1b  |e..W.  . c% 64..|
000329a0  58 12 20 20 e3 20 50 3d  30 20 b8 20 32 20 88 32  |X.  . P=0 . 2 .2|
000329b0  0d 1b 59 0c 20 20 20 50  25 3d 63 25 0d 1b 5a 0d  |..Y.   P%=c%..Z.|
000329c0  20 20 20 5b 4f 50 54 20  50 0d 1b 5b 17 20 20 20  |   [OPT P..[.   |
000329d0  53 57 49 20 22 4f 53 5f  45 6e 74 65 72 4f 53 22  |SWI "OS_EnterOS"|
000329e0  0d 1b 5c 35 20 20 20 4c  44 52 20 52 31 2c 73 65  |..\5   LDR R1,se|
000329f0  72 69 61 6c 5f 62 61 73  65 3a 4d 4f 56 20 52 30  |rial_base:MOV R0|
00032a00  2c 23 39 3a 53 54 52 42  20 52 30 2c 5b 52 31 2c  |,#9:STRB R0,[R1,|
00032a10  23 26 31 30 5d 0d 1b 5d  28 20 20 20 54 45 51 50  |#&10]..](   TEQP|
00032a20  20 50 43 2c 23 30 3a 4d  4f 56 4e 56 20 52 30 2c  | PC,#0:MOVNV R0,|
00032a30  52 30 3a 4d 4f 56 20 50  43 2c 52 31 34 0d 1b 5e  |R0:MOV PC,R14..^|
00032a40  1a 20 20 20 2e 73 65 72  69 61 6c 5f 62 61 73 65  |.   .serial_base|
00032a50  20 45 51 55 44 20 30 0d  1b 5f 08 20 20 20 5d 0d  | EQUD 0.._.   ].|
00032a60  1b 60 07 20 20 ed 0d 1b  61 26 20 20 21 73 65 72  |.`.  ...a&  !ser|
00032a70  69 61 6c 5f 62 61 73 65  3d a0 28 63 6f 6e 66 69  |ial_base=.(confi|
00032a80  67 24 28 31 33 29 29 3a  d6 20 63 25 0d 1b 62 06  |g$(13)):. c%..b.|
00032a90  20 e1 0d ff                                       | ...|
00032a94