Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199403.adf » Disk1Mar94 » !AWMar94/Goodies/Copier/!Copier/Copier

!AWMar94/Goodies/Copier/!Copier/Copier

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 » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199403.adf » Disk1Mar94
Filename: !AWMar94/Goodies/Copier/!Copier/Copier
Read OK:
File size: 727D bytes
Load address: 0000
Exec address: 0000
File contents
    1REM --> Copier
    2
    3REMVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVAL
    4REMLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOG
    5REM This program and all documentation LEN David Holden 1993
    6REMLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOGLOG
    7REMVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVAL
    8
    9version$="Copier   Ver 1.02":cprt$="� David Holden 1993":purpose$="Multiple Disc Copier"
   10ONERROR PROCreport_error(REPORT$,TRUE)
   11PROCinitialise
   12
   13REPEAT
   14SYS "Wimp_Poll",mask%,blk% TO reason%
   15CASE reason% OF
   16 WHEN 1:
   17 WHEN 2:SYS"Wimp_OpenWindow",,blk%:IF (!blk%=write_w%)OR(!blk%=read_w%) w_op%=TRUE
   18 WHEN 3:SYS"Wimp_CloseWindow",,blk%
   19 WHEN 6:PROCclick
   20 WHEN 7:PROCdrag_term
   21 WHEN 8:IF !blk%=write_w% AND blk%!4=26 AND blk%!24=13 PROCstart_auto ELSE SYS"Wimp_ProcessKey",blk%!24
   22 WHEN 9:PROCselect
   23 WHEN 17,18:CASE blk%!16 OF
   24    WHEN 0:PROCdie
   25    WHEN 2:PROCsave
   26    WHEN 3,5:PROCload_file
   27   ENDCASE
   28ENDCASE
   29IF mask%=0 THEN
   30 CASE state% OF
   31  WHEN 1:state%=FNread_track
   32  WHEN 2:state%=FNformat_track2
   33  WHEN 3:PROCstart_write
   34  WHEN 4:state%=FNwrite_track
   35  WHEN 5:state%=FNverify_track
   36  WHEN 6:state%=FNformat_track3
   37  WHEN 7:PROCverify_failed
   38  WHEN 8:PROCchanged
   39 OTHERWISE
   40  mask%=&C31
   41 ENDCASE
   42ENDIF
   43UNTIL FALSE
   44
   45DEFPROCselect
   46SYS"Wimp_GetPointerInfo",,blk%+&C0:mb%=blk%!&C8
   47IF menu_h%=main_m% THEN
   48 IF blk%!4=-1 THEN
   49  CASE !blk% OF
   50   WHEN 0:!blk%=write_w%:SYS"Wimp_CloseWindow",,blk%
   51          !blk%=read_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%:w_op%=TRUE
   52   WHEN 1:PROCset_num(write_w%,20,copied%)
   53          PROCset_num(write_w%,21,faulty%)
   54          !blk%=read_w%:SYS"Wimp_CloseWindow",,blk%
   55          !blk%=write_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%:w_op%=TRUE
   56   WHEN 2:!blk%=opt_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%
   57   WHEN 3:IF size%>0 IF FNget_opt(10)=TRUE IF FNalert(3,"Are you sure you want to clear this disc image")=2 ENDPROC
   58          PROCclear
   59   WHEN 5:PROCdie
   60  ENDCASE
   61 ENDIF
   62ENDIF
   63IF mb%=1 SYS"Wimp_CreateMenu",,menu_h%,mx%,mh%
   64ENDPROC
   65
   66DEFPROCclick
   67SYS"Wimp_GetPointerInfo",,blk%+&C0:mb%=blk%!&C8
   68IF mb%<>4 AND blk%!12<> -2 ENDPROC
   69CASE blk%!12 OF
   70 WHEN -2:IF blk%!16=icon% THEN
   71      CASE mb% OF
   72       WHEN 2:mx%=blk%!&C0-140:mh%=384:menu_h%=main_m%:SYS"Wimp_CreateMenu",,menu_h%,mx%,mh%
   73       WHEN 4:IF size%=0 THEN
   74               !blk%=read_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%
   75              ELSE
   76               PROCset_num(write_w%,20,copied%):PROCset_num(write_w%,21,faulty%)
   77               !blk%=read_w%:SYS"Wimp_CloseWindow",,blk%
   78               !blk%=write_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%:w_op%=TRUE
   79              ENDIF
   80      ENDCASE
   81     ENDIF
   82 WHEN read_w%:IF state%>0 ENDPROC
   83          CASE blk%!16 OF
   84           WHEN 10:IF FNget_disc=TRUE THEN
   85                    IF FNget_opt(18)=TRUE mask%=0:state%=FNread_track ELSE PROCload_all
   86                   ENDIF
   87           WHEN  7:read_drive%-=1:IF read_drive%<0 read_drive%=max_drive%
   88                   PROCset_num(read_w%,12,read_drive%)
   89           WHEN 13:read_drive%+=1:IF read_drive%>max_drive% read_drive%=0
   90                   PROCset_num(read_w%,12,read_drive%)
   91          ENDCASE
   92 WHEN write_w%:CASE blk%!16 OF
   93           WHEN  7:IF state%>0:ENDPROC
   94                   write_drive%-=1:IF write_drive%<0 write_drive%=max_drive%
   95                   PROCset_num(write_w%,12,write_drive%)
   96           WHEN 13:IF state%>0:ENDPROC
   97                   write_drive%+=1:IF write_drive%>max_drive% write_drive%=0
   98                   PROCset_num(write_w%,12,write_drive%)
   99           WHEN 27:IF state%>0:ENDPROC
  100                   IF size%=0:VDU7:ENDPROC
  101                   !blk%=write_w%:blk%!4=12:SYS"Wimp_GetIconState",,blk%
  102                   write_drive%=?(blk%!28)-48:auto%=FALSE:PROCiconbar(size%)
  103                   IF FNget_opt(9)=TRUE IF FNalert(3,"Confirm: Write to drive :"+STR$(write_drive%))=2:ENDPROC
  104                   formatted%=FALSE:IF FNget_opt(12)=TRUE PROCformat(FALSE):ENDPROC
  105                   state%=3:mask%=0
  106           WHEN 28:IF state%=0 ENDPROC
  107                   IF mask%=0 THEN
  108                    IF state%=8 THEN
  109                     PROCiconbar((2)):state%=0:mask%=&C31
  110                     !blk%=write_w%:SYS"Wimp_CloseWindow",,blk%:w_op%=FALSE
  111                    ELSE
  112                     PROCiconbar((3)):mask%=&C31
  113                    ENDIF
  114                   ELSE
  115                    mask%=0:IF auto% PROCiconbar((2)) ELSE PROCiconbar(size%)
  116                   ENDIF
  117               WHEN 29:IF state%>0:ENDPROC
  118                       IF size%=0:VDU7 ELSE PROCstart_auto
  119          ENDCASE
  120 WHEN opt_w%:CASE blk%!16 OF
  121          WHEN 22:PROCload_opts
  122          WHEN 23:PROCsave_opts
  123         ENDCASE
  124 WHEN saveas_w%:IF blk%!16=sprite_h% AND blk%!8=4 saveas_w%=blk%!12:PROCdrag_file
  125ENDCASE
  126ENDPROC
  127
  128DEFPROCauto_next
  129mask%=&C31:state%=0
  130IF copied%>=FNnum_requ THEN
  131 I%=FNalert(1,"Required number of copies completed"):PROCiconbar(size%)
  132 mask%=&C31:state%=0:auto%=FALSE
  133 !blk%=write_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%:w_op%=TRUE
  134ELSE
  135 VDU7
  136 IF ro3%=TRUE AND FNget_opt(9)=FALSE THEN
  137  empty%=FALSE:state%=8:mask%=0:seq%=0:PROCiconbar(-1)
  138 ELSE
  139  !blk%=write_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%:w_op%=TRUE
  140 ENDIF
  141ENDIF
  142ENDPROC
  143
  144DEFPROCchanged
  145CASE TRUE OF
  146 WHEN TIME>100:PROCiconbar(-1):TIME=0
  147 WHEN TIME>80:PROCiconbar(-5)
  148 WHEN TIME>60:PROCiconbar(-4)
  149 WHEN TIME>40:PROCiconbar(-3)
  150 WHEN TIME>20:PROCiconbar(-2)
  151ENDCASE
  152SYS"ADFS_MiscOp",1,write_drive%,seq% TO ,,seq%,F%:IF F%AND8 empty%=TRUE:ENDPROC
  153IF empty% IF F%ANDchanged%=changed% mask%=&C31:state%=0:PROCstart_auto
  154ENDPROC
  155
  156DEFPROCstart_auto
  157LOCALERROR
  158ONERRORLOCAL PROCreport_error(REPORT$,FALSE):IF (ERR>&10000)AND(ERR<&20000)PROCstart_auto:ENDPROC ELSE ENDPROC:ELSE ENDPROC
  159IF FNnum_requ=0 I%=FNalert(1,"You must enter the required number of copies"):ENDPROC
  160IF copied%>=FNnum_requ I%=FNalert(1,"Required number already copied"):ENDPROC
  161!blk%=write_w%:blk%!4=12::SYS"Wimp_GetIconState",,blk%:write_drive%=?(blk%!28)-48
  162auto%=TRUE:formatted%=FALSE:PROCiconbar((2))
  163!blk%=write_w%:SYS"Wimp_CloseWindow",,blk%:w_op%=FALSE
  164IF FNget_opt(12)=TRUE PROCformat(FALSE):ENDPROC
  165mask%=0:state%=3
  166ENDPROC
  167
  168DEFFNnum_requ
  169!blk%=write_w%:blk%!4=26:SYS"Wimp_GetIconState",,blk%
  170I%=blk%!28:WHILE ?I%>31:I%+=1:ENDWHILE:?I%=13
  171=VAL($(blk%!28))
  172
  173DEFFNget_disc
  174LOCAL ERROR:ONERRORLOCAL PROCreport_error(REPORT$,FALSE):=FALSE
  175!blk%=write_w%:SYS"Wimp_CloseWindow",,blk%:PROCshade_write
  176!blk%=read_w%:blk%!4=12::SYS"Wimp_GetIconState",,blk%
  177read_drive%=?(blk%!28)-48:disc_addr%=read_drive%<<29
  178IF FNget_opt(8)=TRUE IF size%>0 IF FNalert(3,"Confirm: Read from drive :"+STR$(read_drive%))=2:=FALSE
  179SYS "ADFS_Retries",&FF00,&0200 TO ,,ort%
  180SYS "XADFS_DescribeDisc",STR$(read_drive%)+CHR$0,drec% TO E%;F%
  181SYS "ADFS_Retries",&FF00,ort%
  182IF (F%AND1) THEN
  183 IF ro3%=TRUE:I%=E%+4:WHILE?I%>31:I%+=1:ENDWHILE:?I%=13:ERROR !E%,$(E%+4)
  184 PROCset_record(&272):SYS "ADFS_DiscOp",,1ORdrec%<<6,&200+disc_addr%,track_buff%,&200
  185 IF ?track_buff%=&E9 OR (?track_buff%=&EB AND track_buff%?2=&90) THEN
  186  I%=track_buff%+&2B:name$="":FOR J%=0TO10:name$+=CHR$(I%?J%):NEXT
  187 ELSE
  188  ERROR 20000,"Unable to identify disc"
  189 ENDIF
  190ELSE
  191 name$="":I%=drec%+22:WHILE ?I%>32ANDI%<drec%+32:name$+=CHR$(?I%):I%+=1:ENDWHILE
  192ENDIF
  193IF FNwkspc(drec%!16)=FALSE PROCreport_error("Not enough memory available to load this disc",FALSE):=FALSE
  194size%=drec%!16:IF size%=&B4000 IF ro3%=FALSE drec%!16=&C8000
  195ptr%=buffer%:chunk%=size%DIV160:track%=0:end%=buffer%+size%
  196copied%=0:faulty%=0:PROCset_str(read_w%,3,name$)
  197=TRUE
  198
  199DEFPROCload_all
  200SYS"Hourglass_On":PROCset_str(read_w%,14,"All")
  201LOCALERROR:ONERRORLOCAL PROCreport_error(REPORT$,FALSE):PROCclear:ENDPROC
  202*FX229,0
  203IF ro3%=FALSE AND size%=&B4000 THEN
  204 FOR A%=&200TO&C6E00 STEP &1400:SYS "ADFS_DiscOp",,1ORdrec%<<6,disc_addr%+A%,ptr%,&1200:ptr%+=&1200:NEXT
  205ELSE
  206 SYS "ADFS_DiscOp",,1ORdrec%<<6,disc_addr%,buffer%,size%
  207ENDIF
  208*FX229,1
  209PROCset_str(write_w%,3,name$):PROCset_str(saveas_w%,3,name$)
  210PROCset_num(read_w%,14,0):PROCiconbar(size%):PROCunshade_write
  211!blk%=read_w%:SYS"Wimp_CloseWindow",,blk%:w_op%=FALSE:SYS "Hourglass_Off"
  212IF ro3%=TRUE OSCLI"ADFS:Dismount :"+STR$read_drive%
  213ENDPROC
  214
  215DEFFNread_track
  216LOCALERROR:ONERRORLOCAL PROCreport_error(REPORT$,FALSE):PROCclear:=&C31
  217SYS "ADFS_DiscOp",,1,disc_addr%,ptr%,chunk%
  218track%+=1:ptr%+=chunk%:disc_addr%+=chunk%:IF size%=&B4000 IF ro3%=FALSE disc_addr%+=&200
  219PROCset_num(read_w%,14,track%)
  220IF ptr%<end%:=1
  221PROCset_str(write_w%,3,name$):PROCset_str(saveas_w%,3,name$)
  222PROCset_num(read_w%,14,0):PROCiconbar(size%):PROCunshade_write
  223IF ro3%=TRUE OSCLI"ADFS:Dismount :"+STR$read_drive%
  224=0
  225
  226DEFPROCload_file
  227CASE blk%!40 OF
  228 WHEN &180:RESTORE +0
  229           DATA 10,5,2,2,15,7,1,0,0,1,32,5,3,2,0,0,0,&80,&0C,0
  230 WHEN &160:RESTORE +0
  231           DATA 10,10,2,4,15,6,1,0,0,4,64,6,9,2,0,0,0,0,&19,0
  232 WHEN &144:RESTORE +0
  233           DATA 9,18,2,4,0,0,0,0,1,0,0,0,0,0,0,0,0,&80,&16,0
  234 WHEN &172:RESTORE +0
  235           DATA 9,9,2,2,0,0,0,0,1,0,0,0,0,0,0,0,0,&40,&0B,0
  236 WHEN &164:RESTORE +0
  237           DATA 8,16,1,2,0,0,0,0,64,0,0,0,0,2,0,0,0,0,&0A,0
  238OTHERWISE
  239  ENDPROC
  240ENDCASE
  241LOCAL ERROR:ON ERROR LOCAL:PROCreport_error(REPORT$,FALSE):PROCclear:ENDPROC
  242blk%!12=blk%!8:blk%!16=4:filetype%=blk%!40
  243I%=blk%+44:filename$="":WHILE ?I%:filename$+=CHR$(?I%):I%+=1:ENDWHILE
  244SYS "Wimp_SendMessage",17,blk%,blk%!4
  245!blk%=write_w%:SYS"Wimp_CloseWindow",,blk%:PROCshade_write
  246IF FNget_opt(8)=TRUE IF size%>0 IF FNalert(3,"Confirm: Load disc image")=2:ENDPROC
  247DEFPROCinit_load
  248SYS"OS_File",17,filename$ TO I%,,T%,,len%:filetype%=(T%>>8)AND&FFF
  249IF I%=0 I%=FNalert(1,"File not found"):ENDPROC
  250IF FNwkspc(len%)=FALSE I%=FNalert(1,"Not enough memory to load file"):ENDPROC
  251PROCset_record(filetype%):size%=drec%!16
  252IF size%<>len% I%=FNalert(1,"This is not a disc image file!"):ENDPROC
  253SYS"OS_File",16,filename$,buffer% TO ,,,,len%
  254$blk%=filename$:I%=blk%:WHILE ?I%>32:I%+=1:ENDWHILE:WHILE ?I%<>ASC".":I%-=1:ENDWHILE:name$=$(I%+1)
  255!blk%=read_w%:SYS"Wimp_CloseWindow",,blk%
  256PROCset_str(write_w%,3,name$):PROCset_str(saveas_w%,3,name$)
  257chunk%=size%DIV160:track%=0:end%=buffer%+size%:copied%=0:faulty%=0
  258PROCiconbar(size%):PROCunshade_write
  259ENDPROC
  260
  261DEFPROCstart_write
  262LOCAL ERROR:ONERRORLOCAL PROCwrite_error:ENDPROC
  263state%=0
  264IF size%=&B4000 AND ro3%=FALSE THEN
  265 PROCset_record(&272)
  266ELSE
  267 IF formatted%=FALSE THEN
  268  SYS "ADFS_Retries",&FF00,&0100 TO ,,ort%
  269  SYS "ADFS_DescribeDisc",STR$(write_drive%)+CHR$0,drec%
  270  SYS "ADFS_Retries",&FF00,ort%
  271  IF !drec%=&4021209 drec%!16=&168000
  272 ENDIF
  273ENDIF
  274IF drec%!16<>size% THEN
  275 IF FNget_opt(13)=TRUE PROCformat(TRUE):ENDPROC   :REM>>>> reformat if wrong size
  276 IF FNalert(3,"Wrong disc format, do you want to reformat it ?")=1 PROCformat(FALSE)
  277 ENDPROC
  278ENDIF
  279PROCset_str(write_w%,30,"Copying"):SYS "Wimp_Poll",0,blk%
  280disc_addr%=write_drive%<<29:start%=buffer%:end%=buffer%+size%
  281IF FNget_opt(19)=TRUE chunk%=size%DIV160:track%=0:mask%=0:state%=4:ENDPROC
  282SYS"Hourglass_On":PROCset_str(write_w%,23,"All"):*FX229,0
  283SYS "ADFS_Retries",&FF00,&0100 TO ,,ort%
  284IF size%=&B4000 AND ro3%=FALSE THEN
  285 drec%!16=&C8000
  286 FOR A%=&200TO&C6E00 STEP&1400:SYS "ADFS_DiscOp",,2ORdrec%<<6,disc_addr%+A%,start%,&1200:start%+=&1200:NEXT
  287ELSE
  288 SYS "ADFS_DiscOp",,2ORdrec%<<6,disc_addr%,start%,size%
  289ENDIF
  290SYS "ADFS_Retries",&FF00,ort%:SYS"Hourglass_Off":*FX229,1
  291IF FNget_opt(16)=TRUE PROCstart_verify:ENDPROC
  292copied%+=1:PROCset_num(write_w%,20,copied%)
  293PROCset_num(write_w%,23,0):PROCset_str(write_w%,30,"Waiting")
  294IF ro3%=TRUE OSCLI"ADFS:Dismount :"+STR$write_drive%
  295IF auto%=TRUE PROCauto_next
  296ENDPROC
  297
  298DEFFNwrite_track
  299LOCALERROR:ONERRORLOCALPROCwrite_error:=0
  300SYS "ADFS_DiscOp",,2ORdrec%<<6,disc_addr%,start%,chunk% TO E%;F%
  301disc_addr%+=chunk%:start%+=chunk%:track%+=1:IF size%=&B4000 IF ro3%=FALSE disc_addr%+=&200
  302PROCset_num(write_w%,23,track%)
  303IF start%<end%:=4
  304IF FNget_opt(16)=TRUE PROCstart_verify:=state%
  305PROCset_num(write_w%,23,0):PROCset_str(write_w%,30,"Waiting")
  306copied%+=1:PROCset_num(write_w%,20,copied%)
  307IF auto%=TRUE PROCauto_next:=state%
  308mask%=&C31
  309=0
  310
  311DEFPROCwrite_error
  312LOCAL ERROR:ONERRORLOCAL PROCreport_error(REPORT$,FALSE):ENDPROC
  313PROCset_num(write_w%,23,0):PROCset_str(write_w%,30,"Waiting")
  314mask%=&C31:state%=0:SYS"Hourglass_Smash":SYS "ADFS_Retries",&FF00,ort%
  315IF ERR<>&1089A THEN
  316 PROCreport_error(REPORT$,FALSE)
  317 IF auto%=TRUE THEN
  318  PROCiconbar(size%):auto%=FALSE
  319  !blk%=write_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%:w_op%=TRUE
  320 ENDIF
  321ELSE
  322 IF FNget_opt(14)=TRUE mask%=0:PROCformat(FALSE):ENDPROC
  323 IF FNalert(3,"Disc not formatted, do you want to format it ?")=1 mask%=0:PROCformat(FALSE):ENDPROC
  324 PROCreport_error(REPORT$,FALSE)
  325 IF auto%=TRUE THEN
  326  PROCiconbar(size%):auto%=FALSE
  327  !blk%=write_w%:SYS"Wimp_GetWindowState",,blk%:SYS"Wimp_OpenWindow",,blk%:w_op%=TRUE
  328 ENDIF
  329ENDIF
  330ENDPROC
  331
  332DEFPROCstart_verify
  333LOCAL ERROR:ONERRORLOCAL PROCwrite_error:ENDPROC
  334PROCset_str(write_w%,30,"Verifying"):SYS"Wimp_Poll",0,blk%
  335start%=write_drive%<<29:L%=size%DIV160:track%=0
  336IF FNget_opt(20)=TRUE mask%=0:state%=5:ENDPROC
  337PROCset_str(write_w%,23,"All"):SYS"Hourglass_On":SYS "ADFS_Retries",&FF00,&0100 TO ,,ort%:*FX229,0
  338IF ro3%=FALSE AND size%=&B4000 THEN
  339 drec%!16=&C8000:start%+=&200:track%=0
  340 WHILE track% <160
  341  SYS "XADFS_DiscOp",,0ORdrec%<<6,start%,,&1200 TO E%;F%
  342  start%+=&1400:track%+=1:IF (F%AND1)=1 track%=200
  343 ENDWHILE
  344ELSE
  345 SYS "XADFS_DiscOp",,0,start%,,size% TO ,,start%;F%
  346ENDIF
  347*fx229,1
  348SYS "ADFS_Retries",&FF00,ort%
  349IF (F%AND1)=TRUE PROCset_num(write_w%,23,start%DIVL%):SYS"Hourglass_Off":PROCverify_failed:ENDPROC
  350copied%+=1:PROCset_num(write_w%,20,copied%)
  351PROCset_num(write_w%,23,0):PROCset_str(write_w%,30,"Waiting"):SYS"Hourglass_Off"
  352IF ro3%=TRUE OSCLI"ADFS:Dismount :"+STR$write_drive%
  353IF auto%=TRUE PROCauto_next:ENDPROC
  354state%=0:mask%=&C31
  355ENDPROC
  356
  357DEFFNverify_track
  358SYS "ADFS_Retries",&FF00,&0100 TO ,,ort%
  359SYS "XADFS_DiscOp",,0,start%,,L% TO ,,start%;F%
  360SYS "ADFS_Retries",&FF00,ort%
  361IF (F%AND1) :=7
  362IF track%<159 THEN
  363 track%+=1:PROCset_num(write_w%,23,track%)
  364 IF size%=&B4000 IF ro3%=FALSE start%+=&200
  365 :=5
  366ENDIF
  367PROCset_num(write_w%,23,0):PROCset_str(write_w%,30,"Waiting")
  368copied%+=1:mask%=0:PROCset_num(write_w%,20,copied%)
  369IF ro3%=TRUE OSCLI"ADFS:Dismount :"+STR$write_drive%
  370IF auto%=TRUE PROCauto_next:=state%
  371=0
  372
  373DEFPROCverify_failed
  374VDU7:PROCset_str(write_w%,30,"Verify failed")
  375IF FNget_opt(15)=FALSE PROCbad_disc:ENDPROC
  376IF formatted%=TRUE PROCbad_disc:ENDPROC
  377IF FNget_opt(11)=FALSE mask%=0:PROCformat(FALSE):ENDPROC
  378IF FNalert(3,"Verify failed, do you want to reformat and try again ?")=2:PROCbad_disc:ENDPROC
  379mask%=0:PROCformat(FALSE)
  380ENDPROC
  381
  382DEFPROCbad_disc
  383faulty%+=1:mask%=&C31:state%=0:PROCset_num(write_w%,21,faulty%)
  384IF w_op%=FALSE I%=FNalert(1,"Verify failed")
  385IF auto%=TRUE empty%=FALSE:PROCauto_next
  386ENDPROC
  387
  388DEFPROCformat(check%)
  389LOCAL ERROR:ONERRORLOCAL PROCwrite_error:ENDPROC
  390state%=0
  391IF check% IF FNalert(3,"Confirm: Format disc in drive :"+STR$(write_drive%))=2:ENDPROC
  392SYS "ADFS_Retries",&FF00,&0200 TO ,,ort%
  393PROCset_str(write_w%,30,"Formatting"):addr%=write_drive%<<29:track%=0
  394IF FNget_opt(21)=FALSE PROCset_str(write_w%,23,"All"):SYS "Wimp_Poll",0,blk%:M%=FALSE ELSE M%=TRUE
  395CASE (size%DIV1024) OF
  396 WHEN 800 :IF ro3%=TRUE PROCro3_format(M%,800) ELSE PROCform2_800(M%)
  397 WHEN 1600:PROCro3_format(M%,1600)
  398 WHEN 1440:PROCro3_format(M%,1440)
  399 WHEN 720 :IF ro3%=TRUE PROCro3_format(M%,720) ELSE PROCform2_720(M%)
  400 WHEN 640 :IF ro3%=TRUE PROCro3_format(M%,640) ELSE PROCform2_640(M%)
  401OTHERWISE
  402 ERRROR 20000:"Don't know how to format this disc":=0
  403ENDCASE
  404formatted%=TRUE:mask%=0
  405IF M%=FALSE state%=3:ENDPROC
  406IF ro3%=TRUE state%=6 ELSE state%=2
  407ENDPROC
  408
  409DEFPROCro3_format(mt%,sz%)
  410LOCALERROR:ONERRORLOCAL PROCwrite_error:ENDPROC
  411CASE sz% OF
  412 WHEN 800 :skew%=4:RESTORE +0
  413           DATA 10,5,2,2,15,7,1,0,0,1,32,5,3,2,0,0,0,&80,&0C,0
  414           DATA 0,4,0,0,50,0,0,0,0,0,0,0,&5A,0,0,0,5,2,1,&A5,80,0,0,0
  415 WHEN 1600:skew%=9:RESTORE +0
  416           DATA 10,10,2,4,15,6,1,0,0,4,64,6,9,2,0,0,0,0,&19,0
  417           DATA 0,4,0,0,50,0,0,0,0,0,0,0,&5A,0,0,0,10,4,1,&A5,80,0,0,0
  418 WHEN 1440:skew%=16:RESTORE +0
  419           DATA 9,18,2,4,0,0,0,0,1,0,0,0,0,0,0,0,0,&80,&16,0
  420           DATA 0,2,0,0,50,0,0,0,0,0,0,0,&5A,0,0,0,18,4,1,&4E,80,0,0,0
  421 WHEN 720 :skew%=7:RESTORE +0
  422           DATA 9,9,2,2,0,0,0,0,1,0,0,0,0,0,0,0,0,&40,&0B,0
  423           DATA 0,2,0,0,50,0,0,0,0,0,0,0,&5A,0,0,0, 9,2,1,&4E,80,0,0,0
  424 WHEN 640 :skew%=12:RESTORE +0
  425           DATA 8,16,1,2,0,0,0,0,64,0,0,0,0,2,0,0,0,0,&0A,0
  426           DATA 0,1,0,0,50,0,0,0,0,0,0,0,&39,0,0,0,16,2,&0D,&A5,80,0,0,0
  427OTHERWISE
  428   ERROR 20000,"Bad format parameters!"
  429ENDCASE
  430FOR I%=0TO19:READ J%:drec%?I%=J%:NEXT:FOR I%=0TO23:READ J%:struc%?I%=J%:NEXT
  431struc%!24=0:struc%!28=0:struc%!32=0:sec%=0:st_sec%=(drec%?8)AND3:sec_trk%=drec%?1
  432chunk%=sec_trk%*!struc%:addr%=write_drive%<<29:log2sec%=((?drec%)-7)<<24:track%=0
  433IF mt%=TRUE mask%=0:state%=6:ENDPROC
  434SYS"Hourglass_On":*fx229,0
  435IF sz%=640 THEN
  436 FORside%=0TO&100STEP&100:FOR track%=0TO79
  437  base%=track%ORside%ORlog2sec%:J%=struc%+36:FOR I%=0TO15:!J%=base%ORsec%<<16:J%+=4:sec%=(sec%+1)MOD16:NEXT
  438  SYS "ADFS_DiscOp",0,4,addr%,0,struc%:addr%+=chunk%:sec%=(sec%+skew%)MOD16
  439 NEXT:NEXT
  440ELSE
  441 FOR track%=0TO159
  442  side%=track%MOD2:cyl%=track%DIV2:base%=cyl%ORside%<<8ORlog2sec%
  443  J%=struc%+36:FOR I%=1TOsec_trk%:!J%=base%OR(sec%+st_sec%)<<16:J%+=4:sec%=((sec%+1)MODsec_trk%):NEXT
  444  SYS "ADFS_DiscOp",0,4,addr%,0,struc%:addr%+=chunk%:IF side%=1 sec%=(sec%+skew%)MODsec_trk%
  445 NEXT
  446ENDIF
  447formatted%=TRUE:SYS"Hourglass_Off":*fx229,1
  448ENDPROC
  449
  450DEFFNformat_track3
  451LOCALERROR:ONERRORLOCAL PROCwrite_error:=0
  452PROCset_num(write_w%,23,track%)
  453IF sz%=640 THEN
  454  base%=(track%DIV2)OR(track%MOD2)<<8ORlog2sec%
  455  J%=struc%+36:FOR I%=0TO15:!J%=base%ORsec%<<16:J%+=4:sec%=(sec%+1)MOD16:NEXT
  456  SYS "ADFS_DiscOp",0,4,addr%,0,struc%:addr%+=chunk%:sec%=(sec%+skew%)MOD16
  457ELSE
  458  side%=track%MOD2:cyl%=track%DIV2:base%=cyl%ORside%<<8ORlog2sec%
  459  J%=struc%+36:FOR I%=1TOsec_trk%:!J%=base%OR(sec%+st_sec%)<<16:J%+=4:sec%=((sec%+1)MODsec_trk%):NEXT
  460  SYS "ADFS_DiscOp",0,4,addr%,0,struc%:addr%+=chunk%
  461  IF side%=1 sec%=(sec%+skew%)MODsec_trk%
  462ENDIF
  463track%+=1:IF track%<160:=6
  464Formatted%=TRUE:=3
  465
  466DEFPROCform2_800(m%)
  467LOCALERROR:ONERRORLOCAL:PROCwrite_error:ENDPROC
  468RESTORE +0
  469FOR I%=0TO19:READ A%:drec%?I%=A%:NEXT
  470DATA 10,5,2,2,15,7,1,0,0,1,32,5,3,2,0,0,0,&80,&0C,0
  471READ write_len%,chunk%,skew%,sec_trk%,log2sec%,st_sec%
  472I%=0:A%=track_buff%
  473REPEAT:READ B%,C%:IF C%=&FF ident%(I%)=A%:I%+=1
  474A%=USR(code%):UNTIL B%=0
  475DATA 6156,5120,4,5,3<<24,0
  476DATA 303,&4E
  477DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
  478DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
  479DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
  480DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
  481DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
  482DATA 0,0
  483sec%=0
  484IF m%=TRUE THEN
  485 mask%=0:state%=2:ENDPROC
  486ELSE
  487 SYS"Hourglass_On":*fx229,0
  488 A%=ident%(0):B%=ident%(1):C%=ident%(2):D%=ident%(3):E%=ident%(4)
  489 FOR track%=0TO79
  490  base%=log2sec%ORtrack%:!A%=base%ORsec%<<16:!B%=base%OR((sec%+1)MOD5)<<16:!C%=base%OR((sec%+2)MOD5)<<16:!D%=base%OR((sec%+3)MOD5)<<16:!E%=base%OR((sec%+4)MOD5)<<16
  491  SYS"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%
  492  !A%=!A%OR256:!B%=!B%OR256:!C%=!C%OR256:!D%=!D%OR256:!E%=!E%OR256
  493  SYS"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%:sec%=(sec%+4)MOD5
  494 NEXT
  495SYS"Hourglass_Off":state%=3:mask%=0:*fx229,1
  496ENDIF
  497ENDPROC
  498
  499DEFPROCform2_720(m%)
  500LOCALERROR:ONERRORLOCAL PROCwrite_error:ENDPROC
  501RESTORE +0
  502FOR I%=0TO19:READ A%:drec%?I%=A%:NEXT
  503DATA 9,10,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,&80,&0C,0
  504READ write_len%,chunk%,skew%,sec_trk%,log2sec%,st_sec%
  505I%=0:A%=track_buff%
  506REPEAT:READ B%,C%:IF C%=&FF ident%(I%)=A%:I%+=1
  507A%=USR(code%):UNTIL B%=0
  508DATA 6156,5120,7,9,2<<24,1
  509DATA 303,&4E
  510DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  511DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  512DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  513DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  514DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  515DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  516DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  517DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  518DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
  519DATA 0,0
  520sec%=0
  521IF m%=TRUE THEN
  522 mask%=0:state%=2:ENDPROC
  523ELSE
  524 SYS"Hourglass_On":*fx229,0
  525 FOR track%=0TO79
  526  base%=log2sec%ORtrack%
  527  FOR A%=0TO8:!(ident%(A%))=base%OR(sec%+1)<<16:sec%=(sec%+1)MOD9:NEXT
  528  SYS"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%
  529  FOR A%=0TO8:!(ident%(A%))=!(ident%(A%))OR256:NEXT
  530  SYS"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%:sec%=(sec%+2)MOD9
  531 NEXT
  532SYS"Hourglass_Off":state%=3:mask%=0:*fx229,1
  533ENDIF
  534ENDPROC
  535
  536DEFPROCform2_640(m%)
  537LOCALERROR:ONERRORLOCAL PROCwrite_error:ENDPROC
  538RESTORE +0
  539FOR I%=0TO19:READ A%:drec%?I%=A%:NEXT
  540READ write_len%,chunk%,sec_trk%,skew%,log2sec%,st_sec%
  541A%=track_buff%:READ B%,C%:A%=USR(code%)
  542DATA 8,16,1,2,0,0,0,0,64,0,0,0,0,2,0,0,0,0,&0A,0
  543DATA 6156,4096,16,12,1<<24,0
  544DATA 138,&4E
  545FOR I%=0 TO 15
  546 RESTORE +0
  547 REPEAT:READ B%,C%:IF C%=&FF ident%(I%)=A%
  548 A%=USR(code%):UNTIL B%=0
  549NEXT
  550DATA 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 256,&A4, 2,&F7, 57,&4E ,0,0
  551sec%=0
  552IF m%=TRUE THEN
  553 mask%=0:state%=2
  554ELSE
  555 SYS"Hourglass_On"
  556 FORside%=0TO&100STEP&100:FOR track%=0TO79
  557  base%=log2sec%ORside%ORtrack%:FOR A%=0TO15:!(ident%(A%))=base%ORsec%<<16:sec%=(sec%+1)MOD16:NEXT
  558  SYS"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:sec%=(sec%+skew%)MOD16:addr%+=chunk%
  559 NEXT:NEXT
  560 SYS"Hourglass_Off":state%=3:mask%=0
  561ENDIF
  562ENDPROC
  563
  564DEFFNformat_track2
  565LOCALERROR:ONERRORLOCAL PROCwrite_error:=0
  566PROCset_num(write_w%,23,track%)
  567IF chunk%=&1000 THEN
  568 IF track%<80 base%=log2sec%ORtrack% ELSE base%=log2sec%OR&100ORtrack%
  569 FOR A%=0TOsec_trk%-1:!(ident%(A%))=base%ORsec%<<16:sec%=(sec%+1)MODsec_trk%:NEXT
  570 SYS"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%
  571 sec%=(sec%+skew%)MODsec_trk%:addr%+=chunk%
  572ELSE
  573 base%=log2sec%OR(track%MOD2)<<8OR(track%DIV2)
  574 FOR A%=0TOsec_trk%-1:!(ident%(A%))=base%OR(sec%+st_sec%)<<16:sec%=(sec%+1)MODsec_trk%:NEXT
  575 IF track%MOD2=0 THEN
  576  SYS"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%
  577 ELSE
  578  FOR A%=0TOsec_trk%-1:!(ident%(A%))=!(ident%(A%))OR256:NEXT
  579  SYS"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:sec%=(sec%+skew%)MODsec_trk%:addr%+=chunk%
  580 ENDIF
  581 IF size%=&B4000 IF ro3%=FALSE addr%+=&200
  582ENDIF
  583track%+=1:IF track%<160:=2:ELSE:=3
  584
  585
  586DEFPROCset_record(ft%)
  587CASE ft% OF
  588 WHEN &180:RESTORE +0
  589           DATA 10,5,2,2,15,7,1,0,0,1,32,5,3,2,0,0,0,&80,&0C,0
  590 WHEN &160:RESTORE +0
  591           DATA 10,10,2,4,15,6,1,0,0,4,64,6,9,2,0,0,0,0,&19,0
  592 WHEN &144:RESTORE +0
  593           DATA 9,18,2,4,0,0,0,0,1,0,0,0,0,0,0,0,0,&80,&16,0
  594 WHEN &172:RESTORE +0
  595           DATA 9,9,2,2,0,0,0,0,1,0,0,0,0,0,0,0,0,&40,&0B,0
  596 WHEN &272:RESTORE +0
  597           DATA 9,10,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,&40,&0B,0
  598 WHEN &164:RESTORE +0
  599           DATA 8,16,1,2,0,0,0,0,64,0,0,0,0,2,0,0,0,0,&0A,0
  600OTHERWISE
  601    ERROR 20000,"This is not a disc image!"
  602ENDCASE
  603FOR I%=drec%TOdrec%+40STEP4:!I%=0:NEXT:FOR I%=0TO19:READ J%:drec%?I%=J%:NEXT
  604ENDPROC
  605
  606DEFPROCclear
  607PROCset_str(read_w%,3,"None"):PROCset_str(write_w%,3,"None")
  608PROCset_num(write_w%,23,0):PROCset_str(write_w%,30,"Waiting"):PROCset_num(write_w%,26,0)
  609size%=0:name$="":copied%=0:faulty%=0:state%=0:mask%=&C31:auto%=FALSE
  610PROCiconbar(1):PROCshade_write:I%=FNwkspc(0)
  611!blk%=write_w%:SYS"Wimp_CloseWindow",,blk%
  612ENDPROC
  613
  614DEFPROCset_num(w%,i%,v%)
  615!blk%=w%:blk%!4=i%:SYS"Wimp_GetIconState",,blk%
  616blk%!8=0:blk%!12=0:$(blk%!28)=STR$(v%):IF w_op%:*fx19
  617SYS"Wimp_SetIconState",,blk%
  618ENDPROC
  619
  620DEFPROCset_str(w%,i%,s$)
  621!blk%=w%:blk%!4=i%:SYS"Wimp_GetIconState",,blk%
  622blk%!8=0:blk%!12=0:$(blk%!28)=s$:SYS"Wimp_SetIconState",,blk%
  623ENDPROC
  624
  625DEFPROCdrag_file
  626!blk%=saveas_w%:SYS"Wimp_GetWindowState",,blk%
  627X%=blk%!4-blk%!20:Y%=blk%!16-blk%!24
  628blk%!4=sprite_h%:SYS"Wimp_GetIconState",,blk%
  629!blk%=saveas_w%:blk%!4=5:blk%!8=blk%!8+X%:blk%!12=blk%!12+Y%
  630blk%!16=blk%!16+X%:blk%!20=blk%!20+Y%:blk%!24=0:blk%!28=0
  631blk%!32=&7FFFFFFF:blk%!36=&7FFFFFFF:SYS"Wimp_DragBox",,blk%
  632ENDPROC
  633
  634DEFPROCdrag_term
  635SYS"Wimp_GetPointerInfo",,blk%
  636blk%!20=blk%!12:blk%!24=blk%!16:blk%!28=!blk%:blk%!32=blk%!4
  637blk%!36=size%:blk%!40=filetype%:blk%!16=1:$(blk%+44)=name$
  638!blk%=(LEN(name$)+49)ANDNOT3:blk%!12=0
  639SYS"Wimp_SendMessage",17,blk%,blk%!20,blk%!24
  640ENDPROC
  641
  642DEFPROCsave
  643LOCALERROR:ONERRORLOCAL PROCreport_error(REPORT$,FALSE):ENDPROC
  644I%=blk%+44:WHILE?I%>31:I%+=1:ENDWHILE:?I%=13
  645SYS "XOS_File",10,$(blk%+44),filetype%,,buffer%,buffer%+size%
  646ENDPROC
  647
  648DEFFNget_opt(num%)
  649!blk%=opt_w%:blk%!4=num%:SYS "Wimp_GetIconState",,blk%
  650IF(blk%!24AND1<<21):=TRUE:ELSE:=FALSE
  651
  652DEFFNwkspc(sz%)
  653SYS"Wimp_SlotSize",memsz%+sz%,-1 TO e%
  654IF e%<(memsz%+sz%):=FALSE:ELSE:=TRUE
  655
  656DEFPROCmain_menu
  657LOCAL line,tick,last,write,m%
  658tick=1:line=2:write=4:last=&80:DIM menubuff% &100:m%=menubuff%
  659main_m%=FNnew_menu (m%,"Copier",140)
  660m%=FNmenu_item ("Read",0,0)
  661menu_write%=m%+8
  662m%=FNmenu_item ("Write",0,saveas_w%)
  663m%=FNmenu_item ("Options",0,0)
  664m%=FNmenu_item ("Clear",0,0)
  665m%=FNmenu_item ("Info",line,info_w%)
  666m%=FNmenu_item ("Quit",last,0)
  667ENDPROC
  668
  669DEFPROCshade_write
  670!menu_write%=!menu_write%OR1<<22
  671ENDPROC
  672
  673DEFPROCunshade_write
  674!menu_write%=!menu_write%ANDNOT(1<<22)
  675ENDPROC
  676
  677DEFFNnew_menu (a%,menutitle$,menuwidth%)
  678$a%=menutitle$:a%!12=&70207:a%!16=menuwidth%:a%!20=40:a%!24=0
  679m%=a%+28
  680=a%
  681
  682DEFFNmenu_item (itemname$,menuflags%,submenu%)
  683!m%=menuflags%:m%!4=submenu%:m%!8=&7000001:$(m%+12)=itemname$
  684=m%+24
  685
  686DEFFNiconbar
  687!blk%=-1:blk%!4=0:blk%!8=-16:blk%!12=84
  688blk%!16=84:blk%!20=&1700210B
  689blk%!24=spr_str%:blk%!28=sprite%:blk%!32=8
  690SYS "Wimp_CreateIcon",,blk% TO I%
  691=I%
  692
  693DEFPROCiconbar(sz%)
  694!blk%=-1:blk%!4=icon%:SYS"Wimp_GetIconState",,blk%
  695$sprite%="s!copier"
  696CASE sz% OF
  697 WHEN 1600*1024:$spr_str%=" 1�6M ":$save_sprite%="file_160":filetype%=&160
  698 WHEN 1440*1024:$spr_str%=" 1�4M ":$save_sprite%="file_144":filetype%=&144
  699 WHEN 800*1024 :$spr_str%=" 800K ":$save_sprite%="file_180":filetype%=&180
  700 WHEN 720*1024 :$spr_str%=" 720K ":$save_sprite%="file_172":filetype%=&172
  701 WHEN 640*1024 :$spr_str%=" 640K ":$save_sprite%="file_164":filetype%=&164
  702 WHEN 1 :$spr_str%=" None ":$save_sprite%=""
  703 WHEN 2 :$spr_str%=" Auto "
  704 WHEN 3 :$spr_str%="Pause"
  705 WHEN -1:$spr_str%=" Feed ":$sprite%="sinsert_1"
  706 WHEN -2:$spr_str%=" Feed ":$sprite%="sinsert_2"
  707 WHEN -3:$spr_str%=" Me! ":$sprite%="sinsert_3"
  708 WHEN -4:$spr_str%=" Me! ":$sprite%="sinsert_4"
  709 WHEN -5:$spr_str%="     ":$sprite%="sinsert_5"
  710OTHERWISE
  711 $(spr_str%)=" "+STR$(sz%DIV1024)+"K  ":$save_sprite%=""
  712ENDCASE
  713blk%!8=0:blk%!12=0:*fx19
  714SYS "Wimp_SetIconState",,blk%
  715!blk%=saveas_w%::blk%!4=sprite_h%:blk%!8=0::blk%!12=0::SYS"Wimp_SetIconState",,blk%
  716ENDPROC
  717
  718DEFPROCreport_error (err$,fatal%)
  719mask%=&C31:state%=0:SYS"Hourglass_Smash":*FX229,1
  720!blk%=ERR:$(blk%+4)="Error "+STR$(ERL)+": "+err$+CHR$0
  721SYS "Wimp_ReportError",blk%,1,title%
  722IF NOT fatal% ENDPROC
  723DEFPROCdie
  724ONERROROFF:SYS "Wimp_CloseDown",hand%,&4B534154
  725END
  726
  727DEFFNalert(op%,a$)
  728blk%!&80=0:$(blk%+&84)=a$+CHR$(0):SYS"Wimp_ReportError",blk%+&80,16+op%,title% TO ,I%
  729=I%
  730
  731DEFPROCsave_opts
  732LOCALERROR:ONERRORLOCAL:CLOSE#H%:PROCreport_error(REPORT$,FALSE):ENDPROC
  733H%=OPENOUT(app_dir$+".Options")
  734FOR I%=1TOLEN(opt_id$):BPUT#H%,ASC(MID$(opt_id$,I%,1)):NEXT:BPUT#H%,13
  735FOR I%=8TO21
  736 !blk%=opt_w%:blk%!4=I%:SYS "Wimp_GetIconState",,blk%
  737 FOR J%=24TO27:BPUT#H%,blk%?J%:NEXT
  738NEXT
  739!blk%=read_w%:blk%!4=12:SYS "Wimp_GetIconState",,blk%:BPUT#H%,?(blk%!28)
  740!blk%=write_w%:blk%!4=12:SYS "Wimp_GetIconState",,blk%:BPUT#H%,?(blk%!28)
  741CLOSE#H%
  742ENDPROC
  743
  744DEFPROCload_opts
  745LOCALERROR:ONERRORLOCAL CLOSE#H%:PROCreport_error(REPORT$,FALSE):ENDPROC
  746H%=OPENIN(app_dir$+".Options")
  747IF H%=0 I%=FNalert(1,"Options file not found"):ENDPROC
  748$blk%=GET$#H%
  749IF $blk%<>opt_id$ CLOSE#H%:I%=FNalert(1,"Bad Options file"):ENDPROC
  750FOR I%=8TO21
  751 !blk%=opt_w%:blk%!4=I%:SYS "Wimp_GetIconState",,blk%
  752 FOR J%=64TO67:blk%?J%=BGET#H%:NEXT
  753 blk%!8=(blk%!24)EOR(blk%!64):blk%!12=0:SYS "Wimp_SetIconState",,blk%
  754NEXT
  755!blk%=read_w%:blk%!4=12:SYS "Wimp_GetIconState",,blk%
  756?(blk%!28)=BGET#H%:read_drive%=?(blk%!28)-48
  757blk%!8=0:blk%!12=0:SYS "Wimp_SetIconState",,blk%:!blk%=write_w%:blk%!4=12:SYS "Wimp_GetIconState",,blk%
  758?(blk%!28)=BGET#H%:write_drive%=?(blk%!28)-48:blk%!8=0:blk%!12=0:SYS "Wimp_SetIconState",,blk%
  759CLOSE#H%
  760ENDPROC
  761
  762DEFPROCasm
  763DIM code% &20
  764FOR X%=0TO2STEP2:P%=code%:[OPT X%:.b subs 1,1,#1:movmi pc,14:strb 2,[0],#1:bal b:]:NEXT
  765ENDPROC
  766
  767DEFFNcheck_env
  768SYS "OS_GetEnv" TO I%
  769FOR J%=0TO1:REPEAT:I%+=1:UNTIL?I%=34OR?I%<32:IF ?I%<32:=""
  770NEXT
  771REPEAT:I%+=1:UNTIL ?I%<>32:IF ?I%<32:=""
  772J%=I%:REPEAT:J%+=1:UNTIL ?J%<32:?J%=13
  773=$I%
  774
  775DEFPROCtemplates (indirsz%)
  776DIM indir% indirsz%:E%=indir%+indirsz%
  777IF ro3%=TRUE t$="<Obey$Dir>.Resources.Templ_3" ELSE t$="<Obey$Dir>.Resources.Templ_2"
  778SYS "Wimp_OpenTemplate",,t$
  779SYS "Wimp_LoadTemplate",,buffer%,indir%,E%,-1,"info",0 TO ,,R%
  780SYS "Wimp_CreateWindow",,buffer% TO info_w%
  781SYS "Wimp_LoadTemplate",,buffer%,R%,E%,-1,"read",0 TO ,,R%
  782SYS "Wimp_CreateWindow",,buffer% TO read_w%
  783SYS "Wimp_LoadTemplate",,buffer%,R%,E%,-1,"write",0 TO ,,R%
  784SYS "Wimp_CreateWindow",,buffer% TO write_w%
  785SYS "Wimp_LoadTemplate",,buffer%,R%,E%,-1,"options",0 TO ,,R%
  786SYS "Wimp_CreateWindow",,buffer% TO opt_w%
  787SYS "Wimp_LoadTemplate",,buffer%,R%,E%,-1,"saveas",0 TO ,,R%
  788SYS "Wimp_CreateWindow",,buffer% TO saveas_w%
  789SYS "Wimp_CloseTemplate"
  790PROCset_str(info_w%,0,version$):PROCset_str(info_w%,1,cprt$):PROCset_str(info_w%,2,purpose$)
  791ENDPROC
  792
  793DEFPROCinitialise
  794SYS "Wimp_Initialise",200,&4B534154,"Copier" TO ,hand%
  795DIM blk% &140, title% 32, spr_str% 16, sprite% 16, save_sprite% 16, drec% &50, struc% &80
  796DIM ident%(20), track_buff% &1900
  797$title%="Copier":$spr_str%="None":$sprite%="s!copier":$save_sprite%=""
  798LOCAL ERROR:ONERRORLOCAL PROCreport_error(REPORT$+" During initialisation",TRUE)
  799SYS "OS_ReadVarVal","Obey$Dir",blk%,256,0,3 TO ,,I%:blk%?I%=13:app_dir$=$blk%
  800IF INKEY(-256)>162 ro3%=TRUE ELSE ro3%=FALSE:
  801IF INKEY(-3) IF INKEY(-50) I%=FNalert(1,"Forcing RiscOS 2 version"):ro3%=FALSE
  802memsz%=HIMEM-PAGE:buffer%=HIMEM:IF FNwkspc(&2000)=FALSE:ERROR -1,"Not enough memory to run !Copier"
  803PROCtemplates(&380):PROCasm:icon%=FNiconbar:mask%=%110000110001
  804read_drive%=0:write_drive%=0:state%=0:seq%=0:change%=0:w_op%=FALSE:changed%=4
  805opt_id$="Copier  V1.0  Options"
  806SYS"OS_File",13,app_dir$+".Options" TO F%:IF F%=1 PROCload_opts
  807SYS "ADFS_Drives" TO ,max_drive%:max_drive%-=1
  808!blk%=saveas_w%:blk%!4=72:blk%!8=-92:blk%!12=144:blk%!16=-24
  809blk%!20=&6102:blk%!24=save_sprite%:blk%!28=1:blk%!32=&40
  810SYS "Wimp_CreateIcon",,blk% TO sprite_h%
  811PROCmain_menu:PROCclear
  812filename$=FNcheck_env:IF filename$>"" PROCinit_load
  813ENDPROC
  814
� --> Copier

<�����������������������������������������������������
<�����������������������������������������������������
<� This program and all documentation � David Holden 1993
<�����������������������������������������������������
<�����������������������������������������������������

	\version$="Copier   Ver 1.02":cprt$="� David Holden 1993":purpose$="Multiple Disc Copier"

� �report_error(�$,�)
�initialise


�
'ș "Wimp_Poll",mask%,blk% � reason%
Ȏ reason% �
	 � 1:
M � 2:ș"Wimp_OpenWindow",,blk%:� (!blk%=write_w%)�(!blk%=read_w%) w_op%=�
# � 3:ș"Wimp_CloseWindow",,blk%
 � 6:�click
 � 7:�drag_term
\ � 8:� !blk%=write_w% � blk%!4=26 � blk%!24=13 �start_auto � ș"Wimp_ProcessKey",blk%!24
 � 9:�select
 � 17,18:Ȏ blk%!16 �
    � 0:�die
    � 2:�save
    � 3,5:�load_file
   �
�
� mask%=0 �
 Ȏ state% �
  � 1:state%=�read_track
   � 2:state%=�format_track2
!  � 3:�start_write
"  � 4:state%=�write_track
#  � 5:state%=�verify_track
$  � 6:state%=�format_track3
%  � 7:�verify_failed
&  � 8:�changed
' 
(  mask%=&C31
) �
*�
+� �
,
-��select
.2ș"Wimp_GetPointerInfo",,blk%+&C0:mb%=blk%!&C8
/� menu_h%=main_m% �
0 � blk%!4=-1 �
1  Ȏ !blk% �
24   � 0:!blk%=write_w%:ș"Wimp_CloseWindow",,blk%
3[          !blk%=read_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%:w_op%=�
4(   � 1:�set_num(write_w%,20,copied%)
5+          �set_num(write_w%,21,faulty%)
66          !blk%=read_w%:ș"Wimp_CloseWindow",,blk%
7\          !blk%=write_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%:w_op%=�
8O   � 2:!blk%=opt_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%
9f   � 3:� size%>0 � �get_opt(10)=� � �alert(3,"Are you sure you want to clear this disc image")=2 �
:          �clear
;   � 5:�die
<  �
= �
>�
?0� mb%=1 ș"Wimp_CreateMenu",,menu_h%,mx%,mh%
@�
A
B��click
C2ș"Wimp_GetPointerInfo",,blk%+&C0:mb%=blk%!&C8
D� mb%<>4 � blk%!12<> -2 �
EȎ blk%!12 �
F � -2:� blk%!16=icon% �
G      Ȏ mb% �
H\       � 2:mx%=blk%!&C0-140:mh%=384:menu_h%=main_m%:ș"Wimp_CreateMenu",,menu_h%,mx%,mh%
I       � 4:� size%=0 �
JX               !blk%=read_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%
K              �
LN               �set_num(write_w%,20,copied%):�set_num(write_w%,21,faulty%)
M;               !blk%=read_w%:ș"Wimp_CloseWindow",,blk%
Na               !blk%=write_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%:w_op%=�
O              �
P      �
Q
     �
R � read_w%:� state%>0 �
S          Ȏ blk%!16 �
T#           � 10:� �get_disc=� �
UO                    � �get_opt(18)=� mask%=0:state%=�read_track � �load_all
V                   �
WI           �  7:read_drive%-=1:� read_drive%<0 read_drive%=max_drive%
X7                   �set_num(read_w%,12,read_drive%)
YI           � 13:read_drive%+=1:� read_drive%>max_drive% read_drive%=0
Z7                   �set_num(read_w%,12,read_drive%)
[          �
\ � write_w%:Ȏ blk%!16 �
]            �  7:� state%>0:�
^O                   write_drive%-=1:� write_drive%<0 write_drive%=max_drive%
_9                   �set_num(write_w%,12,write_drive%)
`            � 13:� state%>0:�
aO                   write_drive%+=1:� write_drive%>max_drive% write_drive%=0
b9                   �set_num(write_w%,12,write_drive%)
c            � 27:� state%>0:�
d%                   � size%=0:�7:�
eK                   !blk%=write_w%:blk%!4=12:ș"Wimp_GetIconState",,blk%
fI                   write_drive%=?(blk%!28)-48:auto%=�:�iconbar(size%)
gb                   � �get_opt(9)=� � �alert(3,"Confirm: Write to drive :"+�(write_drive%))=2:�
hA                   formatted%=�:� �get_opt(12)=� �format(�):�
i'                   state%=3:mask%=0
j            � 28:� state%=0 �
k"                   � mask%=0 �
l$                    � state%=8 �
m:                     �iconbar((2)):state%=0:mask%=&C31
nJ                     !blk%=write_w%:ș"Wimp_CloseWindow",,blk%:w_op%=�
o                    �
p1                     �iconbar((3)):mask%=&C31
q                    �
r                   �
sG                    mask%=0:� auto% �iconbar((2)) � �iconbar(size%)
t                   �
u$               � 29:� state%>0:�
v5                       � size%=0:�7 � �start_auto
w          �
x � opt_w%:Ȏ blk%!16 �
y          � 22:�load_opts
z          � 23:�save_opts
{         �
|L � saveas_w%:� blk%!16=sprite_h% � blk%!8=4 saveas_w%=blk%!12:�drag_file
}�
~�

���auto_next
�mask%=&C31:state%=0
�� copied%>=�num_requ �
�G I%=�alert(1,"Required number of copies completed"):�iconbar(size%)
�  mask%=&C31:state%=0:auto%=�
�S !blk%=write_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%:w_op%=�
��
� �7
� � ro3%=� � �get_opt(9)=� �
�3  empty%=�:state%=8:mask%=0:seq%=0:�iconbar(-1)
� �
�T  !blk%=write_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%:w_op%=�
� �
��
��
�
�
��changed
�
Ȏ � �
� � �>100:�iconbar(-1):�=0
� � �>80:�iconbar(-5)
� � �>60:�iconbar(-4)
� � �>40:�iconbar(-3)
� � �>20:�iconbar(-2)
��
�Eș"ADFS_MiscOp",1,write_drive%,seq% � ,,seq%,F%:� F%�8 empty%=�:�
�C� empty% � F%�changed%=changed% mask%=&C31:state%=0:�start_auto
��
�
���start_auto
��
�H�� �report_error(�$,�):� (�>&10000)�(�<&20000)�start_auto:� � �:� �
�O� �num_requ=0 I%=�alert(1,"You must enter the required number of copies"):�
�H� copied%>=�num_requ I%=�alert(1,"Required number already copied"):�
�T!blk%=write_w%:blk%!4=12::ș"Wimp_GetIconState",,blk%:write_drive%=?(blk%!28)-48
�&auto%=�:formatted%=�:�iconbar((2))
�5!blk%=write_w%:ș"Wimp_CloseWindow",,blk%:w_op%=�
�!� �get_opt(12)=� �format(�):�
�mask%=0:state%=3
��
�
�ݤnum_requ
�8!blk%=write_w%:blk%!4=26:ș"Wimp_GetIconState",,blk%
�'I%=blk%!28:ȕ ?I%>31:I%+=1:�:?I%=13
�=�($(blk%!28))
�
�ݤget_disc
�"� �:�� �report_error(�$,�):=�
�:!blk%=write_w%:ș"Wimp_CloseWindow",,blk%:�shade_write
�8!blk%=read_w%:blk%!4=12::ș"Wimp_GetIconState",,blk%
�8read_drive%=?(blk%!28)-48:disc_addr%=read_drive%<<29
�Z� �get_opt(8)=� � size%>0 � �alert(3,"Confirm: Read from drive :"+�(read_drive%))=2:=�
�*ș "ADFS_Retries",&FF00,&0200 � ,,ort%
�;ș "XADFS_DescribeDisc",�(read_drive%)+�0,drec% � E%;F%
� ș "ADFS_Retries",&FF00,ort%
�� (F%�1) �
�; � ro3%=�:I%=E%+4:ȕ?I%>31:I%+=1:�:?I%=13:� !E%,$(E%+4)
�T �set_record(&272):ș "ADFS_DiscOp",,1�drec%<<6,&200+disc_addr%,track_buff%,&200
�B � ?track_buff%=&E9 � (?track_buff%=&EB � track_buff%?2=&90) �
�=  I%=track_buff%+&2B:name$="":� J%=0�10:name$+=�(I%?J%):�
� �
�'  � 20000,"Unable to identify disc"
� �
��
�E name$="":I%=drec%+22:ȕ ?I%>32�I%<drec%+32:name$+=�(?I%):I%+=1:�
��
�\� �wkspc(drec%!16)=� �report_error("Not enough memory available to load this disc",�):=�
�:size%=drec%!16:� size%=&B4000 � ro3%=� drec%!16=&C8000
�=ptr%=buffer%:chunk%=size%�160:track%=0:end%=buffer%+size%
�1copied%=0:faulty%=0:�set_str(read_w%,3,name$)
�=�
�
���load_all
�/ș"Hourglass_On":�set_str(read_w%,14,"All")
�'�:�� �report_error(�$,�):�clear:�
�*FX229,0
�� ro3%=� � size%=&B4000 �
�a � A%=&200�&C6E00 � &1400:ș "ADFS_DiscOp",,1�drec%<<6,disc_addr%+A%,ptr%,&1200:ptr%+=&1200:�
��
�: ș "ADFS_DiscOp",,1�drec%<<6,disc_addr%,buffer%,size%
��
�*FX229,1
�:�set_str(write_w%,3,name$):�set_str(saveas_w%,3,name$)
�9�set_num(read_w%,14,0):�iconbar(size%):�unshade_write
�G!blk%=read_w%:ș"Wimp_CloseWindow",,blk%:w_op%=�:ș "Hourglass_Off"
�,� ro3%=� �"ADFS:Dismount :"+�read_drive%
��
�
�ݤread_track
�+�:�� �report_error(�$,�):�clear:=&C31
�.ș "ADFS_DiscOp",,1,disc_addr%,ptr%,chunk%
�Vtrack%+=1:ptr%+=chunk%:disc_addr%+=chunk%:� size%=&B4000 � ro3%=� disc_addr%+=&200
��set_num(read_w%,14,track%)
�� ptr%<end%:=1
�:�set_str(write_w%,3,name$):�set_str(saveas_w%,3,name$)
�9�set_num(read_w%,14,0):�iconbar(size%):�unshade_write
�,� ro3%=� �"ADFS:Dismount :"+�read_drive%
�=0
�
���load_file
�Ȏ blk%!40 �
� � &180:� +0
�?           � 10,5,2,2,15,7,1,0,0,1,32,5,3,2,0,0,0,&80,&0C,0
� � &160:� +0
�>           � 10,10,2,4,15,6,1,0,0,4,64,6,9,2,0,0,0,0,&19,0
� � &144:� +0
�=           � 9,18,2,4,0,0,0,0,1,0,0,0,0,0,0,0,0,&80,&16,0
� � &172:� +0
�<           � 9,9,2,2,0,0,0,0,1,0,0,0,0,0,0,0,0,&40,&0B,0
� � &164:� +0
�<           � 8,16,1,2,0,0,0,0,64,0,0,0,0,2,0,0,0,0,&0A,0
�
�  �
��
�*� �:� � �:�report_error(�$,�):�clear:�
�.blk%!12=blk%!8:blk%!16=4:filetype%=blk%!40
�<I%=blk%+44:filename$="":ȕ ?I%:filename$+=�(?I%):I%+=1:�
�(ș "Wimp_SendMessage",17,blk%,blk%!4
�:!blk%=write_w%:ș"Wimp_CloseWindow",,blk%:�shade_write
�H� �get_opt(8)=� � size%>0 � �alert(3,"Confirm: Load disc image")=2:�
���init_load
�Bș"OS_File",17,filename$ � I%,,T%,,len%:filetype%=(T%>>8)�&FFF
�*� I%=0 I%=�alert(1,"File not found"):�
�D� �wkspc(len%)=� I%=�alert(1,"Not enough memory to load file"):�
�)�set_record(filetype%):size%=drec%!16
�A� size%<>len% I%=�alert(1,"This is not a disc image file!"):�
�/ș"OS_File",16,filename$,buffer% � ,,,,len%
�P$blk%=filename$:I%=blk%:ȕ ?I%>32:I%+=1:�:ȕ ?I%<>�".":I%-=1:�:name$=$(I%+1)
�,!blk%=read_w%:ș"Wimp_CloseWindow",,blk%
:�set_str(write_w%,3,name$):�set_str(saveas_w%,3,name$)
Dchunk%=size%�160:track%=0:end%=buffer%+size%:copied%=0:faulty%=0
"�iconbar(size%):�unshade_write
�

��start_write
� �:�� �write_error:�
state%=0
� size%=&B4000 � ro3%=� �
	 �set_record(&272)

�
 � formatted%=� �
,  ș "ADFS_Retries",&FF00,&0100 � ,,ort%

5  ș "ADFS_DescribeDisc",�(write_drive%)+�0,drec%
"  ș "ADFS_Retries",&FF00,ort%
(  � !drec%=&4021209 drec%!16=&168000
 �
�
� drec%!16<>size% �
B � �get_opt(13)=� �format(�):�   :�>>>> reformat if wrong size
O � �alert(3,"Wrong disc format, do you want to reformat it ?")=1 �format(�)
 �
�
9�set_str(write_w%,30,"Copying"):ș "Wimp_Poll",0,blk%
Adisc_addr%=write_drive%<<29:start%=buffer%:end%=buffer%+size%
A� �get_opt(19)=� chunk%=size%�160:track%=0:mask%=0:state%=4:�
9ș"Hourglass_On":�set_str(write_w%,23,"All"):*FX229,0
*ș "ADFS_Retries",&FF00,&0100 � ,,ort%
� size%=&B4000 � ro3%=� �
 drec%!16=&C8000
d � A%=&200�&C6E00 �&1400:ș "ADFS_DiscOp",,2�drec%<<6,disc_addr%+A%,start%,&1200:start%+=&1200:�
�
 9 ș "ADFS_DiscOp",,2�drec%<<6,disc_addr%,start%,size%
!�
";ș "ADFS_Retries",&FF00,ort%:ș"Hourglass_Off":*FX229,1
#$� �get_opt(16)=� �start_verify:�
$,copied%+=1:�set_num(write_w%,20,copied%)
%;�set_num(write_w%,23,0):�set_str(write_w%,30,"Waiting")
&-� ro3%=� �"ADFS:Dismount :"+�write_drive%
'� auto%=� �auto_next
(�
)
*ݤwrite_track
+�:���write_error:=0
,Aș "ADFS_DiscOp",,2�drec%<<6,disc_addr%,start%,chunk% � E%;F%
-Xdisc_addr%+=chunk%:start%+=chunk%:track%+=1:� size%=&B4000 � ro3%=� disc_addr%+=&200
. �set_num(write_w%,23,track%)
/� start%<end%:=4
0*� �get_opt(16)=� �start_verify:=state%
1;�set_num(write_w%,23,0):�set_str(write_w%,30,"Waiting")
2,copied%+=1:�set_num(write_w%,20,copied%)
3 � auto%=� �auto_next:=state%
4mask%=&C31
5=0
6
7��write_error
8!� �:�� �report_error(�$,�):�
9;�set_num(write_w%,23,0):�set_str(write_w%,30,"Waiting")
:Hmask%=&C31:state%=0:ș"Hourglass_Smash":ș "ADFS_Retries",&FF00,ort%
;� �<>&1089A �
< �report_error(�$,�)
= � auto%=� �
>  �iconbar(size%):auto%=�
?T  !blk%=write_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%:w_op%=�
@ �
A�
B* � �get_opt(14)=� mask%=0:�format(�):�
CX � �alert(3,"Disc not formatted, do you want to format it ?")=1 mask%=0:�format(�):�
D �report_error(�$,�)
E � auto%=� �
F  �iconbar(size%):auto%=�
GT  !blk%=write_w%:ș"Wimp_GetWindowState",,blk%:ș"Wimp_OpenWindow",,blk%:w_op%=�
H �
I�
J�
K
L��start_verify
M� �:�� �write_error:�
N:�set_str(write_w%,30,"Verifying"):ș"Wimp_Poll",0,blk%
O1start%=write_drive%<<29:L%=size%�160:track%=0
P'� �get_opt(20)=� mask%=0:state%=5:�
Q`�set_str(write_w%,23,"All"):ș"Hourglass_On":ș "ADFS_Retries",&FF00,&0100 � ,,ort%:*FX229,0
R� ro3%=� � size%=&B4000 �
S* drec%!16=&C8000:start%+=&200:track%=0
T ȕ track% <160
U9  ș "XADFS_DiscOp",,0�drec%<<6,start%,,&1200 � E%;F%
V3  start%+=&1400:track%+=1:� (F%�1)=1 track%=200
W �
X�
Y5 ș "XADFS_DiscOp",,0,start%,,size% � ,,start%;F%
Z�
[*fx229,1
\ ș "ADFS_Retries",&FF00,ort%
]Q� (F%�1)=� �set_num(write_w%,23,start%�L%):ș"Hourglass_Off":�verify_failed:�
^,copied%+=1:�set_num(write_w%,20,copied%)
_M�set_num(write_w%,23,0):�set_str(write_w%,30,"Waiting"):ș"Hourglass_Off"
`-� ro3%=� �"ADFS:Dismount :"+�write_drive%
a� auto%=� �auto_next:�
bstate%=0:mask%=&C31
c�
d
eݤverify_track
f*ș "ADFS_Retries",&FF00,&0100 � ,,ort%
g1ș "XADFS_DiscOp",,0,start%,,L% � ,,start%;F%
h ș "ADFS_Retries",&FF00,ort%
i� (F%�1) :=7
j� track%<159 �
k+ track%+=1:�set_num(write_w%,23,track%)
l) � size%=&B4000 � ro3%=� start%+=&200
m :=5
n�
o;�set_num(write_w%,23,0):�set_str(write_w%,30,"Waiting")
p4copied%+=1:mask%=0:�set_num(write_w%,20,copied%)
q-� ro3%=� �"ADFS:Dismount :"+�write_drive%
r � auto%=� �auto_next:=state%
s=0
t
u��verify_failed
v,�7:�set_str(write_w%,30,"Verify failed")
w � �get_opt(15)=� �bad_disc:�
x� formatted%=� �bad_disc:�
y)� �get_opt(11)=� mask%=0:�format(�):�
zV� �alert(3,"Verify failed, do you want to reformat and try again ?")=2:�bad_disc:�
{mask%=0:�format(�)
|�
}
~��bad_disc
@faulty%+=1:mask%=&C31:state%=0:�set_num(write_w%,21,faulty%)
�*� w_op%=� I%=�alert(1,"Verify failed")
�!� auto%=� empty%=�:�auto_next
��
�
���format(check%)
�� �:�� �write_error:�
�state%=0
�N� check% � �alert(3,"Confirm: Format disc in drive :"+�(write_drive%))=2:�
�*ș "ADFS_Retries",&FF00,&0200 � ,,ort%
�F�set_str(write_w%,30,"Formatting"):addr%=write_drive%<<29:track%=0
�R� �get_opt(21)=� �set_str(write_w%,23,"All"):ș "Wimp_Poll",0,blk%:M%=� � M%=�
�Ȏ (size%�1024) �
�9 � 800 :� ro3%=� �ro3_format(M%,800) � �form2_800(M%)
�  � 1600:�ro3_format(M%,1600)
�  � 1440:�ro3_format(M%,1440)
�9 � 720 :� ro3%=� �ro3_format(M%,720) � �form2_720(M%)
�9 � 640 :� ro3%=� �ro3_format(M%,640) � �form2_640(M%)
�
�9 ERRROR 20000:"Don't know how to format this disc":=0
��
�formatted%=�:mask%=0
�� M%=� state%=3:�
� � ro3%=� state%=6 � state%=2
��
�
���ro3_format(mt%,sz%)
��:�� �write_error:�
�Ȏ sz% �
� � 800 :skew%=4:� +0
�?           � 10,5,2,2,15,7,1,0,0,1,32,5,3,2,0,0,0,&80,&0C,0
�F           � 0,4,0,0,50,0,0,0,0,0,0,0,&5A,0,0,0,5,2,1,&A5,80,0,0,0
� � 1600:skew%=9:� +0
�>           � 10,10,2,4,15,6,1,0,0,4,64,6,9,2,0,0,0,0,&19,0
�G           � 0,4,0,0,50,0,0,0,0,0,0,0,&5A,0,0,0,10,4,1,&A5,80,0,0,0
� � 1440:skew%=16:� +0
�=           � 9,18,2,4,0,0,0,0,1,0,0,0,0,0,0,0,0,&80,&16,0
�G           � 0,2,0,0,50,0,0,0,0,0,0,0,&5A,0,0,0,18,4,1,&4E,80,0,0,0
� � 720 :skew%=7:� +0
�<           � 9,9,2,2,0,0,0,0,1,0,0,0,0,0,0,0,0,&40,&0B,0
�G           � 0,2,0,0,50,0,0,0,0,0,0,0,&5A,0,0,0, 9,2,1,&4E,80,0,0,0
� � 640 :skew%=12:� +0
�<           � 8,16,1,2,0,0,0,0,64,0,0,0,0,2,0,0,0,0,&0A,0
�I           � 0,1,0,0,50,0,0,0,0,0,0,0,&39,0,0,0,16,2,&0D,&A5,80,0,0,0
�
�'   � 20000,"Bad format parameters!"
��
�>� I%=0�19:� J%:drec%?I%=J%:�:� I%=0�23:� J%:struc%?I%=J%:�
�Sstruc%!24=0:struc%!28=0:struc%!32=0:sec%=0:st_sec%=(drec%?8)�3:sec_trk%=drec%?1
�Uchunk%=sec_trk%*!struc%:addr%=write_drive%<<29:log2sec%=((?drec%)-7)<<24:track%=0
�� mt%=� mask%=0:state%=6:�
�ș"Hourglass_On":*fx229,0
�� sz%=640 �
�% �side%=0�&100�&100:� track%=0�79
�d  base%=track%�side%�log2sec%:J%=struc%+36:� I%=0�15:!J%=base%�sec%<<16:J%+=4:sec%=(sec%+1)�16:�
�L  ș "ADFS_DiscOp",0,4,addr%,0,struc%:addr%+=chunk%:sec%=(sec%+skew%)�16
� �:�
��
� � track%=0�159
�?  side%=track%�2:cyl%=track%�2:base%=cyl%�side%<<8�log2sec%
�`  J%=struc%+36:� I%=1�sec_trk%:!J%=base%�(sec%+st_sec%)<<16:J%+=4:sec%=((sec%+1)�sec_trk%):�
�\  ș "ADFS_DiscOp",0,4,addr%,0,struc%:addr%+=chunk%:� side%=1 sec%=(sec%+skew%)�sec_trk%
� �
��
�+formatted%=�:ș"Hourglass_Off":*fx229,1
��
�
�ݤformat_track3
��:�� �write_error:=0
� �set_num(write_w%,23,track%)
�� sz%=640 �
�-  base%=(track%�2)�(track%�2)<<8�log2sec%
�H  J%=struc%+36:� I%=0�15:!J%=base%�sec%<<16:J%+=4:sec%=(sec%+1)�16:�
�L  ș "ADFS_DiscOp",0,4,addr%,0,struc%:addr%+=chunk%:sec%=(sec%+skew%)�16
��
�?  side%=track%�2:cyl%=track%�2:base%=cyl%�side%<<8�log2sec%
�`  J%=struc%+36:� I%=1�sec_trk%:!J%=base%�(sec%+st_sec%)<<16:J%+=4:sec%=((sec%+1)�sec_trk%):�
�7  ș "ADFS_DiscOp",0,4,addr%,0,struc%:addr%+=chunk%
�*  � side%=1 sec%=(sec%+skew%)�sec_trk%
��
�track%+=1:� track%<160:=6
�Formatted%=�:=3
�
���form2_800(m%)
��:��:�write_error:�
�� +0
� � I%=0�19:� A%:drec%?I%=A%:�
�4� 10,5,2,2,15,7,1,0,0,1,32,5,3,2,0,0,0,&80,&0C,0
�7� write_len%,chunk%,skew%,sec_trk%,log2sec%,st_sec%
�I%=0:A%=track_buff%
�*�:� B%,C%:� C%=&FF ident%(I%)=A%:I%+=1
�A%=�(code%):� B%=0
�� 6156,5120,4,5,3<<24,0
�
� 303,&4E
�[� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
�[� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
�[� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
�[� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
�[� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 1024,&A5, 2,&F7, 90,&4E
�	� 0,0
�
sec%=0
�� m%=� �
� mask%=0:state%=2:�
��
� ș"Hourglass_On":*fx229,0
�E A%=ident%(0):B%=ident%(1):C%=ident%(2):D%=ident%(3):E%=ident%(4)
� � track%=0�79
�  base%=log2sec%�track%:!A%=base%�sec%<<16:!B%=base%�((sec%+1)�5)<<16:!C%=base%�((sec%+2)�5)<<16:!D%=base%�((sec%+3)�5)<<16:!E%=base%�((sec%+4)�5)<<16
�O  ș"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%
�A  !A%=!A%�256:!B%=!B%�256:!C%=!C%�256:!D%=!D%�256:!E%=!E%�256
�_  ș"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%:sec%=(sec%+4)�5
� �
�/ș"Hourglass_Off":state%=3:mask%=0:*fx229,1
��
��
�
���form2_720(m%)
��:�� �write_error:�
�� +0
� � I%=0�19:� A%:drec%?I%=A%:�
�2� 9,10,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,&80,&0C,0
�7� write_len%,chunk%,skew%,sec_trk%,log2sec%,st_sec%
�I%=0:A%=track_buff%
�*�:� B%,C%:� C%=&FF ident%(I%)=A%:I%+=1
�A%=�(code%):� B%=0
�� 6156,5120,7,9,2<<24,1
�
� 303,&4E
�Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
�Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
Z� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 512,&A5, 2,&F7, 90,&4E
	� 0,0

sec%=0
	� m%=� �

 mask%=0:state%=2:�
�
 ș"Hourglass_On":*fx229,0

 � track%=0�79
  base%=log2sec%�track%
A  � A%=0�8:!(ident%(A%))=base%�(sec%+1)<<16:sec%=(sec%+1)�9:�
O  ș"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%
0  � A%=0�8:!(ident%(A%))=!(ident%(A%))�256:�
_  ș"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%:sec%=(sec%+2)�9
 �
/ș"Hourglass_Off":state%=3:mask%=0:*fx229,1
�
�

��form2_640(m%)
�:�� �write_error:�
� +0
 � I%=0�19:� A%:drec%?I%=A%:�
7� write_len%,chunk%,sec_trk%,skew%,log2sec%,st_sec%
&A%=track_buff%:� B%,C%:A%=�(code%)
1� 8,16,1,2,0,0,0,0,64,0,0,0,0,2,0,0,0,0,&0A,0
� 6156,4096,16,12,1<<24,0
 
� 138,&4E
!� I%=0 � 15
"	 � +0
#% �:� B%,C%:� C%=&FF ident%(I%)=A%
$ A%=�(code%):� B%=0
%�
&_� 12,0, 3,&F5, 1,&FE, 4,&FF, 2,&F7, 22,&4E, 12,0, 3,&F5, 1,&FB, 256,&A4, 2,&F7, 57,&4E ,0,0
'
sec%=0
(� m%=� �
) mask%=0:state%=2
*�
+ ș"Hourglass_On"
,% �side%=0�&100�&100:� track%=0�79
-[  base%=log2sec%�side%�track%:� A%=0�15:!(ident%(A%))=base%�sec%<<16:sec%=(sec%+1)�16:�
.d  ș"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:sec%=(sec%+skew%)�16:addr%+=chunk%
/ �:�
0' ș"Hourglass_Off":state%=3:mask%=0
1�
2�
3
4ݤformat_track2
5�:�� �write_error:=0
6 �set_num(write_w%,23,track%)
7� chunk%=&1000 �
8C � track%<80 base%=log2sec%�track% � base%=log2sec%�&100�track%
9L � A%=0�sec_trk%-1:!(ident%(A%))=base%�sec%<<16:sec%=(sec%+1)�sec_trk%:�
:@ ș"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%
;- sec%=(sec%+skew%)�sec_trk%:addr%+=chunk%
<�
=, base%=log2sec%�(track%�2)<<8�(track%�2)
>V � A%=0�sec_trk%-1:!(ident%(A%))=base%�(sec%+st_sec%)<<16:sec%=(sec%+1)�sec_trk%:�
? � track%�2=0 �
@O  ș"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:addr%+=chunk%
A �
B9  � A%=0�sec_trk%-1:!(ident%(A%))=!(ident%(A%))�256:�
Cj  ș"ADFS_DiscOp",0,4+(drec%<<6),addr%,track_buff%,write_len%:sec%=(sec%+skew%)�sec_trk%:addr%+=chunk%
D �
E( � size%=&B4000 � ro3%=� addr%+=&200
F�
G"track%+=1:� track%<160:=2:�:=3
H
I
J��set_record(ft%)
KȎ ft% �
L � &180:� +0
M?           � 10,5,2,2,15,7,1,0,0,1,32,5,3,2,0,0,0,&80,&0C,0
N � &160:� +0
O>           � 10,10,2,4,15,6,1,0,0,4,64,6,9,2,0,0,0,0,&19,0
P � &144:� +0
Q=           � 9,18,2,4,0,0,0,0,1,0,0,0,0,0,0,0,0,&80,&16,0
R � &172:� +0
S<           � 9,9,2,2,0,0,0,0,1,0,0,0,0,0,0,0,0,&40,&0B,0
T � &272:� +0
U=           � 9,10,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,&40,&0B,0
V � &164:� +0
W<           � 8,16,1,2,0,0,0,0,64,0,0,0,0,2,0,0,0,0,&0A,0
X
Y+    � 20000,"This is not a disc image!"
Z�
[>� I%=drec%�drec%+40�4:!I%=0:�:� I%=0�19:� J%:drec%?I%=J%:�
\�
]
^��clear
_:�set_str(read_w%,3,"None"):�set_str(write_w%,3,"None")
`S�set_num(write_w%,23,0):�set_str(write_w%,30,"Waiting"):�set_num(write_w%,26,0)
aDsize%=0:name$="":copied%=0:faulty%=0:state%=0:mask%=&C31:auto%=�
b)�iconbar(1):�shade_write:I%=�wkspc(0)
c-!blk%=write_w%:ș"Wimp_CloseWindow",,blk%
d�
e
f��set_num(w%,i%,v%)
g2!blk%=w%:blk%!4=i%:ș"Wimp_GetIconState",,blk%
h5blk%!8=0:blk%!12=0:$(blk%!28)=�(v%):� w_op%:*fx19
iș"Wimp_SetIconState",,blk%
j�
k
l��set_str(w%,i%,s$)
m2!blk%=w%:blk%!4=i%:ș"Wimp_GetIconState",,blk%
n@blk%!8=0:blk%!12=0:$(blk%!28)=s$:ș"Wimp_SetIconState",,blk%
o�
p
q��drag_file
r1!blk%=saveas_w%:ș"Wimp_GetWindowState",,blk%
s(X%=blk%!4-blk%!20:Y%=blk%!16-blk%!24
t0blk%!4=sprite_h%:ș"Wimp_GetIconState",,blk%
u@!blk%=saveas_w%:blk%!4=5:blk%!8=blk%!8+X%:blk%!12=blk%!12+Y%
v=blk%!16=blk%!16+X%:blk%!20=blk%!20+Y%:blk%!24=0:blk%!28=0
w>blk%!32=&7FFFFFFF:blk%!36=&7FFFFFFF:ș"Wimp_DragBox",,blk%
x�
y
z��drag_term
{!ș"Wimp_GetPointerInfo",,blk%
|@blk%!20=blk%!12:blk%!24=blk%!16:blk%!28=!blk%:blk%!32=blk%!4
}>blk%!36=size%:blk%!40=filetype%:blk%!16=1:$(blk%+44)=name$
~$!blk%=(�(name$)+49)��3:blk%!12=0
0ș"Wimp_SendMessage",17,blk%,blk%!20,blk%!24
��
�
�
��save
� �:�� �report_error(�$,�):�
�&I%=blk%+44:ȕ?I%>31:I%+=1:�:?I%=13
�@ș "XOS_File",10,$(blk%+44),filetype%,,buffer%,buffer%+size%
��
�
�ݤget_opt(num%)
�9!blk%=opt_w%:blk%!4=num%:ș "Wimp_GetIconState",,blk%
��(blk%!24�1<<21):=�:�:=�
�
�ݤwkspc(sz%)
�(ș"Wimp_SlotSize",memsz%+sz%,-1 � e%
�� e%<(memsz%+sz%):=�:�:=�
�
���main_menu
�� line,tick,last,write,m%
�@tick=1:line=2:write=4:last=&80:� menubuff% &100:m%=menubuff%
�'main_m%=�new_menu (m%,"Copier",140)
�m%=�menu_item ("Read",0,0)
�menu_write%=m%+8
�'m%=�menu_item ("Write",0,saveas_w%)
�!m%=�menu_item ("Options",0,0)
�m%=�menu_item ("Clear",0,0)
�'m%=�menu_item ("Info",line,info_w%)
�!m%=�menu_item ("Quit",last,0)
��
�
���shade_write
�#!menu_write%=!menu_write%�1<<22
��
�
���unshade_write
�&!menu_write%=!menu_write%��(1<<22)
��
�
�)ݤnew_menu (a%,menutitle$,menuwidth%)
�A$a%=menutitle$:a%!12=&70207:a%!16=menuwidth%:a%!20=40:a%!24=0
�m%=a%+28
�=a%
�
�/ݤmenu_item (itemname$,menuflags%,submenu%)
�A!m%=menuflags%:m%!4=submenu%:m%!8=&7000001:$(m%+12)=itemname$
�
=m%+24
�
�
ݤiconbar
�+!blk%=-1:blk%!4=0:blk%!8=-16:blk%!12=84
� blk%!16=84:blk%!20=&1700210B
�.blk%!24=spr_str%:blk%!28=sprite%:blk%!32=8
�#ș "Wimp_CreateIcon",,blk% � I%
�=I%
�
���iconbar(sz%)
�5!blk%=-1:blk%!4=icon%:ș"Wimp_GetIconState",,blk%
�$sprite%="s!copier"
�Ȏ sz% �
�K � 1600*1024:$spr_str%=" 1�6M ":$save_sprite%="file_160":filetype%=&160
�K � 1440*1024:$spr_str%=" 1�4M ":$save_sprite%="file_144":filetype%=&144
�K � 800*1024 :$spr_str%=" 800K ":$save_sprite%="file_180":filetype%=&180
�K � 720*1024 :$spr_str%=" 720K ":$save_sprite%="file_172":filetype%=&172
�K � 640*1024 :$spr_str%=" 640K ":$save_sprite%="file_164":filetype%=&164
�- � 1 :$spr_str%=" None ":$save_sprite%=""
� � 2 :$spr_str%=" Auto "
� � 3 :$spr_str%="Pause"
�1 � -1:$spr_str%=" Feed ":$sprite%="sinsert_1"
�1 � -2:$spr_str%=" Feed ":$sprite%="sinsert_2"
�0 � -3:$spr_str%=" Me! ":$sprite%="sinsert_3"
�0 � -4:$spr_str%=" Me! ":$sprite%="sinsert_4"
�0 � -5:$spr_str%="     ":$sprite%="sinsert_5"
�
�7 $(spr_str%)=" "+�(sz%�1024)+"K  ":$save_sprite%=""
��
�blk%!8=0:blk%!12=0:*fx19
� ș "Wimp_SetIconState",,blk%
�V!blk%=saveas_w%::blk%!4=sprite_h%:blk%!8=0::blk%!12=0::ș"Wimp_SetIconState",,blk%
��
�
� ��report_error (err$,fatal%)
�4mask%=&C31:state%=0:ș"Hourglass_Smash":*FX229,1
�0!blk%=�:$(blk%+4)="Error "+�(�)+": "+err$+�0
�'ș "Wimp_ReportError",blk%,1,title%
�� � fatal% �
�	��die
�+:ș "Wimp_CloseDown",hand%,&4B534154
��
�
�ݤalert(op%,a$)
�Tblk%!&80=0:$(blk%+&84)=a$+�(0):ș"Wimp_ReportError",blk%+&80,16+op%,title% � ,I%
�=I%
�
���save_opts
�%�:��:�#H%:�report_error(�$,�):�
�H%=�(app_dir$+".Options")
�6� I%=1��(opt_id$):�#H%,�(�opt_id$,I%,1)):�:�#H%,13
�
� I%=8�21
�8 !blk%=opt_w%:blk%!4=I%:ș "Wimp_GetIconState",,blk%
� � J%=24�27:�#H%,blk%?J%:�
��
�H!blk%=read_w%:blk%!4=12:ș "Wimp_GetIconState",,blk%:�#H%,?(blk%!28)
�I!blk%=write_w%:blk%!4=12:ș "Wimp_GetIconState",,blk%:�#H%,?(blk%!28)
��#H%
��
�
���load_opts
�%�:�� �#H%:�report_error(�$,�):�
�H%=�(app_dir$+".Options")
�2� H%=0 I%=�alert(1,"Options file not found"):�
�$blk%=�#H%
�;� $blk%<>opt_id$ �#H%:I%=�alert(1,"Bad Options file"):�
�
� I%=8�21
�8 !blk%=opt_w%:blk%!4=I%:ș "Wimp_GetIconState",,blk%
� � J%=64�67:blk%?J%=�#H%:�
�F blk%!8=(blk%!24)�(blk%!64):blk%!12=0:ș "Wimp_SetIconState",,blk%
��
�8!blk%=read_w%:blk%!4=12:ș "Wimp_GetIconState",,blk%
�-?(blk%!28)=�#H%:read_drive%=?(blk%!28)-48
�iblk%!8=0:blk%!12=0:ș "Wimp_SetIconState",,blk%:!blk%=write_w%:blk%!4=12:ș "Wimp_GetIconState",,blk%
�^?(blk%!28)=�#H%:write_drive%=?(blk%!28)-48:blk%!8=0:blk%!12=0:ș "Wimp_SetIconState",,blk%
��#H%
��
�
�	��asm
�� code% &20
�R� X%=0�2�2:P%=code%:[OPT X%:.b subs 1,1,#1:movmi pc,14:strb 2,[0],#1:bal b:]:�
��
�
�ݤcheck_env
ș "OS_GetEnv" � I%
0� J%=0�1:�:I%+=1:�?I%=34�?I%<32:� ?I%<32:=""
�
"�:I%+=1:� ?I%<>32:� ?I%<32:=""
!J%=I%:�:J%+=1:� ?J%<32:?J%=13
=$I%

��templates (indirsz%)
(� indir% indirsz%:E%=indir%+indirsz%
	R� ro3%=� t$="<Obey$Dir>.Resources.Templ_3" � t$="<Obey$Dir>.Resources.Templ_2"

ș "Wimp_OpenTemplate",,t$
@ș "Wimp_LoadTemplate",,buffer%,indir%,E%,-1,"info",0 � ,,R%
-ș "Wimp_CreateWindow",,buffer% � info_w%

<ș "Wimp_LoadTemplate",,buffer%,R%,E%,-1,"read",0 � ,,R%
-ș "Wimp_CreateWindow",,buffer% � read_w%
=ș "Wimp_LoadTemplate",,buffer%,R%,E%,-1,"write",0 � ,,R%
.ș "Wimp_CreateWindow",,buffer% � write_w%
?ș "Wimp_LoadTemplate",,buffer%,R%,E%,-1,"options",0 � ,,R%
,ș "Wimp_CreateWindow",,buffer% � opt_w%
>ș "Wimp_LoadTemplate",,buffer%,R%,E%,-1,"saveas",0 � ,,R%
/ș "Wimp_CreateWindow",,buffer% � saveas_w%
ș "Wimp_CloseTemplate"
W�set_str(info_w%,0,version$):�set_str(info_w%,1,cprt$):�set_str(info_w%,2,purpose$)
�

��initialise
8ș "Wimp_Initialise",200,&4B534154,"Copier" � ,hand%
[� blk% &140, title% 32, spr_str% 16, sprite% 16, save_sprite% 16, drec% &50, struc% &80
#� ident%(20), track_buff% &1900
J$title%="Copier":$spr_str%="None":$sprite%="s!copier":$save_sprite%=""
8� �:�� �report_error(�$+" During initialisation",�)
Oș "OS_ReadVarVal","Obey$Dir",blk%,256,0,3 � ,,I%:blk%?I%=13:app_dir$=$blk%
 "� �(-256)>162 ro3%=� � ro3%=�:
!C� �(-3) � �(-50) I%=�alert(1,"Forcing RiscOS 2 version"):ro3%=�
"Rmemsz%=�-�:buffer%=�:� �wkspc(&2000)=�:� -1,"Not enough memory to run !Copier"
#<�templates(&380):�asm:icon%=�iconbar:mask%=%110000110001
$Mread_drive%=0:write_drive%=0:state%=0:seq%=0:change%=0:w_op%=�:changed%=4
%#opt_id$="Copier  V1.0  Options"
&=ș"OS_File",13,app_dir$+".Options" � F%:� F%=1 �load_opts
'0ș "ADFS_Drives" � ,max_drive%:max_drive%-=1
(@!blk%=saveas_w%:blk%!4=72:blk%!8=-92:blk%!12=144:blk%!16=-24
)<blk%!20=&6102:blk%!24=save_sprite%:blk%!28=1:blk%!32=&40
**ș "Wimp_CreateIcon",,blk% � sprite_h%
+�main_menu:�clear
,2filename$=�check_env:� filename$>"" �init_load
-�
.
�
00000000  0d 00 01 10 f4 20 2d 2d  3e 20 43 6f 70 69 65 72  |..... --> Copier|
00000010  0d 00 02 04 0d 00 03 3c  f4 bb bb bb bb bb bb bb  |.......<........|
00000020  bb bb bb bb bb bb bb bb  bb bb bb bb bb bb bb bb  |................|
*
00000050  0d 00 04 3c f4 ab ab ab  ab ab ab ab ab ab ab ab  |...<............|
00000060  ab ab ab ab ab ab ab ab  ab ab ab ab ab ab ab ab  |................|
*
00000080  ab ab ab ab ab ab ab ab  ab ab ab ab 0d 00 05 3c  |...............<|
00000090  f4 20 54 68 69 73 20 70  72 6f 67 72 61 6d 20 61  |. This program a|
000000a0  6e 64 20 61 6c 6c 20 64  6f 63 75 6d 65 6e 74 61  |nd all documenta|
000000b0  74 69 6f 6e 20 a9 20 44  61 76 69 64 20 48 6f 6c  |tion . David Hol|
000000c0  64 65 6e 20 31 39 39 33  0d 00 06 3c f4 ab ab ab  |den 1993...<....|
000000d0  ab ab ab ab ab ab ab ab  ab ab ab ab ab ab ab ab  |................|
*
00000100  ab ab ab ab 0d 00 07 3c  f4 bb bb bb bb bb bb bb  |.......<........|
00000110  bb bb bb bb bb bb bb bb  bb bb bb bb bb bb bb bb  |................|
*
00000140  0d 00 08 04 0d 00 09 5c  76 65 72 73 69 6f 6e 24  |.......\version$|
00000150  3d 22 43 6f 70 69 65 72  20 20 20 56 65 72 20 31  |="Copier   Ver 1|
00000160  2e 30 32 22 3a 63 70 72  74 24 3d 22 a9 20 44 61  |.02":cprt$=". Da|
00000170  76 69 64 20 48 6f 6c 64  65 6e 20 31 39 39 33 22  |vid Holden 1993"|
00000180  3a 70 75 72 70 6f 73 65  24 3d 22 4d 75 6c 74 69  |:purpose$="Multi|
00000190  70 6c 65 20 44 69 73 63  20 43 6f 70 69 65 72 22  |ple Disc Copier"|
000001a0  0d 00 0a 1a ee 85 20 f2  72 65 70 6f 72 74 5f 65  |...... .report_e|
000001b0  72 72 6f 72 28 f6 24 2c  b9 29 0d 00 0b 0f f2 69  |rror(.$,.).....i|
000001c0  6e 69 74 69 61 6c 69 73  65 0d 00 0c 04 0d 00 0d  |nitialise.......|
000001d0  05 f5 0d 00 0e 27 c8 99  20 22 57 69 6d 70 5f 50  |.....'.. "Wimp_P|
000001e0  6f 6c 6c 22 2c 6d 61 73  6b 25 2c 62 6c 6b 25 20  |oll",mask%,blk% |
000001f0  b8 20 72 65 61 73 6f 6e  25 0d 00 0f 10 c8 8e 20  |. reason%...... |
00000200  72 65 61 73 6f 6e 25 20  ca 0d 00 10 09 20 c9 20  |reason% ..... . |
00000210  31 3a 0d 00 11 4d 20 c9  20 32 3a c8 99 22 57 69  |1:...M . 2:.."Wi|
00000220  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00000230  62 6c 6b 25 3a e7 20 28  21 62 6c 6b 25 3d 77 72  |blk%:. (!blk%=wr|
00000240  69 74 65 5f 77 25 29 84  28 21 62 6c 6b 25 3d 72  |ite_w%).(!blk%=r|
00000250  65 61 64 5f 77 25 29 20  77 5f 6f 70 25 3d b9 0d  |ead_w%) w_op%=..|
00000260  00 12 23 20 c9 20 33 3a  c8 99 22 57 69 6d 70 5f  |..# . 3:.."Wimp_|
00000270  43 6c 6f 73 65 57 69 6e  64 6f 77 22 2c 2c 62 6c  |CloseWindow",,bl|
00000280  6b 25 0d 00 13 0f 20 c9  20 36 3a f2 63 6c 69 63  |k%.... . 6:.clic|
00000290  6b 0d 00 14 13 20 c9 20  37 3a f2 64 72 61 67 5f  |k.... . 7:.drag_|
000002a0  74 65 72 6d 0d 00 15 5c  20 c9 20 38 3a e7 20 21  |term...\ . 8:. !|
000002b0  62 6c 6b 25 3d 77 72 69  74 65 5f 77 25 20 80 20  |blk%=write_w% . |
000002c0  62 6c 6b 25 21 34 3d 32  36 20 80 20 62 6c 6b 25  |blk%!4=26 . blk%|
000002d0  21 32 34 3d 31 33 20 f2  73 74 61 72 74 5f 61 75  |!24=13 .start_au|
000002e0  74 6f 20 8b 20 c8 99 22  57 69 6d 70 5f 50 72 6f  |to . .."Wimp_Pro|
000002f0  63 65 73 73 4b 65 79 22  2c 62 6c 6b 25 21 32 34  |cessKey",blk%!24|
00000300  0d 00 16 10 20 c9 20 39  3a f2 73 65 6c 65 63 74  |.... . 9:.select|
00000310  0d 00 17 19 20 c9 20 31  37 2c 31 38 3a c8 8e 20  |.... . 17,18:.. |
00000320  62 6c 6b 25 21 31 36 20  ca 0d 00 18 10 20 20 20  |blk%!16 .....   |
00000330  20 c9 20 30 3a f2 64 69  65 0d 00 19 11 20 20 20  | . 0:.die....   |
00000340  20 c9 20 32 3a f2 73 61  76 65 0d 00 1a 18 20 20  | . 2:.save....  |
00000350  20 20 c9 20 33 2c 35 3a  f2 6c 6f 61 64 5f 66 69  |  . 3,5:.load_fi|
00000360  6c 65 0d 00 1b 08 20 20  20 cb 0d 00 1c 05 cb 0d  |le....   .......|
00000370  00 1d 0f e7 20 6d 61 73  6b 25 3d 30 20 8c 0d 00  |.... mask%=0 ...|
00000380  1e 10 20 c8 8e 20 73 74  61 74 65 25 20 ca 0d 00  |.. .. state% ...|
00000390  1f 1c 20 20 c9 20 31 3a  73 74 61 74 65 25 3d a4  |..  . 1:state%=.|
000003a0  72 65 61 64 5f 74 72 61  63 6b 0d 00 20 1f 20 20  |read_track.. .  |
000003b0  c9 20 32 3a 73 74 61 74  65 25 3d a4 66 6f 72 6d  |. 2:state%=.form|
000003c0  61 74 5f 74 72 61 63 6b  32 0d 00 21 16 20 20 c9  |at_track2..!.  .|
000003d0  20 33 3a f2 73 74 61 72  74 5f 77 72 69 74 65 0d  | 3:.start_write.|
000003e0  00 22 1d 20 20 c9 20 34  3a 73 74 61 74 65 25 3d  |.".  . 4:state%=|
000003f0  a4 77 72 69 74 65 5f 74  72 61 63 6b 0d 00 23 1e  |.write_track..#.|
00000400  20 20 c9 20 35 3a 73 74  61 74 65 25 3d a4 76 65  |  . 5:state%=.ve|
00000410  72 69 66 79 5f 74 72 61  63 6b 0d 00 24 1f 20 20  |rify_track..$.  |
00000420  c9 20 36 3a 73 74 61 74  65 25 3d a4 66 6f 72 6d  |. 6:state%=.form|
00000430  61 74 5f 74 72 61 63 6b  33 0d 00 25 18 20 20 c9  |at_track3..%.  .|
00000440  20 37 3a f2 76 65 72 69  66 79 5f 66 61 69 6c 65  | 7:.verify_faile|
00000450  64 0d 00 26 12 20 20 c9  20 38 3a f2 63 68 61 6e  |d..&.  . 8:.chan|
00000460  67 65 64 0d 00 27 06 20  7f 0d 00 28 10 20 20 6d  |ged..'. ...(.  m|
00000470  61 73 6b 25 3d 26 43 33  31 0d 00 29 06 20 cb 0d  |ask%=&C31..). ..|
00000480  00 2a 05 cd 0d 00 2b 07  fd 20 a3 0d 00 2c 04 0d  |.*....+.. ...,..|
00000490  00 2d 0c dd f2 73 65 6c  65 63 74 0d 00 2e 32 c8  |.-...select...2.|
000004a0  99 22 57 69 6d 70 5f 47  65 74 50 6f 69 6e 74 65  |."Wimp_GetPointe|
000004b0  72 49 6e 66 6f 22 2c 2c  62 6c 6b 25 2b 26 43 30  |rInfo",,blk%+&C0|
000004c0  3a 6d 62 25 3d 62 6c 6b  25 21 26 43 38 0d 00 2f  |:mb%=blk%!&C8../|
000004d0  17 e7 20 6d 65 6e 75 5f  68 25 3d 6d 61 69 6e 5f  |.. menu_h%=main_|
000004e0  6d 25 20 8c 0d 00 30 12  20 e7 20 62 6c 6b 25 21  |m% ...0. . blk%!|
000004f0  34 3d 2d 31 20 8c 0d 00  31 10 20 20 c8 8e 20 21  |4=-1 ...1.  .. !|
00000500  62 6c 6b 25 20 ca 0d 00  32 34 20 20 20 c9 20 30  |blk% ...24   . 0|
00000510  3a 21 62 6c 6b 25 3d 77  72 69 74 65 5f 77 25 3a  |:!blk%=write_w%:|
00000520  c8 99 22 57 69 6d 70 5f  43 6c 6f 73 65 57 69 6e  |.."Wimp_CloseWin|
00000530  64 6f 77 22 2c 2c 62 6c  6b 25 0d 00 33 5b 20 20  |dow",,blk%..3[  |
00000540  20 20 20 20 20 20 20 20  21 62 6c 6b 25 3d 72 65  |        !blk%=re|
00000550  61 64 5f 77 25 3a c8 99  22 57 69 6d 70 5f 47 65  |ad_w%:.."Wimp_Ge|
00000560  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 62  |tWindowState",,b|
00000570  6c 6b 25 3a c8 99 22 57  69 6d 70 5f 4f 70 65 6e  |lk%:.."Wimp_Open|
00000580  57 69 6e 64 6f 77 22 2c  2c 62 6c 6b 25 3a 77 5f  |Window",,blk%:w_|
00000590  6f 70 25 3d b9 0d 00 34  28 20 20 20 c9 20 31 3a  |op%=...4(   . 1:|
000005a0  f2 73 65 74 5f 6e 75 6d  28 77 72 69 74 65 5f 77  |.set_num(write_w|
000005b0  25 2c 32 30 2c 63 6f 70  69 65 64 25 29 0d 00 35  |%,20,copied%)..5|
000005c0  2b 20 20 20 20 20 20 20  20 20 20 f2 73 65 74 5f  |+          .set_|
000005d0  6e 75 6d 28 77 72 69 74  65 5f 77 25 2c 32 31 2c  |num(write_w%,21,|
000005e0  66 61 75 6c 74 79 25 29  0d 00 36 36 20 20 20 20  |faulty%)..66    |
000005f0  20 20 20 20 20 20 21 62  6c 6b 25 3d 72 65 61 64  |      !blk%=read|
00000600  5f 77 25 3a c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |_w%:.."Wimp_Clos|
00000610  65 57 69 6e 64 6f 77 22  2c 2c 62 6c 6b 25 0d 00  |eWindow",,blk%..|
00000620  37 5c 20 20 20 20 20 20  20 20 20 20 21 62 6c 6b  |7\          !blk|
00000630  25 3d 77 72 69 74 65 5f  77 25 3a c8 99 22 57 69  |%=write_w%:.."Wi|
00000640  6d 70 5f 47 65 74 57 69  6e 64 6f 77 53 74 61 74  |mp_GetWindowStat|
00000650  65 22 2c 2c 62 6c 6b 25  3a c8 99 22 57 69 6d 70  |e",,blk%:.."Wimp|
00000660  5f 4f 70 65 6e 57 69 6e  64 6f 77 22 2c 2c 62 6c  |_OpenWindow",,bl|
00000670  6b 25 3a 77 5f 6f 70 25  3d b9 0d 00 38 4f 20 20  |k%:w_op%=...8O  |
00000680  20 c9 20 32 3a 21 62 6c  6b 25 3d 6f 70 74 5f 77  | . 2:!blk%=opt_w|
00000690  25 3a c8 99 22 57 69 6d  70 5f 47 65 74 57 69 6e  |%:.."Wimp_GetWin|
000006a0  64 6f 77 53 74 61 74 65  22 2c 2c 62 6c 6b 25 3a  |dowState",,blk%:|
000006b0  c8 99 22 57 69 6d 70 5f  4f 70 65 6e 57 69 6e 64  |.."Wimp_OpenWind|
000006c0  6f 77 22 2c 2c 62 6c 6b  25 0d 00 39 66 20 20 20  |ow",,blk%..9f   |
000006d0  c9 20 33 3a e7 20 73 69  7a 65 25 3e 30 20 e7 20  |. 3:. size%>0 . |
000006e0  a4 67 65 74 5f 6f 70 74  28 31 30 29 3d b9 20 e7  |.get_opt(10)=. .|
000006f0  20 a4 61 6c 65 72 74 28  33 2c 22 41 72 65 20 79  | .alert(3,"Are y|
00000700  6f 75 20 73 75 72 65 20  79 6f 75 20 77 61 6e 74  |ou sure you want|
00000710  20 74 6f 20 63 6c 65 61  72 20 74 68 69 73 20 64  | to clear this d|
00000720  69 73 63 20 69 6d 61 67  65 22 29 3d 32 20 e1 0d  |isc image")=2 ..|
00000730  00 3a 14 20 20 20 20 20  20 20 20 20 20 f2 63 6c  |.:.          .cl|
00000740  65 61 72 0d 00 3b 0f 20  20 20 c9 20 35 3a f2 64  |ear..;.   . 5:.d|
00000750  69 65 0d 00 3c 07 20 20  cb 0d 00 3d 06 20 cd 0d  |ie..<.  ...=. ..|
00000760  00 3e 05 cd 0d 00 3f 30  e7 20 6d 62 25 3d 31 20  |.>....?0. mb%=1 |
00000770  c8 99 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |.."Wimp_CreateMe|
00000780  6e 75 22 2c 2c 6d 65 6e  75 5f 68 25 2c 6d 78 25  |nu",,menu_h%,mx%|
00000790  2c 6d 68 25 0d 00 40 05  e1 0d 00 41 04 0d 00 42  |,mh%..@....A...B|
000007a0  0b dd f2 63 6c 69 63 6b  0d 00 43 32 c8 99 22 57  |...click..C2.."W|
000007b0  69 6d 70 5f 47 65 74 50  6f 69 6e 74 65 72 49 6e  |imp_GetPointerIn|
000007c0  66 6f 22 2c 2c 62 6c 6b  25 2b 26 43 30 3a 6d 62  |fo",,blk%+&C0:mb|
000007d0  25 3d 62 6c 6b 25 21 26  43 38 0d 00 44 1d e7 20  |%=blk%!&C8..D.. |
000007e0  6d 62 25 3c 3e 34 20 80  20 62 6c 6b 25 21 31 32  |mb%<>4 . blk%!12|
000007f0  3c 3e 20 2d 32 20 e1 0d  00 45 10 c8 8e 20 62 6c  |<> -2 ...E... bl|
00000800  6b 25 21 31 32 20 ca 0d  00 46 1b 20 c9 20 2d 32  |k%!12 ...F. . -2|
00000810  3a e7 20 62 6c 6b 25 21  31 36 3d 69 63 6f 6e 25  |:. blk%!16=icon%|
00000820  20 8c 0d 00 47 12 20 20  20 20 20 20 c8 8e 20 6d  | ...G.      .. m|
00000830  62 25 20 ca 0d 00 48 5c  20 20 20 20 20 20 20 c9  |b% ...H\       .|
00000840  20 32 3a 6d 78 25 3d 62  6c 6b 25 21 26 43 30 2d  | 2:mx%=blk%!&C0-|
00000850  31 34 30 3a 6d 68 25 3d  33 38 34 3a 6d 65 6e 75  |140:mh%=384:menu|
00000860  5f 68 25 3d 6d 61 69 6e  5f 6d 25 3a c8 99 22 57  |_h%=main_m%:.."W|
00000870  69 6d 70 5f 43 72 65 61  74 65 4d 65 6e 75 22 2c  |imp_CreateMenu",|
00000880  2c 6d 65 6e 75 5f 68 25  2c 6d 78 25 2c 6d 68 25  |,menu_h%,mx%,mh%|
00000890  0d 00 49 1a 20 20 20 20  20 20 20 c9 20 34 3a e7  |..I.       . 4:.|
000008a0  20 73 69 7a 65 25 3d 30  20 8c 0d 00 4a 58 20 20  | size%=0 ...JX  |
000008b0  20 20 20 20 20 20 20 20  20 20 20 20 20 21 62 6c  |             !bl|
000008c0  6b 25 3d 72 65 61 64 5f  77 25 3a c8 99 22 57 69  |k%=read_w%:.."Wi|
000008d0  6d 70 5f 47 65 74 57 69  6e 64 6f 77 53 74 61 74  |mp_GetWindowStat|
000008e0  65 22 2c 2c 62 6c 6b 25  3a c8 99 22 57 69 6d 70  |e",,blk%:.."Wimp|
000008f0  5f 4f 70 65 6e 57 69 6e  64 6f 77 22 2c 2c 62 6c  |_OpenWindow",,bl|
00000900  6b 25 0d 00 4b 13 20 20  20 20 20 20 20 20 20 20  |k%..K.          |
00000910  20 20 20 20 cc 0d 00 4c  4e 20 20 20 20 20 20 20  |    ...LN       |
00000920  20 20 20 20 20 20 20 20  f2 73 65 74 5f 6e 75 6d  |        .set_num|
00000930  28 77 72 69 74 65 5f 77  25 2c 32 30 2c 63 6f 70  |(write_w%,20,cop|
00000940  69 65 64 25 29 3a f2 73  65 74 5f 6e 75 6d 28 77  |ied%):.set_num(w|
00000950  72 69 74 65 5f 77 25 2c  32 31 2c 66 61 75 6c 74  |rite_w%,21,fault|
00000960  79 25 29 0d 00 4d 3b 20  20 20 20 20 20 20 20 20  |y%)..M;         |
00000970  20 20 20 20 20 20 21 62  6c 6b 25 3d 72 65 61 64  |      !blk%=read|
00000980  5f 77 25 3a c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |_w%:.."Wimp_Clos|
00000990  65 57 69 6e 64 6f 77 22  2c 2c 62 6c 6b 25 0d 00  |eWindow",,blk%..|
000009a0  4e 61 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |Na              |
000009b0  20 21 62 6c 6b 25 3d 77  72 69 74 65 5f 77 25 3a  | !blk%=write_w%:|
000009c0  c8 99 22 57 69 6d 70 5f  47 65 74 57 69 6e 64 6f  |.."Wimp_GetWindo|
000009d0  77 53 74 61 74 65 22 2c  2c 62 6c 6b 25 3a c8 99  |wState",,blk%:..|
000009e0  22 57 69 6d 70 5f 4f 70  65 6e 57 69 6e 64 6f 77  |"Wimp_OpenWindow|
000009f0  22 2c 2c 62 6c 6b 25 3a  77 5f 6f 70 25 3d b9 0d  |",,blk%:w_op%=..|
00000a00  00 4f 13 20 20 20 20 20  20 20 20 20 20 20 20 20  |.O.             |
00000a10  20 cd 0d 00 50 0b 20 20  20 20 20 20 cb 0d 00 51  | ...P.      ...Q|
00000a20  0a 20 20 20 20 20 cd 0d  00 52 1b 20 c9 20 72 65  |.     ...R. . re|
00000a30  61 64 5f 77 25 3a e7 20  73 74 61 74 65 25 3e 30  |ad_w%:. state%>0|
00000a40  20 e1 0d 00 53 1a 20 20  20 20 20 20 20 20 20 20  | ...S.          |
00000a50  c8 8e 20 62 6c 6b 25 21  31 36 20 ca 0d 00 54 23  |.. blk%!16 ...T#|
00000a60  20 20 20 20 20 20 20 20  20 20 20 c9 20 31 30 3a  |           . 10:|
00000a70  e7 20 a4 67 65 74 5f 64  69 73 63 3d b9 20 8c 0d  |. .get_disc=. ..|
00000a80  00 55 4f 20 20 20 20 20  20 20 20 20 20 20 20 20  |.UO             |
00000a90  20 20 20 20 20 20 20 e7  20 a4 67 65 74 5f 6f 70  |       . .get_op|
00000aa0  74 28 31 38 29 3d b9 20  6d 61 73 6b 25 3d 30 3a  |t(18)=. mask%=0:|
00000ab0  73 74 61 74 65 25 3d a4  72 65 61 64 5f 74 72 61  |state%=.read_tra|
00000ac0  63 6b 20 8b 20 f2 6c 6f  61 64 5f 61 6c 6c 0d 00  |ck . .load_all..|
00000ad0  56 18 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |V.              |
00000ae0  20 20 20 20 20 cd 0d 00  57 49 20 20 20 20 20 20  |     ...WI      |
00000af0  20 20 20 20 20 c9 20 20  37 3a 72 65 61 64 5f 64  |     .  7:read_d|
00000b00  72 69 76 65 25 2d 3d 31  3a e7 20 72 65 61 64 5f  |rive%-=1:. read_|
00000b10  64 72 69 76 65 25 3c 30  20 72 65 61 64 5f 64 72  |drive%<0 read_dr|
00000b20  69 76 65 25 3d 6d 61 78  5f 64 72 69 76 65 25 0d  |ive%=max_drive%.|
00000b30  00 58 37 20 20 20 20 20  20 20 20 20 20 20 20 20  |.X7             |
00000b40  20 20 20 20 20 20 f2 73  65 74 5f 6e 75 6d 28 72  |      .set_num(r|
00000b50  65 61 64 5f 77 25 2c 31  32 2c 72 65 61 64 5f 64  |ead_w%,12,read_d|
00000b60  72 69 76 65 25 29 0d 00  59 49 20 20 20 20 20 20  |rive%)..YI      |
00000b70  20 20 20 20 20 c9 20 31  33 3a 72 65 61 64 5f 64  |     . 13:read_d|
00000b80  72 69 76 65 25 2b 3d 31  3a e7 20 72 65 61 64 5f  |rive%+=1:. read_|
00000b90  64 72 69 76 65 25 3e 6d  61 78 5f 64 72 69 76 65  |drive%>max_drive|
00000ba0  25 20 72 65 61 64 5f 64  72 69 76 65 25 3d 30 0d  |% read_drive%=0.|
00000bb0  00 5a 37 20 20 20 20 20  20 20 20 20 20 20 20 20  |.Z7             |
00000bc0  20 20 20 20 20 20 f2 73  65 74 5f 6e 75 6d 28 72  |      .set_num(r|
00000bd0  65 61 64 5f 77 25 2c 31  32 2c 72 65 61 64 5f 64  |ead_w%,12,read_d|
00000be0  72 69 76 65 25 29 0d 00  5b 0f 20 20 20 20 20 20  |rive%)..[.      |
00000bf0  20 20 20 20 cb 0d 00 5c  1c 20 c9 20 77 72 69 74  |    ...\. . writ|
00000c00  65 5f 77 25 3a c8 8e 20  62 6c 6b 25 21 31 36 20  |e_w%:.. blk%!16 |
00000c10  ca 0d 00 5d 20 20 20 20  20 20 20 20 20 20 20 20  |...]            |
00000c20  c9 20 20 37 3a e7 20 73  74 61 74 65 25 3e 30 3a  |.  7:. state%>0:|
00000c30  e1 0d 00 5e 4f 20 20 20  20 20 20 20 20 20 20 20  |...^O           |
00000c40  20 20 20 20 20 20 20 20  77 72 69 74 65 5f 64 72  |        write_dr|
00000c50  69 76 65 25 2d 3d 31 3a  e7 20 77 72 69 74 65 5f  |ive%-=1:. write_|
00000c60  64 72 69 76 65 25 3c 30  20 77 72 69 74 65 5f 64  |drive%<0 write_d|
00000c70  72 69 76 65 25 3d 6d 61  78 5f 64 72 69 76 65 25  |rive%=max_drive%|
00000c80  0d 00 5f 39 20 20 20 20  20 20 20 20 20 20 20 20  |.._9            |
00000c90  20 20 20 20 20 20 20 f2  73 65 74 5f 6e 75 6d 28  |       .set_num(|
00000ca0  77 72 69 74 65 5f 77 25  2c 31 32 2c 77 72 69 74  |write_w%,12,writ|
00000cb0  65 5f 64 72 69 76 65 25  29 0d 00 60 20 20 20 20  |e_drive%)..`    |
00000cc0  20 20 20 20 20 20 20 20  c9 20 31 33 3a e7 20 73  |        . 13:. s|
00000cd0  74 61 74 65 25 3e 30 3a  e1 0d 00 61 4f 20 20 20  |tate%>0:...aO   |
00000ce0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000cf0  77 72 69 74 65 5f 64 72  69 76 65 25 2b 3d 31 3a  |write_drive%+=1:|
00000d00  e7 20 77 72 69 74 65 5f  64 72 69 76 65 25 3e 6d  |. write_drive%>m|
00000d10  61 78 5f 64 72 69 76 65  25 20 77 72 69 74 65 5f  |ax_drive% write_|
00000d20  64 72 69 76 65 25 3d 30  0d 00 62 39 20 20 20 20  |drive%=0..b9    |
00000d30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00000d40  73 65 74 5f 6e 75 6d 28  77 72 69 74 65 5f 77 25  |set_num(write_w%|
00000d50  2c 31 32 2c 77 72 69 74  65 5f 64 72 69 76 65 25  |,12,write_drive%|
00000d60  29 0d 00 63 20 20 20 20  20 20 20 20 20 20 20 20  |)..c            |
00000d70  c9 20 32 37 3a e7 20 73  74 61 74 65 25 3e 30 3a  |. 27:. state%>0:|
00000d80  e1 0d 00 64 25 20 20 20  20 20 20 20 20 20 20 20  |...d%           |
00000d90  20 20 20 20 20 20 20 20  e7 20 73 69 7a 65 25 3d  |        . size%=|
00000da0  30 3a ef 37 3a e1 0d 00  65 4b 20 20 20 20 20 20  |0:.7:...eK      |
00000db0  20 20 20 20 20 20 20 20  20 20 20 20 20 21 62 6c  |             !bl|
00000dc0  6b 25 3d 77 72 69 74 65  5f 77 25 3a 62 6c 6b 25  |k%=write_w%:blk%|
00000dd0  21 34 3d 31 32 3a c8 99  22 57 69 6d 70 5f 47 65  |!4=12:.."Wimp_Ge|
00000de0  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 62 6c 6b  |tIconState",,blk|
00000df0  25 0d 00 66 49 20 20 20  20 20 20 20 20 20 20 20  |%..fI           |
00000e00  20 20 20 20 20 20 20 20  77 72 69 74 65 5f 64 72  |        write_dr|
00000e10  69 76 65 25 3d 3f 28 62  6c 6b 25 21 32 38 29 2d  |ive%=?(blk%!28)-|
00000e20  34 38 3a 61 75 74 6f 25  3d a3 3a f2 69 63 6f 6e  |48:auto%=.:.icon|
00000e30  62 61 72 28 73 69 7a 65  25 29 0d 00 67 62 20 20  |bar(size%)..gb  |
00000e40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000e50  20 e7 20 a4 67 65 74 5f  6f 70 74 28 39 29 3d b9  | . .get_opt(9)=.|
00000e60  20 e7 20 a4 61 6c 65 72  74 28 33 2c 22 43 6f 6e  | . .alert(3,"Con|
00000e70  66 69 72 6d 3a 20 57 72  69 74 65 20 74 6f 20 64  |firm: Write to d|
00000e80  72 69 76 65 20 3a 22 2b  c3 28 77 72 69 74 65 5f  |rive :"+.(write_|
00000e90  64 72 69 76 65 25 29 29  3d 32 3a e1 0d 00 68 41  |drive%))=2:...hA|
00000ea0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000eb0  20 20 20 66 6f 72 6d 61  74 74 65 64 25 3d a3 3a  |   formatted%=.:|
00000ec0  e7 20 a4 67 65 74 5f 6f  70 74 28 31 32 29 3d b9  |. .get_opt(12)=.|
00000ed0  20 f2 66 6f 72 6d 61 74  28 a3 29 3a e1 0d 00 69  | .format(.):...i|
00000ee0  27 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |'               |
00000ef0  20 20 20 20 73 74 61 74  65 25 3d 33 3a 6d 61 73  |    state%=3:mas|
00000f00  6b 25 3d 30 0d 00 6a 20  20 20 20 20 20 20 20 20  |k%=0..j         |
00000f10  20 20 20 c9 20 32 38 3a  e7 20 73 74 61 74 65 25  |   . 28:. state%|
00000f20  3d 30 20 e1 0d 00 6b 22  20 20 20 20 20 20 20 20  |=0 ...k"        |
00000f30  20 20 20 20 20 20 20 20  20 20 20 e7 20 6d 61 73  |           . mas|
00000f40  6b 25 3d 30 20 8c 0d 00  6c 24 20 20 20 20 20 20  |k%=0 ...l$      |
00000f50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 e7 20  |              . |
00000f60  73 74 61 74 65 25 3d 38  20 8c 0d 00 6d 3a 20 20  |state%=8 ...m:  |
00000f70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000f80  20 20 20 f2 69 63 6f 6e  62 61 72 28 28 32 29 29  |   .iconbar((2))|
00000f90  3a 73 74 61 74 65 25 3d  30 3a 6d 61 73 6b 25 3d  |:state%=0:mask%=|
00000fa0  26 43 33 31 0d 00 6e 4a  20 20 20 20 20 20 20 20  |&C31..nJ        |
00000fb0  20 20 20 20 20 20 20 20  20 20 20 20 20 21 62 6c  |             !bl|
00000fc0  6b 25 3d 77 72 69 74 65  5f 77 25 3a c8 99 22 57  |k%=write_w%:.."W|
00000fd0  69 6d 70 5f 43 6c 6f 73  65 57 69 6e 64 6f 77 22  |imp_CloseWindow"|
00000fe0  2c 2c 62 6c 6b 25 3a 77  5f 6f 70 25 3d a3 0d 00  |,,blk%:w_op%=...|
00000ff0  6f 19 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |o.              |
00001000  20 20 20 20 20 20 cc 0d  00 70 31 20 20 20 20 20  |      ...p1     |
00001010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001020  f2 69 63 6f 6e 62 61 72  28 28 33 29 29 3a 6d 61  |.iconbar((3)):ma|
00001030  73 6b 25 3d 26 43 33 31  0d 00 71 19 20 20 20 20  |sk%=&C31..q.    |
00001040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001050  cd 0d 00 72 18 20 20 20  20 20 20 20 20 20 20 20  |...r.           |
00001060  20 20 20 20 20 20 20 20  cc 0d 00 73 47 20 20 20  |        ...sG   |
00001070  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001080  20 6d 61 73 6b 25 3d 30  3a e7 20 61 75 74 6f 25  | mask%=0:. auto%|
00001090  20 f2 69 63 6f 6e 62 61  72 28 28 32 29 29 20 8b  | .iconbar((2)) .|
000010a0  20 f2 69 63 6f 6e 62 61  72 28 73 69 7a 65 25 29  | .iconbar(size%)|
000010b0  0d 00 74 18 20 20 20 20  20 20 20 20 20 20 20 20  |..t.            |
000010c0  20 20 20 20 20 20 20 cd  0d 00 75 24 20 20 20 20  |       ...u$    |
000010d0  20 20 20 20 20 20 20 20  20 20 20 c9 20 32 39 3a  |           . 29:|
000010e0  e7 20 73 74 61 74 65 25  3e 30 3a e1 0d 00 76 35  |. state%>0:...v5|
000010f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001100  20 20 20 20 20 20 20 e7  20 73 69 7a 65 25 3d 30  |       . size%=0|
00001110  3a ef 37 20 8b 20 f2 73  74 61 72 74 5f 61 75 74  |:.7 . .start_aut|
00001120  6f 0d 00 77 0f 20 20 20  20 20 20 20 20 20 20 cb  |o..w.          .|
00001130  0d 00 78 1a 20 c9 20 6f  70 74 5f 77 25 3a c8 8e  |..x. . opt_w%:..|
00001140  20 62 6c 6b 25 21 31 36  20 ca 0d 00 79 1d 20 20  | blk%!16 ...y.  |
00001150  20 20 20 20 20 20 20 20  c9 20 32 32 3a f2 6c 6f  |        . 22:.lo|
00001160  61 64 5f 6f 70 74 73 0d  00 7a 1d 20 20 20 20 20  |ad_opts..z.     |
00001170  20 20 20 20 20 c9 20 32  33 3a f2 73 61 76 65 5f  |     . 23:.save_|
00001180  6f 70 74 73 0d 00 7b 0e  20 20 20 20 20 20 20 20  |opts..{.        |
00001190  20 cb 0d 00 7c 4c 20 c9  20 73 61 76 65 61 73 5f  | ...|L . saveas_|
000011a0  77 25 3a e7 20 62 6c 6b  25 21 31 36 3d 73 70 72  |w%:. blk%!16=spr|
000011b0  69 74 65 5f 68 25 20 80  20 62 6c 6b 25 21 38 3d  |ite_h% . blk%!8=|
000011c0  34 20 73 61 76 65 61 73  5f 77 25 3d 62 6c 6b 25  |4 saveas_w%=blk%|
000011d0  21 31 32 3a f2 64 72 61  67 5f 66 69 6c 65 0d 00  |!12:.drag_file..|
000011e0  7d 05 cb 0d 00 7e 05 e1  0d 00 7f 04 0d 00 80 0f  |}....~..........|
000011f0  dd f2 61 75 74 6f 5f 6e  65 78 74 0d 00 81 17 6d  |..auto_next....m|
00001200  61 73 6b 25 3d 26 43 33  31 3a 73 74 61 74 65 25  |ask%=&C31:state%|
00001210  3d 30 0d 00 82 1a e7 20  63 6f 70 69 65 64 25 3e  |=0..... copied%>|
00001220  3d a4 6e 75 6d 5f 72 65  71 75 20 8c 0d 00 83 47  |=.num_requ ....G|
00001230  20 49 25 3d a4 61 6c 65  72 74 28 31 2c 22 52 65  | I%=.alert(1,"Re|
00001240  71 75 69 72 65 64 20 6e  75 6d 62 65 72 20 6f 66  |quired number of|
00001250  20 63 6f 70 69 65 73 20  63 6f 6d 70 6c 65 74 65  | copies complete|
00001260  64 22 29 3a f2 69 63 6f  6e 62 61 72 28 73 69 7a  |d"):.iconbar(siz|
00001270  65 25 29 0d 00 84 20 20  6d 61 73 6b 25 3d 26 43  |e%)...  mask%=&C|
00001280  33 31 3a 73 74 61 74 65  25 3d 30 3a 61 75 74 6f  |31:state%=0:auto|
00001290  25 3d a3 0d 00 85 53 20  21 62 6c 6b 25 3d 77 72  |%=....S !blk%=wr|
000012a0  69 74 65 5f 77 25 3a c8  99 22 57 69 6d 70 5f 47  |ite_w%:.."Wimp_G|
000012b0  65 74 57 69 6e 64 6f 77  53 74 61 74 65 22 2c 2c  |etWindowState",,|
000012c0  62 6c 6b 25 3a c8 99 22  57 69 6d 70 5f 4f 70 65  |blk%:.."Wimp_Ope|
000012d0  6e 57 69 6e 64 6f 77 22  2c 2c 62 6c 6b 25 3a 77  |nWindow",,blk%:w|
000012e0  5f 6f 70 25 3d b9 0d 00  86 05 cc 0d 00 87 07 20  |_op%=.......... |
000012f0  ef 37 0d 00 88 1f 20 e7  20 72 6f 33 25 3d b9 20  |.7.... . ro3%=. |
00001300  80 20 a4 67 65 74 5f 6f  70 74 28 39 29 3d a3 20  |. .get_opt(9)=. |
00001310  8c 0d 00 89 33 20 20 65  6d 70 74 79 25 3d a3 3a  |....3  empty%=.:|
00001320  73 74 61 74 65 25 3d 38  3a 6d 61 73 6b 25 3d 30  |state%=8:mask%=0|
00001330  3a 73 65 71 25 3d 30 3a  f2 69 63 6f 6e 62 61 72  |:seq%=0:.iconbar|
00001340  28 2d 31 29 0d 00 8a 06  20 cc 0d 00 8b 54 20 20  |(-1).... ....T  |
00001350  21 62 6c 6b 25 3d 77 72  69 74 65 5f 77 25 3a c8  |!blk%=write_w%:.|
00001360  99 22 57 69 6d 70 5f 47  65 74 57 69 6e 64 6f 77  |."Wimp_GetWindow|
00001370  53 74 61 74 65 22 2c 2c  62 6c 6b 25 3a c8 99 22  |State",,blk%:.."|
00001380  57 69 6d 70 5f 4f 70 65  6e 57 69 6e 64 6f 77 22  |Wimp_OpenWindow"|
00001390  2c 2c 62 6c 6b 25 3a 77  5f 6f 70 25 3d b9 0d 00  |,,blk%:w_op%=...|
000013a0  8c 06 20 cd 0d 00 8d 05  cd 0d 00 8e 05 e1 0d 00  |.. .............|
000013b0  8f 04 0d 00 90 0d dd f2  63 68 61 6e 67 65 64 0d  |........changed.|
000013c0  00 91 0a c8 8e 20 b9 20  ca 0d 00 92 1d 20 c9 20  |..... . ..... . |
000013d0  91 3e 31 30 30 3a f2 69  63 6f 6e 62 61 72 28 2d  |.>100:.iconbar(-|
000013e0  31 29 3a d1 3d 30 0d 00  93 18 20 c9 20 91 3e 38  |1):.=0.... . .>8|
000013f0  30 3a f2 69 63 6f 6e 62  61 72 28 2d 35 29 0d 00  |0:.iconbar(-5)..|
00001400  94 18 20 c9 20 91 3e 36  30 3a f2 69 63 6f 6e 62  |.. . .>60:.iconb|
00001410  61 72 28 2d 34 29 0d 00  95 18 20 c9 20 91 3e 34  |ar(-4).... . .>4|
00001420  30 3a f2 69 63 6f 6e 62  61 72 28 2d 33 29 0d 00  |0:.iconbar(-3)..|
00001430  96 18 20 c9 20 91 3e 32  30 3a f2 69 63 6f 6e 62  |.. . .>20:.iconb|
00001440  61 72 28 2d 32 29 0d 00  97 05 cb 0d 00 98 45 c8  |ar(-2)........E.|
00001450  99 22 41 44 46 53 5f 4d  69 73 63 4f 70 22 2c 31  |."ADFS_MiscOp",1|
00001460  2c 77 72 69 74 65 5f 64  72 69 76 65 25 2c 73 65  |,write_drive%,se|
00001470  71 25 20 b8 20 2c 2c 73  65 71 25 2c 46 25 3a e7  |q% . ,,seq%,F%:.|
00001480  20 46 25 80 38 20 65 6d  70 74 79 25 3d b9 3a e1  | F%.8 empty%=.:.|
00001490  0d 00 99 43 e7 20 65 6d  70 74 79 25 20 e7 20 46  |...C. empty% . F|
000014a0  25 80 63 68 61 6e 67 65  64 25 3d 63 68 61 6e 67  |%.changed%=chang|
000014b0  65 64 25 20 6d 61 73 6b  25 3d 26 43 33 31 3a 73  |ed% mask%=&C31:s|
000014c0  74 61 74 65 25 3d 30 3a  f2 73 74 61 72 74 5f 61  |tate%=0:.start_a|
000014d0  75 74 6f 0d 00 9a 05 e1  0d 00 9b 04 0d 00 9c 10  |uto.............|
000014e0  dd f2 73 74 61 72 74 5f  61 75 74 6f 0d 00 9d 06  |..start_auto....|
000014f0  ea 85 0d 00 9e 48 ee 85  ea 20 f2 72 65 70 6f 72  |.....H... .repor|
00001500  74 5f 65 72 72 6f 72 28  f6 24 2c a3 29 3a e7 20  |t_error(.$,.):. |
00001510  28 9f 3e 26 31 30 30 30  30 29 80 28 9f 3c 26 32  |(.>&10000).(.<&2|
00001520  30 30 30 30 29 f2 73 74  61 72 74 5f 61 75 74 6f  |0000).start_auto|
00001530  3a e1 20 8b 20 e1 3a 8b  20 e1 0d 00 9f 4f e7 20  |:. . .:. ....O. |
00001540  a4 6e 75 6d 5f 72 65 71  75 3d 30 20 49 25 3d a4  |.num_requ=0 I%=.|
00001550  61 6c 65 72 74 28 31 2c  22 59 6f 75 20 6d 75 73  |alert(1,"You mus|
00001560  74 20 65 6e 74 65 72 20  74 68 65 20 72 65 71 75  |t enter the requ|
00001570  69 72 65 64 20 6e 75 6d  62 65 72 20 6f 66 20 63  |ired number of c|
00001580  6f 70 69 65 73 22 29 3a  e1 0d 00 a0 48 e7 20 63  |opies"):....H. c|
00001590  6f 70 69 65 64 25 3e 3d  a4 6e 75 6d 5f 72 65 71  |opied%>=.num_req|
000015a0  75 20 49 25 3d a4 61 6c  65 72 74 28 31 2c 22 52  |u I%=.alert(1,"R|
000015b0  65 71 75 69 72 65 64 20  6e 75 6d 62 65 72 20 61  |equired number a|
000015c0  6c 72 65 61 64 79 20 63  6f 70 69 65 64 22 29 3a  |lready copied"):|
000015d0  e1 0d 00 a1 54 21 62 6c  6b 25 3d 77 72 69 74 65  |....T!blk%=write|
000015e0  5f 77 25 3a 62 6c 6b 25  21 34 3d 31 32 3a 3a c8  |_w%:blk%!4=12::.|
000015f0  99 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  |."Wimp_GetIconSt|
00001600  61 74 65 22 2c 2c 62 6c  6b 25 3a 77 72 69 74 65  |ate",,blk%:write|
00001610  5f 64 72 69 76 65 25 3d  3f 28 62 6c 6b 25 21 32  |_drive%=?(blk%!2|
00001620  38 29 2d 34 38 0d 00 a2  26 61 75 74 6f 25 3d b9  |8)-48...&auto%=.|
00001630  3a 66 6f 72 6d 61 74 74  65 64 25 3d a3 3a f2 69  |:formatted%=.:.i|
00001640  63 6f 6e 62 61 72 28 28  32 29 29 0d 00 a3 35 21  |conbar((2))...5!|
00001650  62 6c 6b 25 3d 77 72 69  74 65 5f 77 25 3a c8 99  |blk%=write_w%:..|
00001660  22 57 69 6d 70 5f 43 6c  6f 73 65 57 69 6e 64 6f  |"Wimp_CloseWindo|
00001670  77 22 2c 2c 62 6c 6b 25  3a 77 5f 6f 70 25 3d a3  |w",,blk%:w_op%=.|
00001680  0d 00 a4 21 e7 20 a4 67  65 74 5f 6f 70 74 28 31  |...!. .get_opt(1|
00001690  32 29 3d b9 20 f2 66 6f  72 6d 61 74 28 a3 29 3a  |2)=. .format(.):|
000016a0  e1 0d 00 a5 14 6d 61 73  6b 25 3d 30 3a 73 74 61  |.....mask%=0:sta|
000016b0  74 65 25 3d 33 0d 00 a6  05 e1 0d 00 a7 04 0d 00  |te%=3...........|
000016c0  a8 0e dd a4 6e 75 6d 5f  72 65 71 75 0d 00 a9 38  |....num_requ...8|
000016d0  21 62 6c 6b 25 3d 77 72  69 74 65 5f 77 25 3a 62  |!blk%=write_w%:b|
000016e0  6c 6b 25 21 34 3d 32 36  3a c8 99 22 57 69 6d 70  |lk%!4=26:.."Wimp|
000016f0  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_GetIconState",,|
00001700  62 6c 6b 25 0d 00 aa 27  49 25 3d 62 6c 6b 25 21  |blk%...'I%=blk%!|
00001710  32 38 3a c8 95 20 3f 49  25 3e 33 31 3a 49 25 2b  |28:.. ?I%>31:I%+|
00001720  3d 31 3a ce 3a 3f 49 25  3d 31 33 0d 00 ab 12 3d  |=1:.:?I%=13....=|
00001730  bb 28 24 28 62 6c 6b 25  21 32 38 29 29 0d 00 ac  |.($(blk%!28))...|
00001740  04 0d 00 ad 0e dd a4 67  65 74 5f 64 69 73 63 0d  |.......get_disc.|
00001750  00 ae 22 ea 20 85 3a ee  85 ea 20 f2 72 65 70 6f  |..". .:... .repo|
00001760  72 74 5f 65 72 72 6f 72  28 f6 24 2c a3 29 3a 3d  |rt_error(.$,.):=|
00001770  a3 0d 00 af 3a 21 62 6c  6b 25 3d 77 72 69 74 65  |....:!blk%=write|
00001780  5f 77 25 3a c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |_w%:.."Wimp_Clos|
00001790  65 57 69 6e 64 6f 77 22  2c 2c 62 6c 6b 25 3a f2  |eWindow",,blk%:.|
000017a0  73 68 61 64 65 5f 77 72  69 74 65 0d 00 b0 38 21  |shade_write...8!|
000017b0  62 6c 6b 25 3d 72 65 61  64 5f 77 25 3a 62 6c 6b  |blk%=read_w%:blk|
000017c0  25 21 34 3d 31 32 3a 3a  c8 99 22 57 69 6d 70 5f  |%!4=12::.."Wimp_|
000017d0  47 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 62  |GetIconState",,b|
000017e0  6c 6b 25 0d 00 b1 38 72  65 61 64 5f 64 72 69 76  |lk%...8read_driv|
000017f0  65 25 3d 3f 28 62 6c 6b  25 21 32 38 29 2d 34 38  |e%=?(blk%!28)-48|
00001800  3a 64 69 73 63 5f 61 64  64 72 25 3d 72 65 61 64  |:disc_addr%=read|
00001810  5f 64 72 69 76 65 25 3c  3c 32 39 0d 00 b2 5a e7  |_drive%<<29...Z.|
00001820  20 a4 67 65 74 5f 6f 70  74 28 38 29 3d b9 20 e7  | .get_opt(8)=. .|
00001830  20 73 69 7a 65 25 3e 30  20 e7 20 a4 61 6c 65 72  | size%>0 . .aler|
00001840  74 28 33 2c 22 43 6f 6e  66 69 72 6d 3a 20 52 65  |t(3,"Confirm: Re|
00001850  61 64 20 66 72 6f 6d 20  64 72 69 76 65 20 3a 22  |ad from drive :"|
00001860  2b c3 28 72 65 61 64 5f  64 72 69 76 65 25 29 29  |+.(read_drive%))|
00001870  3d 32 3a 3d a3 0d 00 b3  2a c8 99 20 22 41 44 46  |=2:=....*.. "ADF|
00001880  53 5f 52 65 74 72 69 65  73 22 2c 26 46 46 30 30  |S_Retries",&FF00|
00001890  2c 26 30 32 30 30 20 b8  20 2c 2c 6f 72 74 25 0d  |,&0200 . ,,ort%.|
000018a0  00 b4 3b c8 99 20 22 58  41 44 46 53 5f 44 65 73  |..;.. "XADFS_Des|
000018b0  63 72 69 62 65 44 69 73  63 22 2c c3 28 72 65 61  |cribeDisc",.(rea|
000018c0  64 5f 64 72 69 76 65 25  29 2b bd 30 2c 64 72 65  |d_drive%)+.0,dre|
000018d0  63 25 20 b8 20 45 25 3b  46 25 0d 00 b5 20 c8 99  |c% . E%;F%... ..|
000018e0  20 22 41 44 46 53 5f 52  65 74 72 69 65 73 22 2c  | "ADFS_Retries",|
000018f0  26 46 46 30 30 2c 6f 72  74 25 0d 00 b6 0e e7 20  |&FF00,ort%..... |
00001900  28 46 25 80 31 29 20 8c  0d 00 b7 3b 20 e7 20 72  |(F%.1) ....; . r|
00001910  6f 33 25 3d b9 3a 49 25  3d 45 25 2b 34 3a c8 95  |o3%=.:I%=E%+4:..|
00001920  3f 49 25 3e 33 31 3a 49  25 2b 3d 31 3a ce 3a 3f  |?I%>31:I%+=1:.:?|
00001930  49 25 3d 31 33 3a 85 20  21 45 25 2c 24 28 45 25  |I%=13:. !E%,$(E%|
00001940  2b 34 29 0d 00 b8 54 20  f2 73 65 74 5f 72 65 63  |+4)...T .set_rec|
00001950  6f 72 64 28 26 32 37 32  29 3a c8 99 20 22 41 44  |ord(&272):.. "AD|
00001960  46 53 5f 44 69 73 63 4f  70 22 2c 2c 31 84 64 72  |FS_DiscOp",,1.dr|
00001970  65 63 25 3c 3c 36 2c 26  32 30 30 2b 64 69 73 63  |ec%<<6,&200+disc|
00001980  5f 61 64 64 72 25 2c 74  72 61 63 6b 5f 62 75 66  |_addr%,track_buf|
00001990  66 25 2c 26 32 30 30 0d  00 b9 42 20 e7 20 3f 74  |f%,&200...B . ?t|
000019a0  72 61 63 6b 5f 62 75 66  66 25 3d 26 45 39 20 84  |rack_buff%=&E9 .|
000019b0  20 28 3f 74 72 61 63 6b  5f 62 75 66 66 25 3d 26  | (?track_buff%=&|
000019c0  45 42 20 80 20 74 72 61  63 6b 5f 62 75 66 66 25  |EB . track_buff%|
000019d0  3f 32 3d 26 39 30 29 20  8c 0d 00 ba 3d 20 20 49  |?2=&90) ....=  I|
000019e0  25 3d 74 72 61 63 6b 5f  62 75 66 66 25 2b 26 32  |%=track_buff%+&2|
000019f0  42 3a 6e 61 6d 65 24 3d  22 22 3a e3 20 4a 25 3d  |B:name$="":. J%=|
00001a00  30 b8 31 30 3a 6e 61 6d  65 24 2b 3d bd 28 49 25  |0.10:name$+=.(I%|
00001a10  3f 4a 25 29 3a ed 0d 00  bb 06 20 cc 0d 00 bc 27  |?J%):..... ....'|
00001a20  20 20 85 20 32 30 30 30  30 2c 22 55 6e 61 62 6c  |  . 20000,"Unabl|
00001a30  65 20 74 6f 20 69 64 65  6e 74 69 66 79 20 64 69  |e to identify di|
00001a40  73 63 22 0d 00 bd 06 20  cd 0d 00 be 05 cc 0d 00  |sc".... ........|
00001a50  bf 45 20 6e 61 6d 65 24  3d 22 22 3a 49 25 3d 64  |.E name$="":I%=d|
00001a60  72 65 63 25 2b 32 32 3a  c8 95 20 3f 49 25 3e 33  |rec%+22:.. ?I%>3|
00001a70  32 80 49 25 3c 64 72 65  63 25 2b 33 32 3a 6e 61  |2.I%<drec%+32:na|
00001a80  6d 65 24 2b 3d bd 28 3f  49 25 29 3a 49 25 2b 3d  |me$+=.(?I%):I%+=|
00001a90  31 3a ce 0d 00 c0 05 cd  0d 00 c1 5c e7 20 a4 77  |1:.........\. .w|
00001aa0  6b 73 70 63 28 64 72 65  63 25 21 31 36 29 3d a3  |kspc(drec%!16)=.|
00001ab0  20 f2 72 65 70 6f 72 74  5f 65 72 72 6f 72 28 22  | .report_error("|
00001ac0  4e 6f 74 20 65 6e 6f 75  67 68 20 6d 65 6d 6f 72  |Not enough memor|
00001ad0  79 20 61 76 61 69 6c 61  62 6c 65 20 74 6f 20 6c  |y available to l|
00001ae0  6f 61 64 20 74 68 69 73  20 64 69 73 63 22 2c a3  |oad this disc",.|
00001af0  29 3a 3d a3 0d 00 c2 3a  73 69 7a 65 25 3d 64 72  |):=....:size%=dr|
00001b00  65 63 25 21 31 36 3a e7  20 73 69 7a 65 25 3d 26  |ec%!16:. size%=&|
00001b10  42 34 30 30 30 20 e7 20  72 6f 33 25 3d a3 20 64  |B4000 . ro3%=. d|
00001b20  72 65 63 25 21 31 36 3d  26 43 38 30 30 30 0d 00  |rec%!16=&C8000..|
00001b30  c3 3d 70 74 72 25 3d 62  75 66 66 65 72 25 3a 63  |.=ptr%=buffer%:c|
00001b40  68 75 6e 6b 25 3d 73 69  7a 65 25 81 31 36 30 3a  |hunk%=size%.160:|
00001b50  74 72 61 63 6b 25 3d 30  3a 65 6e 64 25 3d 62 75  |track%=0:end%=bu|
00001b60  66 66 65 72 25 2b 73 69  7a 65 25 0d 00 c4 31 63  |ffer%+size%...1c|
00001b70  6f 70 69 65 64 25 3d 30  3a 66 61 75 6c 74 79 25  |opied%=0:faulty%|
00001b80  3d 30 3a f2 73 65 74 5f  73 74 72 28 72 65 61 64  |=0:.set_str(read|
00001b90  5f 77 25 2c 33 2c 6e 61  6d 65 24 29 0d 00 c5 06  |_w%,3,name$)....|
00001ba0  3d b9 0d 00 c6 04 0d 00  c7 0e dd f2 6c 6f 61 64  |=...........load|
00001bb0  5f 61 6c 6c 0d 00 c8 2f  c8 99 22 48 6f 75 72 67  |_all.../.."Hourg|
00001bc0  6c 61 73 73 5f 4f 6e 22  3a f2 73 65 74 5f 73 74  |lass_On":.set_st|
00001bd0  72 28 72 65 61 64 5f 77  25 2c 31 34 2c 22 41 6c  |r(read_w%,14,"Al|
00001be0  6c 22 29 0d 00 c9 27 ea  85 3a ee 85 ea 20 f2 72  |l")...'..:... .r|
00001bf0  65 70 6f 72 74 5f 65 72  72 6f 72 28 f6 24 2c a3  |eport_error(.$,.|
00001c00  29 3a f2 63 6c 65 61 72  3a e1 0d 00 ca 0c 2a 46  |):.clear:.....*F|
00001c10  58 32 32 39 2c 30 0d 00  cb 1d e7 20 72 6f 33 25  |X229,0..... ro3%|
00001c20  3d a3 20 80 20 73 69 7a  65 25 3d 26 42 34 30 30  |=. . size%=&B400|
00001c30  30 20 8c 0d 00 cc 61 20  e3 20 41 25 3d 26 32 30  |0 ....a . A%=&20|
00001c40  30 b8 26 43 36 45 30 30  20 88 20 26 31 34 30 30  |0.&C6E00 . &1400|
00001c50  3a c8 99 20 22 41 44 46  53 5f 44 69 73 63 4f 70  |:.. "ADFS_DiscOp|
00001c60  22 2c 2c 31 84 64 72 65  63 25 3c 3c 36 2c 64 69  |",,1.drec%<<6,di|
00001c70  73 63 5f 61 64 64 72 25  2b 41 25 2c 70 74 72 25  |sc_addr%+A%,ptr%|
00001c80  2c 26 31 32 30 30 3a 70  74 72 25 2b 3d 26 31 32  |,&1200:ptr%+=&12|
00001c90  30 30 3a ed 0d 00 cd 05  cc 0d 00 ce 3a 20 c8 99  |00:.........: ..|
00001ca0  20 22 41 44 46 53 5f 44  69 73 63 4f 70 22 2c 2c  | "ADFS_DiscOp",,|
00001cb0  31 84 64 72 65 63 25 3c  3c 36 2c 64 69 73 63 5f  |1.drec%<<6,disc_|
00001cc0  61 64 64 72 25 2c 62 75  66 66 65 72 25 2c 73 69  |addr%,buffer%,si|
00001cd0  7a 65 25 0d 00 cf 05 cd  0d 00 d0 0c 2a 46 58 32  |ze%.........*FX2|
00001ce0  32 39 2c 31 0d 00 d1 3a  f2 73 65 74 5f 73 74 72  |29,1...:.set_str|
00001cf0  28 77 72 69 74 65 5f 77  25 2c 33 2c 6e 61 6d 65  |(write_w%,3,name|
00001d00  24 29 3a f2 73 65 74 5f  73 74 72 28 73 61 76 65  |$):.set_str(save|
00001d10  61 73 5f 77 25 2c 33 2c  6e 61 6d 65 24 29 0d 00  |as_w%,3,name$)..|
00001d20  d2 39 f2 73 65 74 5f 6e  75 6d 28 72 65 61 64 5f  |.9.set_num(read_|
00001d30  77 25 2c 31 34 2c 30 29  3a f2 69 63 6f 6e 62 61  |w%,14,0):.iconba|
00001d40  72 28 73 69 7a 65 25 29  3a f2 75 6e 73 68 61 64  |r(size%):.unshad|
00001d50  65 5f 77 72 69 74 65 0d  00 d3 47 21 62 6c 6b 25  |e_write...G!blk%|
00001d60  3d 72 65 61 64 5f 77 25  3a c8 99 22 57 69 6d 70  |=read_w%:.."Wimp|
00001d70  5f 43 6c 6f 73 65 57 69  6e 64 6f 77 22 2c 2c 62  |_CloseWindow",,b|
00001d80  6c 6b 25 3a 77 5f 6f 70  25 3d a3 3a c8 99 20 22  |lk%:w_op%=.:.. "|
00001d90  48 6f 75 72 67 6c 61 73  73 5f 4f 66 66 22 0d 00  |Hourglass_Off"..|
00001da0  d4 2c e7 20 72 6f 33 25  3d b9 20 ff 22 41 44 46  |.,. ro3%=. ."ADF|
00001db0  53 3a 44 69 73 6d 6f 75  6e 74 20 3a 22 2b c3 72  |S:Dismount :"+.r|
00001dc0  65 61 64 5f 64 72 69 76  65 25 0d 00 d5 05 e1 0d  |ead_drive%......|
00001dd0  00 d6 04 0d 00 d7 10 dd  a4 72 65 61 64 5f 74 72  |.........read_tr|
00001de0  61 63 6b 0d 00 d8 2b ea  85 3a ee 85 ea 20 f2 72  |ack...+..:... .r|
00001df0  65 70 6f 72 74 5f 65 72  72 6f 72 28 f6 24 2c a3  |eport_error(.$,.|
00001e00  29 3a f2 63 6c 65 61 72  3a 3d 26 43 33 31 0d 00  |):.clear:=&C31..|
00001e10  d9 2e c8 99 20 22 41 44  46 53 5f 44 69 73 63 4f  |.... "ADFS_DiscO|
00001e20  70 22 2c 2c 31 2c 64 69  73 63 5f 61 64 64 72 25  |p",,1,disc_addr%|
00001e30  2c 70 74 72 25 2c 63 68  75 6e 6b 25 0d 00 da 56  |,ptr%,chunk%...V|
00001e40  74 72 61 63 6b 25 2b 3d  31 3a 70 74 72 25 2b 3d  |track%+=1:ptr%+=|
00001e50  63 68 75 6e 6b 25 3a 64  69 73 63 5f 61 64 64 72  |chunk%:disc_addr|
00001e60  25 2b 3d 63 68 75 6e 6b  25 3a e7 20 73 69 7a 65  |%+=chunk%:. size|
00001e70  25 3d 26 42 34 30 30 30  20 e7 20 72 6f 33 25 3d  |%=&B4000 . ro3%=|
00001e80  a3 20 64 69 73 63 5f 61  64 64 72 25 2b 3d 26 32  |. disc_addr%+=&2|
00001e90  30 30 0d 00 db 1f f2 73  65 74 5f 6e 75 6d 28 72  |00.....set_num(r|
00001ea0  65 61 64 5f 77 25 2c 31  34 2c 74 72 61 63 6b 25  |ead_w%,14,track%|
00001eb0  29 0d 00 dc 12 e7 20 70  74 72 25 3c 65 6e 64 25  |)..... ptr%<end%|
00001ec0  3a 3d 31 0d 00 dd 3a f2  73 65 74 5f 73 74 72 28  |:=1...:.set_str(|
00001ed0  77 72 69 74 65 5f 77 25  2c 33 2c 6e 61 6d 65 24  |write_w%,3,name$|
00001ee0  29 3a f2 73 65 74 5f 73  74 72 28 73 61 76 65 61  |):.set_str(savea|
00001ef0  73 5f 77 25 2c 33 2c 6e  61 6d 65 24 29 0d 00 de  |s_w%,3,name$)...|
00001f00  39 f2 73 65 74 5f 6e 75  6d 28 72 65 61 64 5f 77  |9.set_num(read_w|
00001f10  25 2c 31 34 2c 30 29 3a  f2 69 63 6f 6e 62 61 72  |%,14,0):.iconbar|
00001f20  28 73 69 7a 65 25 29 3a  f2 75 6e 73 68 61 64 65  |(size%):.unshade|
00001f30  5f 77 72 69 74 65 0d 00  df 2c e7 20 72 6f 33 25  |_write...,. ro3%|
00001f40  3d b9 20 ff 22 41 44 46  53 3a 44 69 73 6d 6f 75  |=. ."ADFS:Dismou|
00001f50  6e 74 20 3a 22 2b c3 72  65 61 64 5f 64 72 69 76  |nt :"+.read_driv|
00001f60  65 25 0d 00 e0 06 3d 30  0d 00 e1 04 0d 00 e2 0f  |e%....=0........|
00001f70  dd f2 6c 6f 61 64 5f 66  69 6c 65 0d 00 e3 10 c8  |..load_file.....|
00001f80  8e 20 62 6c 6b 25 21 34  30 20 ca 0d 00 e4 10 20  |. blk%!40 ..... |
00001f90  c9 20 26 31 38 30 3a f7  20 2b 30 0d 00 e5 3f 20  |. &180:. +0...? |
00001fa0  20 20 20 20 20 20 20 20  20 20 dc 20 31 30 2c 35  |          . 10,5|
00001fb0  2c 32 2c 32 2c 31 35 2c  37 2c 31 2c 30 2c 30 2c  |,2,2,15,7,1,0,0,|
00001fc0  31 2c 33 32 2c 35 2c 33  2c 32 2c 30 2c 30 2c 30  |1,32,5,3,2,0,0,0|
00001fd0  2c 26 38 30 2c 26 30 43  2c 30 0d 00 e6 10 20 c9  |,&80,&0C,0.... .|
00001fe0  20 26 31 36 30 3a f7 20  2b 30 0d 00 e7 3e 20 20  | &160:. +0...>  |
00001ff0  20 20 20 20 20 20 20 20  20 dc 20 31 30 2c 31 30  |         . 10,10|
00002000  2c 32 2c 34 2c 31 35 2c  36 2c 31 2c 30 2c 30 2c  |,2,4,15,6,1,0,0,|
00002010  34 2c 36 34 2c 36 2c 39  2c 32 2c 30 2c 30 2c 30  |4,64,6,9,2,0,0,0|
00002020  2c 30 2c 26 31 39 2c 30  0d 00 e8 10 20 c9 20 26  |,0,&19,0.... . &|
00002030  31 34 34 3a f7 20 2b 30  0d 00 e9 3d 20 20 20 20  |144:. +0...=    |
00002040  20 20 20 20 20 20 20 dc  20 39 2c 31 38 2c 32 2c  |       . 9,18,2,|
00002050  34 2c 30 2c 30 2c 30 2c  30 2c 31 2c 30 2c 30 2c  |4,0,0,0,0,1,0,0,|
00002060  30 2c 30 2c 30 2c 30 2c  30 2c 30 2c 26 38 30 2c  |0,0,0,0,0,0,&80,|
00002070  26 31 36 2c 30 0d 00 ea  10 20 c9 20 26 31 37 32  |&16,0.... . &172|
00002080  3a f7 20 2b 30 0d 00 eb  3c 20 20 20 20 20 20 20  |:. +0...<       |
00002090  20 20 20 20 dc 20 39 2c  39 2c 32 2c 32 2c 30 2c  |    . 9,9,2,2,0,|
000020a0  30 2c 30 2c 30 2c 31 2c  30 2c 30 2c 30 2c 30 2c  |0,0,0,1,0,0,0,0,|
000020b0  30 2c 30 2c 30 2c 30 2c  26 34 30 2c 26 30 42 2c  |0,0,0,0,&40,&0B,|
000020c0  30 0d 00 ec 10 20 c9 20  26 31 36 34 3a f7 20 2b  |0.... . &164:. +|
000020d0  30 0d 00 ed 3c 20 20 20  20 20 20 20 20 20 20 20  |0...<           |
000020e0  dc 20 38 2c 31 36 2c 31  2c 32 2c 30 2c 30 2c 30  |. 8,16,1,2,0,0,0|
000020f0  2c 30 2c 36 34 2c 30 2c  30 2c 30 2c 30 2c 32 2c  |,0,64,0,0,0,0,2,|
00002100  30 2c 30 2c 30 2c 30 2c  26 30 41 2c 30 0d 00 ee  |0,0,0,0,&0A,0...|
00002110  05 7f 0d 00 ef 07 20 20  e1 0d 00 f0 05 cb 0d 00  |......  ........|
00002120  f1 2a ea 20 85 3a ee 20  85 20 ea 3a f2 72 65 70  |.*. .:. . .:.rep|
00002130  6f 72 74 5f 65 72 72 6f  72 28 f6 24 2c a3 29 3a  |ort_error(.$,.):|
00002140  f2 63 6c 65 61 72 3a e1  0d 00 f2 2e 62 6c 6b 25  |.clear:.....blk%|
00002150  21 31 32 3d 62 6c 6b 25  21 38 3a 62 6c 6b 25 21  |!12=blk%!8:blk%!|
00002160  31 36 3d 34 3a 66 69 6c  65 74 79 70 65 25 3d 62  |16=4:filetype%=b|
00002170  6c 6b 25 21 34 30 0d 00  f3 3c 49 25 3d 62 6c 6b  |lk%!40...<I%=blk|
00002180  25 2b 34 34 3a 66 69 6c  65 6e 61 6d 65 24 3d 22  |%+44:filename$="|
00002190  22 3a c8 95 20 3f 49 25  3a 66 69 6c 65 6e 61 6d  |":.. ?I%:filenam|
000021a0  65 24 2b 3d bd 28 3f 49  25 29 3a 49 25 2b 3d 31  |e$+=.(?I%):I%+=1|
000021b0  3a ce 0d 00 f4 28 c8 99  20 22 57 69 6d 70 5f 53  |:....(.. "Wimp_S|
000021c0  65 6e 64 4d 65 73 73 61  67 65 22 2c 31 37 2c 62  |endMessage",17,b|
000021d0  6c 6b 25 2c 62 6c 6b 25  21 34 0d 00 f5 3a 21 62  |lk%,blk%!4...:!b|
000021e0  6c 6b 25 3d 77 72 69 74  65 5f 77 25 3a c8 99 22  |lk%=write_w%:.."|
000021f0  57 69 6d 70 5f 43 6c 6f  73 65 57 69 6e 64 6f 77  |Wimp_CloseWindow|
00002200  22 2c 2c 62 6c 6b 25 3a  f2 73 68 61 64 65 5f 77  |",,blk%:.shade_w|
00002210  72 69 74 65 0d 00 f6 48  e7 20 a4 67 65 74 5f 6f  |rite...H. .get_o|
00002220  70 74 28 38 29 3d b9 20  e7 20 73 69 7a 65 25 3e  |pt(8)=. . size%>|
00002230  30 20 e7 20 a4 61 6c 65  72 74 28 33 2c 22 43 6f  |0 . .alert(3,"Co|
00002240  6e 66 69 72 6d 3a 20 4c  6f 61 64 20 64 69 73 63  |nfirm: Load disc|
00002250  20 69 6d 61 67 65 22 29  3d 32 3a e1 0d 00 f7 0f  | image")=2:.....|
00002260  dd f2 69 6e 69 74 5f 6c  6f 61 64 0d 00 f8 42 c8  |..init_load...B.|
00002270  99 22 4f 53 5f 46 69 6c  65 22 2c 31 37 2c 66 69  |."OS_File",17,fi|
00002280  6c 65 6e 61 6d 65 24 20  b8 20 49 25 2c 2c 54 25  |lename$ . I%,,T%|
00002290  2c 2c 6c 65 6e 25 3a 66  69 6c 65 74 79 70 65 25  |,,len%:filetype%|
000022a0  3d 28 54 25 3e 3e 38 29  80 26 46 46 46 0d 00 f9  |=(T%>>8).&FFF...|
000022b0  2a e7 20 49 25 3d 30 20  49 25 3d a4 61 6c 65 72  |*. I%=0 I%=.aler|
000022c0  74 28 31 2c 22 46 69 6c  65 20 6e 6f 74 20 66 6f  |t(1,"File not fo|
000022d0  75 6e 64 22 29 3a e1 0d  00 fa 44 e7 20 a4 77 6b  |und"):....D. .wk|
000022e0  73 70 63 28 6c 65 6e 25  29 3d a3 20 49 25 3d a4  |spc(len%)=. I%=.|
000022f0  61 6c 65 72 74 28 31 2c  22 4e 6f 74 20 65 6e 6f  |alert(1,"Not eno|
00002300  75 67 68 20 6d 65 6d 6f  72 79 20 74 6f 20 6c 6f  |ugh memory to lo|
00002310  61 64 20 66 69 6c 65 22  29 3a e1 0d 00 fb 29 f2  |ad file"):....).|
00002320  73 65 74 5f 72 65 63 6f  72 64 28 66 69 6c 65 74  |set_record(filet|
00002330  79 70 65 25 29 3a 73 69  7a 65 25 3d 64 72 65 63  |ype%):size%=drec|
00002340  25 21 31 36 0d 00 fc 41  e7 20 73 69 7a 65 25 3c  |%!16...A. size%<|
00002350  3e 6c 65 6e 25 20 49 25  3d a4 61 6c 65 72 74 28  |>len% I%=.alert(|
00002360  31 2c 22 54 68 69 73 20  69 73 20 6e 6f 74 20 61  |1,"This is not a|
00002370  20 64 69 73 63 20 69 6d  61 67 65 20 66 69 6c 65  | disc image file|
00002380  21 22 29 3a e1 0d 00 fd  2f c8 99 22 4f 53 5f 46  |!"):..../.."OS_F|
00002390  69 6c 65 22 2c 31 36 2c  66 69 6c 65 6e 61 6d 65  |ile",16,filename|
000023a0  24 2c 62 75 66 66 65 72  25 20 b8 20 2c 2c 2c 2c  |$,buffer% . ,,,,|
000023b0  6c 65 6e 25 0d 00 fe 50  24 62 6c 6b 25 3d 66 69  |len%...P$blk%=fi|
000023c0  6c 65 6e 61 6d 65 24 3a  49 25 3d 62 6c 6b 25 3a  |lename$:I%=blk%:|
000023d0  c8 95 20 3f 49 25 3e 33  32 3a 49 25 2b 3d 31 3a  |.. ?I%>32:I%+=1:|
000023e0  ce 3a c8 95 20 3f 49 25  3c 3e 97 22 2e 22 3a 49  |.:.. ?I%<>.".":I|
000023f0  25 2d 3d 31 3a ce 3a 6e  61 6d 65 24 3d 24 28 49  |%-=1:.:name$=$(I|
00002400  25 2b 31 29 0d 00 ff 2c  21 62 6c 6b 25 3d 72 65  |%+1)...,!blk%=re|
00002410  61 64 5f 77 25 3a c8 99  22 57 69 6d 70 5f 43 6c  |ad_w%:.."Wimp_Cl|
00002420  6f 73 65 57 69 6e 64 6f  77 22 2c 2c 62 6c 6b 25  |oseWindow",,blk%|
00002430  0d 01 00 3a f2 73 65 74  5f 73 74 72 28 77 72 69  |...:.set_str(wri|
00002440  74 65 5f 77 25 2c 33 2c  6e 61 6d 65 24 29 3a f2  |te_w%,3,name$):.|
00002450  73 65 74 5f 73 74 72 28  73 61 76 65 61 73 5f 77  |set_str(saveas_w|
00002460  25 2c 33 2c 6e 61 6d 65  24 29 0d 01 01 44 63 68  |%,3,name$)...Dch|
00002470  75 6e 6b 25 3d 73 69 7a  65 25 81 31 36 30 3a 74  |unk%=size%.160:t|
00002480  72 61 63 6b 25 3d 30 3a  65 6e 64 25 3d 62 75 66  |rack%=0:end%=buf|
00002490  66 65 72 25 2b 73 69 7a  65 25 3a 63 6f 70 69 65  |fer%+size%:copie|
000024a0  64 25 3d 30 3a 66 61 75  6c 74 79 25 3d 30 0d 01  |d%=0:faulty%=0..|
000024b0  02 22 f2 69 63 6f 6e 62  61 72 28 73 69 7a 65 25  |.".iconbar(size%|
000024c0  29 3a f2 75 6e 73 68 61  64 65 5f 77 72 69 74 65  |):.unshade_write|
000024d0  0d 01 03 05 e1 0d 01 04  04 0d 01 05 11 dd f2 73  |...............s|
000024e0  74 61 72 74 5f 77 72 69  74 65 0d 01 06 1a ea 20  |tart_write..... |
000024f0  85 3a ee 85 ea 20 f2 77  72 69 74 65 5f 65 72 72  |.:... .write_err|
00002500  6f 72 3a e1 0d 01 07 0c  73 74 61 74 65 25 3d 30  |or:.....state%=0|
00002510  0d 01 08 1d e7 20 73 69  7a 65 25 3d 26 42 34 30  |..... size%=&B40|
00002520  30 30 20 80 20 72 6f 33  25 3d a3 20 8c 0d 01 09  |00 . ro3%=. ....|
00002530  16 20 f2 73 65 74 5f 72  65 63 6f 72 64 28 26 32  |. .set_record(&2|
00002540  37 32 29 0d 01 0a 05 cc  0d 01 0b 15 20 e7 20 66  |72)......... . f|
00002550  6f 72 6d 61 74 74 65 64  25 3d a3 20 8c 0d 01 0c  |ormatted%=. ....|
00002560  2c 20 20 c8 99 20 22 41  44 46 53 5f 52 65 74 72  |,  .. "ADFS_Retr|
00002570  69 65 73 22 2c 26 46 46  30 30 2c 26 30 31 30 30  |ies",&FF00,&0100|
00002580  20 b8 20 2c 2c 6f 72 74  25 0d 01 0d 35 20 20 c8  | . ,,ort%...5  .|
00002590  99 20 22 41 44 46 53 5f  44 65 73 63 72 69 62 65  |. "ADFS_Describe|
000025a0  44 69 73 63 22 2c c3 28  77 72 69 74 65 5f 64 72  |Disc",.(write_dr|
000025b0  69 76 65 25 29 2b bd 30  2c 64 72 65 63 25 0d 01  |ive%)+.0,drec%..|
000025c0  0e 22 20 20 c8 99 20 22  41 44 46 53 5f 52 65 74  |."  .. "ADFS_Ret|
000025d0  72 69 65 73 22 2c 26 46  46 30 30 2c 6f 72 74 25  |ries",&FF00,ort%|
000025e0  0d 01 0f 28 20 20 e7 20  21 64 72 65 63 25 3d 26  |...(  . !drec%=&|
000025f0  34 30 32 31 32 30 39 20  64 72 65 63 25 21 31 36  |4021209 drec%!16|
00002600  3d 26 31 36 38 30 30 30  0d 01 10 06 20 cd 0d 01  |=&168000.... ...|
00002610  11 05 cd 0d 01 12 17 e7  20 64 72 65 63 25 21 31  |........ drec%!1|
00002620  36 3c 3e 73 69 7a 65 25  20 8c 0d 01 13 42 20 e7  |6<>size% ....B .|
00002630  20 a4 67 65 74 5f 6f 70  74 28 31 33 29 3d b9 20  | .get_opt(13)=. |
00002640  f2 66 6f 72 6d 61 74 28  b9 29 3a e1 20 20 20 3a  |.format(.):.   :|
00002650  f4 3e 3e 3e 3e 20 72 65  66 6f 72 6d 61 74 20 69  |.>>>> reformat i|
00002660  66 20 77 72 6f 6e 67 20  73 69 7a 65 0d 01 14 4f  |f wrong size...O|
00002670  20 e7 20 a4 61 6c 65 72  74 28 33 2c 22 57 72 6f  | . .alert(3,"Wro|
00002680  6e 67 20 64 69 73 63 20  66 6f 72 6d 61 74 2c 20  |ng disc format, |
00002690  64 6f 20 79 6f 75 20 77  61 6e 74 20 74 6f 20 72  |do you want to r|
000026a0  65 66 6f 72 6d 61 74 20  69 74 20 3f 22 29 3d 31  |eformat it ?")=1|
000026b0  20 f2 66 6f 72 6d 61 74  28 a3 29 0d 01 15 06 20  | .format(.).... |
000026c0  e1 0d 01 16 05 cd 0d 01  17 39 f2 73 65 74 5f 73  |.........9.set_s|
000026d0  74 72 28 77 72 69 74 65  5f 77 25 2c 33 30 2c 22  |tr(write_w%,30,"|
000026e0  43 6f 70 79 69 6e 67 22  29 3a c8 99 20 22 57 69  |Copying"):.. "Wi|
000026f0  6d 70 5f 50 6f 6c 6c 22  2c 30 2c 62 6c 6b 25 0d  |mp_Poll",0,blk%.|
00002700  01 18 41 64 69 73 63 5f  61 64 64 72 25 3d 77 72  |..Adisc_addr%=wr|
00002710  69 74 65 5f 64 72 69 76  65 25 3c 3c 32 39 3a 73  |ite_drive%<<29:s|
00002720  74 61 72 74 25 3d 62 75  66 66 65 72 25 3a 65 6e  |tart%=buffer%:en|
00002730  64 25 3d 62 75 66 66 65  72 25 2b 73 69 7a 65 25  |d%=buffer%+size%|
00002740  0d 01 19 41 e7 20 a4 67  65 74 5f 6f 70 74 28 31  |...A. .get_opt(1|
00002750  39 29 3d b9 20 63 68 75  6e 6b 25 3d 73 69 7a 65  |9)=. chunk%=size|
00002760  25 81 31 36 30 3a 74 72  61 63 6b 25 3d 30 3a 6d  |%.160:track%=0:m|
00002770  61 73 6b 25 3d 30 3a 73  74 61 74 65 25 3d 34 3a  |ask%=0:state%=4:|
00002780  e1 0d 01 1a 39 c8 99 22  48 6f 75 72 67 6c 61 73  |....9.."Hourglas|
00002790  73 5f 4f 6e 22 3a f2 73  65 74 5f 73 74 72 28 77  |s_On":.set_str(w|
000027a0  72 69 74 65 5f 77 25 2c  32 33 2c 22 41 6c 6c 22  |rite_w%,23,"All"|
000027b0  29 3a 2a 46 58 32 32 39  2c 30 0d 01 1b 2a c8 99  |):*FX229,0...*..|
000027c0  20 22 41 44 46 53 5f 52  65 74 72 69 65 73 22 2c  | "ADFS_Retries",|
000027d0  26 46 46 30 30 2c 26 30  31 30 30 20 b8 20 2c 2c  |&FF00,&0100 . ,,|
000027e0  6f 72 74 25 0d 01 1c 1d  e7 20 73 69 7a 65 25 3d  |ort%..... size%=|
000027f0  26 42 34 30 30 30 20 80  20 72 6f 33 25 3d a3 20  |&B4000 . ro3%=. |
00002800  8c 0d 01 1d 14 20 64 72  65 63 25 21 31 36 3d 26  |..... drec%!16=&|
00002810  43 38 30 30 30 0d 01 1e  64 20 e3 20 41 25 3d 26  |C8000...d . A%=&|
00002820  32 30 30 b8 26 43 36 45  30 30 20 88 26 31 34 30  |200.&C6E00 .&140|
00002830  30 3a c8 99 20 22 41 44  46 53 5f 44 69 73 63 4f  |0:.. "ADFS_DiscO|
00002840  70 22 2c 2c 32 84 64 72  65 63 25 3c 3c 36 2c 64  |p",,2.drec%<<6,d|
00002850  69 73 63 5f 61 64 64 72  25 2b 41 25 2c 73 74 61  |isc_addr%+A%,sta|
00002860  72 74 25 2c 26 31 32 30  30 3a 73 74 61 72 74 25  |rt%,&1200:start%|
00002870  2b 3d 26 31 32 30 30 3a  ed 0d 01 1f 05 cc 0d 01  |+=&1200:........|
00002880  20 39 20 c8 99 20 22 41  44 46 53 5f 44 69 73 63  | 9 .. "ADFS_Disc|
00002890  4f 70 22 2c 2c 32 84 64  72 65 63 25 3c 3c 36 2c  |Op",,2.drec%<<6,|
000028a0  64 69 73 63 5f 61 64 64  72 25 2c 73 74 61 72 74  |disc_addr%,start|
000028b0  25 2c 73 69 7a 65 25 0d  01 21 05 cd 0d 01 22 3b  |%,size%..!....";|
000028c0  c8 99 20 22 41 44 46 53  5f 52 65 74 72 69 65 73  |.. "ADFS_Retries|
000028d0  22 2c 26 46 46 30 30 2c  6f 72 74 25 3a c8 99 22  |",&FF00,ort%:.."|
000028e0  48 6f 75 72 67 6c 61 73  73 5f 4f 66 66 22 3a 2a  |Hourglass_Off":*|
000028f0  46 58 32 32 39 2c 31 0d  01 23 24 e7 20 a4 67 65  |FX229,1..#$. .ge|
00002900  74 5f 6f 70 74 28 31 36  29 3d b9 20 f2 73 74 61  |t_opt(16)=. .sta|
00002910  72 74 5f 76 65 72 69 66  79 3a e1 0d 01 24 2c 63  |rt_verify:...$,c|
00002920  6f 70 69 65 64 25 2b 3d  31 3a f2 73 65 74 5f 6e  |opied%+=1:.set_n|
00002930  75 6d 28 77 72 69 74 65  5f 77 25 2c 32 30 2c 63  |um(write_w%,20,c|
00002940  6f 70 69 65 64 25 29 0d  01 25 3b f2 73 65 74 5f  |opied%)..%;.set_|
00002950  6e 75 6d 28 77 72 69 74  65 5f 77 25 2c 32 33 2c  |num(write_w%,23,|
00002960  30 29 3a f2 73 65 74 5f  73 74 72 28 77 72 69 74  |0):.set_str(writ|
00002970  65 5f 77 25 2c 33 30 2c  22 57 61 69 74 69 6e 67  |e_w%,30,"Waiting|
00002980  22 29 0d 01 26 2d e7 20  72 6f 33 25 3d b9 20 ff  |")..&-. ro3%=. .|
00002990  22 41 44 46 53 3a 44 69  73 6d 6f 75 6e 74 20 3a  |"ADFS:Dismount :|
000029a0  22 2b c3 77 72 69 74 65  5f 64 72 69 76 65 25 0d  |"+.write_drive%.|
000029b0  01 27 18 e7 20 61 75 74  6f 25 3d b9 20 f2 61 75  |.'.. auto%=. .au|
000029c0  74 6f 5f 6e 65 78 74 0d  01 28 05 e1 0d 01 29 04  |to_next..(....).|
000029d0  0d 01 2a 11 dd a4 77 72  69 74 65 5f 74 72 61 63  |..*...write_trac|
000029e0  6b 0d 01 2b 19 ea 85 3a  ee 85 ea f2 77 72 69 74  |k..+...:....writ|
000029f0  65 5f 65 72 72 6f 72 3a  3d 30 0d 01 2c 41 c8 99  |e_error:=0..,A..|
00002a00  20 22 41 44 46 53 5f 44  69 73 63 4f 70 22 2c 2c  | "ADFS_DiscOp",,|
00002a10  32 84 64 72 65 63 25 3c  3c 36 2c 64 69 73 63 5f  |2.drec%<<6,disc_|
00002a20  61 64 64 72 25 2c 73 74  61 72 74 25 2c 63 68 75  |addr%,start%,chu|
00002a30  6e 6b 25 20 b8 20 45 25  3b 46 25 0d 01 2d 58 64  |nk% . E%;F%..-Xd|
00002a40  69 73 63 5f 61 64 64 72  25 2b 3d 63 68 75 6e 6b  |isc_addr%+=chunk|
00002a50  25 3a 73 74 61 72 74 25  2b 3d 63 68 75 6e 6b 25  |%:start%+=chunk%|
00002a60  3a 74 72 61 63 6b 25 2b  3d 31 3a e7 20 73 69 7a  |:track%+=1:. siz|
00002a70  65 25 3d 26 42 34 30 30  30 20 e7 20 72 6f 33 25  |e%=&B4000 . ro3%|
00002a80  3d a3 20 64 69 73 63 5f  61 64 64 72 25 2b 3d 26  |=. disc_addr%+=&|
00002a90  32 30 30 0d 01 2e 20 f2  73 65 74 5f 6e 75 6d 28  |200... .set_num(|
00002aa0  77 72 69 74 65 5f 77 25  2c 32 33 2c 74 72 61 63  |write_w%,23,trac|
00002ab0  6b 25 29 0d 01 2f 14 e7  20 73 74 61 72 74 25 3c  |k%)../.. start%<|
00002ac0  65 6e 64 25 3a 3d 34 0d  01 30 2a e7 20 a4 67 65  |end%:=4..0*. .ge|
00002ad0  74 5f 6f 70 74 28 31 36  29 3d b9 20 f2 73 74 61  |t_opt(16)=. .sta|
00002ae0  72 74 5f 76 65 72 69 66  79 3a 3d 73 74 61 74 65  |rt_verify:=state|
00002af0  25 0d 01 31 3b f2 73 65  74 5f 6e 75 6d 28 77 72  |%..1;.set_num(wr|
00002b00  69 74 65 5f 77 25 2c 32  33 2c 30 29 3a f2 73 65  |ite_w%,23,0):.se|
00002b10  74 5f 73 74 72 28 77 72  69 74 65 5f 77 25 2c 33  |t_str(write_w%,3|
00002b20  30 2c 22 57 61 69 74 69  6e 67 22 29 0d 01 32 2c  |0,"Waiting")..2,|
00002b30  63 6f 70 69 65 64 25 2b  3d 31 3a f2 73 65 74 5f  |copied%+=1:.set_|
00002b40  6e 75 6d 28 77 72 69 74  65 5f 77 25 2c 32 30 2c  |num(write_w%,20,|
00002b50  63 6f 70 69 65 64 25 29  0d 01 33 20 e7 20 61 75  |copied%)..3 . au|
00002b60  74 6f 25 3d b9 20 f2 61  75 74 6f 5f 6e 65 78 74  |to%=. .auto_next|
00002b70  3a 3d 73 74 61 74 65 25  0d 01 34 0e 6d 61 73 6b  |:=state%..4.mask|
00002b80  25 3d 26 43 33 31 0d 01  35 06 3d 30 0d 01 36 04  |%=&C31..5.=0..6.|
00002b90  0d 01 37 11 dd f2 77 72  69 74 65 5f 65 72 72 6f  |..7...write_erro|
00002ba0  72 0d 01 38 21 ea 20 85  3a ee 85 ea 20 f2 72 65  |r..8!. .:... .re|
00002bb0  70 6f 72 74 5f 65 72 72  6f 72 28 f6 24 2c a3 29  |port_error(.$,.)|
00002bc0  3a e1 0d 01 39 3b f2 73  65 74 5f 6e 75 6d 28 77  |:...9;.set_num(w|
00002bd0  72 69 74 65 5f 77 25 2c  32 33 2c 30 29 3a f2 73  |rite_w%,23,0):.s|
00002be0  65 74 5f 73 74 72 28 77  72 69 74 65 5f 77 25 2c  |et_str(write_w%,|
00002bf0  33 30 2c 22 57 61 69 74  69 6e 67 22 29 0d 01 3a  |30,"Waiting")..:|
00002c00  48 6d 61 73 6b 25 3d 26  43 33 31 3a 73 74 61 74  |Hmask%=&C31:stat|
00002c10  65 25 3d 30 3a c8 99 22  48 6f 75 72 67 6c 61 73  |e%=0:.."Hourglas|
00002c20  73 5f 53 6d 61 73 68 22  3a c8 99 20 22 41 44 46  |s_Smash":.. "ADF|
00002c30  53 5f 52 65 74 72 69 65  73 22 2c 26 46 46 30 30  |S_Retries",&FF00|
00002c40  2c 6f 72 74 25 0d 01 3b  11 e7 20 9f 3c 3e 26 31  |,ort%..;.. .<>&1|
00002c50  30 38 39 41 20 8c 0d 01  3c 18 20 f2 72 65 70 6f  |089A ...<. .repo|
00002c60  72 74 5f 65 72 72 6f 72  28 f6 24 2c a3 29 0d 01  |rt_error(.$,.)..|
00002c70  3d 10 20 e7 20 61 75 74  6f 25 3d b9 20 8c 0d 01  |=. . auto%=. ...|
00002c80  3e 1d 20 20 f2 69 63 6f  6e 62 61 72 28 73 69 7a  |>.  .iconbar(siz|
00002c90  65 25 29 3a 61 75 74 6f  25 3d a3 0d 01 3f 54 20  |e%):auto%=...?T |
00002ca0  20 21 62 6c 6b 25 3d 77  72 69 74 65 5f 77 25 3a  | !blk%=write_w%:|
00002cb0  c8 99 22 57 69 6d 70 5f  47 65 74 57 69 6e 64 6f  |.."Wimp_GetWindo|
00002cc0  77 53 74 61 74 65 22 2c  2c 62 6c 6b 25 3a c8 99  |wState",,blk%:..|
00002cd0  22 57 69 6d 70 5f 4f 70  65 6e 57 69 6e 64 6f 77  |"Wimp_OpenWindow|
00002ce0  22 2c 2c 62 6c 6b 25 3a  77 5f 6f 70 25 3d b9 0d  |",,blk%:w_op%=..|
00002cf0  01 40 06 20 cd 0d 01 41  05 cc 0d 01 42 2a 20 e7  |.@. ...A....B* .|
00002d00  20 a4 67 65 74 5f 6f 70  74 28 31 34 29 3d b9 20  | .get_opt(14)=. |
00002d10  6d 61 73 6b 25 3d 30 3a  f2 66 6f 72 6d 61 74 28  |mask%=0:.format(|
00002d20  a3 29 3a e1 0d 01 43 58  20 e7 20 a4 61 6c 65 72  |.):...CX . .aler|
00002d30  74 28 33 2c 22 44 69 73  63 20 6e 6f 74 20 66 6f  |t(3,"Disc not fo|
00002d40  72 6d 61 74 74 65 64 2c  20 64 6f 20 79 6f 75 20  |rmatted, do you |
00002d50  77 61 6e 74 20 74 6f 20  66 6f 72 6d 61 74 20 69  |want to format i|
00002d60  74 20 3f 22 29 3d 31 20  6d 61 73 6b 25 3d 30 3a  |t ?")=1 mask%=0:|
00002d70  f2 66 6f 72 6d 61 74 28  a3 29 3a e1 0d 01 44 18  |.format(.):...D.|
00002d80  20 f2 72 65 70 6f 72 74  5f 65 72 72 6f 72 28 f6  | .report_error(.|
00002d90  24 2c a3 29 0d 01 45 10  20 e7 20 61 75 74 6f 25  |$,.)..E. . auto%|
00002da0  3d b9 20 8c 0d 01 46 1d  20 20 f2 69 63 6f 6e 62  |=. ...F.  .iconb|
00002db0  61 72 28 73 69 7a 65 25  29 3a 61 75 74 6f 25 3d  |ar(size%):auto%=|
00002dc0  a3 0d 01 47 54 20 20 21  62 6c 6b 25 3d 77 72 69  |...GT  !blk%=wri|
00002dd0  74 65 5f 77 25 3a c8 99  22 57 69 6d 70 5f 47 65  |te_w%:.."Wimp_Ge|
00002de0  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 62  |tWindowState",,b|
00002df0  6c 6b 25 3a c8 99 22 57  69 6d 70 5f 4f 70 65 6e  |lk%:.."Wimp_Open|
00002e00  57 69 6e 64 6f 77 22 2c  2c 62 6c 6b 25 3a 77 5f  |Window",,blk%:w_|
00002e10  6f 70 25 3d b9 0d 01 48  06 20 cd 0d 01 49 05 cd  |op%=...H. ...I..|
00002e20  0d 01 4a 05 e1 0d 01 4b  04 0d 01 4c 12 dd f2 73  |..J....K...L...s|
00002e30  74 61 72 74 5f 76 65 72  69 66 79 0d 01 4d 1a ea  |tart_verify..M..|
00002e40  20 85 3a ee 85 ea 20 f2  77 72 69 74 65 5f 65 72  | .:... .write_er|
00002e50  72 6f 72 3a e1 0d 01 4e  3a f2 73 65 74 5f 73 74  |ror:...N:.set_st|
00002e60  72 28 77 72 69 74 65 5f  77 25 2c 33 30 2c 22 56  |r(write_w%,30,"V|
00002e70  65 72 69 66 79 69 6e 67  22 29 3a c8 99 22 57 69  |erifying"):.."Wi|
00002e80  6d 70 5f 50 6f 6c 6c 22  2c 30 2c 62 6c 6b 25 0d  |mp_Poll",0,blk%.|
00002e90  01 4f 31 73 74 61 72 74  25 3d 77 72 69 74 65 5f  |.O1start%=write_|
00002ea0  64 72 69 76 65 25 3c 3c  32 39 3a 4c 25 3d 73 69  |drive%<<29:L%=si|
00002eb0  7a 65 25 81 31 36 30 3a  74 72 61 63 6b 25 3d 30  |ze%.160:track%=0|
00002ec0  0d 01 50 27 e7 20 a4 67  65 74 5f 6f 70 74 28 32  |..P'. .get_opt(2|
00002ed0  30 29 3d b9 20 6d 61 73  6b 25 3d 30 3a 73 74 61  |0)=. mask%=0:sta|
00002ee0  74 65 25 3d 35 3a e1 0d  01 51 60 f2 73 65 74 5f  |te%=5:...Q`.set_|
00002ef0  73 74 72 28 77 72 69 74  65 5f 77 25 2c 32 33 2c  |str(write_w%,23,|
00002f00  22 41 6c 6c 22 29 3a c8  99 22 48 6f 75 72 67 6c  |"All"):.."Hourgl|
00002f10  61 73 73 5f 4f 6e 22 3a  c8 99 20 22 41 44 46 53  |ass_On":.. "ADFS|
00002f20  5f 52 65 74 72 69 65 73  22 2c 26 46 46 30 30 2c  |_Retries",&FF00,|
00002f30  26 30 31 30 30 20 b8 20  2c 2c 6f 72 74 25 3a 2a  |&0100 . ,,ort%:*|
00002f40  46 58 32 32 39 2c 30 0d  01 52 1d e7 20 72 6f 33  |FX229,0..R.. ro3|
00002f50  25 3d a3 20 80 20 73 69  7a 65 25 3d 26 42 34 30  |%=. . size%=&B40|
00002f60  30 30 20 8c 0d 01 53 2a  20 64 72 65 63 25 21 31  |00 ...S* drec%!1|
00002f70  36 3d 26 43 38 30 30 30  3a 73 74 61 72 74 25 2b  |6=&C8000:start%+|
00002f80  3d 26 32 30 30 3a 74 72  61 63 6b 25 3d 30 0d 01  |=&200:track%=0..|
00002f90  54 13 20 c8 95 20 74 72  61 63 6b 25 20 3c 31 36  |T. .. track% <16|
00002fa0  30 0d 01 55 39 20 20 c8  99 20 22 58 41 44 46 53  |0..U9  .. "XADFS|
00002fb0  5f 44 69 73 63 4f 70 22  2c 2c 30 84 64 72 65 63  |_DiscOp",,0.drec|
00002fc0  25 3c 3c 36 2c 73 74 61  72 74 25 2c 2c 26 31 32  |%<<6,start%,,&12|
00002fd0  30 30 20 b8 20 45 25 3b  46 25 0d 01 56 33 20 20  |00 . E%;F%..V3  |
00002fe0  73 74 61 72 74 25 2b 3d  26 31 34 30 30 3a 74 72  |start%+=&1400:tr|
00002ff0  61 63 6b 25 2b 3d 31 3a  e7 20 28 46 25 80 31 29  |ack%+=1:. (F%.1)|
00003000  3d 31 20 74 72 61 63 6b  25 3d 32 30 30 0d 01 57  |=1 track%=200..W|
00003010  06 20 ce 0d 01 58 05 cc  0d 01 59 35 20 c8 99 20  |. ...X....Y5 .. |
00003020  22 58 41 44 46 53 5f 44  69 73 63 4f 70 22 2c 2c  |"XADFS_DiscOp",,|
00003030  30 2c 73 74 61 72 74 25  2c 2c 73 69 7a 65 25 20  |0,start%,,size% |
00003040  b8 20 2c 2c 73 74 61 72  74 25 3b 46 25 0d 01 5a  |. ,,start%;F%..Z|
00003050  05 cd 0d 01 5b 0c 2a 66  78 32 32 39 2c 31 0d 01  |....[.*fx229,1..|
00003060  5c 20 c8 99 20 22 41 44  46 53 5f 52 65 74 72 69  |\ .. "ADFS_Retri|
00003070  65 73 22 2c 26 46 46 30  30 2c 6f 72 74 25 0d 01  |es",&FF00,ort%..|
00003080  5d 51 e7 20 28 46 25 80  31 29 3d b9 20 f2 73 65  |]Q. (F%.1)=. .se|
00003090  74 5f 6e 75 6d 28 77 72  69 74 65 5f 77 25 2c 32  |t_num(write_w%,2|
000030a0  33 2c 73 74 61 72 74 25  81 4c 25 29 3a c8 99 22  |3,start%.L%):.."|
000030b0  48 6f 75 72 67 6c 61 73  73 5f 4f 66 66 22 3a f2  |Hourglass_Off":.|
000030c0  76 65 72 69 66 79 5f 66  61 69 6c 65 64 3a e1 0d  |verify_failed:..|
000030d0  01 5e 2c 63 6f 70 69 65  64 25 2b 3d 31 3a f2 73  |.^,copied%+=1:.s|
000030e0  65 74 5f 6e 75 6d 28 77  72 69 74 65 5f 77 25 2c  |et_num(write_w%,|
000030f0  32 30 2c 63 6f 70 69 65  64 25 29 0d 01 5f 4d f2  |20,copied%).._M.|
00003100  73 65 74 5f 6e 75 6d 28  77 72 69 74 65 5f 77 25  |set_num(write_w%|
00003110  2c 32 33 2c 30 29 3a f2  73 65 74 5f 73 74 72 28  |,23,0):.set_str(|
00003120  77 72 69 74 65 5f 77 25  2c 33 30 2c 22 57 61 69  |write_w%,30,"Wai|
00003130  74 69 6e 67 22 29 3a c8  99 22 48 6f 75 72 67 6c  |ting"):.."Hourgl|
00003140  61 73 73 5f 4f 66 66 22  0d 01 60 2d e7 20 72 6f  |ass_Off"..`-. ro|
00003150  33 25 3d b9 20 ff 22 41  44 46 53 3a 44 69 73 6d  |3%=. ."ADFS:Dism|
00003160  6f 75 6e 74 20 3a 22 2b  c3 77 72 69 74 65 5f 64  |ount :"+.write_d|
00003170  72 69 76 65 25 0d 01 61  1a e7 20 61 75 74 6f 25  |rive%..a.. auto%|
00003180  3d b9 20 f2 61 75 74 6f  5f 6e 65 78 74 3a e1 0d  |=. .auto_next:..|
00003190  01 62 17 73 74 61 74 65  25 3d 30 3a 6d 61 73 6b  |.b.state%=0:mask|
000031a0  25 3d 26 43 33 31 0d 01  63 05 e1 0d 01 64 04 0d  |%=&C31..c....d..|
000031b0  01 65 12 dd a4 76 65 72  69 66 79 5f 74 72 61 63  |.e...verify_trac|
000031c0  6b 0d 01 66 2a c8 99 20  22 41 44 46 53 5f 52 65  |k..f*.. "ADFS_Re|
000031d0  74 72 69 65 73 22 2c 26  46 46 30 30 2c 26 30 31  |tries",&FF00,&01|
000031e0  30 30 20 b8 20 2c 2c 6f  72 74 25 0d 01 67 31 c8  |00 . ,,ort%..g1.|
000031f0  99 20 22 58 41 44 46 53  5f 44 69 73 63 4f 70 22  |. "XADFS_DiscOp"|
00003200  2c 2c 30 2c 73 74 61 72  74 25 2c 2c 4c 25 20 b8  |,,0,start%,,L% .|
00003210  20 2c 2c 73 74 61 72 74  25 3b 46 25 0d 01 68 20  | ,,start%;F%..h |
00003220  c8 99 20 22 41 44 46 53  5f 52 65 74 72 69 65 73  |.. "ADFS_Retries|
00003230  22 2c 26 46 46 30 30 2c  6f 72 74 25 0d 01 69 10  |",&FF00,ort%..i.|
00003240  e7 20 28 46 25 80 31 29  20 3a 3d 37 0d 01 6a 12  |. (F%.1) :=7..j.|
00003250  e7 20 74 72 61 63 6b 25  3c 31 35 39 20 8c 0d 01  |. track%<159 ...|
00003260  6b 2b 20 74 72 61 63 6b  25 2b 3d 31 3a f2 73 65  |k+ track%+=1:.se|
00003270  74 5f 6e 75 6d 28 77 72  69 74 65 5f 77 25 2c 32  |t_num(write_w%,2|
00003280  33 2c 74 72 61 63 6b 25  29 0d 01 6c 29 20 e7 20  |3,track%)..l) . |
00003290  73 69 7a 65 25 3d 26 42  34 30 30 30 20 e7 20 72  |size%=&B4000 . r|
000032a0  6f 33 25 3d a3 20 73 74  61 72 74 25 2b 3d 26 32  |o3%=. start%+=&2|
000032b0  30 30 0d 01 6d 08 20 3a  3d 35 0d 01 6e 05 cd 0d  |00..m. :=5..n...|
000032c0  01 6f 3b f2 73 65 74 5f  6e 75 6d 28 77 72 69 74  |.o;.set_num(writ|
000032d0  65 5f 77 25 2c 32 33 2c  30 29 3a f2 73 65 74 5f  |e_w%,23,0):.set_|
000032e0  73 74 72 28 77 72 69 74  65 5f 77 25 2c 33 30 2c  |str(write_w%,30,|
000032f0  22 57 61 69 74 69 6e 67  22 29 0d 01 70 34 63 6f  |"Waiting")..p4co|
00003300  70 69 65 64 25 2b 3d 31  3a 6d 61 73 6b 25 3d 30  |pied%+=1:mask%=0|
00003310  3a f2 73 65 74 5f 6e 75  6d 28 77 72 69 74 65 5f  |:.set_num(write_|
00003320  77 25 2c 32 30 2c 63 6f  70 69 65 64 25 29 0d 01  |w%,20,copied%)..|
00003330  71 2d e7 20 72 6f 33 25  3d b9 20 ff 22 41 44 46  |q-. ro3%=. ."ADF|
00003340  53 3a 44 69 73 6d 6f 75  6e 74 20 3a 22 2b c3 77  |S:Dismount :"+.w|
00003350  72 69 74 65 5f 64 72 69  76 65 25 0d 01 72 20 e7  |rite_drive%..r .|
00003360  20 61 75 74 6f 25 3d b9  20 f2 61 75 74 6f 5f 6e  | auto%=. .auto_n|
00003370  65 78 74 3a 3d 73 74 61  74 65 25 0d 01 73 06 3d  |ext:=state%..s.=|
00003380  30 0d 01 74 04 0d 01 75  13 dd f2 76 65 72 69 66  |0..t...u...verif|
00003390  79 5f 66 61 69 6c 65 64  0d 01 76 2c ef 37 3a f2  |y_failed..v,.7:.|
000033a0  73 65 74 5f 73 74 72 28  77 72 69 74 65 5f 77 25  |set_str(write_w%|
000033b0  2c 33 30 2c 22 56 65 72  69 66 79 20 66 61 69 6c  |,30,"Verify fail|
000033c0  65 64 22 29 0d 01 77 20  e7 20 a4 67 65 74 5f 6f  |ed")..w . .get_o|
000033d0  70 74 28 31 35 29 3d a3  20 f2 62 61 64 5f 64 69  |pt(15)=. .bad_di|
000033e0  73 63 3a e1 0d 01 78 1e  e7 20 66 6f 72 6d 61 74  |sc:...x.. format|
000033f0  74 65 64 25 3d b9 20 f2  62 61 64 5f 64 69 73 63  |ted%=. .bad_disc|
00003400  3a e1 0d 01 79 29 e7 20  a4 67 65 74 5f 6f 70 74  |:...y). .get_opt|
00003410  28 31 31 29 3d a3 20 6d  61 73 6b 25 3d 30 3a f2  |(11)=. mask%=0:.|
00003420  66 6f 72 6d 61 74 28 a3  29 3a e1 0d 01 7a 56 e7  |format(.):...zV.|
00003430  20 a4 61 6c 65 72 74 28  33 2c 22 56 65 72 69 66  | .alert(3,"Verif|
00003440  79 20 66 61 69 6c 65 64  2c 20 64 6f 20 79 6f 75  |y failed, do you|
00003450  20 77 61 6e 74 20 74 6f  20 72 65 66 6f 72 6d 61  | want to reforma|
00003460  74 20 61 6e 64 20 74 72  79 20 61 67 61 69 6e 20  |t and try again |
00003470  3f 22 29 3d 32 3a f2 62  61 64 5f 64 69 73 63 3a  |?")=2:.bad_disc:|
00003480  e1 0d 01 7b 16 6d 61 73  6b 25 3d 30 3a f2 66 6f  |...{.mask%=0:.fo|
00003490  72 6d 61 74 28 a3 29 0d  01 7c 05 e1 0d 01 7d 04  |rmat(.)..|....}.|
000034a0  0d 01 7e 0e dd f2 62 61  64 5f 64 69 73 63 0d 01  |..~...bad_disc..|
000034b0  7f 40 66 61 75 6c 74 79  25 2b 3d 31 3a 6d 61 73  |.@faulty%+=1:mas|
000034c0  6b 25 3d 26 43 33 31 3a  73 74 61 74 65 25 3d 30  |k%=&C31:state%=0|
000034d0  3a f2 73 65 74 5f 6e 75  6d 28 77 72 69 74 65 5f  |:.set_num(write_|
000034e0  77 25 2c 32 31 2c 66 61  75 6c 74 79 25 29 0d 01  |w%,21,faulty%)..|
000034f0  80 2a e7 20 77 5f 6f 70  25 3d a3 20 49 25 3d a4  |.*. w_op%=. I%=.|
00003500  61 6c 65 72 74 28 31 2c  22 56 65 72 69 66 79 20  |alert(1,"Verify |
00003510  66 61 69 6c 65 64 22 29  0d 01 81 21 e7 20 61 75  |failed")...!. au|
00003520  74 6f 25 3d b9 20 65 6d  70 74 79 25 3d a3 3a f2  |to%=. empty%=.:.|
00003530  61 75 74 6f 5f 6e 65 78  74 0d 01 82 05 e1 0d 01  |auto_next.......|
00003540  83 04 0d 01 84 14 dd f2  66 6f 72 6d 61 74 28 63  |........format(c|
00003550  68 65 63 6b 25 29 0d 01  85 1a ea 20 85 3a ee 85  |heck%)..... .:..|
00003560  ea 20 f2 77 72 69 74 65  5f 65 72 72 6f 72 3a e1  |. .write_error:.|
00003570  0d 01 86 0c 73 74 61 74  65 25 3d 30 0d 01 87 4e  |....state%=0...N|
00003580  e7 20 63 68 65 63 6b 25  20 e7 20 a4 61 6c 65 72  |. check% . .aler|
00003590  74 28 33 2c 22 43 6f 6e  66 69 72 6d 3a 20 46 6f  |t(3,"Confirm: Fo|
000035a0  72 6d 61 74 20 64 69 73  63 20 69 6e 20 64 72 69  |rmat disc in dri|
000035b0  76 65 20 3a 22 2b c3 28  77 72 69 74 65 5f 64 72  |ve :"+.(write_dr|
000035c0  69 76 65 25 29 29 3d 32  3a e1 0d 01 88 2a c8 99  |ive%))=2:....*..|
000035d0  20 22 41 44 46 53 5f 52  65 74 72 69 65 73 22 2c  | "ADFS_Retries",|
000035e0  26 46 46 30 30 2c 26 30  32 30 30 20 b8 20 2c 2c  |&FF00,&0200 . ,,|
000035f0  6f 72 74 25 0d 01 89 46  f2 73 65 74 5f 73 74 72  |ort%...F.set_str|
00003600  28 77 72 69 74 65 5f 77  25 2c 33 30 2c 22 46 6f  |(write_w%,30,"Fo|
00003610  72 6d 61 74 74 69 6e 67  22 29 3a 61 64 64 72 25  |rmatting"):addr%|
00003620  3d 77 72 69 74 65 5f 64  72 69 76 65 25 3c 3c 32  |=write_drive%<<2|
00003630  39 3a 74 72 61 63 6b 25  3d 30 0d 01 8a 52 e7 20  |9:track%=0...R. |
00003640  a4 67 65 74 5f 6f 70 74  28 32 31 29 3d a3 20 f2  |.get_opt(21)=. .|
00003650  73 65 74 5f 73 74 72 28  77 72 69 74 65 5f 77 25  |set_str(write_w%|
00003660  2c 32 33 2c 22 41 6c 6c  22 29 3a c8 99 20 22 57  |,23,"All"):.. "W|
00003670  69 6d 70 5f 50 6f 6c 6c  22 2c 30 2c 62 6c 6b 25  |imp_Poll",0,blk%|
00003680  3a 4d 25 3d a3 20 8b 20  4d 25 3d b9 0d 01 8b 15  |:M%=. . M%=.....|
00003690  c8 8e 20 28 73 69 7a 65  25 81 31 30 32 34 29 20  |.. (size%.1024) |
000036a0  ca 0d 01 8c 39 20 c9 20  38 30 30 20 3a e7 20 72  |....9 . 800 :. r|
000036b0  6f 33 25 3d b9 20 f2 72  6f 33 5f 66 6f 72 6d 61  |o3%=. .ro3_forma|
000036c0  74 28 4d 25 2c 38 30 30  29 20 8b 20 f2 66 6f 72  |t(M%,800) . .for|
000036d0  6d 32 5f 38 30 30 28 4d  25 29 0d 01 8d 20 20 c9  |m2_800(M%)...  .|
000036e0  20 31 36 30 30 3a f2 72  6f 33 5f 66 6f 72 6d 61  | 1600:.ro3_forma|
000036f0  74 28 4d 25 2c 31 36 30  30 29 0d 01 8e 20 20 c9  |t(M%,1600)...  .|
00003700  20 31 34 34 30 3a f2 72  6f 33 5f 66 6f 72 6d 61  | 1440:.ro3_forma|
00003710  74 28 4d 25 2c 31 34 34  30 29 0d 01 8f 39 20 c9  |t(M%,1440)...9 .|
00003720  20 37 32 30 20 3a e7 20  72 6f 33 25 3d b9 20 f2  | 720 :. ro3%=. .|
00003730  72 6f 33 5f 66 6f 72 6d  61 74 28 4d 25 2c 37 32  |ro3_format(M%,72|
00003740  30 29 20 8b 20 f2 66 6f  72 6d 32 5f 37 32 30 28  |0) . .form2_720(|
00003750  4d 25 29 0d 01 90 39 20  c9 20 36 34 30 20 3a e7  |M%)...9 . 640 :.|
00003760  20 72 6f 33 25 3d b9 20  f2 72 6f 33 5f 66 6f 72  | ro3%=. .ro3_for|
00003770  6d 61 74 28 4d 25 2c 36  34 30 29 20 8b 20 f2 66  |mat(M%,640) . .f|
00003780  6f 72 6d 32 5f 36 34 30  28 4d 25 29 0d 01 91 05  |orm2_640(M%)....|
00003790  7f 0d 01 92 39 20 45 52  52 52 4f 52 20 32 30 30  |....9 ERRROR 200|
000037a0  30 30 3a 22 44 6f 6e 27  74 20 6b 6e 6f 77 20 68  |00:"Don't know h|
000037b0  6f 77 20 74 6f 20 66 6f  72 6d 61 74 20 74 68 69  |ow to format thi|
000037c0  73 20 64 69 73 63 22 3a  3d 30 0d 01 93 05 cb 0d  |s disc":=0......|
000037d0  01 94 18 66 6f 72 6d 61  74 74 65 64 25 3d b9 3a  |...formatted%=.:|
000037e0  6d 61 73 6b 25 3d 30 0d  01 95 15 e7 20 4d 25 3d  |mask%=0..... M%=|
000037f0  a3 20 73 74 61 74 65 25  3d 33 3a e1 0d 01 96 20  |. state%=3:.... |
00003800  e7 20 72 6f 33 25 3d b9  20 73 74 61 74 65 25 3d  |. ro3%=. state%=|
00003810  36 20 8b 20 73 74 61 74  65 25 3d 32 0d 01 97 05  |6 . state%=2....|
00003820  e1 0d 01 98 04 0d 01 99  19 dd f2 72 6f 33 5f 66  |...........ro3_f|
00003830  6f 72 6d 61 74 28 6d 74  25 2c 73 7a 25 29 0d 01  |ormat(mt%,sz%)..|
00003840  9a 19 ea 85 3a ee 85 ea  20 f2 77 72 69 74 65 5f  |....:... .write_|
00003850  65 72 72 6f 72 3a e1 0d  01 9b 0c c8 8e 20 73 7a  |error:....... sz|
00003860  25 20 ca 0d 01 9c 18 20  c9 20 38 30 30 20 3a 73  |% ..... . 800 :s|
00003870  6b 65 77 25 3d 34 3a f7  20 2b 30 0d 01 9d 3f 20  |kew%=4:. +0...? |
00003880  20 20 20 20 20 20 20 20  20 20 dc 20 31 30 2c 35  |          . 10,5|
00003890  2c 32 2c 32 2c 31 35 2c  37 2c 31 2c 30 2c 30 2c  |,2,2,15,7,1,0,0,|
000038a0  31 2c 33 32 2c 35 2c 33  2c 32 2c 30 2c 30 2c 30  |1,32,5,3,2,0,0,0|
000038b0  2c 26 38 30 2c 26 30 43  2c 30 0d 01 9e 46 20 20  |,&80,&0C,0...F  |
000038c0  20 20 20 20 20 20 20 20  20 dc 20 30 2c 34 2c 30  |         . 0,4,0|
000038d0  2c 30 2c 35 30 2c 30 2c  30 2c 30 2c 30 2c 30 2c  |,0,50,0,0,0,0,0,|
000038e0  30 2c 30 2c 26 35 41 2c  30 2c 30 2c 30 2c 35 2c  |0,0,&5A,0,0,0,5,|
000038f0  32 2c 31 2c 26 41 35 2c  38 30 2c 30 2c 30 2c 30  |2,1,&A5,80,0,0,0|
00003900  0d 01 9f 18 20 c9 20 31  36 30 30 3a 73 6b 65 77  |.... . 1600:skew|
00003910  25 3d 39 3a f7 20 2b 30  0d 01 a0 3e 20 20 20 20  |%=9:. +0...>    |
00003920  20 20 20 20 20 20 20 dc  20 31 30 2c 31 30 2c 32  |       . 10,10,2|
00003930  2c 34 2c 31 35 2c 36 2c  31 2c 30 2c 30 2c 34 2c  |,4,15,6,1,0,0,4,|
00003940  36 34 2c 36 2c 39 2c 32  2c 30 2c 30 2c 30 2c 30  |64,6,9,2,0,0,0,0|
00003950  2c 26 31 39 2c 30 0d 01  a1 47 20 20 20 20 20 20  |,&19,0...G      |
00003960  20 20 20 20 20 dc 20 30  2c 34 2c 30 2c 30 2c 35  |     . 0,4,0,0,5|
00003970  30 2c 30 2c 30 2c 30 2c  30 2c 30 2c 30 2c 30 2c  |0,0,0,0,0,0,0,0,|
00003980  26 35 41 2c 30 2c 30 2c  30 2c 31 30 2c 34 2c 31  |&5A,0,0,0,10,4,1|
00003990  2c 26 41 35 2c 38 30 2c  30 2c 30 2c 30 0d 01 a2  |,&A5,80,0,0,0...|
000039a0  19 20 c9 20 31 34 34 30  3a 73 6b 65 77 25 3d 31  |. . 1440:skew%=1|
000039b0  36 3a f7 20 2b 30 0d 01  a3 3d 20 20 20 20 20 20  |6:. +0...=      |
000039c0  20 20 20 20 20 dc 20 39  2c 31 38 2c 32 2c 34 2c  |     . 9,18,2,4,|
000039d0  30 2c 30 2c 30 2c 30 2c  31 2c 30 2c 30 2c 30 2c  |0,0,0,0,1,0,0,0,|
000039e0  30 2c 30 2c 30 2c 30 2c  30 2c 26 38 30 2c 26 31  |0,0,0,0,0,&80,&1|
000039f0  36 2c 30 0d 01 a4 47 20  20 20 20 20 20 20 20 20  |6,0...G         |
00003a00  20 20 dc 20 30 2c 32 2c  30 2c 30 2c 35 30 2c 30  |  . 0,2,0,0,50,0|
00003a10  2c 30 2c 30 2c 30 2c 30  2c 30 2c 30 2c 26 35 41  |,0,0,0,0,0,0,&5A|
00003a20  2c 30 2c 30 2c 30 2c 31  38 2c 34 2c 31 2c 26 34  |,0,0,0,18,4,1,&4|
00003a30  45 2c 38 30 2c 30 2c 30  2c 30 0d 01 a5 18 20 c9  |E,80,0,0,0.... .|
00003a40  20 37 32 30 20 3a 73 6b  65 77 25 3d 37 3a f7 20  | 720 :skew%=7:. |
00003a50  2b 30 0d 01 a6 3c 20 20  20 20 20 20 20 20 20 20  |+0...<          |
00003a60  20 dc 20 39 2c 39 2c 32  2c 32 2c 30 2c 30 2c 30  | . 9,9,2,2,0,0,0|
00003a70  2c 30 2c 31 2c 30 2c 30  2c 30 2c 30 2c 30 2c 30  |,0,1,0,0,0,0,0,0|
00003a80  2c 30 2c 30 2c 26 34 30  2c 26 30 42 2c 30 0d 01  |,0,0,&40,&0B,0..|
00003a90  a7 47 20 20 20 20 20 20  20 20 20 20 20 dc 20 30  |.G           . 0|
00003aa0  2c 32 2c 30 2c 30 2c 35  30 2c 30 2c 30 2c 30 2c  |,2,0,0,50,0,0,0,|
00003ab0  30 2c 30 2c 30 2c 30 2c  26 35 41 2c 30 2c 30 2c  |0,0,0,0,&5A,0,0,|
00003ac0  30 2c 20 39 2c 32 2c 31  2c 26 34 45 2c 38 30 2c  |0, 9,2,1,&4E,80,|
00003ad0  30 2c 30 2c 30 0d 01 a8  19 20 c9 20 36 34 30 20  |0,0,0.... . 640 |
00003ae0  3a 73 6b 65 77 25 3d 31  32 3a f7 20 2b 30 0d 01  |:skew%=12:. +0..|
00003af0  a9 3c 20 20 20 20 20 20  20 20 20 20 20 dc 20 38  |.<           . 8|
00003b00  2c 31 36 2c 31 2c 32 2c  30 2c 30 2c 30 2c 30 2c  |,16,1,2,0,0,0,0,|
00003b10  36 34 2c 30 2c 30 2c 30  2c 30 2c 32 2c 30 2c 30  |64,0,0,0,0,2,0,0|
00003b20  2c 30 2c 30 2c 26 30 41  2c 30 0d 01 aa 49 20 20  |,0,0,&0A,0...I  |
00003b30  20 20 20 20 20 20 20 20  20 dc 20 30 2c 31 2c 30  |         . 0,1,0|
00003b40  2c 30 2c 35 30 2c 30 2c  30 2c 30 2c 30 2c 30 2c  |,0,50,0,0,0,0,0,|
00003b50  30 2c 30 2c 26 33 39 2c  30 2c 30 2c 30 2c 31 36  |0,0,&39,0,0,0,16|
00003b60  2c 32 2c 26 30 44 2c 26  41 35 2c 38 30 2c 30 2c  |,2,&0D,&A5,80,0,|
00003b70  30 2c 30 0d 01 ab 05 7f  0d 01 ac 27 20 20 20 85  |0,0........'   .|
00003b80  20 32 30 30 30 30 2c 22  42 61 64 20 66 6f 72 6d  | 20000,"Bad form|
00003b90  61 74 20 70 61 72 61 6d  65 74 65 72 73 21 22 0d  |at parameters!".|
00003ba0  01 ad 05 cb 0d 01 ae 3e  e3 20 49 25 3d 30 b8 31  |.......>. I%=0.1|
00003bb0  39 3a f3 20 4a 25 3a 64  72 65 63 25 3f 49 25 3d  |9:. J%:drec%?I%=|
00003bc0  4a 25 3a ed 3a e3 20 49  25 3d 30 b8 32 33 3a f3  |J%:.:. I%=0.23:.|
00003bd0  20 4a 25 3a 73 74 72 75  63 25 3f 49 25 3d 4a 25  | J%:struc%?I%=J%|
00003be0  3a ed 0d 01 af 53 73 74  72 75 63 25 21 32 34 3d  |:....Sstruc%!24=|
00003bf0  30 3a 73 74 72 75 63 25  21 32 38 3d 30 3a 73 74  |0:struc%!28=0:st|
00003c00  72 75 63 25 21 33 32 3d  30 3a 73 65 63 25 3d 30  |ruc%!32=0:sec%=0|
00003c10  3a 73 74 5f 73 65 63 25  3d 28 64 72 65 63 25 3f  |:st_sec%=(drec%?|
00003c20  38 29 80 33 3a 73 65 63  5f 74 72 6b 25 3d 64 72  |8).3:sec_trk%=dr|
00003c30  65 63 25 3f 31 0d 01 b0  55 63 68 75 6e 6b 25 3d  |ec%?1...Uchunk%=|
00003c40  73 65 63 5f 74 72 6b 25  2a 21 73 74 72 75 63 25  |sec_trk%*!struc%|
00003c50  3a 61 64 64 72 25 3d 77  72 69 74 65 5f 64 72 69  |:addr%=write_dri|
00003c60  76 65 25 3c 3c 32 39 3a  6c 6f 67 32 73 65 63 25  |ve%<<29:log2sec%|
00003c70  3d 28 28 3f 64 72 65 63  25 29 2d 37 29 3c 3c 32  |=((?drec%)-7)<<2|
00003c80  34 3a 74 72 61 63 6b 25  3d 30 0d 01 b1 1e e7 20  |4:track%=0..... |
00003c90  6d 74 25 3d b9 20 6d 61  73 6b 25 3d 30 3a 73 74  |mt%=. mask%=0:st|
00003ca0  61 74 65 25 3d 36 3a e1  0d 01 b2 1d c8 99 22 48  |ate%=6:......."H|
00003cb0  6f 75 72 67 6c 61 73 73  5f 4f 6e 22 3a 2a 66 78  |ourglass_On":*fx|
00003cc0  32 32 39 2c 30 0d 01 b3  0f e7 20 73 7a 25 3d 36  |229,0..... sz%=6|
00003cd0  34 30 20 8c 0d 01 b4 25  20 e3 73 69 64 65 25 3d  |40 ....% .side%=|
00003ce0  30 b8 26 31 30 30 88 26  31 30 30 3a e3 20 74 72  |0.&100.&100:. tr|
00003cf0  61 63 6b 25 3d 30 b8 37  39 0d 01 b5 64 20 20 62  |ack%=0.79...d  b|
00003d00  61 73 65 25 3d 74 72 61  63 6b 25 84 73 69 64 65  |ase%=track%.side|
00003d10  25 84 6c 6f 67 32 73 65  63 25 3a 4a 25 3d 73 74  |%.log2sec%:J%=st|
00003d20  72 75 63 25 2b 33 36 3a  e3 20 49 25 3d 30 b8 31  |ruc%+36:. I%=0.1|
00003d30  35 3a 21 4a 25 3d 62 61  73 65 25 84 73 65 63 25  |5:!J%=base%.sec%|
00003d40  3c 3c 31 36 3a 4a 25 2b  3d 34 3a 73 65 63 25 3d  |<<16:J%+=4:sec%=|
00003d50  28 73 65 63 25 2b 31 29  83 31 36 3a ed 0d 01 b6  |(sec%+1).16:....|
00003d60  4c 20 20 c8 99 20 22 41  44 46 53 5f 44 69 73 63  |L  .. "ADFS_Disc|
00003d70  4f 70 22 2c 30 2c 34 2c  61 64 64 72 25 2c 30 2c  |Op",0,4,addr%,0,|
00003d80  73 74 72 75 63 25 3a 61  64 64 72 25 2b 3d 63 68  |struc%:addr%+=ch|
00003d90  75 6e 6b 25 3a 73 65 63  25 3d 28 73 65 63 25 2b  |unk%:sec%=(sec%+|
00003da0  73 6b 65 77 25 29 83 31  36 0d 01 b7 08 20 ed 3a  |skew%).16.... .:|
00003db0  ed 0d 01 b8 05 cc 0d 01  b9 13 20 e3 20 74 72 61  |.......... . tra|
00003dc0  63 6b 25 3d 30 b8 31 35  39 0d 01 ba 3f 20 20 73  |ck%=0.159...?  s|
00003dd0  69 64 65 25 3d 74 72 61  63 6b 25 83 32 3a 63 79  |ide%=track%.2:cy|
00003de0  6c 25 3d 74 72 61 63 6b  25 81 32 3a 62 61 73 65  |l%=track%.2:base|
00003df0  25 3d 63 79 6c 25 84 73  69 64 65 25 3c 3c 38 84  |%=cyl%.side%<<8.|
00003e00  6c 6f 67 32 73 65 63 25  0d 01 bb 60 20 20 4a 25  |log2sec%...`  J%|
00003e10  3d 73 74 72 75 63 25 2b  33 36 3a e3 20 49 25 3d  |=struc%+36:. I%=|
00003e20  31 b8 73 65 63 5f 74 72  6b 25 3a 21 4a 25 3d 62  |1.sec_trk%:!J%=b|
00003e30  61 73 65 25 84 28 73 65  63 25 2b 73 74 5f 73 65  |ase%.(sec%+st_se|
00003e40  63 25 29 3c 3c 31 36 3a  4a 25 2b 3d 34 3a 73 65  |c%)<<16:J%+=4:se|
00003e50  63 25 3d 28 28 73 65 63  25 2b 31 29 83 73 65 63  |c%=((sec%+1).sec|
00003e60  5f 74 72 6b 25 29 3a ed  0d 01 bc 5c 20 20 c8 99  |_trk%):....\  ..|
00003e70  20 22 41 44 46 53 5f 44  69 73 63 4f 70 22 2c 30  | "ADFS_DiscOp",0|
00003e80  2c 34 2c 61 64 64 72 25  2c 30 2c 73 74 72 75 63  |,4,addr%,0,struc|
00003e90  25 3a 61 64 64 72 25 2b  3d 63 68 75 6e 6b 25 3a  |%:addr%+=chunk%:|
00003ea0  e7 20 73 69 64 65 25 3d  31 20 73 65 63 25 3d 28  |. side%=1 sec%=(|
00003eb0  73 65 63 25 2b 73 6b 65  77 25 29 83 73 65 63 5f  |sec%+skew%).sec_|
00003ec0  74 72 6b 25 0d 01 bd 06  20 ed 0d 01 be 05 cd 0d  |trk%.... .......|
00003ed0  01 bf 2b 66 6f 72 6d 61  74 74 65 64 25 3d b9 3a  |..+formatted%=.:|
00003ee0  c8 99 22 48 6f 75 72 67  6c 61 73 73 5f 4f 66 66  |.."Hourglass_Off|
00003ef0  22 3a 2a 66 78 32 32 39  2c 31 0d 01 c0 05 e1 0d  |":*fx229,1......|
00003f00  01 c1 04 0d 01 c2 13 dd  a4 66 6f 72 6d 61 74 5f  |.........format_|
00003f10  74 72 61 63 6b 33 0d 01  c3 1a ea 85 3a ee 85 ea  |track3......:...|
00003f20  20 f2 77 72 69 74 65 5f  65 72 72 6f 72 3a 3d 30  | .write_error:=0|
00003f30  0d 01 c4 20 f2 73 65 74  5f 6e 75 6d 28 77 72 69  |... .set_num(wri|
00003f40  74 65 5f 77 25 2c 32 33  2c 74 72 61 63 6b 25 29  |te_w%,23,track%)|
00003f50  0d 01 c5 0f e7 20 73 7a  25 3d 36 34 30 20 8c 0d  |..... sz%=640 ..|
00003f60  01 c6 2d 20 20 62 61 73  65 25 3d 28 74 72 61 63  |..-  base%=(trac|
00003f70  6b 25 81 32 29 84 28 74  72 61 63 6b 25 83 32 29  |k%.2).(track%.2)|
00003f80  3c 3c 38 84 6c 6f 67 32  73 65 63 25 0d 01 c7 48  |<<8.log2sec%...H|
00003f90  20 20 4a 25 3d 73 74 72  75 63 25 2b 33 36 3a e3  |  J%=struc%+36:.|
00003fa0  20 49 25 3d 30 b8 31 35  3a 21 4a 25 3d 62 61 73  | I%=0.15:!J%=bas|
00003fb0  65 25 84 73 65 63 25 3c  3c 31 36 3a 4a 25 2b 3d  |e%.sec%<<16:J%+=|
00003fc0  34 3a 73 65 63 25 3d 28  73 65 63 25 2b 31 29 83  |4:sec%=(sec%+1).|
00003fd0  31 36 3a ed 0d 01 c8 4c  20 20 c8 99 20 22 41 44  |16:....L  .. "AD|
00003fe0  46 53 5f 44 69 73 63 4f  70 22 2c 30 2c 34 2c 61  |FS_DiscOp",0,4,a|
00003ff0  64 64 72 25 2c 30 2c 73  74 72 75 63 25 3a 61 64  |ddr%,0,struc%:ad|
00004000  64 72 25 2b 3d 63 68 75  6e 6b 25 3a 73 65 63 25  |dr%+=chunk%:sec%|
00004010  3d 28 73 65 63 25 2b 73  6b 65 77 25 29 83 31 36  |=(sec%+skew%).16|
00004020  0d 01 c9 05 cc 0d 01 ca  3f 20 20 73 69 64 65 25  |........?  side%|
00004030  3d 74 72 61 63 6b 25 83  32 3a 63 79 6c 25 3d 74  |=track%.2:cyl%=t|
00004040  72 61 63 6b 25 81 32 3a  62 61 73 65 25 3d 63 79  |rack%.2:base%=cy|
00004050  6c 25 84 73 69 64 65 25  3c 3c 38 84 6c 6f 67 32  |l%.side%<<8.log2|
00004060  73 65 63 25 0d 01 cb 60  20 20 4a 25 3d 73 74 72  |sec%...`  J%=str|
00004070  75 63 25 2b 33 36 3a e3  20 49 25 3d 31 b8 73 65  |uc%+36:. I%=1.se|
00004080  63 5f 74 72 6b 25 3a 21  4a 25 3d 62 61 73 65 25  |c_trk%:!J%=base%|
00004090  84 28 73 65 63 25 2b 73  74 5f 73 65 63 25 29 3c  |.(sec%+st_sec%)<|
000040a0  3c 31 36 3a 4a 25 2b 3d  34 3a 73 65 63 25 3d 28  |<16:J%+=4:sec%=(|
000040b0  28 73 65 63 25 2b 31 29  83 73 65 63 5f 74 72 6b  |(sec%+1).sec_trk|
000040c0  25 29 3a ed 0d 01 cc 37  20 20 c8 99 20 22 41 44  |%):....7  .. "AD|
000040d0  46 53 5f 44 69 73 63 4f  70 22 2c 30 2c 34 2c 61  |FS_DiscOp",0,4,a|
000040e0  64 64 72 25 2c 30 2c 73  74 72 75 63 25 3a 61 64  |ddr%,0,struc%:ad|
000040f0  64 72 25 2b 3d 63 68 75  6e 6b 25 0d 01 cd 2a 20  |dr%+=chunk%...* |
00004100  20 e7 20 73 69 64 65 25  3d 31 20 73 65 63 25 3d  | . side%=1 sec%=|
00004110  28 73 65 63 25 2b 73 6b  65 77 25 29 83 73 65 63  |(sec%+skew%).sec|
00004120  5f 74 72 6b 25 0d 01 ce  05 cd 0d 01 cf 1d 74 72  |_trk%.........tr|
00004130  61 63 6b 25 2b 3d 31 3a  e7 20 74 72 61 63 6b 25  |ack%+=1:. track%|
00004140  3c 31 36 30 3a 3d 36 0d  01 d0 13 46 6f 72 6d 61  |<160:=6....Forma|
00004150  74 74 65 64 25 3d b9 3a  3d 33 0d 01 d1 04 0d 01  |tted%=.:=3......|
00004160  d2 13 dd f2 66 6f 72 6d  32 5f 38 30 30 28 6d 25  |....form2_800(m%|
00004170  29 0d 01 d3 19 ea 85 3a  ee 85 ea 3a f2 77 72 69  |)......:...:.wri|
00004180  74 65 5f 65 72 72 6f 72  3a e1 0d 01 d4 08 f7 20  |te_error:...... |
00004190  2b 30 0d 01 d5 20 e3 20  49 25 3d 30 b8 31 39 3a  |+0... . I%=0.19:|
000041a0  f3 20 41 25 3a 64 72 65  63 25 3f 49 25 3d 41 25  |. A%:drec%?I%=A%|
000041b0  3a ed 0d 01 d6 34 dc 20  31 30 2c 35 2c 32 2c 32  |:....4. 10,5,2,2|
000041c0  2c 31 35 2c 37 2c 31 2c  30 2c 30 2c 31 2c 33 32  |,15,7,1,0,0,1,32|
000041d0  2c 35 2c 33 2c 32 2c 30  2c 30 2c 30 2c 26 38 30  |,5,3,2,0,0,0,&80|
000041e0  2c 26 30 43 2c 30 0d 01  d7 37 f3 20 77 72 69 74  |,&0C,0...7. writ|
000041f0  65 5f 6c 65 6e 25 2c 63  68 75 6e 6b 25 2c 73 6b  |e_len%,chunk%,sk|
00004200  65 77 25 2c 73 65 63 5f  74 72 6b 25 2c 6c 6f 67  |ew%,sec_trk%,log|
00004210  32 73 65 63 25 2c 73 74  5f 73 65 63 25 0d 01 d8  |2sec%,st_sec%...|
00004220  17 49 25 3d 30 3a 41 25  3d 74 72 61 63 6b 5f 62  |.I%=0:A%=track_b|
00004230  75 66 66 25 0d 01 d9 2a  f5 3a f3 20 42 25 2c 43  |uff%...*.:. B%,C|
00004240  25 3a e7 20 43 25 3d 26  46 46 20 69 64 65 6e 74  |%:. C%=&FF ident|
00004250  25 28 49 25 29 3d 41 25  3a 49 25 2b 3d 31 0d 01  |%(I%)=A%:I%+=1..|
00004260  da 16 41 25 3d ba 28 63  6f 64 65 25 29 3a fd 20  |..A%=.(code%):. |
00004270  42 25 3d 30 0d 01 db 1b  dc 20 36 31 35 36 2c 35  |B%=0..... 6156,5|
00004280  31 32 30 2c 34 2c 35 2c  33 3c 3c 32 34 2c 30 0d  |120,4,5,3<<24,0.|
00004290  01 dc 0d dc 20 33 30 33  2c 26 34 45 0d 01 dd 5b  |.... 303,&4E...[|
000042a0  dc 20 31 32 2c 30 2c 20  33 2c 26 46 35 2c 20 31  |. 12,0, 3,&F5, 1|
000042b0  2c 26 46 45 2c 20 34 2c  26 46 46 2c 20 32 2c 26  |,&FE, 4,&FF, 2,&|
000042c0  46 37 2c 20 32 32 2c 26  34 45 2c 20 31 32 2c 30  |F7, 22,&4E, 12,0|
000042d0  2c 20 33 2c 26 46 35 2c  20 31 2c 26 46 42 2c 20  |, 3,&F5, 1,&FB, |
000042e0  31 30 32 34 2c 26 41 35  2c 20 32 2c 26 46 37 2c  |1024,&A5, 2,&F7,|
000042f0  20 39 30 2c 26 34 45 0d  01 de 5b dc 20 31 32 2c  | 90,&4E...[. 12,|
00004300  30 2c 20 33 2c 26 46 35  2c 20 31 2c 26 46 45 2c  |0, 3,&F5, 1,&FE,|
00004310  20 34 2c 26 46 46 2c 20  32 2c 26 46 37 2c 20 32  | 4,&FF, 2,&F7, 2|
00004320  32 2c 26 34 45 2c 20 31  32 2c 30 2c 20 33 2c 26  |2,&4E, 12,0, 3,&|
00004330  46 35 2c 20 31 2c 26 46  42 2c 20 31 30 32 34 2c  |F5, 1,&FB, 1024,|
00004340  26 41 35 2c 20 32 2c 26  46 37 2c 20 39 30 2c 26  |&A5, 2,&F7, 90,&|
00004350  34 45 0d 01 df 5b dc 20  31 32 2c 30 2c 20 33 2c  |4E...[. 12,0, 3,|
00004360  26 46 35 2c 20 31 2c 26  46 45 2c 20 34 2c 26 46  |&F5, 1,&FE, 4,&F|
00004370  46 2c 20 32 2c 26 46 37  2c 20 32 32 2c 26 34 45  |F, 2,&F7, 22,&4E|
00004380  2c 20 31 32 2c 30 2c 20  33 2c 26 46 35 2c 20 31  |, 12,0, 3,&F5, 1|
00004390  2c 26 46 42 2c 20 31 30  32 34 2c 26 41 35 2c 20  |,&FB, 1024,&A5, |
000043a0  32 2c 26 46 37 2c 20 39  30 2c 26 34 45 0d 01 e0  |2,&F7, 90,&4E...|
000043b0  5b dc 20 31 32 2c 30 2c  20 33 2c 26 46 35 2c 20  |[. 12,0, 3,&F5, |
000043c0  31 2c 26 46 45 2c 20 34  2c 26 46 46 2c 20 32 2c  |1,&FE, 4,&FF, 2,|
000043d0  26 46 37 2c 20 32 32 2c  26 34 45 2c 20 31 32 2c  |&F7, 22,&4E, 12,|
000043e0  30 2c 20 33 2c 26 46 35  2c 20 31 2c 26 46 42 2c  |0, 3,&F5, 1,&FB,|
000043f0  20 31 30 32 34 2c 26 41  35 2c 20 32 2c 26 46 37  | 1024,&A5, 2,&F7|
00004400  2c 20 39 30 2c 26 34 45  0d 01 e1 5b dc 20 31 32  |, 90,&4E...[. 12|
00004410  2c 30 2c 20 33 2c 26 46  35 2c 20 31 2c 26 46 45  |,0, 3,&F5, 1,&FE|
00004420  2c 20 34 2c 26 46 46 2c  20 32 2c 26 46 37 2c 20  |, 4,&FF, 2,&F7, |
00004430  32 32 2c 26 34 45 2c 20  31 32 2c 30 2c 20 33 2c  |22,&4E, 12,0, 3,|
00004440  26 46 35 2c 20 31 2c 26  46 42 2c 20 31 30 32 34  |&F5, 1,&FB, 1024|
00004450  2c 26 41 35 2c 20 32 2c  26 46 37 2c 20 39 30 2c  |,&A5, 2,&F7, 90,|
00004460  26 34 45 0d 01 e2 09 dc  20 30 2c 30 0d 01 e3 0a  |&4E..... 0,0....|
00004470  73 65 63 25 3d 30 0d 01  e4 0c e7 20 6d 25 3d b9  |sec%=0..... m%=.|
00004480  20 8c 0d 01 e5 17 20 6d  61 73 6b 25 3d 30 3a 73  | ..... mask%=0:s|
00004490  74 61 74 65 25 3d 32 3a  e1 0d 01 e6 05 cc 0d 01  |tate%=2:........|
000044a0  e7 1e 20 c8 99 22 48 6f  75 72 67 6c 61 73 73 5f  |.. .."Hourglass_|
000044b0  4f 6e 22 3a 2a 66 78 32  32 39 2c 30 0d 01 e8 45  |On":*fx229,0...E|
000044c0  20 41 25 3d 69 64 65 6e  74 25 28 30 29 3a 42 25  | A%=ident%(0):B%|
000044d0  3d 69 64 65 6e 74 25 28  31 29 3a 43 25 3d 69 64  |=ident%(1):C%=id|
000044e0  65 6e 74 25 28 32 29 3a  44 25 3d 69 64 65 6e 74  |ent%(2):D%=ident|
000044f0  25 28 33 29 3a 45 25 3d  69 64 65 6e 74 25 28 34  |%(3):E%=ident%(4|
00004500  29 0d 01 e9 12 20 e3 20  74 72 61 63 6b 25 3d 30  |).... . track%=0|
00004510  b8 37 39 0d 01 ea 9a 20  20 62 61 73 65 25 3d 6c  |.79....  base%=l|
00004520  6f 67 32 73 65 63 25 84  74 72 61 63 6b 25 3a 21  |og2sec%.track%:!|
00004530  41 25 3d 62 61 73 65 25  84 73 65 63 25 3c 3c 31  |A%=base%.sec%<<1|
00004540  36 3a 21 42 25 3d 62 61  73 65 25 84 28 28 73 65  |6:!B%=base%.((se|
00004550  63 25 2b 31 29 83 35 29  3c 3c 31 36 3a 21 43 25  |c%+1).5)<<16:!C%|
00004560  3d 62 61 73 65 25 84 28  28 73 65 63 25 2b 32 29  |=base%.((sec%+2)|
00004570  83 35 29 3c 3c 31 36 3a  21 44 25 3d 62 61 73 65  |.5)<<16:!D%=base|
00004580  25 84 28 28 73 65 63 25  2b 33 29 83 35 29 3c 3c  |%.((sec%+3).5)<<|
00004590  31 36 3a 21 45 25 3d 62  61 73 65 25 84 28 28 73  |16:!E%=base%.((s|
000045a0  65 63 25 2b 34 29 83 35  29 3c 3c 31 36 0d 01 eb  |ec%+4).5)<<16...|
000045b0  4f 20 20 c8 99 22 41 44  46 53 5f 44 69 73 63 4f  |O  .."ADFS_DiscO|
000045c0  70 22 2c 30 2c 34 2b 28  64 72 65 63 25 3c 3c 36  |p",0,4+(drec%<<6|
000045d0  29 2c 61 64 64 72 25 2c  74 72 61 63 6b 5f 62 75  |),addr%,track_bu|
000045e0  66 66 25 2c 77 72 69 74  65 5f 6c 65 6e 25 3a 61  |ff%,write_len%:a|
000045f0  64 64 72 25 2b 3d 63 68  75 6e 6b 25 0d 01 ec 41  |ddr%+=chunk%...A|
00004600  20 20 21 41 25 3d 21 41  25 84 32 35 36 3a 21 42  |  !A%=!A%.256:!B|
00004610  25 3d 21 42 25 84 32 35  36 3a 21 43 25 3d 21 43  |%=!B%.256:!C%=!C|
00004620  25 84 32 35 36 3a 21 44  25 3d 21 44 25 84 32 35  |%.256:!D%=!D%.25|
00004630  36 3a 21 45 25 3d 21 45  25 84 32 35 36 0d 01 ed  |6:!E%=!E%.256...|
00004640  5f 20 20 c8 99 22 41 44  46 53 5f 44 69 73 63 4f  |_  .."ADFS_DiscO|
00004650  70 22 2c 30 2c 34 2b 28  64 72 65 63 25 3c 3c 36  |p",0,4+(drec%<<6|
00004660  29 2c 61 64 64 72 25 2c  74 72 61 63 6b 5f 62 75  |),addr%,track_bu|
00004670  66 66 25 2c 77 72 69 74  65 5f 6c 65 6e 25 3a 61  |ff%,write_len%:a|
00004680  64 64 72 25 2b 3d 63 68  75 6e 6b 25 3a 73 65 63  |ddr%+=chunk%:sec|
00004690  25 3d 28 73 65 63 25 2b  34 29 83 35 0d 01 ee 06  |%=(sec%+4).5....|
000046a0  20 ed 0d 01 ef 2f c8 99  22 48 6f 75 72 67 6c 61  | ..../.."Hourgla|
000046b0  73 73 5f 4f 66 66 22 3a  73 74 61 74 65 25 3d 33  |ss_Off":state%=3|
000046c0  3a 6d 61 73 6b 25 3d 30  3a 2a 66 78 32 32 39 2c  |:mask%=0:*fx229,|
000046d0  31 0d 01 f0 05 cd 0d 01  f1 05 e1 0d 01 f2 04 0d  |1...............|
000046e0  01 f3 13 dd f2 66 6f 72  6d 32 5f 37 32 30 28 6d  |.....form2_720(m|
000046f0  25 29 0d 01 f4 19 ea 85  3a ee 85 ea 20 f2 77 72  |%)......:... .wr|
00004700  69 74 65 5f 65 72 72 6f  72 3a e1 0d 01 f5 08 f7  |ite_error:......|
00004710  20 2b 30 0d 01 f6 20 e3  20 49 25 3d 30 b8 31 39  | +0... . I%=0.19|
00004720  3a f3 20 41 25 3a 64 72  65 63 25 3f 49 25 3d 41  |:. A%:drec%?I%=A|
00004730  25 3a ed 0d 01 f7 32 dc  20 39 2c 31 30 2c 32 2c  |%:....2. 9,10,2,|
00004740  32 2c 30 2c 30 2c 30 2c  30 2c 30 2c 30 2c 30 2c  |2,0,0,0,0,0,0,0,|
00004750  30 2c 30 2c 30 2c 30 2c  30 2c 30 2c 26 38 30 2c  |0,0,0,0,0,0,&80,|
00004760  26 30 43 2c 30 0d 01 f8  37 f3 20 77 72 69 74 65  |&0C,0...7. write|
00004770  5f 6c 65 6e 25 2c 63 68  75 6e 6b 25 2c 73 6b 65  |_len%,chunk%,ske|
00004780  77 25 2c 73 65 63 5f 74  72 6b 25 2c 6c 6f 67 32  |w%,sec_trk%,log2|
00004790  73 65 63 25 2c 73 74 5f  73 65 63 25 0d 01 f9 17  |sec%,st_sec%....|
000047a0  49 25 3d 30 3a 41 25 3d  74 72 61 63 6b 5f 62 75  |I%=0:A%=track_bu|
000047b0  66 66 25 0d 01 fa 2a f5  3a f3 20 42 25 2c 43 25  |ff%...*.:. B%,C%|
000047c0  3a e7 20 43 25 3d 26 46  46 20 69 64 65 6e 74 25  |:. C%=&FF ident%|
000047d0  28 49 25 29 3d 41 25 3a  49 25 2b 3d 31 0d 01 fb  |(I%)=A%:I%+=1...|
000047e0  16 41 25 3d ba 28 63 6f  64 65 25 29 3a fd 20 42  |.A%=.(code%):. B|
000047f0  25 3d 30 0d 01 fc 1b dc  20 36 31 35 36 2c 35 31  |%=0..... 6156,51|
00004800  32 30 2c 37 2c 39 2c 32  3c 3c 32 34 2c 31 0d 01  |20,7,9,2<<24,1..|
00004810  fd 0d dc 20 33 30 33 2c  26 34 45 0d 01 fe 5a dc  |... 303,&4E...Z.|
00004820  20 31 32 2c 30 2c 20 33  2c 26 46 35 2c 20 31 2c  | 12,0, 3,&F5, 1,|
00004830  26 46 45 2c 20 34 2c 26  46 46 2c 20 32 2c 26 46  |&FE, 4,&FF, 2,&F|
00004840  37 2c 20 32 32 2c 26 34  45 2c 20 31 32 2c 30 2c  |7, 22,&4E, 12,0,|
00004850  20 33 2c 26 46 35 2c 20  31 2c 26 46 42 2c 20 35  | 3,&F5, 1,&FB, 5|
00004860  31 32 2c 26 41 35 2c 20  32 2c 26 46 37 2c 20 39  |12,&A5, 2,&F7, 9|
00004870  30 2c 26 34 45 0d 01 ff  5a dc 20 31 32 2c 30 2c  |0,&4E...Z. 12,0,|
00004880  20 33 2c 26 46 35 2c 20  31 2c 26 46 45 2c 20 34  | 3,&F5, 1,&FE, 4|
00004890  2c 26 46 46 2c 20 32 2c  26 46 37 2c 20 32 32 2c  |,&FF, 2,&F7, 22,|
000048a0  26 34 45 2c 20 31 32 2c  30 2c 20 33 2c 26 46 35  |&4E, 12,0, 3,&F5|
000048b0  2c 20 31 2c 26 46 42 2c  20 35 31 32 2c 26 41 35  |, 1,&FB, 512,&A5|
000048c0  2c 20 32 2c 26 46 37 2c  20 39 30 2c 26 34 45 0d  |, 2,&F7, 90,&4E.|
000048d0  02 00 5a dc 20 31 32 2c  30 2c 20 33 2c 26 46 35  |..Z. 12,0, 3,&F5|
000048e0  2c 20 31 2c 26 46 45 2c  20 34 2c 26 46 46 2c 20  |, 1,&FE, 4,&FF, |
000048f0  32 2c 26 46 37 2c 20 32  32 2c 26 34 45 2c 20 31  |2,&F7, 22,&4E, 1|
00004900  32 2c 30 2c 20 33 2c 26  46 35 2c 20 31 2c 26 46  |2,0, 3,&F5, 1,&F|
00004910  42 2c 20 35 31 32 2c 26  41 35 2c 20 32 2c 26 46  |B, 512,&A5, 2,&F|
00004920  37 2c 20 39 30 2c 26 34  45 0d 02 01 5a dc 20 31  |7, 90,&4E...Z. 1|
00004930  32 2c 30 2c 20 33 2c 26  46 35 2c 20 31 2c 26 46  |2,0, 3,&F5, 1,&F|
00004940  45 2c 20 34 2c 26 46 46  2c 20 32 2c 26 46 37 2c  |E, 4,&FF, 2,&F7,|
00004950  20 32 32 2c 26 34 45 2c  20 31 32 2c 30 2c 20 33  | 22,&4E, 12,0, 3|
00004960  2c 26 46 35 2c 20 31 2c  26 46 42 2c 20 35 31 32  |,&F5, 1,&FB, 512|
00004970  2c 26 41 35 2c 20 32 2c  26 46 37 2c 20 39 30 2c  |,&A5, 2,&F7, 90,|
00004980  26 34 45 0d 02 02 5a dc  20 31 32 2c 30 2c 20 33  |&4E...Z. 12,0, 3|
00004990  2c 26 46 35 2c 20 31 2c  26 46 45 2c 20 34 2c 26  |,&F5, 1,&FE, 4,&|
000049a0  46 46 2c 20 32 2c 26 46  37 2c 20 32 32 2c 26 34  |FF, 2,&F7, 22,&4|
000049b0  45 2c 20 31 32 2c 30 2c  20 33 2c 26 46 35 2c 20  |E, 12,0, 3,&F5, |
000049c0  31 2c 26 46 42 2c 20 35  31 32 2c 26 41 35 2c 20  |1,&FB, 512,&A5, |
000049d0  32 2c 26 46 37 2c 20 39  30 2c 26 34 45 0d 02 03  |2,&F7, 90,&4E...|
000049e0  5a dc 20 31 32 2c 30 2c  20 33 2c 26 46 35 2c 20  |Z. 12,0, 3,&F5, |
000049f0  31 2c 26 46 45 2c 20 34  2c 26 46 46 2c 20 32 2c  |1,&FE, 4,&FF, 2,|
00004a00  26 46 37 2c 20 32 32 2c  26 34 45 2c 20 31 32 2c  |&F7, 22,&4E, 12,|
00004a10  30 2c 20 33 2c 26 46 35  2c 20 31 2c 26 46 42 2c  |0, 3,&F5, 1,&FB,|
00004a20  20 35 31 32 2c 26 41 35  2c 20 32 2c 26 46 37 2c  | 512,&A5, 2,&F7,|
00004a30  20 39 30 2c 26 34 45 0d  02 04 5a dc 20 31 32 2c  | 90,&4E...Z. 12,|
00004a40  30 2c 20 33 2c 26 46 35  2c 20 31 2c 26 46 45 2c  |0, 3,&F5, 1,&FE,|
00004a50  20 34 2c 26 46 46 2c 20  32 2c 26 46 37 2c 20 32  | 4,&FF, 2,&F7, 2|
00004a60  32 2c 26 34 45 2c 20 31  32 2c 30 2c 20 33 2c 26  |2,&4E, 12,0, 3,&|
00004a70  46 35 2c 20 31 2c 26 46  42 2c 20 35 31 32 2c 26  |F5, 1,&FB, 512,&|
00004a80  41 35 2c 20 32 2c 26 46  37 2c 20 39 30 2c 26 34  |A5, 2,&F7, 90,&4|
00004a90  45 0d 02 05 5a dc 20 31  32 2c 30 2c 20 33 2c 26  |E...Z. 12,0, 3,&|
00004aa0  46 35 2c 20 31 2c 26 46  45 2c 20 34 2c 26 46 46  |F5, 1,&FE, 4,&FF|
00004ab0  2c 20 32 2c 26 46 37 2c  20 32 32 2c 26 34 45 2c  |, 2,&F7, 22,&4E,|
00004ac0  20 31 32 2c 30 2c 20 33  2c 26 46 35 2c 20 31 2c  | 12,0, 3,&F5, 1,|
00004ad0  26 46 42 2c 20 35 31 32  2c 26 41 35 2c 20 32 2c  |&FB, 512,&A5, 2,|
00004ae0  26 46 37 2c 20 39 30 2c  26 34 45 0d 02 06 5a dc  |&F7, 90,&4E...Z.|
00004af0  20 31 32 2c 30 2c 20 33  2c 26 46 35 2c 20 31 2c  | 12,0, 3,&F5, 1,|
00004b00  26 46 45 2c 20 34 2c 26  46 46 2c 20 32 2c 26 46  |&FE, 4,&FF, 2,&F|
00004b10  37 2c 20 32 32 2c 26 34  45 2c 20 31 32 2c 30 2c  |7, 22,&4E, 12,0,|
00004b20  20 33 2c 26 46 35 2c 20  31 2c 26 46 42 2c 20 35  | 3,&F5, 1,&FB, 5|
00004b30  31 32 2c 26 41 35 2c 20  32 2c 26 46 37 2c 20 39  |12,&A5, 2,&F7, 9|
00004b40  30 2c 26 34 45 0d 02 07  09 dc 20 30 2c 30 0d 02  |0,&4E..... 0,0..|
00004b50  08 0a 73 65 63 25 3d 30  0d 02 09 0c e7 20 6d 25  |..sec%=0..... m%|
00004b60  3d b9 20 8c 0d 02 0a 17  20 6d 61 73 6b 25 3d 30  |=. ..... mask%=0|
00004b70  3a 73 74 61 74 65 25 3d  32 3a e1 0d 02 0b 05 cc  |:state%=2:......|
00004b80  0d 02 0c 1e 20 c8 99 22  48 6f 75 72 67 6c 61 73  |.... .."Hourglas|
00004b90  73 5f 4f 6e 22 3a 2a 66  78 32 32 39 2c 30 0d 02  |s_On":*fx229,0..|
00004ba0  0d 12 20 e3 20 74 72 61  63 6b 25 3d 30 b8 37 39  |.. . track%=0.79|
00004bb0  0d 02 0e 1b 20 20 62 61  73 65 25 3d 6c 6f 67 32  |....  base%=log2|
00004bc0  73 65 63 25 84 74 72 61  63 6b 25 0d 02 0f 41 20  |sec%.track%...A |
00004bd0  20 e3 20 41 25 3d 30 b8  38 3a 21 28 69 64 65 6e  | . A%=0.8:!(iden|
00004be0  74 25 28 41 25 29 29 3d  62 61 73 65 25 84 28 73  |t%(A%))=base%.(s|
00004bf0  65 63 25 2b 31 29 3c 3c  31 36 3a 73 65 63 25 3d  |ec%+1)<<16:sec%=|
00004c00  28 73 65 63 25 2b 31 29  83 39 3a ed 0d 02 10 4f  |(sec%+1).9:....O|
00004c10  20 20 c8 99 22 41 44 46  53 5f 44 69 73 63 4f 70  |  .."ADFS_DiscOp|
00004c20  22 2c 30 2c 34 2b 28 64  72 65 63 25 3c 3c 36 29  |",0,4+(drec%<<6)|
00004c30  2c 61 64 64 72 25 2c 74  72 61 63 6b 5f 62 75 66  |,addr%,track_buf|
00004c40  66 25 2c 77 72 69 74 65  5f 6c 65 6e 25 3a 61 64  |f%,write_len%:ad|
00004c50  64 72 25 2b 3d 63 68 75  6e 6b 25 0d 02 11 30 20  |dr%+=chunk%...0 |
00004c60  20 e3 20 41 25 3d 30 b8  38 3a 21 28 69 64 65 6e  | . A%=0.8:!(iden|
00004c70  74 25 28 41 25 29 29 3d  21 28 69 64 65 6e 74 25  |t%(A%))=!(ident%|
00004c80  28 41 25 29 29 84 32 35  36 3a ed 0d 02 12 5f 20  |(A%)).256:...._ |
00004c90  20 c8 99 22 41 44 46 53  5f 44 69 73 63 4f 70 22  | .."ADFS_DiscOp"|
00004ca0  2c 30 2c 34 2b 28 64 72  65 63 25 3c 3c 36 29 2c  |,0,4+(drec%<<6),|
00004cb0  61 64 64 72 25 2c 74 72  61 63 6b 5f 62 75 66 66  |addr%,track_buff|
00004cc0  25 2c 77 72 69 74 65 5f  6c 65 6e 25 3a 61 64 64  |%,write_len%:add|
00004cd0  72 25 2b 3d 63 68 75 6e  6b 25 3a 73 65 63 25 3d  |r%+=chunk%:sec%=|
00004ce0  28 73 65 63 25 2b 32 29  83 39 0d 02 13 06 20 ed  |(sec%+2).9.... .|
00004cf0  0d 02 14 2f c8 99 22 48  6f 75 72 67 6c 61 73 73  |.../.."Hourglass|
00004d00  5f 4f 66 66 22 3a 73 74  61 74 65 25 3d 33 3a 6d  |_Off":state%=3:m|
00004d10  61 73 6b 25 3d 30 3a 2a  66 78 32 32 39 2c 31 0d  |ask%=0:*fx229,1.|
00004d20  02 15 05 cd 0d 02 16 05  e1 0d 02 17 04 0d 02 18  |................|
00004d30  13 dd f2 66 6f 72 6d 32  5f 36 34 30 28 6d 25 29  |...form2_640(m%)|
00004d40  0d 02 19 19 ea 85 3a ee  85 ea 20 f2 77 72 69 74  |......:... .writ|
00004d50  65 5f 65 72 72 6f 72 3a  e1 0d 02 1a 08 f7 20 2b  |e_error:...... +|
00004d60  30 0d 02 1b 20 e3 20 49  25 3d 30 b8 31 39 3a f3  |0... . I%=0.19:.|
00004d70  20 41 25 3a 64 72 65 63  25 3f 49 25 3d 41 25 3a  | A%:drec%?I%=A%:|
00004d80  ed 0d 02 1c 37 f3 20 77  72 69 74 65 5f 6c 65 6e  |....7. write_len|
00004d90  25 2c 63 68 75 6e 6b 25  2c 73 65 63 5f 74 72 6b  |%,chunk%,sec_trk|
00004da0  25 2c 73 6b 65 77 25 2c  6c 6f 67 32 73 65 63 25  |%,skew%,log2sec%|
00004db0  2c 73 74 5f 73 65 63 25  0d 02 1d 26 41 25 3d 74  |,st_sec%...&A%=t|
00004dc0  72 61 63 6b 5f 62 75 66  66 25 3a f3 20 42 25 2c  |rack_buff%:. B%,|
00004dd0  43 25 3a 41 25 3d ba 28  63 6f 64 65 25 29 0d 02  |C%:A%=.(code%)..|
00004de0  1e 31 dc 20 38 2c 31 36  2c 31 2c 32 2c 30 2c 30  |.1. 8,16,1,2,0,0|
00004df0  2c 30 2c 30 2c 36 34 2c  30 2c 30 2c 30 2c 30 2c  |,0,0,64,0,0,0,0,|
00004e00  32 2c 30 2c 30 2c 30 2c  30 2c 26 30 41 2c 30 0d  |2,0,0,0,0,&0A,0.|
00004e10  02 1f 1d dc 20 36 31 35  36 2c 34 30 39 36 2c 31  |.... 6156,4096,1|
00004e20  36 2c 31 32 2c 31 3c 3c  32 34 2c 30 0d 02 20 0d  |6,12,1<<24,0.. .|
00004e30  dc 20 31 33 38 2c 26 34  45 0d 02 21 0f e3 20 49  |. 138,&4E..!.. I|
00004e40  25 3d 30 20 b8 20 31 35  0d 02 22 09 20 f7 20 2b  |%=0 . 15..". . +|
00004e50  30 0d 02 23 25 20 f5 3a  f3 20 42 25 2c 43 25 3a  |0..#% .:. B%,C%:|
00004e60  e7 20 43 25 3d 26 46 46  20 69 64 65 6e 74 25 28  |. C%=&FF ident%(|
00004e70  49 25 29 3d 41 25 0d 02  24 17 20 41 25 3d ba 28  |I%)=A%..$. A%=.(|
00004e80  63 6f 64 65 25 29 3a fd  20 42 25 3d 30 0d 02 25  |code%):. B%=0..%|
00004e90  05 ed 0d 02 26 5f dc 20  31 32 2c 30 2c 20 33 2c  |....&_. 12,0, 3,|
00004ea0  26 46 35 2c 20 31 2c 26  46 45 2c 20 34 2c 26 46  |&F5, 1,&FE, 4,&F|
00004eb0  46 2c 20 32 2c 26 46 37  2c 20 32 32 2c 26 34 45  |F, 2,&F7, 22,&4E|
00004ec0  2c 20 31 32 2c 30 2c 20  33 2c 26 46 35 2c 20 31  |, 12,0, 3,&F5, 1|
00004ed0  2c 26 46 42 2c 20 32 35  36 2c 26 41 34 2c 20 32  |,&FB, 256,&A4, 2|
00004ee0  2c 26 46 37 2c 20 35 37  2c 26 34 45 20 2c 30 2c  |,&F7, 57,&4E ,0,|
00004ef0  30 0d 02 27 0a 73 65 63  25 3d 30 0d 02 28 0c e7  |0..'.sec%=0..(..|
00004f00  20 6d 25 3d b9 20 8c 0d  02 29 15 20 6d 61 73 6b  | m%=. ...). mask|
00004f10  25 3d 30 3a 73 74 61 74  65 25 3d 32 0d 02 2a 05  |%=0:state%=2..*.|
00004f20  cc 0d 02 2b 15 20 c8 99  22 48 6f 75 72 67 6c 61  |...+. .."Hourgla|
00004f30  73 73 5f 4f 6e 22 0d 02  2c 25 20 e3 73 69 64 65  |ss_On"..,% .side|
00004f40  25 3d 30 b8 26 31 30 30  88 26 31 30 30 3a e3 20  |%=0.&100.&100:. |
00004f50  74 72 61 63 6b 25 3d 30  b8 37 39 0d 02 2d 5b 20  |track%=0.79..-[ |
00004f60  20 62 61 73 65 25 3d 6c  6f 67 32 73 65 63 25 84  | base%=log2sec%.|
00004f70  73 69 64 65 25 84 74 72  61 63 6b 25 3a e3 20 41  |side%.track%:. A|
00004f80  25 3d 30 b8 31 35 3a 21  28 69 64 65 6e 74 25 28  |%=0.15:!(ident%(|
00004f90  41 25 29 29 3d 62 61 73  65 25 84 73 65 63 25 3c  |A%))=base%.sec%<|
00004fa0  3c 31 36 3a 73 65 63 25  3d 28 73 65 63 25 2b 31  |<16:sec%=(sec%+1|
00004fb0  29 83 31 36 3a ed 0d 02  2e 64 20 20 c8 99 22 41  |).16:....d  .."A|
00004fc0  44 46 53 5f 44 69 73 63  4f 70 22 2c 30 2c 34 2b  |DFS_DiscOp",0,4+|
00004fd0  28 64 72 65 63 25 3c 3c  36 29 2c 61 64 64 72 25  |(drec%<<6),addr%|
00004fe0  2c 74 72 61 63 6b 5f 62  75 66 66 25 2c 77 72 69  |,track_buff%,wri|
00004ff0  74 65 5f 6c 65 6e 25 3a  73 65 63 25 3d 28 73 65  |te_len%:sec%=(se|
00005000  63 25 2b 73 6b 65 77 25  29 83 31 36 3a 61 64 64  |c%+skew%).16:add|
00005010  72 25 2b 3d 63 68 75 6e  6b 25 0d 02 2f 08 20 ed  |r%+=chunk%../. .|
00005020  3a ed 0d 02 30 27 20 c8  99 22 48 6f 75 72 67 6c  |:...0' .."Hourgl|
00005030  61 73 73 5f 4f 66 66 22  3a 73 74 61 74 65 25 3d  |ass_Off":state%=|
00005040  33 3a 6d 61 73 6b 25 3d  30 0d 02 31 05 cd 0d 02  |3:mask%=0..1....|
00005050  32 05 e1 0d 02 33 04 0d  02 34 13 dd a4 66 6f 72  |2....3...4...for|
00005060  6d 61 74 5f 74 72 61 63  6b 32 0d 02 35 1a ea 85  |mat_track2..5...|
00005070  3a ee 85 ea 20 f2 77 72  69 74 65 5f 65 72 72 6f  |:... .write_erro|
00005080  72 3a 3d 30 0d 02 36 20  f2 73 65 74 5f 6e 75 6d  |r:=0..6 .set_num|
00005090  28 77 72 69 74 65 5f 77  25 2c 32 33 2c 74 72 61  |(write_w%,23,tra|
000050a0  63 6b 25 29 0d 02 37 14  e7 20 63 68 75 6e 6b 25  |ck%)..7.. chunk%|
000050b0  3d 26 31 30 30 30 20 8c  0d 02 38 43 20 e7 20 74  |=&1000 ...8C . t|
000050c0  72 61 63 6b 25 3c 38 30  20 62 61 73 65 25 3d 6c  |rack%<80 base%=l|
000050d0  6f 67 32 73 65 63 25 84  74 72 61 63 6b 25 20 8b  |og2sec%.track% .|
000050e0  20 62 61 73 65 25 3d 6c  6f 67 32 73 65 63 25 84  | base%=log2sec%.|
000050f0  26 31 30 30 84 74 72 61  63 6b 25 0d 02 39 4c 20  |&100.track%..9L |
00005100  e3 20 41 25 3d 30 b8 73  65 63 5f 74 72 6b 25 2d  |. A%=0.sec_trk%-|
00005110  31 3a 21 28 69 64 65 6e  74 25 28 41 25 29 29 3d  |1:!(ident%(A%))=|
00005120  62 61 73 65 25 84 73 65  63 25 3c 3c 31 36 3a 73  |base%.sec%<<16:s|
00005130  65 63 25 3d 28 73 65 63  25 2b 31 29 83 73 65 63  |ec%=(sec%+1).sec|
00005140  5f 74 72 6b 25 3a ed 0d  02 3a 40 20 c8 99 22 41  |_trk%:...:@ .."A|
00005150  44 46 53 5f 44 69 73 63  4f 70 22 2c 30 2c 34 2b  |DFS_DiscOp",0,4+|
00005160  28 64 72 65 63 25 3c 3c  36 29 2c 61 64 64 72 25  |(drec%<<6),addr%|
00005170  2c 74 72 61 63 6b 5f 62  75 66 66 25 2c 77 72 69  |,track_buff%,wri|
00005180  74 65 5f 6c 65 6e 25 0d  02 3b 2d 20 73 65 63 25  |te_len%..;- sec%|
00005190  3d 28 73 65 63 25 2b 73  6b 65 77 25 29 83 73 65  |=(sec%+skew%).se|
000051a0  63 5f 74 72 6b 25 3a 61  64 64 72 25 2b 3d 63 68  |c_trk%:addr%+=ch|
000051b0  75 6e 6b 25 0d 02 3c 05  cc 0d 02 3d 2c 20 62 61  |unk%..<....=, ba|
000051c0  73 65 25 3d 6c 6f 67 32  73 65 63 25 84 28 74 72  |se%=log2sec%.(tr|
000051d0  61 63 6b 25 83 32 29 3c  3c 38 84 28 74 72 61 63  |ack%.2)<<8.(trac|
000051e0  6b 25 81 32 29 0d 02 3e  56 20 e3 20 41 25 3d 30  |k%.2)..>V . A%=0|
000051f0  b8 73 65 63 5f 74 72 6b  25 2d 31 3a 21 28 69 64  |.sec_trk%-1:!(id|
00005200  65 6e 74 25 28 41 25 29  29 3d 62 61 73 65 25 84  |ent%(A%))=base%.|
00005210  28 73 65 63 25 2b 73 74  5f 73 65 63 25 29 3c 3c  |(sec%+st_sec%)<<|
00005220  31 36 3a 73 65 63 25 3d  28 73 65 63 25 2b 31 29  |16:sec%=(sec%+1)|
00005230  83 73 65 63 5f 74 72 6b  25 3a ed 0d 02 3f 13 20  |.sec_trk%:...?. |
00005240  e7 20 74 72 61 63 6b 25  83 32 3d 30 20 8c 0d 02  |. track%.2=0 ...|
00005250  40 4f 20 20 c8 99 22 41  44 46 53 5f 44 69 73 63  |@O  .."ADFS_Disc|
00005260  4f 70 22 2c 30 2c 34 2b  28 64 72 65 63 25 3c 3c  |Op",0,4+(drec%<<|
00005270  36 29 2c 61 64 64 72 25  2c 74 72 61 63 6b 5f 62  |6),addr%,track_b|
00005280  75 66 66 25 2c 77 72 69  74 65 5f 6c 65 6e 25 3a  |uff%,write_len%:|
00005290  61 64 64 72 25 2b 3d 63  68 75 6e 6b 25 0d 02 41  |addr%+=chunk%..A|
000052a0  06 20 cc 0d 02 42 39 20  20 e3 20 41 25 3d 30 b8  |. ...B9  . A%=0.|
000052b0  73 65 63 5f 74 72 6b 25  2d 31 3a 21 28 69 64 65  |sec_trk%-1:!(ide|
000052c0  6e 74 25 28 41 25 29 29  3d 21 28 69 64 65 6e 74  |nt%(A%))=!(ident|
000052d0  25 28 41 25 29 29 84 32  35 36 3a ed 0d 02 43 6a  |%(A%)).256:...Cj|
000052e0  20 20 c8 99 22 41 44 46  53 5f 44 69 73 63 4f 70  |  .."ADFS_DiscOp|
000052f0  22 2c 30 2c 34 2b 28 64  72 65 63 25 3c 3c 36 29  |",0,4+(drec%<<6)|
00005300  2c 61 64 64 72 25 2c 74  72 61 63 6b 5f 62 75 66  |,addr%,track_buf|
00005310  66 25 2c 77 72 69 74 65  5f 6c 65 6e 25 3a 73 65  |f%,write_len%:se|
00005320  63 25 3d 28 73 65 63 25  2b 73 6b 65 77 25 29 83  |c%=(sec%+skew%).|
00005330  73 65 63 5f 74 72 6b 25  3a 61 64 64 72 25 2b 3d  |sec_trk%:addr%+=|
00005340  63 68 75 6e 6b 25 0d 02  44 06 20 cd 0d 02 45 28  |chunk%..D. ...E(|
00005350  20 e7 20 73 69 7a 65 25  3d 26 42 34 30 30 30 20  | . size%=&B4000 |
00005360  e7 20 72 6f 33 25 3d a3  20 61 64 64 72 25 2b 3d  |. ro3%=. addr%+=|
00005370  26 32 30 30 0d 02 46 05  cd 0d 02 47 22 74 72 61  |&200..F....G"tra|
00005380  63 6b 25 2b 3d 31 3a e7  20 74 72 61 63 6b 25 3c  |ck%+=1:. track%<|
00005390  31 36 30 3a 3d 32 3a 8b  3a 3d 33 0d 02 48 04 0d  |160:=2:.:=3..H..|
000053a0  02 49 04 0d 02 4a 15 dd  f2 73 65 74 5f 72 65 63  |.I...J...set_rec|
000053b0  6f 72 64 28 66 74 25 29  0d 02 4b 0c c8 8e 20 66  |ord(ft%)..K... f|
000053c0  74 25 20 ca 0d 02 4c 10  20 c9 20 26 31 38 30 3a  |t% ...L. . &180:|
000053d0  f7 20 2b 30 0d 02 4d 3f  20 20 20 20 20 20 20 20  |. +0..M?        |
000053e0  20 20 20 dc 20 31 30 2c  35 2c 32 2c 32 2c 31 35  |   . 10,5,2,2,15|
000053f0  2c 37 2c 31 2c 30 2c 30  2c 31 2c 33 32 2c 35 2c  |,7,1,0,0,1,32,5,|
00005400  33 2c 32 2c 30 2c 30 2c  30 2c 26 38 30 2c 26 30  |3,2,0,0,0,&80,&0|
00005410  43 2c 30 0d 02 4e 10 20  c9 20 26 31 36 30 3a f7  |C,0..N. . &160:.|
00005420  20 2b 30 0d 02 4f 3e 20  20 20 20 20 20 20 20 20  | +0..O>         |
00005430  20 20 dc 20 31 30 2c 31  30 2c 32 2c 34 2c 31 35  |  . 10,10,2,4,15|
00005440  2c 36 2c 31 2c 30 2c 30  2c 34 2c 36 34 2c 36 2c  |,6,1,0,0,4,64,6,|
00005450  39 2c 32 2c 30 2c 30 2c  30 2c 30 2c 26 31 39 2c  |9,2,0,0,0,0,&19,|
00005460  30 0d 02 50 10 20 c9 20  26 31 34 34 3a f7 20 2b  |0..P. . &144:. +|
00005470  30 0d 02 51 3d 20 20 20  20 20 20 20 20 20 20 20  |0..Q=           |
00005480  dc 20 39 2c 31 38 2c 32  2c 34 2c 30 2c 30 2c 30  |. 9,18,2,4,0,0,0|
00005490  2c 30 2c 31 2c 30 2c 30  2c 30 2c 30 2c 30 2c 30  |,0,1,0,0,0,0,0,0|
000054a0  2c 30 2c 30 2c 26 38 30  2c 26 31 36 2c 30 0d 02  |,0,0,&80,&16,0..|
000054b0  52 10 20 c9 20 26 31 37  32 3a f7 20 2b 30 0d 02  |R. . &172:. +0..|
000054c0  53 3c 20 20 20 20 20 20  20 20 20 20 20 dc 20 39  |S<           . 9|
000054d0  2c 39 2c 32 2c 32 2c 30  2c 30 2c 30 2c 30 2c 31  |,9,2,2,0,0,0,0,1|
000054e0  2c 30 2c 30 2c 30 2c 30  2c 30 2c 30 2c 30 2c 30  |,0,0,0,0,0,0,0,0|
000054f0  2c 26 34 30 2c 26 30 42  2c 30 0d 02 54 10 20 c9  |,&40,&0B,0..T. .|
00005500  20 26 32 37 32 3a f7 20  2b 30 0d 02 55 3d 20 20  | &272:. +0..U=  |
00005510  20 20 20 20 20 20 20 20  20 dc 20 39 2c 31 30 2c  |         . 9,10,|
00005520  32 2c 32 2c 30 2c 30 2c  30 2c 30 2c 30 2c 30 2c  |2,2,0,0,0,0,0,0,|
00005530  30 2c 30 2c 30 2c 30 2c  30 2c 30 2c 30 2c 26 34  |0,0,0,0,0,0,0,&4|
00005540  30 2c 26 30 42 2c 30 0d  02 56 10 20 c9 20 26 31  |0,&0B,0..V. . &1|
00005550  36 34 3a f7 20 2b 30 0d  02 57 3c 20 20 20 20 20  |64:. +0..W<     |
00005560  20 20 20 20 20 20 dc 20  38 2c 31 36 2c 31 2c 32  |      . 8,16,1,2|
00005570  2c 30 2c 30 2c 30 2c 30  2c 36 34 2c 30 2c 30 2c  |,0,0,0,0,64,0,0,|
00005580  30 2c 30 2c 32 2c 30 2c  30 2c 30 2c 30 2c 26 30  |0,0,2,0,0,0,0,&0|
00005590  41 2c 30 0d 02 58 05 7f  0d 02 59 2b 20 20 20 20  |A,0..X....Y+    |
000055a0  85 20 32 30 30 30 30 2c  22 54 68 69 73 20 69 73  |. 20000,"This is|
000055b0  20 6e 6f 74 20 61 20 64  69 73 63 20 69 6d 61 67  | not a disc imag|
000055c0  65 21 22 0d 02 5a 05 cb  0d 02 5b 3e e3 20 49 25  |e!"..Z....[>. I%|
000055d0  3d 64 72 65 63 25 b8 64  72 65 63 25 2b 34 30 88  |=drec%.drec%+40.|
000055e0  34 3a 21 49 25 3d 30 3a  ed 3a e3 20 49 25 3d 30  |4:!I%=0:.:. I%=0|
000055f0  b8 31 39 3a f3 20 4a 25  3a 64 72 65 63 25 3f 49  |.19:. J%:drec%?I|
00005600  25 3d 4a 25 3a ed 0d 02  5c 05 e1 0d 02 5d 04 0d  |%=J%:...\....]..|
00005610  02 5e 0b dd f2 63 6c 65  61 72 0d 02 5f 3a f2 73  |.^...clear.._:.s|
00005620  65 74 5f 73 74 72 28 72  65 61 64 5f 77 25 2c 33  |et_str(read_w%,3|
00005630  2c 22 4e 6f 6e 65 22 29  3a f2 73 65 74 5f 73 74  |,"None"):.set_st|
00005640  72 28 77 72 69 74 65 5f  77 25 2c 33 2c 22 4e 6f  |r(write_w%,3,"No|
00005650  6e 65 22 29 0d 02 60 53  f2 73 65 74 5f 6e 75 6d  |ne")..`S.set_num|
00005660  28 77 72 69 74 65 5f 77  25 2c 32 33 2c 30 29 3a  |(write_w%,23,0):|
00005670  f2 73 65 74 5f 73 74 72  28 77 72 69 74 65 5f 77  |.set_str(write_w|
00005680  25 2c 33 30 2c 22 57 61  69 74 69 6e 67 22 29 3a  |%,30,"Waiting"):|
00005690  f2 73 65 74 5f 6e 75 6d  28 77 72 69 74 65 5f 77  |.set_num(write_w|
000056a0  25 2c 32 36 2c 30 29 0d  02 61 44 73 69 7a 65 25  |%,26,0)..aDsize%|
000056b0  3d 30 3a 6e 61 6d 65 24  3d 22 22 3a 63 6f 70 69  |=0:name$="":copi|
000056c0  65 64 25 3d 30 3a 66 61  75 6c 74 79 25 3d 30 3a  |ed%=0:faulty%=0:|
000056d0  73 74 61 74 65 25 3d 30  3a 6d 61 73 6b 25 3d 26  |state%=0:mask%=&|
000056e0  43 33 31 3a 61 75 74 6f  25 3d a3 0d 02 62 29 f2  |C31:auto%=...b).|
000056f0  69 63 6f 6e 62 61 72 28  31 29 3a f2 73 68 61 64  |iconbar(1):.shad|
00005700  65 5f 77 72 69 74 65 3a  49 25 3d a4 77 6b 73 70  |e_write:I%=.wksp|
00005710  63 28 30 29 0d 02 63 2d  21 62 6c 6b 25 3d 77 72  |c(0)..c-!blk%=wr|
00005720  69 74 65 5f 77 25 3a c8  99 22 57 69 6d 70 5f 43  |ite_w%:.."Wimp_C|
00005730  6c 6f 73 65 57 69 6e 64  6f 77 22 2c 2c 62 6c 6b  |loseWindow",,blk|
00005740  25 0d 02 64 05 e1 0d 02  65 04 0d 02 66 17 dd f2  |%..d....e...f...|
00005750  73 65 74 5f 6e 75 6d 28  77 25 2c 69 25 2c 76 25  |set_num(w%,i%,v%|
00005760  29 0d 02 67 32 21 62 6c  6b 25 3d 77 25 3a 62 6c  |)..g2!blk%=w%:bl|
00005770  6b 25 21 34 3d 69 25 3a  c8 99 22 57 69 6d 70 5f  |k%!4=i%:.."Wimp_|
00005780  47 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 62  |GetIconState",,b|
00005790  6c 6b 25 0d 02 68 35 62  6c 6b 25 21 38 3d 30 3a  |lk%..h5blk%!8=0:|
000057a0  62 6c 6b 25 21 31 32 3d  30 3a 24 28 62 6c 6b 25  |blk%!12=0:$(blk%|
000057b0  21 32 38 29 3d c3 28 76  25 29 3a e7 20 77 5f 6f  |!28)=.(v%):. w_o|
000057c0  70 25 3a 2a 66 78 31 39  0d 02 69 1f c8 99 22 57  |p%:*fx19..i..."W|
000057d0  69 6d 70 5f 53 65 74 49  63 6f 6e 53 74 61 74 65  |imp_SetIconState|
000057e0  22 2c 2c 62 6c 6b 25 0d  02 6a 05 e1 0d 02 6b 04  |",,blk%..j....k.|
000057f0  0d 02 6c 17 dd f2 73 65  74 5f 73 74 72 28 77 25  |..l...set_str(w%|
00005800  2c 69 25 2c 73 24 29 0d  02 6d 32 21 62 6c 6b 25  |,i%,s$)..m2!blk%|
00005810  3d 77 25 3a 62 6c 6b 25  21 34 3d 69 25 3a c8 99  |=w%:blk%!4=i%:..|
00005820  22 57 69 6d 70 5f 47 65  74 49 63 6f 6e 53 74 61  |"Wimp_GetIconSta|
00005830  74 65 22 2c 2c 62 6c 6b  25 0d 02 6e 40 62 6c 6b  |te",,blk%..n@blk|
00005840  25 21 38 3d 30 3a 62 6c  6b 25 21 31 32 3d 30 3a  |%!8=0:blk%!12=0:|
00005850  24 28 62 6c 6b 25 21 32  38 29 3d 73 24 3a c8 99  |$(blk%!28)=s$:..|
00005860  22 57 69 6d 70 5f 53 65  74 49 63 6f 6e 53 74 61  |"Wimp_SetIconSta|
00005870  74 65 22 2c 2c 62 6c 6b  25 0d 02 6f 05 e1 0d 02  |te",,blk%..o....|
00005880  70 04 0d 02 71 0f dd f2  64 72 61 67 5f 66 69 6c  |p...q...drag_fil|
00005890  65 0d 02 72 31 21 62 6c  6b 25 3d 73 61 76 65 61  |e..r1!blk%=savea|
000058a0  73 5f 77 25 3a c8 99 22  57 69 6d 70 5f 47 65 74  |s_w%:.."Wimp_Get|
000058b0  57 69 6e 64 6f 77 53 74  61 74 65 22 2c 2c 62 6c  |WindowState",,bl|
000058c0  6b 25 0d 02 73 28 58 25  3d 62 6c 6b 25 21 34 2d  |k%..s(X%=blk%!4-|
000058d0  62 6c 6b 25 21 32 30 3a  59 25 3d 62 6c 6b 25 21  |blk%!20:Y%=blk%!|
000058e0  31 36 2d 62 6c 6b 25 21  32 34 0d 02 74 30 62 6c  |16-blk%!24..t0bl|
000058f0  6b 25 21 34 3d 73 70 72  69 74 65 5f 68 25 3a c8  |k%!4=sprite_h%:.|
00005900  99 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  |."Wimp_GetIconSt|
00005910  61 74 65 22 2c 2c 62 6c  6b 25 0d 02 75 40 21 62  |ate",,blk%..u@!b|
00005920  6c 6b 25 3d 73 61 76 65  61 73 5f 77 25 3a 62 6c  |lk%=saveas_w%:bl|
00005930  6b 25 21 34 3d 35 3a 62  6c 6b 25 21 38 3d 62 6c  |k%!4=5:blk%!8=bl|
00005940  6b 25 21 38 2b 58 25 3a  62 6c 6b 25 21 31 32 3d  |k%!8+X%:blk%!12=|
00005950  62 6c 6b 25 21 31 32 2b  59 25 0d 02 76 3d 62 6c  |blk%!12+Y%..v=bl|
00005960  6b 25 21 31 36 3d 62 6c  6b 25 21 31 36 2b 58 25  |k%!16=blk%!16+X%|
00005970  3a 62 6c 6b 25 21 32 30  3d 62 6c 6b 25 21 32 30  |:blk%!20=blk%!20|
00005980  2b 59 25 3a 62 6c 6b 25  21 32 34 3d 30 3a 62 6c  |+Y%:blk%!24=0:bl|
00005990  6b 25 21 32 38 3d 30 0d  02 77 3e 62 6c 6b 25 21  |k%!28=0..w>blk%!|
000059a0  33 32 3d 26 37 46 46 46  46 46 46 46 3a 62 6c 6b  |32=&7FFFFFFF:blk|
000059b0  25 21 33 36 3d 26 37 46  46 46 46 46 46 46 3a c8  |%!36=&7FFFFFFF:.|
000059c0  99 22 57 69 6d 70 5f 44  72 61 67 42 6f 78 22 2c  |."Wimp_DragBox",|
000059d0  2c 62 6c 6b 25 0d 02 78  05 e1 0d 02 79 04 0d 02  |,blk%..x....y...|
000059e0  7a 0f dd f2 64 72 61 67  5f 74 65 72 6d 0d 02 7b  |z...drag_term..{|
000059f0  21 c8 99 22 57 69 6d 70  5f 47 65 74 50 6f 69 6e  |!.."Wimp_GetPoin|
00005a00  74 65 72 49 6e 66 6f 22  2c 2c 62 6c 6b 25 0d 02  |terInfo",,blk%..|
00005a10  7c 40 62 6c 6b 25 21 32  30 3d 62 6c 6b 25 21 31  ||@blk%!20=blk%!1|
00005a20  32 3a 62 6c 6b 25 21 32  34 3d 62 6c 6b 25 21 31  |2:blk%!24=blk%!1|
00005a30  36 3a 62 6c 6b 25 21 32  38 3d 21 62 6c 6b 25 3a  |6:blk%!28=!blk%:|
00005a40  62 6c 6b 25 21 33 32 3d  62 6c 6b 25 21 34 0d 02  |blk%!32=blk%!4..|
00005a50  7d 3e 62 6c 6b 25 21 33  36 3d 73 69 7a 65 25 3a  |}>blk%!36=size%:|
00005a60  62 6c 6b 25 21 34 30 3d  66 69 6c 65 74 79 70 65  |blk%!40=filetype|
00005a70  25 3a 62 6c 6b 25 21 31  36 3d 31 3a 24 28 62 6c  |%:blk%!16=1:$(bl|
00005a80  6b 25 2b 34 34 29 3d 6e  61 6d 65 24 0d 02 7e 24  |k%+44)=name$..~$|
00005a90  21 62 6c 6b 25 3d 28 a9  28 6e 61 6d 65 24 29 2b  |!blk%=(.(name$)+|
00005aa0  34 39 29 80 ac 33 3a 62  6c 6b 25 21 31 32 3d 30  |49)..3:blk%!12=0|
00005ab0  0d 02 7f 30 c8 99 22 57  69 6d 70 5f 53 65 6e 64  |...0.."Wimp_Send|
00005ac0  4d 65 73 73 61 67 65 22  2c 31 37 2c 62 6c 6b 25  |Message",17,blk%|
00005ad0  2c 62 6c 6b 25 21 32 30  2c 62 6c 6b 25 21 32 34  |,blk%!20,blk%!24|
00005ae0  0d 02 80 05 e1 0d 02 81  04 0d 02 82 0a dd f2 73  |...............s|
00005af0  61 76 65 0d 02 83 20 ea  85 3a ee 85 ea 20 f2 72  |ave... ..:... .r|
00005b00  65 70 6f 72 74 5f 65 72  72 6f 72 28 f6 24 2c a3  |eport_error(.$,.|
00005b10  29 3a e1 0d 02 84 26 49  25 3d 62 6c 6b 25 2b 34  |):....&I%=blk%+4|
00005b20  34 3a c8 95 3f 49 25 3e  33 31 3a 49 25 2b 3d 31  |4:..?I%>31:I%+=1|
00005b30  3a ce 3a 3f 49 25 3d 31  33 0d 02 85 40 c8 99 20  |:.:?I%=13...@.. |
00005b40  22 58 4f 53 5f 46 69 6c  65 22 2c 31 30 2c 24 28  |"XOS_File",10,$(|
00005b50  62 6c 6b 25 2b 34 34 29  2c 66 69 6c 65 74 79 70  |blk%+44),filetyp|
00005b60  65 25 2c 2c 62 75 66 66  65 72 25 2c 62 75 66 66  |e%,,buffer%,buff|
00005b70  65 72 25 2b 73 69 7a 65  25 0d 02 86 05 e1 0d 02  |er%+size%.......|
00005b80  87 04 0d 02 88 13 dd a4  67 65 74 5f 6f 70 74 28  |........get_opt(|
00005b90  6e 75 6d 25 29 0d 02 89  39 21 62 6c 6b 25 3d 6f  |num%)...9!blk%=o|
00005ba0  70 74 5f 77 25 3a 62 6c  6b 25 21 34 3d 6e 75 6d  |pt_w%:blk%!4=num|
00005bb0  25 3a c8 99 20 22 57 69  6d 70 5f 47 65 74 49 63  |%:.. "Wimp_GetIc|
00005bc0  6f 6e 53 74 61 74 65 22  2c 2c 62 6c 6b 25 0d 02  |onState",,blk%..|
00005bd0  8a 1c e7 28 62 6c 6b 25  21 32 34 80 31 3c 3c 32  |...(blk%!24.1<<2|
00005be0  31 29 3a 3d b9 3a 8b 3a  3d a3 0d 02 8b 04 0d 02  |1):=.:.:=.......|
00005bf0  8c 10 dd a4 77 6b 73 70  63 28 73 7a 25 29 0d 02  |....wkspc(sz%)..|
00005c00  8d 28 c8 99 22 57 69 6d  70 5f 53 6c 6f 74 53 69  |.(.."Wimp_SlotSi|
00005c10  7a 65 22 2c 6d 65 6d 73  7a 25 2b 73 7a 25 2c 2d  |ze",memsz%+sz%,-|
00005c20  31 20 b8 20 65 25 0d 02  8e 1d e7 20 65 25 3c 28  |1 . e%..... e%<(|
00005c30  6d 65 6d 73 7a 25 2b 73  7a 25 29 3a 3d a3 3a 8b  |memsz%+sz%):=.:.|
00005c40  3a 3d b9 0d 02 8f 04 0d  02 90 0f dd f2 6d 61 69  |:=...........mai|
00005c50  6e 5f 6d 65 6e 75 0d 02  91 1d ea 20 6c 69 6e 65  |n_menu..... line|
00005c60  2c 74 69 63 6b 2c 6c 61  73 74 2c 77 72 69 74 65  |,tick,last,write|
00005c70  2c 6d 25 0d 02 92 40 74  69 63 6b 3d 31 3a 6c 69  |,m%...@tick=1:li|
00005c80  6e 65 3d 32 3a 77 72 69  74 65 3d 34 3a 6c 61 73  |ne=2:write=4:las|
00005c90  74 3d 26 38 30 3a de 20  6d 65 6e 75 62 75 66 66  |t=&80:. menubuff|
00005ca0  25 20 26 31 30 30 3a 6d  25 3d 6d 65 6e 75 62 75  |% &100:m%=menubu|
00005cb0  66 66 25 0d 02 93 27 6d  61 69 6e 5f 6d 25 3d a4  |ff%...'main_m%=.|
00005cc0  6e 65 77 5f 6d 65 6e 75  20 28 6d 25 2c 22 43 6f  |new_menu (m%,"Co|
00005cd0  70 69 65 72 22 2c 31 34  30 29 0d 02 94 1e 6d 25  |pier",140)....m%|
00005ce0  3d a4 6d 65 6e 75 5f 69  74 65 6d 20 28 22 52 65  |=.menu_item ("Re|
00005cf0  61 64 22 2c 30 2c 30 29  0d 02 95 14 6d 65 6e 75  |ad",0,0)....menu|
00005d00  5f 77 72 69 74 65 25 3d  6d 25 2b 38 0d 02 96 27  |_write%=m%+8...'|
00005d10  6d 25 3d a4 6d 65 6e 75  5f 69 74 65 6d 20 28 22  |m%=.menu_item ("|
00005d20  57 72 69 74 65 22 2c 30  2c 73 61 76 65 61 73 5f  |Write",0,saveas_|
00005d30  77 25 29 0d 02 97 21 6d  25 3d a4 6d 65 6e 75 5f  |w%)...!m%=.menu_|
00005d40  69 74 65 6d 20 28 22 4f  70 74 69 6f 6e 73 22 2c  |item ("Options",|
00005d50  30 2c 30 29 0d 02 98 1f  6d 25 3d a4 6d 65 6e 75  |0,0)....m%=.menu|
00005d60  5f 69 74 65 6d 20 28 22  43 6c 65 61 72 22 2c 30  |_item ("Clear",0|
00005d70  2c 30 29 0d 02 99 27 6d  25 3d a4 6d 65 6e 75 5f  |,0)...'m%=.menu_|
00005d80  69 74 65 6d 20 28 22 49  6e 66 6f 22 2c 6c 69 6e  |item ("Info",lin|
00005d90  65 2c 69 6e 66 6f 5f 77  25 29 0d 02 9a 21 6d 25  |e,info_w%)...!m%|
00005da0  3d a4 6d 65 6e 75 5f 69  74 65 6d 20 28 22 51 75  |=.menu_item ("Qu|
00005db0  69 74 22 2c 6c 61 73 74  2c 30 29 0d 02 9b 05 e1  |it",last,0).....|
00005dc0  0d 02 9c 04 0d 02 9d 11  dd f2 73 68 61 64 65 5f  |..........shade_|
00005dd0  77 72 69 74 65 0d 02 9e  23 21 6d 65 6e 75 5f 77  |write...#!menu_w|
00005de0  72 69 74 65 25 3d 21 6d  65 6e 75 5f 77 72 69 74  |rite%=!menu_writ|
00005df0  65 25 84 31 3c 3c 32 32  0d 02 9f 05 e1 0d 02 a0  |e%.1<<22........|
00005e00  04 0d 02 a1 13 dd f2 75  6e 73 68 61 64 65 5f 77  |.......unshade_w|
00005e10  72 69 74 65 0d 02 a2 26  21 6d 65 6e 75 5f 77 72  |rite...&!menu_wr|
00005e20  69 74 65 25 3d 21 6d 65  6e 75 5f 77 72 69 74 65  |ite%=!menu_write|
00005e30  25 80 ac 28 31 3c 3c 32  32 29 0d 02 a3 05 e1 0d  |%..(1<<22)......|
00005e40  02 a4 04 0d 02 a5 29 dd  a4 6e 65 77 5f 6d 65 6e  |......)..new_men|
00005e50  75 20 28 61 25 2c 6d 65  6e 75 74 69 74 6c 65 24  |u (a%,menutitle$|
00005e60  2c 6d 65 6e 75 77 69 64  74 68 25 29 0d 02 a6 41  |,menuwidth%)...A|
00005e70  24 61 25 3d 6d 65 6e 75  74 69 74 6c 65 24 3a 61  |$a%=menutitle$:a|
00005e80  25 21 31 32 3d 26 37 30  32 30 37 3a 61 25 21 31  |%!12=&70207:a%!1|
00005e90  36 3d 6d 65 6e 75 77 69  64 74 68 25 3a 61 25 21  |6=menuwidth%:a%!|
00005ea0  32 30 3d 34 30 3a 61 25  21 32 34 3d 30 0d 02 a7  |20=40:a%!24=0...|
00005eb0  0c 6d 25 3d 61 25 2b 32  38 0d 02 a8 07 3d 61 25  |.m%=a%+28....=a%|
00005ec0  0d 02 a9 04 0d 02 aa 2f  dd a4 6d 65 6e 75 5f 69  |......./..menu_i|
00005ed0  74 65 6d 20 28 69 74 65  6d 6e 61 6d 65 24 2c 6d  |tem (itemname$,m|
00005ee0  65 6e 75 66 6c 61 67 73  25 2c 73 75 62 6d 65 6e  |enuflags%,submen|
00005ef0  75 25 29 0d 02 ab 41 21  6d 25 3d 6d 65 6e 75 66  |u%)...A!m%=menuf|
00005f00  6c 61 67 73 25 3a 6d 25  21 34 3d 73 75 62 6d 65  |lags%:m%!4=subme|
00005f10  6e 75 25 3a 6d 25 21 38  3d 26 37 30 30 30 30 30  |nu%:m%!8=&700000|
00005f20  31 3a 24 28 6d 25 2b 31  32 29 3d 69 74 65 6d 6e  |1:$(m%+12)=itemn|
00005f30  61 6d 65 24 0d 02 ac 0a  3d 6d 25 2b 32 34 0d 02  |ame$....=m%+24..|
00005f40  ad 04 0d 02 ae 0d dd a4  69 63 6f 6e 62 61 72 0d  |........iconbar.|
00005f50  02 af 2b 21 62 6c 6b 25  3d 2d 31 3a 62 6c 6b 25  |..+!blk%=-1:blk%|
00005f60  21 34 3d 30 3a 62 6c 6b  25 21 38 3d 2d 31 36 3a  |!4=0:blk%!8=-16:|
00005f70  62 6c 6b 25 21 31 32 3d  38 34 0d 02 b0 20 62 6c  |blk%!12=84... bl|
00005f80  6b 25 21 31 36 3d 38 34  3a 62 6c 6b 25 21 32 30  |k%!16=84:blk%!20|
00005f90  3d 26 31 37 30 30 32 31  30 42 0d 02 b1 2e 62 6c  |=&1700210B....bl|
00005fa0  6b 25 21 32 34 3d 73 70  72 5f 73 74 72 25 3a 62  |k%!24=spr_str%:b|
00005fb0  6c 6b 25 21 32 38 3d 73  70 72 69 74 65 25 3a 62  |lk%!28=sprite%:b|
00005fc0  6c 6b 25 21 33 32 3d 38  0d 02 b2 23 c8 99 20 22  |lk%!32=8...#.. "|
00005fd0  57 69 6d 70 5f 43 72 65  61 74 65 49 63 6f 6e 22  |Wimp_CreateIcon"|
00005fe0  2c 2c 62 6c 6b 25 20 b8  20 49 25 0d 02 b3 07 3d  |,,blk% . I%....=|
00005ff0  49 25 0d 02 b4 04 0d 02  b5 12 dd f2 69 63 6f 6e  |I%..........icon|
00006000  62 61 72 28 73 7a 25 29  0d 02 b6 35 21 62 6c 6b  |bar(sz%)...5!blk|
00006010  25 3d 2d 31 3a 62 6c 6b  25 21 34 3d 69 63 6f 6e  |%=-1:blk%!4=icon|
00006020  25 3a c8 99 22 57 69 6d  70 5f 47 65 74 49 63 6f  |%:.."Wimp_GetIco|
00006030  6e 53 74 61 74 65 22 2c  2c 62 6c 6b 25 0d 02 b7  |nState",,blk%...|
00006040  17 24 73 70 72 69 74 65  25 3d 22 73 21 63 6f 70  |.$sprite%="s!cop|
00006050  69 65 72 22 0d 02 b8 0c  c8 8e 20 73 7a 25 20 ca  |ier"...... sz% .|
00006060  0d 02 b9 4b 20 c9 20 31  36 30 30 2a 31 30 32 34  |...K . 1600*1024|
00006070  3a 24 73 70 72 5f 73 74  72 25 3d 22 20 31 b7 36  |:$spr_str%=" 1.6|
00006080  4d 20 22 3a 24 73 61 76  65 5f 73 70 72 69 74 65  |M ":$save_sprite|
00006090  25 3d 22 66 69 6c 65 5f  31 36 30 22 3a 66 69 6c  |%="file_160":fil|
000060a0  65 74 79 70 65 25 3d 26  31 36 30 0d 02 ba 4b 20  |etype%=&160...K |
000060b0  c9 20 31 34 34 30 2a 31  30 32 34 3a 24 73 70 72  |. 1440*1024:$spr|
000060c0  5f 73 74 72 25 3d 22 20  31 b7 34 4d 20 22 3a 24  |_str%=" 1.4M ":$|
000060d0  73 61 76 65 5f 73 70 72  69 74 65 25 3d 22 66 69  |save_sprite%="fi|
000060e0  6c 65 5f 31 34 34 22 3a  66 69 6c 65 74 79 70 65  |le_144":filetype|
000060f0  25 3d 26 31 34 34 0d 02  bb 4b 20 c9 20 38 30 30  |%=&144...K . 800|
00006100  2a 31 30 32 34 20 3a 24  73 70 72 5f 73 74 72 25  |*1024 :$spr_str%|
00006110  3d 22 20 38 30 30 4b 20  22 3a 24 73 61 76 65 5f  |=" 800K ":$save_|
00006120  73 70 72 69 74 65 25 3d  22 66 69 6c 65 5f 31 38  |sprite%="file_18|
00006130  30 22 3a 66 69 6c 65 74  79 70 65 25 3d 26 31 38  |0":filetype%=&18|
00006140  30 0d 02 bc 4b 20 c9 20  37 32 30 2a 31 30 32 34  |0...K . 720*1024|
00006150  20 3a 24 73 70 72 5f 73  74 72 25 3d 22 20 37 32  | :$spr_str%=" 72|
00006160  30 4b 20 22 3a 24 73 61  76 65 5f 73 70 72 69 74  |0K ":$save_sprit|
00006170  65 25 3d 22 66 69 6c 65  5f 31 37 32 22 3a 66 69  |e%="file_172":fi|
00006180  6c 65 74 79 70 65 25 3d  26 31 37 32 0d 02 bd 4b  |letype%=&172...K|
00006190  20 c9 20 36 34 30 2a 31  30 32 34 20 3a 24 73 70  | . 640*1024 :$sp|
000061a0  72 5f 73 74 72 25 3d 22  20 36 34 30 4b 20 22 3a  |r_str%=" 640K ":|
000061b0  24 73 61 76 65 5f 73 70  72 69 74 65 25 3d 22 66  |$save_sprite%="f|
000061c0  69 6c 65 5f 31 36 34 22  3a 66 69 6c 65 74 79 70  |ile_164":filetyp|
000061d0  65 25 3d 26 31 36 34 0d  02 be 2d 20 c9 20 31 20  |e%=&164...- . 1 |
000061e0  3a 24 73 70 72 5f 73 74  72 25 3d 22 20 4e 6f 6e  |:$spr_str%=" Non|
000061f0  65 20 22 3a 24 73 61 76  65 5f 73 70 72 69 74 65  |e ":$save_sprite|
00006200  25 3d 22 22 0d 02 bf 1c  20 c9 20 32 20 3a 24 73  |%="".... . 2 :$s|
00006210  70 72 5f 73 74 72 25 3d  22 20 41 75 74 6f 20 22  |pr_str%=" Auto "|
00006220  0d 02 c0 1b 20 c9 20 33  20 3a 24 73 70 72 5f 73  |.... . 3 :$spr_s|
00006230  74 72 25 3d 22 50 61 75  73 65 22 0d 02 c1 31 20  |tr%="Pause"...1 |
00006240  c9 20 2d 31 3a 24 73 70  72 5f 73 74 72 25 3d 22  |. -1:$spr_str%="|
00006250  20 46 65 65 64 20 22 3a  24 73 70 72 69 74 65 25  | Feed ":$sprite%|
00006260  3d 22 73 69 6e 73 65 72  74 5f 31 22 0d 02 c2 31  |="sinsert_1"...1|
00006270  20 c9 20 2d 32 3a 24 73  70 72 5f 73 74 72 25 3d  | . -2:$spr_str%=|
00006280  22 20 46 65 65 64 20 22  3a 24 73 70 72 69 74 65  |" Feed ":$sprite|
00006290  25 3d 22 73 69 6e 73 65  72 74 5f 32 22 0d 02 c3  |%="sinsert_2"...|
000062a0  30 20 c9 20 2d 33 3a 24  73 70 72 5f 73 74 72 25  |0 . -3:$spr_str%|
000062b0  3d 22 20 4d 65 21 20 22  3a 24 73 70 72 69 74 65  |=" Me! ":$sprite|
000062c0  25 3d 22 73 69 6e 73 65  72 74 5f 33 22 0d 02 c4  |%="sinsert_3"...|
000062d0  30 20 c9 20 2d 34 3a 24  73 70 72 5f 73 74 72 25  |0 . -4:$spr_str%|
000062e0  3d 22 20 4d 65 21 20 22  3a 24 73 70 72 69 74 65  |=" Me! ":$sprite|
000062f0  25 3d 22 73 69 6e 73 65  72 74 5f 34 22 0d 02 c5  |%="sinsert_4"...|
00006300  30 20 c9 20 2d 35 3a 24  73 70 72 5f 73 74 72 25  |0 . -5:$spr_str%|
00006310  3d 22 20 20 20 20 20 22  3a 24 73 70 72 69 74 65  |="     ":$sprite|
00006320  25 3d 22 73 69 6e 73 65  72 74 5f 35 22 0d 02 c6  |%="sinsert_5"...|
00006330  05 7f 0d 02 c7 37 20 24  28 73 70 72 5f 73 74 72  |.....7 $(spr_str|
00006340  25 29 3d 22 20 22 2b c3  28 73 7a 25 81 31 30 32  |%)=" "+.(sz%.102|
00006350  34 29 2b 22 4b 20 20 22  3a 24 73 61 76 65 5f 73  |4)+"K  ":$save_s|
00006360  70 72 69 74 65 25 3d 22  22 0d 02 c8 05 cb 0d 02  |prite%="".......|
00006370  c9 1c 62 6c 6b 25 21 38  3d 30 3a 62 6c 6b 25 21  |..blk%!8=0:blk%!|
00006380  31 32 3d 30 3a 2a 66 78  31 39 0d 02 ca 20 c8 99  |12=0:*fx19... ..|
00006390  20 22 57 69 6d 70 5f 53  65 74 49 63 6f 6e 53 74  | "Wimp_SetIconSt|
000063a0  61 74 65 22 2c 2c 62 6c  6b 25 0d 02 cb 56 21 62  |ate",,blk%...V!b|
000063b0  6c 6b 25 3d 73 61 76 65  61 73 5f 77 25 3a 3a 62  |lk%=saveas_w%::b|
000063c0  6c 6b 25 21 34 3d 73 70  72 69 74 65 5f 68 25 3a  |lk%!4=sprite_h%:|
000063d0  62 6c 6b 25 21 38 3d 30  3a 3a 62 6c 6b 25 21 31  |blk%!8=0::blk%!1|
000063e0  32 3d 30 3a 3a c8 99 22  57 69 6d 70 5f 53 65 74  |2=0::.."Wimp_Set|
000063f0  49 63 6f 6e 53 74 61 74  65 22 2c 2c 62 6c 6b 25  |IconState",,blk%|
00006400  0d 02 cc 05 e1 0d 02 cd  04 0d 02 ce 20 dd f2 72  |............ ..r|
00006410  65 70 6f 72 74 5f 65 72  72 6f 72 20 28 65 72 72  |eport_error (err|
00006420  24 2c 66 61 74 61 6c 25  29 0d 02 cf 34 6d 61 73  |$,fatal%)...4mas|
00006430  6b 25 3d 26 43 33 31 3a  73 74 61 74 65 25 3d 30  |k%=&C31:state%=0|
00006440  3a c8 99 22 48 6f 75 72  67 6c 61 73 73 5f 53 6d  |:.."Hourglass_Sm|
00006450  61 73 68 22 3a 2a 46 58  32 32 39 2c 31 0d 02 d0  |ash":*FX229,1...|
00006460  30 21 62 6c 6b 25 3d 9f  3a 24 28 62 6c 6b 25 2b  |0!blk%=.:$(blk%+|
00006470  34 29 3d 22 45 72 72 6f  72 20 22 2b c3 28 9e 29  |4)="Error "+.(.)|
00006480  2b 22 3a 20 22 2b 65 72  72 24 2b bd 30 0d 02 d1  |+": "+err$+.0...|
00006490  27 c8 99 20 22 57 69 6d  70 5f 52 65 70 6f 72 74  |'.. "Wimp_Report|
000064a0  45 72 72 6f 72 22 2c 62  6c 6b 25 2c 31 2c 74 69  |Error",blk%,1,ti|
000064b0  74 6c 65 25 0d 02 d2 10  e7 20 ac 20 66 61 74 61  |tle%..... . fata|
000064c0  6c 25 20 e1 0d 02 d3 09  dd f2 64 69 65 0d 02 d4  |l% .......die...|
000064d0  2b ee 85 87 3a c8 99 20  22 57 69 6d 70 5f 43 6c  |+...:.. "Wimp_Cl|
000064e0  6f 73 65 44 6f 77 6e 22  2c 68 61 6e 64 25 2c 26  |oseDown",hand%,&|
000064f0  34 42 35 33 34 31 35 34  0d 02 d5 05 e0 0d 02 d6  |4B534154........|
00006500  04 0d 02 d7 13 dd a4 61  6c 65 72 74 28 6f 70 25  |.......alert(op%|
00006510  2c 61 24 29 0d 02 d8 54  62 6c 6b 25 21 26 38 30  |,a$)...Tblk%!&80|
00006520  3d 30 3a 24 28 62 6c 6b  25 2b 26 38 34 29 3d 61  |=0:$(blk%+&84)=a|
00006530  24 2b bd 28 30 29 3a c8  99 22 57 69 6d 70 5f 52  |$+.(0):.."Wimp_R|
00006540  65 70 6f 72 74 45 72 72  6f 72 22 2c 62 6c 6b 25  |eportError",blk%|
00006550  2b 26 38 30 2c 31 36 2b  6f 70 25 2c 74 69 74 6c  |+&80,16+op%,titl|
00006560  65 25 20 b8 20 2c 49 25  0d 02 d9 07 3d 49 25 0d  |e% . ,I%....=I%.|
00006570  02 da 04 0d 02 db 0f dd  f2 73 61 76 65 5f 6f 70  |.........save_op|
00006580  74 73 0d 02 dc 25 ea 85  3a ee 85 ea 3a d9 23 48  |ts...%..:...:.#H|
00006590  25 3a f2 72 65 70 6f 72  74 5f 65 72 72 6f 72 28  |%:.report_error(|
000065a0  f6 24 2c a3 29 3a e1 0d  02 dd 1d 48 25 3d ae 28  |.$,.):.....H%=.(|
000065b0  61 70 70 5f 64 69 72 24  2b 22 2e 4f 70 74 69 6f  |app_dir$+".Optio|
000065c0  6e 73 22 29 0d 02 de 36  e3 20 49 25 3d 31 b8 a9  |ns")...6. I%=1..|
000065d0  28 6f 70 74 5f 69 64 24  29 3a d5 23 48 25 2c 97  |(opt_id$):.#H%,.|
000065e0  28 c1 6f 70 74 5f 69 64  24 2c 49 25 2c 31 29 29  |(.opt_id$,I%,1))|
000065f0  3a ed 3a d5 23 48 25 2c  31 33 0d 02 df 0d e3 20  |:.:.#H%,13..... |
00006600  49 25 3d 38 b8 32 31 0d  02 e0 38 20 21 62 6c 6b  |I%=8.21...8 !blk|
00006610  25 3d 6f 70 74 5f 77 25  3a 62 6c 6b 25 21 34 3d  |%=opt_w%:blk%!4=|
00006620  49 25 3a c8 99 20 22 57  69 6d 70 5f 47 65 74 49  |I%:.. "Wimp_GetI|
00006630  63 6f 6e 53 74 61 74 65  22 2c 2c 62 6c 6b 25 0d  |conState",,blk%.|
00006640  02 e1 1e 20 e3 20 4a 25  3d 32 34 b8 32 37 3a d5  |... . J%=24.27:.|
00006650  23 48 25 2c 62 6c 6b 25  3f 4a 25 3a ed 0d 02 e2  |#H%,blk%?J%:....|
00006660  05 ed 0d 02 e3 48 21 62  6c 6b 25 3d 72 65 61 64  |.....H!blk%=read|
00006670  5f 77 25 3a 62 6c 6b 25  21 34 3d 31 32 3a c8 99  |_w%:blk%!4=12:..|
00006680  20 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  | "Wimp_GetIconSt|
00006690  61 74 65 22 2c 2c 62 6c  6b 25 3a d5 23 48 25 2c  |ate",,blk%:.#H%,|
000066a0  3f 28 62 6c 6b 25 21 32  38 29 0d 02 e4 49 21 62  |?(blk%!28)...I!b|
000066b0  6c 6b 25 3d 77 72 69 74  65 5f 77 25 3a 62 6c 6b  |lk%=write_w%:blk|
000066c0  25 21 34 3d 31 32 3a c8  99 20 22 57 69 6d 70 5f  |%!4=12:.. "Wimp_|
000066d0  47 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 62  |GetIconState",,b|
000066e0  6c 6b 25 3a d5 23 48 25  2c 3f 28 62 6c 6b 25 21  |lk%:.#H%,?(blk%!|
000066f0  32 38 29 0d 02 e5 08 d9  23 48 25 0d 02 e6 05 e1  |28).....#H%.....|
00006700  0d 02 e7 04 0d 02 e8 0f  dd f2 6c 6f 61 64 5f 6f  |..........load_o|
00006710  70 74 73 0d 02 e9 25 ea  85 3a ee 85 ea 20 d9 23  |pts...%..:... .#|
00006720  48 25 3a f2 72 65 70 6f  72 74 5f 65 72 72 6f 72  |H%:.report_error|
00006730  28 f6 24 2c a3 29 3a e1  0d 02 ea 1d 48 25 3d 8e  |(.$,.):.....H%=.|
00006740  28 61 70 70 5f 64 69 72  24 2b 22 2e 4f 70 74 69  |(app_dir$+".Opti|
00006750  6f 6e 73 22 29 0d 02 eb  32 e7 20 48 25 3d 30 20  |ons")...2. H%=0 |
00006760  49 25 3d a4 61 6c 65 72  74 28 31 2c 22 4f 70 74  |I%=.alert(1,"Opt|
00006770  69 6f 6e 73 20 66 69 6c  65 20 6e 6f 74 20 66 6f  |ions file not fo|
00006780  75 6e 64 22 29 3a e1 0d  02 ec 0e 24 62 6c 6b 25  |und"):.....$blk%|
00006790  3d be 23 48 25 0d 02 ed  3b e7 20 24 62 6c 6b 25  |=.#H%...;. $blk%|
000067a0  3c 3e 6f 70 74 5f 69 64  24 20 d9 23 48 25 3a 49  |<>opt_id$ .#H%:I|
000067b0  25 3d a4 61 6c 65 72 74  28 31 2c 22 42 61 64 20  |%=.alert(1,"Bad |
000067c0  4f 70 74 69 6f 6e 73 20  66 69 6c 65 22 29 3a e1  |Options file"):.|
000067d0  0d 02 ee 0d e3 20 49 25  3d 38 b8 32 31 0d 02 ef  |..... I%=8.21...|
000067e0  38 20 21 62 6c 6b 25 3d  6f 70 74 5f 77 25 3a 62  |8 !blk%=opt_w%:b|
000067f0  6c 6b 25 21 34 3d 49 25  3a c8 99 20 22 57 69 6d  |lk%!4=I%:.. "Wim|
00006800  70 5f 47 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_GetIconState",|
00006810  2c 62 6c 6b 25 0d 02 f0  1e 20 e3 20 4a 25 3d 36  |,blk%.... . J%=6|
00006820  34 b8 36 37 3a 62 6c 6b  25 3f 4a 25 3d 9a 23 48  |4.67:blk%?J%=.#H|
00006830  25 3a ed 0d 02 f1 46 20  62 6c 6b 25 21 38 3d 28  |%:....F blk%!8=(|
00006840  62 6c 6b 25 21 32 34 29  82 28 62 6c 6b 25 21 36  |blk%!24).(blk%!6|
00006850  34 29 3a 62 6c 6b 25 21  31 32 3d 30 3a c8 99 20  |4):blk%!12=0:.. |
00006860  22 57 69 6d 70 5f 53 65  74 49 63 6f 6e 53 74 61  |"Wimp_SetIconSta|
00006870  74 65 22 2c 2c 62 6c 6b  25 0d 02 f2 05 ed 0d 02  |te",,blk%.......|
00006880  f3 38 21 62 6c 6b 25 3d  72 65 61 64 5f 77 25 3a  |.8!blk%=read_w%:|
00006890  62 6c 6b 25 21 34 3d 31  32 3a c8 99 20 22 57 69  |blk%!4=12:.. "Wi|
000068a0  6d 70 5f 47 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_GetIconState"|
000068b0  2c 2c 62 6c 6b 25 0d 02  f4 2d 3f 28 62 6c 6b 25  |,,blk%...-?(blk%|
000068c0  21 32 38 29 3d 9a 23 48  25 3a 72 65 61 64 5f 64  |!28)=.#H%:read_d|
000068d0  72 69 76 65 25 3d 3f 28  62 6c 6b 25 21 32 38 29  |rive%=?(blk%!28)|
000068e0  2d 34 38 0d 02 f5 69 62  6c 6b 25 21 38 3d 30 3a  |-48...iblk%!8=0:|
000068f0  62 6c 6b 25 21 31 32 3d  30 3a c8 99 20 22 57 69  |blk%!12=0:.. "Wi|
00006900  6d 70 5f 53 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_SetIconState"|
00006910  2c 2c 62 6c 6b 25 3a 21  62 6c 6b 25 3d 77 72 69  |,,blk%:!blk%=wri|
00006920  74 65 5f 77 25 3a 62 6c  6b 25 21 34 3d 31 32 3a  |te_w%:blk%!4=12:|
00006930  c8 99 20 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |.. "Wimp_GetIcon|
00006940  53 74 61 74 65 22 2c 2c  62 6c 6b 25 0d 02 f6 5e  |State",,blk%...^|
00006950  3f 28 62 6c 6b 25 21 32  38 29 3d 9a 23 48 25 3a  |?(blk%!28)=.#H%:|
00006960  77 72 69 74 65 5f 64 72  69 76 65 25 3d 3f 28 62  |write_drive%=?(b|
00006970  6c 6b 25 21 32 38 29 2d  34 38 3a 62 6c 6b 25 21  |lk%!28)-48:blk%!|
00006980  38 3d 30 3a 62 6c 6b 25  21 31 32 3d 30 3a c8 99  |8=0:blk%!12=0:..|
00006990  20 22 57 69 6d 70 5f 53  65 74 49 63 6f 6e 53 74  | "Wimp_SetIconSt|
000069a0  61 74 65 22 2c 2c 62 6c  6b 25 0d 02 f7 08 d9 23  |ate",,blk%.....#|
000069b0  48 25 0d 02 f8 05 e1 0d  02 f9 04 0d 02 fa 09 dd  |H%..............|
000069c0  f2 61 73 6d 0d 02 fb 0f  de 20 63 6f 64 65 25 20  |.asm..... code% |
000069d0  26 32 30 0d 02 fc 52 e3  20 58 25 3d 30 b8 32 88  |&20...R. X%=0.2.|
000069e0  32 3a 50 25 3d 63 6f 64  65 25 3a 5b 4f 50 54 20  |2:P%=code%:[OPT |
000069f0  58 25 3a 2e 62 20 73 75  62 73 20 31 2c 31 2c 23  |X%:.b subs 1,1,#|
00006a00  31 3a 6d 6f 76 6d 69 20  70 63 2c 31 34 3a 73 74  |1:movmi pc,14:st|
00006a10  72 62 20 32 2c 5b 30 5d  2c 23 31 3a 62 61 6c 20  |rb 2,[0],#1:bal |
00006a20  62 3a 5d 3a ed 0d 02 fd  05 e1 0d 02 fe 04 0d 02  |b:]:............|
00006a30  ff 0f dd a4 63 68 65 63  6b 5f 65 6e 76 0d 03 00  |....check_env...|
00006a40  17 c8 99 20 22 4f 53 5f  47 65 74 45 6e 76 22 20  |... "OS_GetEnv" |
00006a50  b8 20 49 25 0d 03 01 30  e3 20 4a 25 3d 30 b8 31  |. I%...0. J%=0.1|
00006a60  3a f5 3a 49 25 2b 3d 31  3a fd 3f 49 25 3d 33 34  |:.:I%+=1:.?I%=34|
00006a70  84 3f 49 25 3c 33 32 3a  e7 20 3f 49 25 3c 33 32  |.?I%<32:. ?I%<32|
00006a80  3a 3d 22 22 0d 03 02 05  ed 0d 03 03 22 f5 3a 49  |:=""........".:I|
00006a90  25 2b 3d 31 3a fd 20 3f  49 25 3c 3e 33 32 3a e7  |%+=1:. ?I%<>32:.|
00006aa0  20 3f 49 25 3c 33 32 3a  3d 22 22 0d 03 04 21 4a  | ?I%<32:=""...!J|
00006ab0  25 3d 49 25 3a f5 3a 4a  25 2b 3d 31 3a fd 20 3f  |%=I%:.:J%+=1:. ?|
00006ac0  4a 25 3c 33 32 3a 3f 4a  25 3d 31 33 0d 03 05 08  |J%<32:?J%=13....|
00006ad0  3d 24 49 25 0d 03 06 04  0d 03 07 1a dd f2 74 65  |=$I%..........te|
00006ae0  6d 70 6c 61 74 65 73 20  28 69 6e 64 69 72 73 7a  |mplates (indirsz|
00006af0  25 29 0d 03 08 28 de 20  69 6e 64 69 72 25 20 69  |%)...(. indir% i|
00006b00  6e 64 69 72 73 7a 25 3a  45 25 3d 69 6e 64 69 72  |ndirsz%:E%=indir|
00006b10  25 2b 69 6e 64 69 72 73  7a 25 0d 03 09 52 e7 20  |%+indirsz%...R. |
00006b20  72 6f 33 25 3d b9 20 74  24 3d 22 3c 4f 62 65 79  |ro3%=. t$="<Obey|
00006b30  24 44 69 72 3e 2e 52 65  73 6f 75 72 63 65 73 2e  |$Dir>.Resources.|
00006b40  54 65 6d 70 6c 5f 33 22  20 8b 20 74 24 3d 22 3c  |Templ_3" . t$="<|
00006b50  4f 62 65 79 24 44 69 72  3e 2e 52 65 73 6f 75 72  |Obey$Dir>.Resour|
00006b60  63 65 73 2e 54 65 6d 70  6c 5f 32 22 0d 03 0a 1e  |ces.Templ_2"....|
00006b70  c8 99 20 22 57 69 6d 70  5f 4f 70 65 6e 54 65 6d  |.. "Wimp_OpenTem|
00006b80  70 6c 61 74 65 22 2c 2c  74 24 0d 03 0b 40 c8 99  |plate",,t$...@..|
00006b90  20 22 57 69 6d 70 5f 4c  6f 61 64 54 65 6d 70 6c  | "Wimp_LoadTempl|
00006ba0  61 74 65 22 2c 2c 62 75  66 66 65 72 25 2c 69 6e  |ate",,buffer%,in|
00006bb0  64 69 72 25 2c 45 25 2c  2d 31 2c 22 69 6e 66 6f  |dir%,E%,-1,"info|
00006bc0  22 2c 30 20 b8 20 2c 2c  52 25 0d 03 0c 2d c8 99  |",0 . ,,R%...-..|
00006bd0  20 22 57 69 6d 70 5f 43  72 65 61 74 65 57 69 6e  | "Wimp_CreateWin|
00006be0  64 6f 77 22 2c 2c 62 75  66 66 65 72 25 20 b8 20  |dow",,buffer% . |
00006bf0  69 6e 66 6f 5f 77 25 0d  03 0d 3c c8 99 20 22 57  |info_w%...<.. "W|
00006c00  69 6d 70 5f 4c 6f 61 64  54 65 6d 70 6c 61 74 65  |imp_LoadTemplate|
00006c10  22 2c 2c 62 75 66 66 65  72 25 2c 52 25 2c 45 25  |",,buffer%,R%,E%|
00006c20  2c 2d 31 2c 22 72 65 61  64 22 2c 30 20 b8 20 2c  |,-1,"read",0 . ,|
00006c30  2c 52 25 0d 03 0e 2d c8  99 20 22 57 69 6d 70 5f  |,R%...-.. "Wimp_|
00006c40  43 72 65 61 74 65 57 69  6e 64 6f 77 22 2c 2c 62  |CreateWindow",,b|
00006c50  75 66 66 65 72 25 20 b8  20 72 65 61 64 5f 77 25  |uffer% . read_w%|
00006c60  0d 03 0f 3d c8 99 20 22  57 69 6d 70 5f 4c 6f 61  |...=.. "Wimp_Loa|
00006c70  64 54 65 6d 70 6c 61 74  65 22 2c 2c 62 75 66 66  |dTemplate",,buff|
00006c80  65 72 25 2c 52 25 2c 45  25 2c 2d 31 2c 22 77 72  |er%,R%,E%,-1,"wr|
00006c90  69 74 65 22 2c 30 20 b8  20 2c 2c 52 25 0d 03 10  |ite",0 . ,,R%...|
00006ca0  2e c8 99 20 22 57 69 6d  70 5f 43 72 65 61 74 65  |... "Wimp_Create|
00006cb0  57 69 6e 64 6f 77 22 2c  2c 62 75 66 66 65 72 25  |Window",,buffer%|
00006cc0  20 b8 20 77 72 69 74 65  5f 77 25 0d 03 11 3f c8  | . write_w%...?.|
00006cd0  99 20 22 57 69 6d 70 5f  4c 6f 61 64 54 65 6d 70  |. "Wimp_LoadTemp|
00006ce0  6c 61 74 65 22 2c 2c 62  75 66 66 65 72 25 2c 52  |late",,buffer%,R|
00006cf0  25 2c 45 25 2c 2d 31 2c  22 6f 70 74 69 6f 6e 73  |%,E%,-1,"options|
00006d00  22 2c 30 20 b8 20 2c 2c  52 25 0d 03 12 2c c8 99  |",0 . ,,R%...,..|
00006d10  20 22 57 69 6d 70 5f 43  72 65 61 74 65 57 69 6e  | "Wimp_CreateWin|
00006d20  64 6f 77 22 2c 2c 62 75  66 66 65 72 25 20 b8 20  |dow",,buffer% . |
00006d30  6f 70 74 5f 77 25 0d 03  13 3e c8 99 20 22 57 69  |opt_w%...>.. "Wi|
00006d40  6d 70 5f 4c 6f 61 64 54  65 6d 70 6c 61 74 65 22  |mp_LoadTemplate"|
00006d50  2c 2c 62 75 66 66 65 72  25 2c 52 25 2c 45 25 2c  |,,buffer%,R%,E%,|
00006d60  2d 31 2c 22 73 61 76 65  61 73 22 2c 30 20 b8 20  |-1,"saveas",0 . |
00006d70  2c 2c 52 25 0d 03 14 2f  c8 99 20 22 57 69 6d 70  |,,R%.../.. "Wimp|
00006d80  5f 43 72 65 61 74 65 57  69 6e 64 6f 77 22 2c 2c  |_CreateWindow",,|
00006d90  62 75 66 66 65 72 25 20  b8 20 73 61 76 65 61 73  |buffer% . saveas|
00006da0  5f 77 25 0d 03 15 1b c8  99 20 22 57 69 6d 70 5f  |_w%...... "Wimp_|
00006db0  43 6c 6f 73 65 54 65 6d  70 6c 61 74 65 22 0d 03  |CloseTemplate"..|
00006dc0  16 57 f2 73 65 74 5f 73  74 72 28 69 6e 66 6f 5f  |.W.set_str(info_|
00006dd0  77 25 2c 30 2c 76 65 72  73 69 6f 6e 24 29 3a f2  |w%,0,version$):.|
00006de0  73 65 74 5f 73 74 72 28  69 6e 66 6f 5f 77 25 2c  |set_str(info_w%,|
00006df0  31 2c 63 70 72 74 24 29  3a f2 73 65 74 5f 73 74  |1,cprt$):.set_st|
00006e00  72 28 69 6e 66 6f 5f 77  25 2c 32 2c 70 75 72 70  |r(info_w%,2,purp|
00006e10  6f 73 65 24 29 0d 03 17  05 e1 0d 03 18 04 0d 03  |ose$)...........|
00006e20  19 10 dd f2 69 6e 69 74  69 61 6c 69 73 65 0d 03  |....initialise..|
00006e30  1a 38 c8 99 20 22 57 69  6d 70 5f 49 6e 69 74 69  |.8.. "Wimp_Initi|
00006e40  61 6c 69 73 65 22 2c 32  30 30 2c 26 34 42 35 33  |alise",200,&4B53|
00006e50  34 31 35 34 2c 22 43 6f  70 69 65 72 22 20 b8 20  |4154,"Copier" . |
00006e60  2c 68 61 6e 64 25 0d 03  1b 5b de 20 62 6c 6b 25  |,hand%...[. blk%|
00006e70  20 26 31 34 30 2c 20 74  69 74 6c 65 25 20 33 32  | &140, title% 32|
00006e80  2c 20 73 70 72 5f 73 74  72 25 20 31 36 2c 20 73  |, spr_str% 16, s|
00006e90  70 72 69 74 65 25 20 31  36 2c 20 73 61 76 65 5f  |prite% 16, save_|
00006ea0  73 70 72 69 74 65 25 20  31 36 2c 20 64 72 65 63  |sprite% 16, drec|
00006eb0  25 20 26 35 30 2c 20 73  74 72 75 63 25 20 26 38  |% &50, struc% &8|
00006ec0  30 0d 03 1c 23 de 20 69  64 65 6e 74 25 28 32 30  |0...#. ident%(20|
00006ed0  29 2c 20 74 72 61 63 6b  5f 62 75 66 66 25 20 26  |), track_buff% &|
00006ee0  31 39 30 30 0d 03 1d 4a  24 74 69 74 6c 65 25 3d  |1900...J$title%=|
00006ef0  22 43 6f 70 69 65 72 22  3a 24 73 70 72 5f 73 74  |"Copier":$spr_st|
00006f00  72 25 3d 22 4e 6f 6e 65  22 3a 24 73 70 72 69 74  |r%="None":$sprit|
00006f10  65 25 3d 22 73 21 63 6f  70 69 65 72 22 3a 24 73  |e%="s!copier":$s|
00006f20  61 76 65 5f 73 70 72 69  74 65 25 3d 22 22 0d 03  |ave_sprite%=""..|
00006f30  1e 38 ea 20 85 3a ee 85  ea 20 f2 72 65 70 6f 72  |.8. .:... .repor|
00006f40  74 5f 65 72 72 6f 72 28  f6 24 2b 22 20 44 75 72  |t_error(.$+" Dur|
00006f50  69 6e 67 20 69 6e 69 74  69 61 6c 69 73 61 74 69  |ing initialisati|
00006f60  6f 6e 22 2c b9 29 0d 03  1f 4f c8 99 20 22 4f 53  |on",.)...O.. "OS|
00006f70  5f 52 65 61 64 56 61 72  56 61 6c 22 2c 22 4f 62  |_ReadVarVal","Ob|
00006f80  65 79 24 44 69 72 22 2c  62 6c 6b 25 2c 32 35 36  |ey$Dir",blk%,256|
00006f90  2c 30 2c 33 20 b8 20 2c  2c 49 25 3a 62 6c 6b 25  |,0,3 . ,,I%:blk%|
00006fa0  3f 49 25 3d 31 33 3a 61  70 70 5f 64 69 72 24 3d  |?I%=13:app_dir$=|
00006fb0  24 62 6c 6b 25 0d 03 20  22 e7 20 a6 28 2d 32 35  |$blk%.. ". .(-25|
00006fc0  36 29 3e 31 36 32 20 72  6f 33 25 3d b9 20 8b 20  |6)>162 ro3%=. . |
00006fd0  72 6f 33 25 3d a3 3a 0d  03 21 43 e7 20 a6 28 2d  |ro3%=.:..!C. .(-|
00006fe0  33 29 20 e7 20 a6 28 2d  35 30 29 20 49 25 3d a4  |3) . .(-50) I%=.|
00006ff0  61 6c 65 72 74 28 31 2c  22 46 6f 72 63 69 6e 67  |alert(1,"Forcing|
00007000  20 52 69 73 63 4f 53 20  32 20 76 65 72 73 69 6f  | RiscOS 2 versio|
00007010  6e 22 29 3a 72 6f 33 25  3d a3 0d 03 22 52 6d 65  |n"):ro3%=..."Rme|
00007020  6d 73 7a 25 3d 93 2d 90  3a 62 75 66 66 65 72 25  |msz%=.-.:buffer%|
00007030  3d 93 3a e7 20 a4 77 6b  73 70 63 28 26 32 30 30  |=.:. .wkspc(&200|
00007040  30 29 3d a3 3a 85 20 2d  31 2c 22 4e 6f 74 20 65  |0)=.:. -1,"Not e|
00007050  6e 6f 75 67 68 20 6d 65  6d 6f 72 79 20 74 6f 20  |nough memory to |
00007060  72 75 6e 20 21 43 6f 70  69 65 72 22 0d 03 23 3c  |run !Copier"..#<|
00007070  f2 74 65 6d 70 6c 61 74  65 73 28 26 33 38 30 29  |.templates(&380)|
00007080  3a f2 61 73 6d 3a 69 63  6f 6e 25 3d a4 69 63 6f  |:.asm:icon%=.ico|
00007090  6e 62 61 72 3a 6d 61 73  6b 25 3d 25 31 31 30 30  |nbar:mask%=%1100|
000070a0  30 30 31 31 30 30 30 31  0d 03 24 4d 72 65 61 64  |00110001..$Mread|
000070b0  5f 64 72 69 76 65 25 3d  30 3a 77 72 69 74 65 5f  |_drive%=0:write_|
000070c0  64 72 69 76 65 25 3d 30  3a 73 74 61 74 65 25 3d  |drive%=0:state%=|
000070d0  30 3a 73 65 71 25 3d 30  3a 63 68 61 6e 67 65 25  |0:seq%=0:change%|
000070e0  3d 30 3a 77 5f 6f 70 25  3d a3 3a 63 68 61 6e 67  |=0:w_op%=.:chang|
000070f0  65 64 25 3d 34 0d 03 25  23 6f 70 74 5f 69 64 24  |ed%=4..%#opt_id$|
00007100  3d 22 43 6f 70 69 65 72  20 20 56 31 2e 30 20 20  |="Copier  V1.0  |
00007110  4f 70 74 69 6f 6e 73 22  0d 03 26 3d c8 99 22 4f  |Options"..&=.."O|
00007120  53 5f 46 69 6c 65 22 2c  31 33 2c 61 70 70 5f 64  |S_File",13,app_d|
00007130  69 72 24 2b 22 2e 4f 70  74 69 6f 6e 73 22 20 b8  |ir$+".Options" .|
00007140  20 46 25 3a e7 20 46 25  3d 31 20 f2 6c 6f 61 64  | F%:. F%=1 .load|
00007150  5f 6f 70 74 73 0d 03 27  30 c8 99 20 22 41 44 46  |_opts..'0.. "ADF|
00007160  53 5f 44 72 69 76 65 73  22 20 b8 20 2c 6d 61 78  |S_Drives" . ,max|
00007170  5f 64 72 69 76 65 25 3a  6d 61 78 5f 64 72 69 76  |_drive%:max_driv|
00007180  65 25 2d 3d 31 0d 03 28  40 21 62 6c 6b 25 3d 73  |e%-=1..(@!blk%=s|
00007190  61 76 65 61 73 5f 77 25  3a 62 6c 6b 25 21 34 3d  |aveas_w%:blk%!4=|
000071a0  37 32 3a 62 6c 6b 25 21  38 3d 2d 39 32 3a 62 6c  |72:blk%!8=-92:bl|
000071b0  6b 25 21 31 32 3d 31 34  34 3a 62 6c 6b 25 21 31  |k%!12=144:blk%!1|
000071c0  36 3d 2d 32 34 0d 03 29  3c 62 6c 6b 25 21 32 30  |6=-24..)<blk%!20|
000071d0  3d 26 36 31 30 32 3a 62  6c 6b 25 21 32 34 3d 73  |=&6102:blk%!24=s|
000071e0  61 76 65 5f 73 70 72 69  74 65 25 3a 62 6c 6b 25  |ave_sprite%:blk%|
000071f0  21 32 38 3d 31 3a 62 6c  6b 25 21 33 32 3d 26 34  |!28=1:blk%!32=&4|
00007200  30 0d 03 2a 2a c8 99 20  22 57 69 6d 70 5f 43 72  |0..**.. "Wimp_Cr|
00007210  65 61 74 65 49 63 6f 6e  22 2c 2c 62 6c 6b 25 20  |eateIcon",,blk% |
00007220  b8 20 73 70 72 69 74 65  5f 68 25 0d 03 2b 15 f2  |. sprite_h%..+..|
00007230  6d 61 69 6e 5f 6d 65 6e  75 3a f2 63 6c 65 61 72  |main_menu:.clear|
00007240  0d 03 2c 32 66 69 6c 65  6e 61 6d 65 24 3d a4 63  |..,2filename$=.c|
00007250  68 65 63 6b 5f 65 6e 76  3a e7 20 66 69 6c 65 6e  |heck_env:. filen|
00007260  61 6d 65 24 3e 22 22 20  f2 69 6e 69 74 5f 6c 6f  |ame$>"" .init_lo|
00007270  61 64 0d 03 2d 05 e1 0d  03 2e 04 0d ff           |ad..-........|
0000727d