home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / t / tapefit / !TapeFit / UnCrunched (.txt) < prev   
Encoding:
RISC OS BBC BASIC V Source  |  1996-02-25  |  20.5 KB  |  923 lines

  1.  >!RunImage
  2. '_version$ = "0.03/1.21 (25 Feb 96)"
  3. taskname$="TapeFit"
  4. dirname$="<TapeFit$dir>"
  5. iconname$="!TapeFit"
  6. menuname$="TapeFit"
  7. filetype%=&FFF
  8. os3%=
  9.  os3%=0 
  10.  0,"TapeFit's front end requires RISC OS 3.00 or later. You can still use tapefit from the command line though."
  11. nagg(
  12. $+" at line "+
  13.  taskid% 8:$taskid%="TASK"
  14. "Wimp_Initialise",200,!taskid%,taskname$ 
  15.  version%,taskhand%
  16.  block% 1024,ibm% 1024,winm% 1024,wblk% 2048
  17. ;*IF "<TapeFit$load>" = "" then set TapeFit$load |<none>
  18. ,loadfile$=
  19. OS_ReadVarVal("TapeFit$load")
  20. "UNSET TapeFit$load"
  21. "Hourglass_On"
  22. sprites
  23. templates
  24. initmenus
  25. initwindows
  26. iconid%=
  27. "Hourglass_Off"
  28. pollloop
  29. pollloop
  30. "Wimp_Poll",1,block% 
  31.  reason%
  32.  reason% 
  33.  2 : 
  34. "Wimp_OpenWindow",,block%
  35.  3 : 
  36.  "Wimp_CloseWindow",,block%
  37.  9 : 
  38. menuclick(block%)
  39.  6 : 
  40. iconclicked(block%!12,block%!16)
  41.  8 : 
  42. keypressed(block%!24)
  43.  17,18:
  44.  7 : 
  45. openpain
  46. 11  !wblk%=main%:
  47. "Wimp_GetWindowState",,wblk%
  48. 25  x%=wblk%!4:y%=wblk%!8:xx%=wblk%!12:yy%=wblk%!16
  49. 31  !wblk%=pain%:
  50. "Wimp_GetWindowState",,wblk%
  51. 4/  ww%=wblk%!12-wblk%!4:hh%=wblk%!16-wblk%!8
  52. 5.  wblk%!4=x%+painxof%:wblk%!12=wblk%!4+ww%
  53.   wblk%!16=yy%+painyof%
  54.   wblk%!8=wblk%!16-hh%
  55. "Wimp_OpenWindow",,wblk%
  56.   !wblk%=main%
  57. :5  wblk%!4=x%:wblk%!8=y%:wblk%!12=xx%:wblk%!16=yy%
  58.   wblk%!28=pain%
  59. "Wimp_OpenWindow",,wblk%
  60. mainmoved
  61.   x%=block%!4:y%=block%!8
  62. A!  xx%=block%!12:yy%=block%!16
  63.   infrontof%=block%!28
  64. C1  !wblk%=pain%:
  65. "Wimp_GetWindowState",,wblk%
  66. D/  ww%=wblk%!12-wblk%!4:hh%=wblk%!16-wblk%!8
  67. E.  wblk%!4=x%+painxof%:wblk%!12=wblk%!4+ww%
  68.   wblk%!16=yy%+painyof%
  69.   wblk%!8=wblk%!16-hh%
  70.   wblk%!28=infrontof%
  71. "Wimp_OpenWindow",,wblk%
  72.   !wblk%=main%
  73. K5  wblk%!4=x%:wblk%!8=y%:wblk%!12=xx%:wblk%!16=yy%
  74.   wblk%!28=pain%
  75. "Wimp_OpenWindow",,wblk%
  76. keypressed(code%)
  77.  code%<>13 
  78. "Wimp_ProcessKey",code%:
  79. "Wimp_GetCaretPosition",,wblk%
  80. S"  window%=!wblk%:icon%=wblk%!4
  81. T.  buttons%=4:
  82.  simulate select by default!
  83.  window% 
  84. VD    
  85.  save% : 
  86. selected(save%,0,-1):
  87. saveok:
  88. selected(save%,0,0)
  89. W$    
  90. "Wimp_ProcessKey",code%
  91. nagg(nagg$)
  92. "Wimp_ReportError","    "+nagg$,1<<4,taskname$
  93. block%!0=-1
  94. block%!4=0
  95. block%!8=0 : 
  96.  Y DIRECTION
  97. c block%!12=96 : 
  98.  X DIRECTION
  99. block%!16=76
  100. block%!20=&2002
  101. $(block%+24)=iconname$
  102.  "Wimp_CreateIcon",,block% 
  103.  icon%
  104. =icon%
  105. nagg("Error in death throes!"):
  106.  b%=1 
  107.  (b%?fontarray%)>0 
  108. n     
  109.  i%=1 
  110.  (b%?fontarray%)
  111.       
  112. "Font_LoseFont",b%
  113. p        
  114. "Wimp_CloseDown",taskhand%,!taskid%
  115. click_type
  116. c%=block%!8
  117.  c%=4 
  118. select
  119.  c%=2 
  120. popupmenu(
  121.  c%=1 
  122. adjust
  123.  block%!16 
  124. saveack
  125. filedrop
  126. loadack
  127. dataopen
  128. filedrop
  129.  (block%!20=main%) 
  130.  block%!40=&FFF 
  131. checkload(
  132. file(block%+44))
  133. file(where%)
  134. file$=""
  135.  ?where%
  136. file$+=
  137. (?where%)
  138. where%+=1
  139. =file$
  140. initmenus
  141. "  i%=
  142. initmenu(ibm%,menuname$)
  143. '  i%=
  144. additem(i%,"Info",0,inf_win%)
  145. "  i%=
  146. additem(i%,"Quit",-1,-1)
  147. #  i%=
  148. initmenu(winm%,menuname$)
  149. '  i%=
  150. additem(i%,"Info",0,inf_win%)
  151. "  i%=
  152. additem(i%,"Quit",-1,-1)
  153. popupmenu(bar%)
  154.  "Wimp_GetPointerInfo",,block%
  155. 2q=!block%:w=block%!4:w%=block%!12:i%=block%!16
  156.  bar% 
  157.  w=96+44*2 
  158.  w+=22
  159.  bar% 
  160.  menu%=ibm% 
  161.  menu%=winm%
  162.  "Wimp_CreateMenu",,menu%,q-64,w
  163. &lastmenu%=menu%:menx%=q-64:meny%=w
  164. templates
  165.  fontarray% 256
  166.  b%=0 
  167.  252 
  168. b%!fontarray%=0
  169.  infb% 640,infi% 256
  170.  autb% 1024,auti% 300
  171.  savb% 512,savi% 400
  172.  maib% 4096,maii% 2048
  173. "Wimp_OpenTemplate",,dirname$+".templates"
  174. :inf_win%=
  175. template("info",infb%,infi%,256,-1,sprites%)
  176. >aut_win%=
  177. template("author_m",autb%,auti%,300,-1,sprites%)
  178. 7save%=
  179. template("save",savb%,savi%,400,-1,sprites%)
  180. 8main%=
  181. template("main",maib%,maii%,2048,-1,sprites%)
  182. "Wimp_CloseTemplate"
  183. template(name$,buf%,ind%,len%,fonts%,sprs%)
  184. "Wimp_LoadTemplate",,buf%,ind%,ind%+len%,fonts%,name$,0
  185. buf%!64=sprs%
  186. "Wimp_CreateWindow",,buf% 
  187.  handle%
  188. =handle%
  189. sprites
  190. sfile$="Sprites"+
  191. suffix
  192.  file%=
  193. (dirname$+"."+sfile$)
  194.  file%=0 
  195. nagg("Can't find spritefile!"):
  196. #file%)+128
  197. #file%
  198.  sprites% S%
  199. sprites%!0=S%
  200. sprites%!8=16
  201. "OS_SpriteOp",9+256,sprites%
  202. "OS_SpriteOp",10+256,sprites%,dirname$+"."+sfile$
  203. select
  204. saveoldconfig
  205. pii(main%,39,"Welcome to TapeFit 0.03/1.21")
  206. openwindow(main%)
  207. adjust
  208. openwindow(aut_win%)
  209. openwindow(window%)
  210. !wblk%=window%
  211. "Wimp_GetWindowState",,wblk%
  212. wblk%!28=-1
  213. flags%=wblk%!32
  214.  (flags% 
  215.  1<<16)=0 
  216.   !wblk%=window%
  217. "Wimp_GetWindowInfo",,wblk%
  218. /  mwid%=
  219. read_mode(-1,11)<<
  220. read_mode(-1,4)
  221. /  mhig%=
  222. read_mode(-1,12)<<
  223. read_mode(-1,5)
  224. !  width%=(wblk%!12)-(wblk%!4)
  225. "  height%=(wblk%!16)-(wblk%!8)
  226. "  wblk%!4=mwid% 
  227. 2 - width% 
  228.   wblk%!12=(wblk%!4)+width%
  229. $  wblk%!8=mhig% 
  230. 2 - height% 
  231.   wblk%!16=wblk%!8+height%
  232.   wblk%!28=-1
  233. "Wimp_OpenWindow",,wblk%
  234. pii(window%,icon%,text$)
  235. !wblk%=window%
  236. wblk%!4=icon%
  237. "Wimp_GetIconState",,wblk%
  238. %ot$=$(wblk%!28):$(wblk%!28)=text$
  239. wblk%!8=0
  240. wblk%!12=0
  241.  ot$<>text$ 
  242. "Wimp_SetIconState",,wblk%
  243. pii2(window%,icon%,text$)
  244. !wblk%=window%
  245. wblk%!4=icon%
  246. "Wimp_GetIconState",,wblk%
  247. $(wblk%!28)=text$
  248. contents(window%,icon%)
  249. !wblk%=window%
  250. wblk%!4=icon%
  251. "Wimp_GetIconState",,wblk%
  252. =$(wblk%!28)
  253. shade(window%,icon%,shade%)
  254. !wblk%=window%
  255. wblk%!4=icon%
  256. "Wimp_GetIconState",,wblk%
  257. wblk%!12=1<<22
  258. wblk%!8=(-shade%)<<22
  259. "Wimp_SetIconState",,wblk%
  260. rjustify(window%,icon%,yn%)
  261. !wblk%=window%
  262. wblk%!4=icon%
  263. "Wimp_GetIconState",,wblk%
  264. wblk%!12=1<<9
  265. wblk%!8=(-yn%)<<9
  266. "Wimp_SetIconState",,wblk%
  267. closewindow(window%)
  268. !wblk%=window%
  269. "Wimp_CloseWindow",,wblk%
  270. output(sprite$)
  271.  sprite$="" 
  272. "OS_SpriteOp",or0%,or1%,or2%,or3%
  273. "OS_SpriteOp",256+60,sprites%,sprite$,0 
  274.  or0%,or1%,or2%,or3%
  275. changeval(window%,icon%,to$)
  276. !wblk%=window%
  277. wblk%!4=icon%
  278. "Wimp_GetIconState",,wblk%
  279. $(wblk%!32)=to$
  280. wblk%!8=0
  281. wblk%!12=0
  282. "Wimp_SetIconState",,wblk%
  283. selected(window%,icon%,well%)
  284. !wblk%=window%
  285. wblk%!4=icon%
  286. wblk%!12=1<<21
  287. wblk%!8=(-well%)<<21
  288. "Wimp_SetIconState",,wblk%
  289. isselected(win%,icon%)
  290. !wblk%=win%:wblk%!4=icon%
  291. "Wimp_GetIconState",,wblk%
  292. =((wblk%!24) 
  293.  1<<21)<>0
  294. buttontype(window%,icon%,bt%)
  295. !wblk%=window%
  296. wblk%!4=icon%
  297. wblk%!12=%1111<<12
  298. wblk%!8=bt%<<12
  299. "Wimp_SetIconState",,wblk%
  300. menuselection(blk%,menu%)
  301. "Wimp_DecodeMenu",,menu%,blk%,wblk%+64
  302. =$(wblk%+64)
  303. menuclick(brtnd%)
  304. C,  item$=
  305. menuselection(brtnd%,lastmenu%)
  306.  PROCnagg(item$)
  307.  item$ 
  308.  "Quit" : 
  309. G@    
  310.  "Info" : 
  311. "Wimp_CreateMenu",,-1:
  312. openwindow(aut_win%)
  313.  "Save" : 
  314. saveok
  315. openwindowxy(window%,x%,y%)
  316. !wblk%=window%
  317. "Wimp_GetWindowState",,wblk%
  318.   !wblk%=window%
  319. "Wimp_GetWindowInfo",,wblk%
  320. Q!  width%=(wblk%!12)-(wblk%!4)
  321. R   hite%=(wblk%!16)-(wblk%!8)
  322.   wblk%!4=x%
  323.   wblk%!12=(wblk%!4)+width%
  324.   wblk%!16=y%
  325.   wblk%!8=(wblk%!16)-hite%
  326.   wblk%!28=-1
  327. "Wimp_OpenWindow",,wblk%
  328. saveclicked(xx%,yy%)
  329. openwindowxy(save%,xx%,yy%)
  330. initwindows
  331. pii(inf_win%,3,_version$)
  332. pii(main%,39,"Welcome to TapeFit 0.03/1.21")
  333. b#  a%=
  334. ("<tapefit$dir>.Choices")
  335. d*     input_keyboard%=(
  336. #a%="Keyboard")
  337.      file_input$=GET$#a%
  338.      file_input$=""
  339. g'     output_screen%=(
  340. #a%="Screen")
  341.      file_output$=GET$#a%
  342.      file_output$=""
  343. j%     shuffle_on%=(
  344. #a%="Shuffle")
  345.      shuffle%=
  346. l)     tolerance_on%=(
  347. #a%="Tolerance")
  348.      tolerance%=
  349.      gaps_on%=(
  350. #a%="Gaps")
  351.      gaps%=
  352.      tapesize%=
  353. q#     autorun%=(
  354. #a%="Auto Run")
  355.      
  356.     input_keyboard%=
  357.     file_input$=""
  358.     output_screen%=
  359.     file_output$=""
  360.     shuffle%=512
  361.     tolerance%=30
  362.     gaps%=3
  363.     tapesize%=90
  364.     tolerance_on%=
  365.     shuffle_on%=
  366.     gaps_on%=
  367.     autorun%=
  368. pii(save%,1,file_output$)
  369. pii(main%,4,file_input$)
  370. pii(main%,9,file_output$)
  371. pii(main%,24,
  372. (shuffle%))
  373. pii(main%,25,
  374. (tolerance%))
  375. pii(main%,13,
  376. (tapesize%))
  377. pii(main%,33,
  378. (gaps%))
  379. update_main_greys
  380. loadack
  381. block%!12=block%!8
  382. block%!16=4
  383.  "Wimp_SendMessage",19,block%,block%!4
  384. saveack
  385. name$=
  386. file(block%+44)
  387. leafname(name$)="" 
  388.  NO FILE NAME!
  389. block%!16=3
  390. "Wimp_SendMessage",17,block%,block%!4
  391. pii(save%,1,name$)
  392. saveok
  393. saveok
  394. closewindow(save%)
  395. "Wimp_CreateMenu",,-1
  396.  filename$=
  397. contents(save%,1)
  398. savefile(filename$)
  399. startdrag(window%,icon%)
  400. solid%=
  401. usedragasprite
  402. block%!0=window%
  403.  "Wimp_GetWindowState",,block%
  404. wx%=block%!4-block%!20
  405. wy%=block%!16-block%!24
  406. block%!4=icon%
  407.  "Wimp_GetIconState",,block%
  408. block%!0=window%
  409. block%!4=5
  410. block%!8+=wx%
  411. block%!12+=wy%
  412. block%!16+=wx%
  413. block%!20+=wy%-2
  414. block%!24=0
  415. block%!28=0
  416. 6block%!32=(
  417. read_mode(-1,11)+1)*2^
  418. read_mode(-1,4)
  419. 6block%!36=(
  420. read_mode(-1,12)+1)*2^
  421. read_mode(-1,5)
  422.  solid% 
  423.   spr$="file_"+
  424. ~filetype%
  425. "DragASprite_Start",%10001010,1,spr$,block%+8
  426.   soliddragon%=
  427.  "Wimp_DragBox",,block%
  428.   soliddragon%=
  429. read_mode(mode%,var%)
  430.  "OS_ReadModeVariable",mode%,var% 
  431.  ,,value%
  432. =value%
  433.  soliddragon% 
  434. "DragASprite_Stop"
  435.  "Wimp_GetPointerInfo",,block%
  436. mx%=block%!0
  437. my%=block%!4
  438. window%=block%!12
  439.  window%<1 
  440. 'name$=
  441. leafname(
  442. contents(save%,1))
  443. #block%!0=44+((
  444.  name$ 
  445.  4)+1)*4
  446. block%!16=1
  447. block%!20=window%
  448. block%!24=-1
  449. block%!28=mx%
  450. block%!32=my%
  451. block%!36=&100
  452. block%!40=filetype%
  453. $(block%+44)=name$+
  454.  "Wimp_SendMessage",17,block%,window%
  455. leafname(name$)
  456. leaf$=""
  457.  name$<>"" 
  458. name$,1)<>"."
  459.   leaf$=
  460. name$,1)+leaf$
  461.   name$=
  462. name$)
  463. =leaf$
  464. pad(num%)
  465. "   "+
  466. (num%),4)
  467. "OS_Module",20,0,-1 
  468.  ,,,name$,,,v%
  469. ,=(name$="UtilityModule" 
  470.  v%>=&30000)<>0
  471. usedragasprite
  472. "OS_Byte",161,&1C 
  473.  ,,value%
  474. =(value% 
  475.  2)<>0 
  476.  os3%
  477. filedrag
  478. startdrag(save%,2)
  479. dataopen
  480. checkload(name$)
  481. loadfile(name$)
  482. linef(
  483.  a$,l%)
  484.  ll%,b$
  485.   b$=
  486. a$,l%)
  487. (b$)=l% 
  488. *    
  489. ".,! ?):%;",
  490. b$,1))=0 
  491.  b$<>""
  492.       b$=
  493. (b$)-1)
  494.         
  495.  b$="" 
  496. a$,l%)
  497.   a$=
  498. (a$)-
  499. (b$))
  500. b$,1)=" " 
  501. (b$)-1)
  502.  DEFFNquery(q$,a$,b$)
  503. "Wimp_ReportError","    "+q$+" OK="+b$+" Cancel="+a$,3 
  504.  ,bob%
  505. =bob%=1
  506. query(q$,a$,b$)
  507. *  qq$=
  508. linef(q$,32):
  509. pii(query%,3,qq$)
  510. *  qq$=
  511. linef(q$,32):
  512. pii(query%,4,qq$)
  513. *  qq$=
  514. linef(q$,40):
  515. pii(query%,5,qq$)
  516. *  qq$=
  517. linef(q$,40):
  518. pii(query%,6,qq$)
  519. pii(query%,2,a$):
  520. pii(query%,7,b$)
  521. openwindow(query%)
  522.   inquire%=
  523. pollloop
  524.  inquire%=
  525. =inqbut%
  526. loadfile(name$)
  527. pii(main%,4,name$)
  528.    file_input$=name$
  529.    input_keyboard%=
  530. update_main_greys
  531. open(window%)
  532. !wblk%=window%
  533. "Wimp_GetWindowState",,wblk%
  534. wblk%!28=-1
  535. flags%=wblk%!32
  536. =(flags% 
  537.  1<<16)<>0
  538. caretto(win%,icn%)
  539.     l%=
  540. contents(win%,icn%))
  541. open(win%) 
  542. "Wimp_SetCaretPosition",win%,icn%,-1,-1,-1,l%
  543. updatewindow(window%)
  544. "Wimp_ForceRedraw",window%,0,-1E9,1E9,0
  545. OS_ReadVarVal(A$)
  546.  "OS_ReadVarVal",A$,block%,128,0,3 
  547.  ,,L :A$=""
  548.  a= 0 
  549. A$=A$+
  550. (block%!a)
  551. iconclicked(window%,icon%)
  552. buttons%=block%!8
  553.  window%<0 
  554.  icon%=iconid% 
  555. click_type:
  556.  (block%!8)=2 
  557.  window%=-2 
  558. popupmenu(icon%=iconid%):
  559.  window%=main% 
  560. popupmenu(
  561.  painflag% 
  562.  window%=pain% 
  563. popupmenu(
  564.  window% 
  565.  save% : 
  566.  icon% 
  567. :&    
  568.  2 : 
  569.  buttons%>=16 
  570. filedrag
  571.  0 : 
  572. saveok
  573. <.    
  574.  3 : 
  575. closewindow(save%):dieonsave%=
  576.  aut_win% : 
  577.  icon%=14 
  578. closewindow(aut_win%)
  579.  inf_win% : 
  580.  icon%=2 
  581. "Wimp_CreateMenu",,-1:
  582. openwindow(aut_win%)
  583.  main% :
  584.      
  585.  icon% 
  586. BK        
  587.  2,3 : input_keyboard%=
  588. isselected(main%,3):
  589. update_main_greys
  590. CJ        
  591.  7,8 : output_screen%=
  592. isselected(main%,8):
  593. update_main_greys
  594. DH        
  595.  22  : shuffle_on%=
  596. isselected(main%,22):
  597. update_main_greys
  598. EJ        
  599.  23  : tolerance_on%=
  600. isselected(main%,23):
  601. update_main_greys
  602. F!        
  603.  10  : 
  604. popupsavebox
  605. G!        
  606.  14  : 
  607. tapesize(-1)
  608. H!        
  609.  15  : 
  610. tapesize(+1)
  611. I5        
  612.  16,17,18,19 : 
  613. presettapesize(icon%-15)
  614. J,        
  615.  29  : 
  616. cancelclicked(buttons%)
  617. K*        
  618.  30  : 
  619. saveoptions(buttons%)
  620.         
  621.  31  : 
  622. gogogo
  623. M2        
  624.  35  : autorun%=
  625. isselected(main%,35)
  626. N%        
  627.  36,37,38 : 
  628. help(icon%)
  629. OE        
  630.  32  : gaps_on%=
  631. isselected(main%,32):
  632. update_main_greys
  633.      
  634. title(title$)
  635.   !wblk%=main%
  636.  os3% 
  637. "Wimp_GetWindowInfo",,wblk% 
  638. "Wimp_GetWindowInfo",,wblk%
  639.   tad%=(wblk%!76)
  640. title$,"*")=0 
  641.  maintitle$=title$
  642.   $tad%=title$
  643. ^$  x%=wblk%!4:w%=wblk%!12-wblk%!4
  644.   y%=wblk%!16
  645. "Wimp_ForceRedraw",-1,x%,y%,x%+w%,y%+48
  646. updatetbar
  647.  datamodified% 
  648. title(maintitle$+" *") 
  649. title(maintitle$)
  650. initmenu(menu%,menuname$)
  651. h2$menu%=menuname$:               : 
  652.  menu title
  653. iEmenu%?12=7:menu%?13=2           : 
  654.  title foreground & background
  655. jEmenu%?14=7:menu%?15=0           : 
  656.  menu  foreground & background
  657. (menuname$)>5 
  658. l"  menu%!16=(
  659. (menuname$)+1)*16
  660.   menu%!16=6*16
  661. p2menu%!20=44        : 
  662.  width & height of items
  663. q@menu%!24=0                      : 
  664.  vertical gap twixt items
  665. =menu%+28
  666. additem(menu%,text$,last%,sub%)
  667.  last% 
  668.  !menu%=128 
  669.  !menu%=0
  670. menu%!4=sub%
  671. menu%!8=&7000021
  672. $(menu%+12)=text$
  673. =menu%+24
  674. grey(menu%,text$,grey%)
  675.   menu%+=4
  676.     menu%+=24
  677. #    flags%=menu%!8:last%=!menu%
  678.     mt$=$(menu%+12)
  679.  mt$=text$ 
  680.  last%=128
  681.  mt$<>text$ 
  682. nagg("Error - can't (un)grey '"+text$+"' in menu cuz it doesn't exist!"):
  683.  grey% 
  684.  menu%!8=flags% 
  685.  1<<22 
  686.  menu%!8=flags% 
  687. (1<<22)
  688. iconwidth(window%,icon%)
  689.   !wblk%=window%
  690.   wblk%!4=icon%
  691. "Wimp_GetIconState",,wblk%
  692.   iad%=wblk%+8
  693.   width%=iad%!8-!iad%
  694. =width%
  695. setwidth(handle%,icon%,width%)
  696.   !wblk%=handle%
  697.   wblk%!4=icon%
  698. "Wimp_GetIconState",,wblk%
  699. "Wimp_DeleteIcon",,wblk%
  700.   iad%=wblk%+8
  701.   iad%!8=!iad%+width%
  702.   wblk%!4=handle%
  703. "Wimp_CreateIcon",icon%,wblk%+4
  704.   !wblk%=handle%
  705.   wblk%!4=icon%
  706.   wblk%!8=0
  707.   wblk%!12=0
  708. "Wimp_SetIconState",,wblk%
  709. suffix
  710. "OS_ReadModeVariable",-1,4 
  711.  ,,xeig%
  712. "OS_ReadModeVariable",-1,5 
  713.  ,,yeig%
  714. "OS_ReadModeVariable",-1,0 
  715.  ,,flags%
  716.  xeig%=yeig% 
  717.  suffix$="22" 
  718.  suffix$="24"
  719.  flags% 
  720.  1<<4 
  721.  suffix$="23"
  722. =suffix$
  723. update_main_greys
  724. selected(main%,2,
  725. (input_keyboard%))
  726. selected(main%,3,input_keyboard%)
  727. shade(main%,4,input_keyboard%)
  728. selected(main%,7,
  729. (output_screen%))
  730. selected(main%,8,output_screen%)
  731. selected(main%,32,gaps_on%)
  732. shade(main%,9,output_screen%)
  733. shade(main%,10,output_screen%)
  734. shade(main%,35,output_screen% 
  735.  input_keyboard%)
  736. selected(main%,35,autorun%)
  737. selected(main%,22,shuffle_on%)
  738. selected(main%,23,tolerance_on%)
  739. shade(main%,24,
  740.  shuffle_on%)
  741. shade(main%,25,
  742.  tolerance_on%)
  743. shade(main%,33,
  744.  gaps_on%)
  745. tapesize(a%)
  746. *   tapesize%=
  747. contents(main%,13))+a%
  748.  tapesize%<1 
  749.  tapesize%=1 : 
  750. pii(main%,39,"Tapes are always >1 min long!")
  751.  tapesize%>240 
  752.  tapesize%=240 : 
  753. pii(main%,39,"Tapes are <240 mins long!")
  754. pii(main%,13,
  755. (tapesize%))
  756. presettapesize(w%)
  757.       
  758.  1 : tapesize%=60
  759.       
  760.  2 : tapesize%=74
  761.       
  762.  3 : tapesize%=90
  763.       
  764.  4 : tapesize%=100
  765. pii(main%,13,
  766. (tapesize%))
  767. saveoldconfig
  768.    _shuffle_on%=shuffle_on%
  769. #   _tolerance_on%=tolerance_on%
  770. '   _input_keyboard%=input_keyboard%
  771. %   _output_screen%=output_screen%
  772.    _tapesize%=tapesize%
  773.    _shuffle%=shuffle%
  774.    _tolerance%=tolerance%
  775.    _file_input$=file_input$
  776. !   _file_output$=file_output$
  777.    _autorun% = autorun%
  778.    _gaps_on% = gaps_on%
  779.    _gaps% = gaps%
  780. restoreoldconfig
  781.    shuffle_on%=_shuffle_on%
  782. #   tolerance_on%=_tolerance_on%
  783. '   input_keyboard%=_input_keyboard%
  784. %   output_screen%=_output_screen%
  785.    tapesize%=_tapesize%
  786.    shuffle%=_shuffle%
  787.    tolerance%=_tolerance%
  788.    file_input$=_file_input$
  789. !   file_output$=_file_output$
  790.    autotun% = _autorun%
  791.    gaps_on% = _gaps_on%
  792.    gaps% = _gaps%
  793. cancelclicked(buttons%)
  794. restoreoldconfig
  795. pii(save%,1,file_output$)
  796. pii(main%,4,file_input$)
  797. pii(main%,9,file_output$)
  798. pii(main%,24,
  799. (shuffle%))
  800. pii(main%,25,
  801. (tolerance%))
  802. pii(main%,13,
  803. (tapesize%))
  804. pii(main%,33,
  805. (gaps%))
  806. update_main_greys
  807. pii(main%,39,"Changes discarded")
  808.  (buttons%<>1) 
  809. closewindow(main%)
  810. saveoptions(z%)
  811. updatevars
  812. saveoldconfig
  813. #  a%=
  814. ("<tapefit$dir>.Choices")
  815. tf(input_keyboard%,"Keyboard","File")
  816.   BPUT#a%,file_input$
  817. tf(output_screen%,"Screen","File")
  818.   BPUT#a%,file_output$
  819. tf(shuffle_on%,"Shuffle","No Shuffle")
  820. (shuffle%)
  821. tf(tolerance_on%,"Tolerance","No Tolerance")
  822. (tolerance%)
  823. tf(gaps_on%,"Gaps","No Gaps")
  824. (gaps%)
  825. (tapesize%)
  826. tf(autorun%,"Auto Run","No Auto Run")
  827. pii(main%,39,"Options saved")
  828. tf(v%,a$,b$)
  829.  =a$ 
  830. updatevars
  831. %   file_input$=
  832. contents(main%,4)
  833. &   file_output$=
  834. contents(main%,9)
  835. '   tapesize%=
  836. contents(main%,13))
  837. &   shuffle%=
  838. contents(main%,24))
  839. (   tolerance%=
  840. contents(main%,25))
  841. #   gaps%=
  842. contents(main%,33))
  843. popupsavebox
  844.  (file_output$="") 
  845. pii(save%,1,"Fitted") 
  846. pii(save%,1,file_output$)
  847.  "Wimp_GetPointerInfo",,block%
  848. 4  q=!block%:w=block%!4:w%=block%!12:i%=block%!16
  849.  "Wimp_CreateMenu",,save%,q,w
  850. savefile(name$)
  851.   file_output$=name$
  852. pii(save%,1,name$)
  853. pii(main%,9,name$)
  854.   output_screen%=
  855. update_main_greys
  856. gogogo
  857. closewindow(main%)
  858. updatevars
  859. saveoldconfig
  860.  (shuffle_on%) 
  861.  shuffle$=
  862. (shuffle%) 
  863.  shuffle$="0"
  864.  (tolerance_on%) 
  865.  tolerance$=
  866. (tolerance%) 
  867.  tolerance$="0"
  868.  (gaps_on%) 
  869.  gaps$=
  870. (gaps%) 
  871.  gaps$="0"
  872.  (input_keyboard%) 
  873.  input$="-" 
  874.  input$=file_input$
  875.  (output_screen%) 
  876.  output$="-" 
  877.  output$=file_output$
  878.   tapesize$=
  879. (tapesize%)
  880.  input$="" 
  881.  output$="" 
  882. nagg("You haven't set the Input/Output options correctly!"):
  883. 1w  cli$="/<tapefit$dir>.TapeFit -c"+tapesize$+" -i"+input$+" -o"+output$+" -t"+tolerance$+" -s"+shuffle$+" -g"+gaps$
  884.  (input_keyboard% 
  885.  output_screen%) 
  886. 30     
  887. pii(main%,39,"Starting Taskwindow...")
  888. 4N     task$="Taskwindow "+
  889. 34+cli$+
  890. 34+" -wimpslot 64K -name TapeFit -quit"
  891. 6-     
  892. pii(main%,39,"Starting TapeFit...")
  893.      task$=cli$
  894. "Hourglass_On"
  895. "Wimp_StartTask",task$
  896. "Hourglass_Off"
  897.  (input_keyboard% 
  898.  output_screen%) 
  899. =,     
  900. pii(main%,39,"Taskwindow started")
  901. ?+     
  902. pii(main%,39,"TapeFit completed")
  903.  (output_screen%=
  904.  input_keyboard%=
  905.  autorun%=
  906. B1     
  907. pii(main%,39,"Runnning output file...")
  908. C0     
  909. "Wimp_StartTask","Filer_Run "+output$
  910. D)     
  911. pii(main%,39,"Output file run")
  912. help(i%)
  913.  i%=36 
  914. selected(main%,i%,
  915. M,   
  916. pii(main%,39,"Running help file...")
  917. N9   
  918. "Wimp_StartTask","Filer_Run <tapefit$dir>.!Help"
  919. O$   
  920. pii(main%,39,"Helpfile run")
  921.  i%=36 
  922. selected(main%,i%,
  923.