Home » Archimedes archive » Archimedes World » AW-1992-05.adf » May92 » !AWMay92/Goodies/Video/!Video/!RunImage

!AWMay92/Goodies/Video/!Video/!RunImage

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1992-05.adf » May92
Filename: !AWMay92/Goodies/Video/!Video/!RunImage
Read OK:
File size: FC64 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM>!RunImage
   20REM
   30REM LEN Mark Bright.
   40:
   50Version$="1.00 (05-Mar-92)"
   60:
   70DIM Block% 1024*4  :REM General purpose WIMP workspace!
   80
   90PROC_Initialise_WIMP_System
  100:
  110PROC_SetIconText(3,Info%,Version$)
  120PROC_SetIconText(4,Save%,"BoffBright")
  130:
  140ON ERROR PROC_Wimp_Error
  150PROC_Initialise_Program_Variables
  160PROC_SetIconText(TapeNumber%,Main%,TapeNumber$)
  170:
  180ON ERROR PROC_Wimp_Error
  190:
  200REM ********************************************************************************************************
  210REM All RISCOS/WIMP Specific Proceedures First, !Video8 Proc'S after.... Makes for a better skeleton prog!
  220REM ********************************************************************************************************
  230
  240REPEAT
  250   SYS "Wimp_Poll",Mask%,Block% TO A%
  260   CASE A% OF
  270      WHEN 2 : SYS "Wimp_OpenWindow",,Block%   : REM allows auto Drag
  280      WHEN 3 : SYS "Wimp_CloseWindow",,Block%  : REM allows auto Close
  290             : IF Block%!0=Main% THEN MainWindowOpen%=FALSE
  300      WHEN 6 : PROC_ButtonPressed
  310      WHEN 7 : PROC_DragBoxEnd(FN_ReadIconText(Save%,4,FALSE))
  320      WHEN 8 : PROC_ProcessKey(Block%!24)
  330      WHEN 9 : PROC_MenuSelection
  340      WHEN 16,17,18 : PROC_DecodeMessage(Block%!16)
  350   ENDCASE
  360UNTIL FALSE
  370:
  380REM *****************************************
  390REM This is the WIMP Error handling routine !
  400REM *****************************************
  410DEF PROC_Wimp_Error
  420   LOCAL Error$
  430   SYS "OS_Byte",3,0
  440   SYS "Wimp_DragBox",,-1
  450   !Block%=ERR
  460   Error$ = REPORT$
  470   IF ERR<>2001 THEN Error$ += "Internal Error ("+STR$(ERL)+"). OK to continue, CANCEL to abort"
  480   $(Block%+4)=Error$ + CHR$0
  490   SYS "Wimp_ReportError",Block%,%001 - (2*(ERR<>2001)),MyTaskName$ TO ,Result%
  500   IF Result%=2 THEN PROC_CloseDown
  510ENDPROC
  520:
  530REM ************************************
  540REM Mouse 'Click' Whilst Over Menu Item.
  550REM ************************************
  560DEF PROC_MenuSelection
  570   IF IconBarMenuActive% THEN
  580      CASE Block%!0 OF
  590         WHEN 0 : PROC_OpenSubMenu(Info%) : IconBarMenuActive%=FALSE
  600         WHEN 1 : PROC_OpenSubMenu(Options%) : IconBarMenuActive%=FALSE
  610         WHEN 2 : Old$=InlayType$ : InlayType$="Video_8"
  620                  IF Old$="VHS_C" OR Old$="DAT" THEN
  630                     menu%!(28+24*2)=Ticked%
  640                     menu%!(28+24*3)=NotTicked%                  : REM Tick Item 2, Untick Items 3 & 4
  650                     menu%!(28+24*4)=NotTicked% OR Underlined%
  660                     PROC_SetIconText(Format%,Main%,"Video_8")
  670                     PROC_Redraw(Main%,Format%)
  680                     PROC_ChangeWindowTitle(Main%,WindowTitle$)
  690                     PROC_NotSelectable(Main%,TitleLastLine%,FALSE)
  700                  ENDIF
  710         WHEN 3 : Old$=InlayType$ : InlayType$="VHS_C"
  720                  IF Old$="Video_8"  OR Old$="DAT" THEN
  730                     menu%!(28+24*2)=NotTicked%
  740                     menu%!(28+24*3)=Ticked%                      : REM Tick Item 3, Untick Items 2 & 4
  750                     menu%!(28+24*4)=NotTicked% OR Underlined%
  760                     PROC_SetIconText(Format%,Main%,"VHS_C")
  770                     PROC_Redraw(Main%,Format%)
  780                     PROC_ChangeWindowTitle(Main%,WindowTitle$)
  790                     PROC_NotSelectable(Main%,TitleLastLine%,FALSE)
  800                  ENDIF
  810         WHEN 4 : Old$=InlayType$ : InlayType$="DAT"
  820                  IF Old$="Video_8" OR Old$="VHS_C" THEN
  830                     menu%!(28+24*2)=NotTicked%
  840                     menu%!(28+24*3)=NotTicked% : REM Tick Item 4, Untick Items 3 & 2
  850                     menu%!(28+24*4)=Ticked% OR Underlined%
  860                     PROC_SetIconText(Format%,Main%,"DAT")
  870                     PROC_Redraw(Main%,Format%)
  880                     PROC_ChangeWindowTitle(Main%,DatTitle$)
  890                     PROC_NotSelectable(Main%,TitleLastLine%,TRUE)
  900                  ENDIF
  910         WHEN 5 : PROC_CloseDown : REM <Select> on "quit" causes shutdown
  920      ENDCASE
  930   ENDIF
  940
  950   IF MainWindowMenuActive% THEN
  960      CASE Block%!0 OF
  970         WHEN 0 : PROC_OpenSubMenu(Info%) : MainWindowMenuActive%=FALSE
  980         WHEN 1 : PROC_OpenSubMenu(Save%) : MainWindowMenuActive%=FALSE
  990         WHEN 2 : PROC_OpenSubMenu(Options%) : MainWindowMenuActive%=FALSE
 1000         WHEN 3 : PROC_FormatIconText
 1010         WHEN 4 : PROC_WipeIconText
 1020      ENDCASE
 1030   ENDIF
 1040
 1050   SYS "Wimp_GetPointerInfo",,Block%
 1060   IF (Block%!8 AND 1) THEN
 1070      IF IconBarMenuActive% THEN SYS "Wimp_CreateMenu",,menu%
 1080      IF MainWindowMenuActive% THEN SYS "Wimp_CreateMenu",,MainMenu%
 1090   ENDIF
 1100ENDPROC
 1110:
 1120REM ********************************
 1130REM Mouse Button Status Has Changed.
 1140REM ********************************
 1150DEF PROC_ButtonPressed
 1160LOCAL MouseX%,MouseY%,Button%,Window%,Icon%
 1170   MouseX%=Block%!00 : REM Block%!00 = Mouse X (Screen Co-ordinates)
 1180   MouseY%=Block%!04 : REM Block%!04 = Mouse Y (Screen Co-ordinates)
 1190   Button%=Block%!08 : REM Block%!08 = Buttons
 1200   Window%=Block%!12 : REM Block%!12 = Window Handle (BackGround = -1, IconBar = -2)
 1210   Icon%  =Block%!16 : REM Block%!16 = Icon Handle ( Work Area BackGround = -1)
 1220
 1230   IF Window%=Options% AND Icon%=OptionsOKF% THEN
 1240      PROC_ButtonPress(Options%, OptionsOKF%, OptionsOKL%, OptionsOKD%)
 1250      PROC_StoreUserData
 1260   ENDIF
 1270
 1280   IF Window%=IconBar% AND Icon%=IconBarIconHandle% THEN
 1290      CASE Button% OF
 1300         WHEN %001 : PROC_OpenMainWindow(FALSE)
 1310         WHEN %100 : PROC_OpenMainWindow(TRUE)
 1320         WHEN %010 : MainWindowMenuActive%=FALSE : IconBarMenuActive%=TRUE
 1330                     SYS "Wimp_CreateMenu",,menu%,Block%!0-64,(40*7)+104
 1340      ENDCASE
 1350   ENDIF
 1360
 1370   IF Button%<> %010 AND Window%=Main% AND Icon%=PrintF% THEN
 1380      PROC_ButtonPress(Main%, PrintF%, PrintL%, PrintD%)
 1390      PROC_PrintOut
 1400      ENDIF
 1410
 1420   IF Button%=%010 AND Window%=Main% THEN
 1430      IF InlayType$="Video_8" OR InlayType$="VHS_C" THEN
 1440         Postfix$=RIGHT$(InlayType$,2)
 1450      ELSE
 1460         Postfix$="_D"
 1470      ENDIF
 1480      Temp$=FN_ReadIconText(Save%,4,FALSE) : Temp2$=FN_ReadIconText(Main%,TapeNumber%,FALSE)+Postfix$
 1490      IF RIGHT$(Temp$,10)="BoffBright" OR OldName$<>Temp2$ THEN
 1500         NewSaveName$=FN_ConvertSoftToHardSpaces(Temp2$)
 1510         IF LEN(Temp$)>LEN(Temp2$) THEN
 1520            Pointer%=LEN(Temp$)
 1530            WHILE MID$(Temp$,Pointer%,1)<>"." AND Pointer%>0:Pointer%-=1:ENDWHILE
 1540            PROC_SetIconText(4,Save%,LEFT$(Temp$,Pointer%)+NewSaveName$)
 1550         ELSE
 1560            PROC_SetIconText(4,Save%,NewSaveName$)
 1570         ENDIF
 1580         OldName$=Temp2$
 1590      ENDIF
 1600      PROC_CreateMainWindowMenu(MouseX%,MouseY%,Icon%)
 1610   ENDIF
 1620
 1630   IF Window%=Save% AND Icon%=SaveIcon%  THEN PROC_DragSave
 1640   IF Window%=Save% AND Icon%=SaveOKF%   THEN
 1650      PROC_ButtonPress(Save%, SaveOKF%, SaveOKL%, SaveOKD%)
 1660      PROC_SaveTo(FN_ReadIconText(Save%,4,FALSE))
 1670   ENDIF
 1680
 1690   IF Button%<> %010 AND Window%=Options% THEN
 1700      CASE Icon% OF
 1710         WHEN  0,1,5 : PROC_SetIconText(DriverName%,Main%,PDriver$(FN_ReadESGSelected(Options%,9)+1))
 1720      ENDCASE
 1730      PROC_Redraw(Main%,DriverName%)
 1740   ENDIF
 1750ENDPROC
 1760:
 1770REM *******************************************************************************************************
 1780REM Change all occurances of <SPACE> in the tape number to <ALT-SPACE> to stop the filer throwing a wobbly.
 1790REM *******************************************************************************************************
 1800DEF FN_ConvertSoftToHardSpaces(Name$)
 1810   Pointer%=LEN(Name$)
 1820   REPEAT
 1830      Char$=MID$(Name$,Pointer%,1)
 1840      IF Char$=" " THEN
 1850         Char$="�"
 1860         MID$(Name$,Pointer%,1)=Char$
 1870      ENDIF
 1880      Pointer%-=1
 1890   UNTIL Pointer%=1
 1900=Name$
 1910:
 1920********************************
 1930REM 'Press' a button in a window
 1940********************************
 1950DEF PROC_ButtonPress(Window%, Front%, Light%, Dark%)
 1960   LOCAL TimeNow%
 1970   PROC_SetIconColour(Window%, Light%, 4)
 1980   PROC_SetIconColour(Window%, Dark%, 0)
 1990   PROC_SetIconColour(Window%, Front%, 14)
 2000   TimeNow% = TIME
 2010   REPEAT
 2020   UNTIL TIME > TimeNow%+25
 2030   PROC_SetIconColour(Window%, Light%, 0)
 2040   PROC_SetIconColour(Window%, Dark%, 4)
 2050   PROC_SetIconColour(Window%, Front%, 1)
 2060ENDPROC
 2070:
 2080********************************************
 2090REM Change the colour of an icon in a window
 2100********************************************
 2110DEF PROC_SetIconColour(Window%, Icon%, Colour%)
 2120   Block%!0  = Window%
 2130   Block%!4  = Icon%
 2140   Block%!8  = Colour% << 28
 2150   Block%!12 = %1111 << 28
 2160   SYS "Wimp_SetIconState",, Block%
 2170ENDPROC
 2180:
 2190REM *******************************************************************
 2200REM When a key is pressed, Check if it concerns me. If not, Pass it on!
 2210REM *******************************************************************
 2220DEF PROC_ProcessKey(KeyPressed)
 2230   LOCAL Icon%,Index%,Window%
 2240   Window%=Block%!0
 2250   Icon%=Block%!4
 2260   Index%=Block%!20
 2270   CASE KeyPressed OF
 2280
 2290      WHEN &180 : PROC_ButtonPress(Main%, PrintF%, PrintL%, PrintD%)
 2300                  PROC_PrintOut
 2310      REM <Print>
 2320
 2330      WHEN &18A
 2340      REM <Tab>
 2350                  IF Icon%<=BtmSetItemEnd% THEN
 2360                     PROC_SetCaretPosition(Icon%-((Icon% MOD 2)=0)+((Icon% MOD 2)=1),Index%)
 2370                  ENDIF
 2380                  IF Icon%>=TitleFirstLine% AND Icon%<TitleLastLine% THEN PROC_SetCaretPosition(TapeNumber%,0)
 2390                  IF Icon%=TapeNumber% THEN PROC_SetCaretPosition(TitleFirstLine%,0)
 2400
 2410      WHEN &0D
 2420      REM <Return>
 2430                  IF Window%=Main% AND Icon%<=BtmSetItemEnd% THEN
 2440                     IF ((Icon% MOD 2)=1) THEN PROC_MoveDownOneBackOne
 2450                     IF ((Icon% MOD 2)=0) THEN PROC_SetCaretPosition(Icon%+1,0)
 2460                  ENDIF
 2470                  IF Window%=Main% AND Icon%>=TitleFirstLine% AND Icon%<=TitleLastLine% THEN PROC_MoveDownAnEntry
 2480                  IF Window%=Main% AND Icon%=TapeNumber% THEN PROC_SetCaretPosition(UserNote%,0)
 2490                  IF Window%=Save% THEN
 2500                     PROC_ButtonPress(Save%, SaveOKF%, SaveOKL%, SaveOKD%)
 2510                     PROC_SaveTo(FN_ReadIconText(Save%,4,FALSE))
 2520                  ENDIF
 2530
 2540      WHEN &1E
 2550      REM <Home>
 2560                  IF Icon%<=BtmSetItemEnd% THEN PROC_SetCaretPosition(BtmSetIndexEnd%,0)
 2570
 2580      WHEN &18F
 2590      REM <Cursor Up>
 2600                  PROC_MoveUpAnEntry
 2610
 2620      WHEN &18E
 2630      REM <Cursor Down>
 2640                  PROC_MoveDownAnEntry
 2650
 2660      WHEN &199
 2670      REM <Shift><f9>
 2680                  PROC_WipeIconText
 2690
 2700      WHEN &1CA
 2710      REM <f10>
 2720                  PROC_SwapCase(Main%,Icon%,Index%)
 2730
 2740      WHEN &1CB
 2750      REM <f11> - Delete to end of line
 2760                  Text$=LEFT$(FN_ReadIconText(Main%,Icon%,FALSE),Index%)
 2770                  PROC_SetIconText(Icon%,Main%,Text$)
 2780                  PROC_Redraw(Main%,Icon%)
 2790
 2800      OTHERWISE   SYS "Wimp_ProcessKey",Block%!24
 2810
 2820   ENDCASE
 2830ENDPROC
 2840:
 2850REM *****************************************************************
 2860REM Set which icon the caret is in, scrolling the window as required.
 2870REM *****************************************************************
 2880DEF PROC_SetCaretPosition(Icon%,Index%)
 2890   LOCAL CaretX%, CaretY%, Top%, Btm%, Left%, Right%
 2900   IconLength%=LEN(FN_ReadIconText(Main%,Icon%,FALSE))
 2910   IF Index%>IconLength% THEN Index%=IconLength%
 2920   SYS "Wimp_SetCaretPosition",Main%,Icon%,,,-1,Index%
 2930   SYS "Wimp_GetCaretPosition",,Block%
 2940   CaretX%=Block%!8 : CaretY%=Block%!12
 2950   Block%!0=Main%
 2960   SYS "Wimp_GetWindowState",,Block%
 2970   Top% =Block%!24 : Btm%  =Top% -(Block%!16-Block%!8)
 2980   Left%=Block%!20 : Right%=Left%+(Block%!12-Block%!4)
 2990   REM Since caret co-ordinates locate the bottom of the caret, there is a fudge of 64 above and 32 below (32=1 char)
 3000   IF (Top%-64 < CaretY%) THEN
 3010      Block%!24=CaretY%+64
 3020      SYS "Wimp_OpenWindow",,Block%
 3030   ENDIF
 3040   IF (Btm%+32 > CaretY%) THEN
 3050      Block%!24=Block%!24-(Btm%-(CaretY%-32))
 3060      SYS "Wimp_OpenWindow",,Block%
 3070   ENDIF
 3080ENDPROC
 3090:
 3100REM *******************************
 3110REM Redraw the specifiied icon (v2)
 3120REM *******************************
 3130DEF PROC_Redraw(Window%,Icon%)
 3140   Block%!0=Window%
 3150   Block%!4=Icon%
 3160   Block%!8=0
 3170   Block%!12=0
 3180   SYS "Wimp_SetIconState",,Block%
 3190ENDPROC
 3200:
 3210REM ***************************************************************
 3220REM When a message is received, Control is passed to here for decoding
 3230REM ***************************************************************
 3240DEF PROC_DecodeMessage(Request%)
 3250   CASE Request% OF
 3260      WHEN msg_quit%     : PROC_CloseDown
 3270      WHEN msg_datasave% : Block%!0=(48+LEN("<Wimp$Scrap> "))AND NOT 3
 3280                           Block%!12=Block%!8
 3290                           Block%!16=2
 3300                           $(Block%+44)="<Wimp$Scrap>"
 3310                           SaveRef%=Block%!12
 3320                           SYS "Wimp_SendMessage",usr_message%,Block%,Block%!4
 3330      WHEN msg_dsaveACK% : PROC_HandleMessage_DataSaveAck
 3340      WHEN msg_dataload% : PROC_FileDroppedOnMe
 3360      WHEN msg_help%     : PROC_GiveHelp(Block%!32,Block%!36,Block%!20,Block%!24)
 3370      WHEN msg_taskinit% : IF FN_ReadString(Block%+28)=MyTaskName$ AND Block%!4<> My_id% THEN
 3380                              REM Another !Video8 is trying to start up, I am closing down!
 3390                              PROC_CloseDown
 3400                           ENDIF
 3410   ENDCASE
 3420ENDPROC
 3430:
 3440REM ********************************************************
 3450REM Start Up program as a task with name "Video Inlay Printer"
 3460REM And put icon on the Icon bar
 3470REM ********************************************************
 3480DEF PROC_Initialise_WIMP_System
 3490   MyTaskName$="Video Inlay Printer"
 3500   SYS "Wimp_Initialise",200,&4B534154,MyTaskName$ TO ver%,My_id%
 3510   IconBarIconHandle%=FN_CreateIconBarIcon
 3520   PROC_Initialise_Sprites
 3530   PROC_Initialise_Templates
 3540   Mask%=%1100000110001    : REM Mask Out codes for Gain/Lose Caret, Pointer Enter/Leave Window & Null Event
 3550ENDPROC
 3560:
 3570REM ***********************************************************
 3580REM All WIMP Programs should be able to shut themselves down!!!
 3590REM ***********************************************************
 3600DEF PROC_CloseDown
 3610   SYS "Wimp_CloseDown",My_id%,&4B534154
 3620   SYS "OS_Exit"
 3630ENDPROC
 3640:
 3650REM ****************************************************************
 3660REM Opens up the template file, Fondles it, and then creates Windows
 3670REM ****************************************************************
 3680DEF PROC_Initialise_Templates
 3690   maxws%=&900 : DIM ws% maxws% : curws%=ws%
 3700   SYS"Wimp_OpenTemplate",,"<Video$Dir>.Resources.Templates"
 3710   SYS"Wimp_LoadTemplate",,Block%,ws%,ws%+maxws%,-1,"info",0 TO ,,curws%
 3720   SYS"Wimp_CreateWindow",,Block% TO Info%
 3730   SYS"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"save",0 TO ,,curws%
 3740   SYS"Wimp_CreateWindow",,Block% TO Save%
 3750   SYS"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"Main",0 TO ,,curws%
 3760   SYS"Wimp_CreateWindow",,Block% TO Main%
 3770   SYS"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"Print_Opt",0 TO ,,curws%
 3780   Block%!64 = SpriteArea%
 3790   SYS"Wimp_CreateWindow",,Block% TO Options%
 3800   SYS"Wimp_CloseTemplate"
 3810ENDPROC
 3820:
 3830REM *******************************************************************
 3840REM This writes over the text in the Icon, and it should not be done!!!
 3850REM Only Works With Indirected Text Strings!
 3860REM *******************************************************************
 3870DEF PROC_SetIconText(IconHandle%,WindowHandle%,Text$)
 3880   LOCAL Pointer%
 3890   Block%!0=WindowHandle%
 3900   Block%!4=IconHandle%
 3910   SYS "Wimp_GetIconState",,Block%
 3920   IF (Block%!24 AND (1<<8))<>0 THEN
 3930      Pointer%=Block%!28
 3940   ELSE
 3950      Pointer%=Block%+28
 3960   ENDIF
 3970   $Pointer%=Text$
 3980ENDPROC
 3990:
 4000REM **************************************
 4010REM The name sort of says it all really!!!
 4020REM **************************************
 4030DEF PROC_SetUpIconBarMenu
 4040   LOCAL m%
 4050   DIM menu% 28+6*24
 4060   $menu%="Video"
 4070   menu%?12=`black
 4080   menu%?13=`grey2
 4090   menu%?14=`black
 4100   menu%?15=`white
 4110   menu%!16=128
 4120   menu%!20=40
 4130   menu%!24=0
 4140
 4150   m%=menu%+28
 4160   m%!0=&0
 4170   m%!4=Info%    :REM name from template open.
 4180   m%!8=(7<<24) OR %10001
 4190   $(m%+12)="Info"
 4200
 4210   m%=m%+24
 4220   m%!0=&02
 4230   m%!4=Options%
 4240   m%!8=(7<<24) OR %10001
 4250   $(m%+12)="Options"
 4260
 4270   m%=m%+24
 4280   IF InlayType$="Video_8" THEN m%!0=&01 ELSE m%!0=&00
 4290   m%!4=0
 4300   m%!8=(7<<24) OR %10001
 4310   $(m%+12)="Video 8"
 4320
 4330   m%=m%+24
 4340   IF InlayType$="VHS_C" THEN m%!0=&01 ELSE m%!0=&00
 4350   m%!4=0
 4360   m%!8=(7<<24) OR %10001
 4370   $(m%+12)="VHS C"
 4380
 4390   m%=m%+24
 4400   IF InlayType$="DAT" THEN m%!0=&03 ELSE m%!0=&02
 4410   m%!4=0
 4420   m%!8=(7<<24) OR %10001        : REM to grey icon out add 'OR 1<<22' to the end of the line
 4430   $(m%+12)="DAT"
 4440
 4450   m%=m%+24
 4460   m%!0=&80
 4470   m%!4=0
 4480   m%!8=(7<<24)OR %10001
 4490   $(m%+12)="Quit"
 4500ENDPROC
 4510:
 4520REM *************************************************************
 4530REM This takes a Sprite and makes it into an Icon For the IconBar
 4540REM *************************************************************
 4550DEF FN_CreateIconBarIcon
 4560   LOCAL Icon%
 4570   Block%!0=-1
 4580   Block%!4=0
 4590   Block%!8=0
 4600   Block%!12=68
 4610   Block%!16=68
 4620   Block%!20=%10000000000010
 4630   $(Block%+24)="!Video"
 4640   SYS "Wimp_CreateIcon",,Block% TO Icon%
 4650=Icon%
 4660:
 4670REM *********************************************
 4680REM Read Info for Window Main, and then open it !
 4690REM *********************************************
 4700DEF PROC_OpenMainWindow(WipeTemplateIconText%)
 4710   IF WipeTemplateIconText% AND New% THEN PROC_WipeIconText
 4720   !Block%=Main%
 4730   SYS "Wimp_GetWindowState",,Block%
 4740   SYS "Wimp_OpenWindow",,Block%
 4750   New%=FALSE
 4760   PROC_SetCaretPosition(BtmSetIndexEnd%,0)
 4770   MainWindowOpen%=TRUE
 4780ENDPROC
 4790:
 4800REM **********************************************************************
 4810REM This reads the text from the writable Icon specified in the parameters
 4820REM and if Pad%<>FALSE TRUE then pads out the result to required size.
 4830REM **********************************************************************
 4840DEF FN_ReadIconText(WindowHandle%,IconHandle%,Pad%)
 4850   LOCAL Result$
 4860   Block%!0=WindowHandle%
 4870   Block%!4=IconHandle%
 4880   SYS "Wimp_GetIconState",,Block%
 4890   IF (Block%!24 AND (1<<8))<>0 THEN
 4900      Result$=$(Block%!28)
 4910   ELSE
 4920      Result$=$(Block%+28)
 4930   ENDIF
 4940   IF Pad%>0 THEN =LEFT$(Result$+STRING$(Pad%," "),Pad%)
 4950=Result$
 4960:
 4970REM *****************************************
 4980REM Wipe the text from all the writable icons
 4990REM *****************************************
 5000DEF PROC_WipeIconText
 5010   LOCAL ItemText$,IndexText$,TapeNumberText$,Loop%
 5020   ItemText$="" : IndexText$=""
 5030   FOR Loop%=TopSetIndexStart% TO BtmSetItemEnd% STEP 2
 5040      PROC_SetIconText(Loop%,Main%,IndexText$) : PROC_SetIconText(Loop%+1,Main%,ItemText$)
 5050      PROC_Redraw(Main%,Loop%) : PROC_Redraw(Main%,Loop%+1)
 5060   NEXT
 5070   FOR Loop%=TitleFirstLine% TO TitleLastLine%
 5080      PROC_SetIconText(Loop%,Main%,ItemText$) : PROC_Redraw(Main%,Loop%)
 5090   NEXT
 5100   PROC_SetIconText(TapeNumber%,Main%,TapeNumber$)
 5110   PROC_SetIconText(UserNote%,Main%,ItemText$)
 5120   PROC_Redraw(Main%,TapeNumber%)
 5130   PROC_Redraw(Main%,UserNote%)
 5140ENDPROC
 5150:
 5160REM **************************************
 5170REM The name sort of says it all really!!!
 5180REM *************************************
 5190DEF PROC_CreateMainWindowMenu(X%,Y%,Icon%)
 5200   LOCAL m%,Flags%,Pointer%,Sel%,IconFlag%,Item$
 5210   MainWindowMenuActive%=TRUE : IconBarMenuActive%=FALSE
 5220   DIM MainMenu% 29+7*24
 5230   $MainMenu%="Main"
 5240   MainMenu%?12=`black
 5250   MainMenu%?13=`grey2
 5260   MainMenu%?14=`black
 5270   MainMenu%?15=`white
 5280   MainMenu%!16=16*16
 5290   MainMenu%!20=40
 5300   MainMenu%!24=0
 5310   m%=MainMenu%+28
 5320   REPEAT
 5330      READ Flags%,Pointer%,Sel%,IconFlag%,Item$
 5340      m%!0=Flags%                                 :REM Menu Flags
 5350      m%!4=Pointer%                               :REM Pointer to Sub-Menu (-1 If None)
 5360      m%!8=IconFlag% OR (Sel%<<22) OR (7<<24)     :REM Menu Icon Flags
 5370      $(m%+12)=Item$                              :REM Item Name (12 Bytes Max.)
 5380      m%=m%+24
 5390   UNTIL Flags%=&80
 5400   :
 5410   RESTORE +0
 5420   DATA &00,Info%,0,%10001,"Info"
 5430   DATA &00,Save%,0,%10001,"Save data"
 5440   DATA &00,Options%,0,%10001,"Options"
 5450   DATA &00,-1,0,%10001,"Format"
 5460   DATA &80,-1,0,%10001,"Wipe all"
 5470   :
 5480   SYS "Wimp_CreateMenu",,MainMenu%,X%-96,Y%
 5490ENDPROC
 5500:
 5510REM ******************************************************************************
 5520REM Control Comes To Here When The User Has Dragged The Save Icon And Released It.
 5530REM ******************************************************************************
 5540DEF PROC_DragBoxEnd(LeafName$)
 5550   Pointer%=LENLeafName$
 5560   WHILE Pointer%>0 AND MID$(LeafName$,Pointer%,1)<>"."
 5570      Pointer%-=1
 5580   ENDWHILE
 5590   LeafName$=MID$(LeafName$,Pointer%+1)
 5600   SYS "Wimp_GetPointerInfo",,Block%
 5610   SenderWindow%=Block%!12
 5620   SenderIcon%=Block%!16
 5630   Block%!20=SenderWindow%
 5640   Block%!24=SenderIcon%
 5650   Block%!28=Block%!0
 5660   Block%!32=Block%!4
 5670   Block%!0=44+LENLeafName$
 5680   Block%!0+=4-(Block%!0 MOD 4)
 5690   Block%!4=0
 5700   Block%!8=0
 5710   Block%!12=0
 5720   Block%!16=1 : REM Message_DataSave
 5730   Block%!36=0 : REM Length of proposed save
 5740   Block%!40=MyFileType%
 5750   $(Block%+44)=LeafName$+CHR$0
 5760   IF NOT ((SenderWindow%=Save%) OR (SenderWindow%=Main%) OR (SenderWindow%=IconBar% AND SenderIcon%=IconBarIconHandle%)) THEN
 5770      SYS "Wimp_SendMessage",usr_message%,Block%,SenderWindow%,SenderIcon%
 5780   ENDIF
 5790ENDPROC
 5800:
 5810REM ******************************************************
 5820REM A Data Save Acknowlegement Message Has Been Received!
 5830REM ******************************************************
 5840DEF PROC_HandleMessage_DataSaveAck
 5850   LOCAL PathName$,Pointer%
 5860   Pointer%=Block%+44
 5870   REPEAT
 5880      PathName$+=CHR$?Pointer%
 5890      Pointer%+=1
 5900   UNTIL ?Pointer%=0
 5910   PROC_SaveTo(PathName$)
 5920   Block%!0=40+LENPathName$+4
 5930   Block%!0+=4-(Block%!0 MOD 4)
 5940   Block%!16=msg_dataload%
 5950   Block%!36=0
 5960   Block%!40=MyFileType%
 5970   $(Block%+44)=PathName$+CHR$(0)
 5980   SYS "Wimp_SendMessage",usr_msgrecorded%,Block%,SenderWindow%,SenderIcon%
 5990ENDPROC
 6000:
 6150REM *****************************************************
 6160REM Read a string from a pointer, using a zero-terminator
 6170REM *****************************************************
 6180DEF FN_ReadString(Pointer%)
 6190   LOCAL String$
 6200   WHILE ?Pointer%<>0
 6210      String$+=CHR$?Pointer%
 6220      Pointer%+=1
 6230   ENDWHILE
 6240=String$
 6250:
 6260REM ************************************************************************
 6270REM This Bit Does The Actual Saving Of The Data When Requested By The Filer.
 6280REM ************************************************************************
 6290DEF PROC_SaveTo(PathName$)
 6300   Pointer%=LENPathName$
 6310   WHILE Pointer%>1 AND MID$(PathName$,Pointer%,1)<>"."
 6320      Pointer%-=1
 6330   ENDWHILE
 6340   IF Pointer%=1 THEN ERROR 2001,"To save: Drag the icon to a directory viewer"
 6350   SYS "Wimp_CreateMenu",,-1
 6360   SYS "OS_Byte",3,2
 6370   OSCLI("SPOOL "+PathName$)
 6380   REM First print out an identifier, so I can tell if it is my file!
 6390   PRINT MyFileIdentifier$;CHR$(10);
 6400   REM Open Out A File And Print Out All the information!
 6410   FOR Loop%=TopSetIndexStart% TO TapeNumber%
 6420      PRINT FN_ReadIconText(Main%,Loop%,FALSE);CHR$(10);
 6430   NEXT
 6440   PRINT FN_ReadIconText(Main%,UserNote%,FALSE);CHR$(10);
 6450   REM Then Close the file again
 6460   *SPOOL
 6470   SYS "OS_Byte",3,0
 6480   OSCLI "SetType "+PathName$+" "+STR$~(MyFileType%)
 6490   REM Overwrite leafname text with "BoffBright" to enable auto insertion of the tape number for the file name!
 6500   PathName$=LEFT$(PathName$,Pointer%)+"BoffBright"
 6510   PROC_SetIconText(4,Save%,PathName$)
 6520ENDPROC
 6530:
 6540REM *********************************************************
 6550REM This Handles The Dragging Of THe Outline Of The Save Box.
 6560REM *********************************************************
 6570DEF PROC_DragSave
 6580   !Block%=Save%
 6590   SYS "Wimp_GetWindowState",,Block%
 6600   OffsetX%=Block%!4-Block%!20
 6610   OffsetY%=Block%!16-Block%!24
 6620   Block%!0=Save%
 6630   Block%!4=0
 6640   SYS "Wimp_GetIconState",,Block%
 6650   !Block%=Save%
 6660   Block%!4=5
 6670   Block%!8=Block%!8+OffsetX%
 6680   Block%!12=Block%!12+OffsetY%
 6690   Block%!16=Block%!16+OffsetX%
 6700   Block%!20=Block%!20+OffsetY%
 6710   Block%!24=0
 6720   Block%!28=0
 6730   Block%!32=&7FFFFFFF
 6740   Block%!36=&7FFFFFFF
 6750   SYS "Wimp_DragBox",,Block%
 6760ENDPROC
 6770:
 6780REM **********************************************************
 6790REM When A File Is Dropped Onto My Icon Bar Icon, I Come Here!
 6800REM **********************************************************
 6810DEF PROC_FileDroppedOnMe
 6820   IF Block%!40 =MyFileType% THEN
 6830      SaveName$=FN_ReadString(Block%+44)
 6840      Block%!12=Block%!8
 6850      Block%!16=4
 6860      SYS "Wimp_SendMessage",usr_message%,Block%,Block%!4
 6870      PROC_DoActualLoadThing(SaveName$)
 6880   ENDIF
 6890   IF Block%!40 =ConfigFile% THEN
 6900      PROC_ReadUserData
 6910      IF InlayType$="Video_8" THEN
 6920         menu%!(28+24*2)=Ticked%
 6930         menu%!(28+24*3)=NotTicked%                 : REM Tick Item 2, Untick Item 3
 6940         menu%!(28+24*4)=NotTicked% OR Underlined%
 6950      ENDIF
 6960      IF InlayType$="VHS_C" THEN
 6970         menu%!(28+24*2)=NotTicked%
 6980         menu%!(28+24*3)=Ticked%                     : REM Tick Item 3, Untick Item 2
 6990         menu%!(28+24*3)=NotTicked% OR Underlined%
 7000      ENDIF
 7010      IF InlayType$="DAT" THEN
 7020         menu%!(28+24*2)=NotTicked%
 7030         menu%!(28+24*3)=NotTicked%                 : REM Tick Item 3, Untick Item 2
 7040         menu%!(28+24*3)=Ticked% OR Underlined%
 7050      ENDIF
 7060   ENDIF
 7070ENDPROC
 7080:
 7090REM *******************************************************************************
 7100REM Control Comes Here When A Valid File Type Has Been Dropped Onto My Application.
 7110REM *******************************************************************************
 7120DEF PROC_LoadData(FileName$)
 7130   LoadFile%=OPENIN(FileName$)
 7140   TempText$=GET$#(LoadFile%)
 7150   IF TempText$<>MyFileIdentifier$ THEN CLOSE #LoadFile% : ERROR 2001,"Not a !Video saved file."
 7160   FOR LoadLoop%=TopSetIndexStart% TO TapeNumber%
 7170      TempText$=GET$#(LoadFile%)
 7180      PROC_SetIconText(LoadLoop%,Main%,TempText$)
 7190      PROC_Redraw(Main%,LoadLoop%)
 7200   NEXT
 7210   TempText$=GET$#(LoadFile%)
 7220   PROC_SetIconText(UserNote%,Main%,TempText$)
 7230   PROC_Redraw(Main%,UserNote%)
 7240   CLOSE #LoadFile%
 7250ENDPROC
 7260:
 7270REM *********************************************************************
 7280REM Reads State Of Icons in Window Stated and Returns The First Selected
 7290REM Icon In The Give Exclusive Selection Group. (-1 = None Selected)
 7300REM ********************************************************************
 7310DEF FN_ReadESGSelected(WindowHandle%,Esg%)
 7320   LOCAL Mask%,Pattern%
 7330   Mask%   = (1<<21)+(31<<16)       : REM Bit 21 and Bits 16-20
 7340   Pattern%= (1<<21)+(Esg%<<16)     : REM Selected and ESG X
 7350   SYS "Wimp_WhichIcon",WindowHandle%,Block%+200,Mask%,Pattern%
 7360=Block%!200
 7370:
 7380:
 7390REM ***************************************************************************************************
 7400REM ALTHOUGH A LOT OF THE ABOVE CODE IS STILL VERY SPECIFIC TO THIS PROGRAM, IT CAN BE EASILY ADAPTED
 7410REM ALL CODE BELOW THIS LINE IS UNLIKELY TO BE OF MUCH USE TO ANY OTHER APPLICATION
 7420REM ***************************************************************************************************
 7430:
 7440:
 7450REM ************************************************
 7460REM Move Caret Up To The Next Entry, With Wrap-round
 7470REM ************************************************
 7480DEF PROC_MoveUpAnEntry
 7490   LOCAL I%
 7500   IF Icon%<=(BtmSetItemEnd%-2) THEN I%=Icon%+2
 7510   IF Icon%=BtmSetIndexEnd% OR Icon%=BtmSetItemEnd% THEN I%=Icon%-48
 7520   IF Icon%>TitleFirstLine% AND Icon%<=TitleLastLine% THEN I%=Icon%-1
 7530   IF Icon%=TitleFirstLine% THEN I%=TitleLastLine%
 7540   IF Icon%=TitleFirstLine% AND CantGoToLastTitle% THEN I%=Icon%+1
 7550   PROC_SetCaretPosition(I%,Index%)
 7560ENDPROC
 7570:
 7580REM **********************************************
 7590REM Move Caret Down To Next Entry, With Wrap-round
 7600REM **********************************************
 7610DEF PROC_MoveDownAnEntry
 7620   LOCAL I%
 7630   IF Icon%>=(TopSetIndexStart%+2) THEN I%=Icon%-2
 7640   IF Icon%=TopSetIndexStart% OR Icon%=TopSetItemStart% THEN I%=Icon%+48
 7650   IF Icon%<TitleLastLine% AND Icon%>=TitleFirstLine% THEN I%=Icon%+1
 7660   IF Icon%=TitleLastLine% THEN I%=TitleFirstLine%
 7670   IF Icon%=TitleFirstLine%+1 AND CantGoToLastTitle% THEN I%=TitleFirstLine%
 7680   PROC_SetCaretPosition(I%,Index%)
 7690ENDPROC
 7700:
 7710DEF PROC_MoveDownOneBackOne
 7720   IF Icon%>(TopSetIndexStart%+2) THEN PROC_SetCaretPosition(Icon%-3,0)
 7730   IF Icon%=TopSetItemStart% THEN PROC_SetCaretPosition(Icon%+47,0)
 7740ENDPROC
 7750:
 7760REM **********************************************************
 7770REM Printout the contents of the writable icons!!!
 7780REM **********************************************************
 7790DEF PROC_PrintOut
 7800   CASE FN_ReadESGSelected(Options%,9) OF
 7810      WHEN 0 : PROC_PrintTextMode(NlqON$,InlayType$)
 7820      WHEN 1 : PROC_PrintTextMode(NlqOFF$,InlayType$)
 7830      WHEN 5 : PROC_PrintGraphicsMode(InlayType$)
 7840      OTHERWISE ERROR 2001, "ModeErr"
 7850   ENDCASE
 7860ENDPROC
 7870:
 7880REM *****************************************************
 7890REM Print out the label in text mode (non Risc OS)
 7900REM Parameter is an optional control string (ie NLQ etc.)
 7910REM *****************************************************
 7920DEF PROC_PrintTextMode(Prelog$,InlayType$)
 7930   LOCAL L%
 7940   IF FN_Printer_NotOnLine THEN ENDPROC
 7950   SYS "Hourglass_On"
 7960   :
 7970   SYS "OS_Byte",3,10          :REM SCREEN OFF, PRINTER ON.
 7980   PROC_SendData(Prelog$)      :REM Set NLQ Mode
 7990   :
 8000   PROC_DoPrinting(InlayType$)
 8010   :
 8020   FOR L%=0 TO VAL(FormLength$)
 8030      PRINT :REM short Form Feed
 8040   NEXT
 8050   :
 8060   SYS "OS_Byte",3,00          :REM SCREEN ON, PRINTER OFF.
 8070   SYS "Hourglass_Off"
 8080ENDPROC
 8090:
 8100DEF FN_Centre(Text$,Width%)
 8110NewText$=STRING$((Width%-LEN(Text$))/2," ")+Text$
 8120NewText$=NewText$+STRING$(Width%-LEN(NewText$)," ")
 8130=NewText$
 8140:
 8150REM **********************************************************
 8160REM Function to check if printer is on line,
 8170REM If printer is not online TRUE is returned, otherwise FALSE
 8180REM **********************************************************
 8190DEF FN_Printer_NotOnLine
 8200   SYS "Hourglass_On"
 8210   REPEAT
 8220      PrinterOnLine=TRUE : What%=0
 8230      Now%=TIME
 8240      Before%=ADVAL(-4)
 8250      VDU 2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3
 8260      Now%=TIME : REPEAT UNTIL TIME>Now%+100
 8270      After%=ADVAL(-4)
 8280      IF Before%<>After% THEN
 8290         SYS "Hourglass_Off"
 8300         PrinterOnLine=FALSE
 8310         $Block%="The printer is not responding. Please check it has paper, it is switched on and on-line. Try again?"
 8320         SYS "Wimp_ReportError",Block%,%10011,MyTaskName$ TO ,What%
 8330         SYS "Hourglass_On"
 8340      ENDIF
 8350   UNTIL PrinterOnLine OR (NOT PrinterOnLine AND What%=2)
 8360   SYS "Hourglass_Off"
 8370   IF What%=2 THEN =TRUE
 8380=FALSE
 8390:
 8400REM ******************************************************************
 8410REM Prints contents of Icon(Icon%) right justified in a field of Chars
 8420REM ******************************************************************
 8430DEF FN_RightJustify(Icon%,Char%)
 8440   Text$=FN_ReadIconText(Main%,Icon%,FALSE)
 8450=STRING$(Char%-LEN(Text$)," ")+Text$
 8460:
 8470REM **********************************************************************
 8480REM This is purely for program variables and is nothing to do with Risc_OS
 8490REM **********************************************************************
 8500DEF PROC_Initialise_Program_Variables
 8510   REM Initailise Global variables first, These are usable in all RISCOS WIMP programs.
 8520   `white = 0 : `grey1 = 1 : `grey2 = 2 :  `grey3 = 3 : `grey4 = 4 : `grey5 = 5 : `grey6 = 6 : `black = 7
 8530   `dark_blue = 8 : `yellow = 9 : `green = 10 : `red = 11 : `cream = 12 : `army_green = 13 : `orange = 14 : `light_blue = 15
 8540   msg_quit% = 0 : msg_datasave% = 1 : msg_dsaveACK% = 2 : msg_dataload% = 3 : msg_dloadACK% = 4
 8550   msg_RAMfetch% = 6 : msg_RAMtrans% = 7 : usr_message% = 17 : usr_msgrecorded% = 18 : msg_taskinit% = &400C2
 8560   msg_help% = &502 : msg_helpACK%  = &503
 8570   :
 8580   REM Variables to do with RiscOS PDriver InterFace
 8590   Box%=Box% : IF Box%<>0 THEN ENDPROC
 8600   DIM Box% 16 : DIM Box2% 16
 8610   ScaleX%=1 : ScaleY%=1   :REM For Future Expansion?
 8620   DIM Matrix% 16
 8630   Matrix%!04=0    : Matrix%!00=2^16*ScaleX%
 8640   Matrix%!08=0    : Matrix%!12=2^16*ScaleY%
 8650   DIM Origin% 8
 8660:
 8670   REM Global variables, specific to this program.
 8680   LongEqual_8$    = "|"+STRING$(44,"=")+"|"  : LongEqual_C$    = "|"+STRING$(42,"=")+"|"
 8690   LongMinus_8$    = "|"+STRING$(44,"-")+"|"  : LongMinus_C$    = "|"+STRING$(42,"-")+"|"
 8700   BlankLine_8$    = "|"+STRING$(44," ")+"|"  : BlankLine_C$    = "|"+STRING$(42," ")+"|"
 8710   New%            = TRUE
 8720   NLQ%            = TRUE
 8730   NlqON$          = "27,120,1"
 8740   NlqOFF$         = "27,120,0"
 8750   EliteON$        = "27,77"       : REM Set 12 Characters per Inch
 8760   EmphasisedON$   = "27,69"       : REM Select Emphasised Mode
 8770   EmphasisedOFF$  = "27,70"       : REM Deselect Emphasised Mode
 8780   PrintFile$      = "PrintOut"
 8790   InlayType$      = "Video_8"     : REM Default to Video_8 format
 8800   LatestVer%      = 4             : REM Version Number Of Config File. Change If File Is Made Incompatable.....
 8810   MainWindowOpen% = FALSE
 8820   WindowTitle$    = " Video Inlay Printer " : DatTitle$ = " DAT Inlay Printer "
 8830   CantGoToLastTitle%=FALSE
 8840   OldName$        = ""
 8850:
 8860   REM Give names to some of the icons etc. to make the program more readable
 8870   MyFileType%=&FFF : ConfigFile%=&D0B
 8880   MyFileIdentifier$="!Video Saved Inlay File.   � M.S.Bright 1992"
 8890   BackGround%= -1 : IconBar%= -2
 8900   TopSetIndexStart%=00 : TopSetIndexEnd%=22 : TopSetItemStart%=01 : TopSetItemEnd%=23
 8910   BtmSetIndexStart%=24 : BtmSetIndexEnd%=48 : BtmSetItemStart%=25 : BtmSetItemEnd%=49
 8920   TitleFirstLine%=51 : TitleLastLine%=53
 8930   NumberOfLines%=56 : Format%=66
 8940   TapeNumber%=54 : UserNote%  =67 : DriverName%=59
 8950   PrintF%    =65 : PrintL%    =64 : PrintD%    =63
 8960   OptionsOKF%=28 : OptionsOKL%=26 : OptionsOKD%=27
 8970   NlqON%=12 : NlqOFF%=16 : FormLength%=20 : EliteON%=34
 8980   SaveOKF%   =11 : SaveOKL%    =9 : SaveOKD%   =10 : SaveIcon%= 0
 8990   Ticked%=%1 : NotTicked%=0 : Underlined%=%10
 9000   DIM PDriver$(6)
 9010   PDriver$(0)="Null:" : PDriver$(1)="NLQ Printer"
 9020   PDriver$(2)="Draft Printer" : PDriver$(6)="RiscOS Driver"
 9030   PROC_ReadUserData
 9040   PROC_SetUpIconBarMenu
 9050:
 9060   REM Get SWI Numbers for font calls to speed up bottleneck in code
 9070   SYS "OS_SWINumberFromString",,"Font_FindFont" TO Find%
 9080   SYS "OS_SWINumberFromString",,"Font_LoseFont" TO Lose%
 9090   SYS "OS_SWINumberFromString",,"Font_SetFont" TO Set%
 9100   SYS "OS_SWINumberFromString",,"Font_Paint" TO Paint%
 9110:
 9120   BaseFont$=FN_ConvertSystemToString("Video$BaseFont")
 9130   EdgeFont$=FN_ConvertSystemToString("Video$EdgeFont")
 9140   BoldFont$=FN_ConvertSystemToString("Video$BoldFont")
 9150   TapeNumber$=FN_ConvertSystemToString("Tape$Prefix")
 9160   IF LEN(TapeNumber$)>3 THEN
 9170      Clipped$=LEFT$(TapeNumber$,3)
 9180      !Block%=9090
 9190      Error$="Tape$Prefix is set to longet than 3 characters. OK to clip to "+Clipped$+" Cancel to abort program"
 9200      $(Block%+4)=Error$ + CHR$0
 9210      SYS "Wimp_ReportError",Block%,%011,MyTaskName$ TO ,Result%
 9220      IF Result%=2 THEN PROC_CloseDown
 9230      TapeNumber$=Clipped$+" 00"
 9240   ELSE
 9250      TapeNumber$=TapeNumber$+" 00"
 9260   ENDIF
 9270ENDPROC
 9280:
 9290DEF FN_ConvertSystemToString(Variable$)
 9300   LOCAL Loop%
 9310   FOR Loop%=100 TO 150 STEP 4 : Block%!Loop%=0 : NEXT
 9320   SYS "OS_ReadVarVal",Variable$,Block%+100,50,0,3
 9330=FN_ReadString(Block%+100)
 9340   :
 9350REM *****************************************************************************
 9360REM Store User Configurable Settings In Config File Within !Video8 Application.
 9370REM *****************************************************************************
 9380DEF PROC_StoreUserData
 9390   DataFile%=OPENOUT"<Video$Dir>.Resources.Config"
 9400   BPUT #DataFile%,LatestVer%
 9410   PRINT #DataFile%,FN_ReadIconText(Options%,NlqON%,FALSE)
 9420   PRINT #DataFile%,FN_ReadIconText(Options%,NlqOFF%,FALSE)
 9430   PRINT #DataFile%,FN_ReadIconText(Options%,FormLength%,FALSE)
 9440   PRINT #DataFile%,FN_ReadIconText(Options%,EliteON%,FALSE)
 9450   PRINT #DataFile%,FN_ReadIconText(Main%,Format%,FALSE)
 9460   PRINT #DataFile%,FN_ReadESGSelected(Options%,9)
 9470   CLOSE #DataFile%
 9480   SYS "Wimp_CreateMenu",,-1
 9490ENDPROC
 9500:
 9510REM ****************************************************************************
 9520REM Read User Configurable Settings In Config File Within !Video8 Application.
 9530REM ****************************************************************************
 9540DEF PROC_ReadUserData
 9550   DataFile%=OPENIN"<Video$Dir>.Resources.Config"
 9560   IF DataFile%=0 THEN ENDPROC
 9570   Ver%=BGET#DataFile%
 9580   INPUT #DataFile%,NlqON$
 9590   INPUT #DataFile%,NlqOFF$
 9600   INPUT #DataFile%,FormLength$
 9610   INPUT #DataFile%,EliteON$
 9620   INPUT #DataFile%,InlayType$
 9630   INPUT #DataFile%,SelectedPrinterIcon
 9640   CLOSE #DataFile%
 9650   IF Ver%<LatestVer% THEN ERROR 1000,"ConfigErr"
 9660   IF SelectedPrinterIcon=15 THEN SelectedPrinterIcon=5 : REM Fudge for template change - Stu
 9670   PROC_SetIconText(20,Options%,FormLength$)
 9680   PROC_Redraw(Options%,20)
 9690   PROC_SetIconText(12,Options%,NlqON$)
 9700   PROC_Redraw(Options%,12)
 9710   PROC_SetIconText(16,Options%,NlqOFF$)
 9720   PROC_Redraw(Options%,16)
 9730   PROC_SetIconText(DriverName%,Main%,PDriver$(SelectedPrinterIcon+1))
 9740   PROC_Redraw(Main%,DriverName%)
 9750   PROC_SetIconText(Format%,Main%,InlayType$)
 9760   PROC_Redraw(Main%,Format%)
 9770   PROC_SelectIcon(Options%,0,SelectedPrinterIcon=0)
 9780   PROC_SelectIcon(Options%,1,SelectedPrinterIcon=1)
 9790   PROC_SelectIcon(Options%,5,SelectedPrinterIcon=5)
 9800ENDPROC
 9810:
 9820DEF PROC_SelectIcon(Window%,Icon%,Flag%)
 9830   Block%!0=Window%
 9840   Block%!4=Icon%
 9850   Block%!8=(-1*Flag%)<<21
 9860   Block%!12=1<<21
 9870   SYS "Wimp_SetIconState",,Block%
 9880ENDPROC
 9890:
 9900DEF PROC_NotSelectable(Window%,Icon%,Flag%)
 9910   Block%!0=Window%
 9920   Block%!4=Icon%
 9930   REM Make unselectable / Selectable
 9940   Block%!8=(-1*Flag%)<<22
 9950   Block%!12=1<<22
 9960   SYS "Wimp_SetIconState",,Block%
 9970   REM Make non-writable / Writable
 9980   IF Flag%=TRUE THEN Block%!8=%0000<<12 ELSE Block%!8=%1111<<12
 9990   Block%!12=%1111<<12
10000   SYS "Wimp_SetIconState",,Block%
10010   CantGoToLastTitle%=Flag%
10020   IF Flag% AND MainWindowOpen% THEN PROC_SetCaretPosition(TitleFirstLine%,0)
10030ENDPROC
10040:
10050REM ****************************************************************************************
10060REM This Takes A 'Numeric' String, Breaks it Down, And Sends The Value To The Output Device.
10070REM ****************************************************************************************
10080DEF PROC_SendData(Data$)
10090   LOCAL Finish%,Count%
10100   Count%=0 : Finish%=LEN(Data$)
10110   Data$=Data$+"," : REM This is cheating...See WHILE Condition!!!!!!
10120   REPEAT
10130      Sub$=""
10140      Pointer%=1
10150      WHILE MID$(Data$,Pointer%,1)<>","
10160         Sub$=Sub$+MID$(Data$,Pointer%,1)
10170         Pointer%+=1
10180      ENDWHILE
10190      Data$=MID$(Data$,Pointer%+1)
10200      PRINT CHR$(VAL(Sub$));
10210      Count%=Count%+LEN(Sub$)+1
10220   UNTIL Count%>=Finish%
10230ENDPROC
10240:
10250***************************************************************************************************
10260REM Sets The Save Name In The Save Icon To The Full Pathname Of The Loaded File, And Then Loads It.
10270***************************************************************************************************
10280DEF PROC_DoActualLoadThing(FileName$)
10290   PROC_SetIconText(4,Save%,FileName$)
10300   PROC_LoadData(FileName$)
10310   PROC_OpenMainWindow(FALSE)
10320ENDPROC
10330:
10340****************************************************************
10350REM Initialises User Sprite Area, and Loads sprite file into it.
10360****************************************************************
10370DEF PROC_Initialise_Sprites
10380   Temp%=OPENUP "<Video$Dir>.Resources.Sprites"
10390   FileLength%=4+(EXT#Temp%)
10400   CLOSE #Temp%
10410   DIM SpriteArea% FileLength%
10420   SpriteArea%!0=FileLength%
10430   SpriteArea%!4=0
10440   SpriteArea%!8=16
10450   SpriteArea%!12=16
10460   SYS "OS_SpriteOp",&10A,SpriteArea%,"<Video$Dir>.Resources.Sprites"
10470ENDPROC
10480:
10490*******************************************
10500REM Communicate with RiscOS Printer Driver.
10510*******************************************
10520DEF PROC_PrintGraphicsMode(InlayType$)
10530   REM Check For Presence Of PrinterDriver Modules
10540   SYS "XOS_SWINumberFromString",,"PDriver_Info" TO ;Flag%
10550   IF Flag% AND 1 THEN ERROR 2001,"No Printer Driver, Please Load and Try Again"
10560:
10570   LOCAL PrintFile%,OldJob%
10580   LOCAL White%, PageToPrint%
10590   White%=&FFFFFF00 : E%=0 : Usage%=0
10600   PrintFile%=OPENOUT"printer:"
10610   LOCAL ERROR
10620   ON ERROR LOCAL : RESTORE ERROR : F%=ERL : F$=REPORT$ : CLOSE #PrintFile% : IF E%=0 THEN ERROR F%,F$ ELSE ERROR E%,F$
10630   SYS "PDriver_SelectJob",PrintFile%,"Boffin Print Job" TO OldJob%
10640   SYS "Hourglass_On"
10650   LOCAL ERROR
10660   ON ERROR LOCAL : RESTORE ERROR : E%=ERL : E$=REPORT$ : SYS "Hourglass_Off" : SYS "PDriver_AbortJob",PrintFile% : SYS "PDriver_SelectJob",OldJob% : ERROR E%,E$
10670   IF InlayType$="Video_8" THEN PROC_GetDocumentSize_8(Box%)
10680   IF InlayType$="VHS_C"   THEN PROC_GetDocumentSize_C(Box%)
10690   IF InlayType$="DAT"     THEN PROC_GetDocumentSize_D(Box%)
10700   PROC_FitToPage(Height%,Width%) : SYS "PDriver_GiveRectangle",,Box%,Matrix%,Origin%,White%
10710   SYS "PDriver_DrawPage",1,Box2%,0,0 TO CopiesLeft%
10720   WHILE CopiesLeft%
10730      PROC_DrawInlay(Box2%)
10740      SYS "PDriver_GetRectangle",,Box% TO CopiesLeft%
10750   ENDWHILE
10760   SYS "PDriver_EndJob",PrintFile%
10770   RESTORE ERROR
10780   SYS "Hourglass_Off"
10790   SYS "PDriver_SelectJob",OldJob%
10800   RESTORE ERROR
10810   CLOSE #PrintFile%
10820ENDPROC
10830:
10840DEF PROC_OpenSubMenu(Window%)
10850   SYS "Wimp_GetPointerInfo",,Block%
10860   SYS "Wimp_CreateMenu",,Window%,Block%!0-64,Block%!4+48
10870ENDPROC
10880:
10890DEF PROC_FitToPage(Height%,Width%)
10900   LOCAL Left%,Bottom%,Right%,Top%
10910   REM Returns values in Millipoints, Height% & Width% are in OS Units. 1 OS Unit = 400 Millipoints
10920   SYS "PDriver_PageSize" TO ,,,Left%,Bottom%,Right%,Top%
10930   OriginX%=((Right%+Left%)-(Width%*400))/2 : OriginY%=Top%-(Height%*400)
10940   Origin%!0=OriginX% : Origin%!4=OriginY%
10950ENDPROC
10960:
10970DEF PROC_CentreProp(Text$,Y%,Postfix$,Length%)
10980   IF Postfix$="" THEN SYS "Font_SetFont",BaseFontHandle%
10990   IF Postfix$="Bold" THEN SYS "Font_SetFont",BoldFontHandle%
11000   IF Postfix$="Title" THEN SYS "Font_SetFont",EdgeFontHandle%
11010   SYS "Font_StringBBox",,Text$ TO ,,,StringLengthInMillipoints%
11020   IF StringLengthInMillipoints%>(Length%/25.4)*72000 THEN
11030      SYS "Font_StringWidth",,Text$,(Length%/25.4)*72000,15000,-1,LEN(Text$) TO ,,,,NumberOfPrintableCharacters%
11040      TextToPrint$=LEFT$(Text$,NumberOfPrintableCharacters%)
11050      Continue%=FN_WarnAboutClipping(Text$,TextToPrint$)
11060      IF Continue%=FALSE THEN ERROR 2001,"Aborting Printout. OK to Continue"
11070   ENDIF
11080   LengthInMM%=(StringLengthInMillipoints%/72000)*25.4 : X%=(Length%-LengthInMM%)*7.1/2
11090   PROC_FontPaint(Postfix$,Text$,X%,Y%)
11100ENDPROC
11110:
11120*****************************************************************
11130REM Select required Font and colour, then print Message$ at X%,Y%
11140*****************************************************************
11150DEF PROC_FontPaint(PostFix$,Message$,X%,Y%)
11160   LOCAL FontHandle%
11170   IF Message$="" THEN ENDPROC
11180   REM Dont Waste Time Messing about if nothing to print!
11190   IF PostFix$="" THEN SYS "Font_SetFont",BaseFontHandle%
11200   IF PostFix$="Bold" THEN SYS "Font_SetFont",BoldFontHandle%
11210   IF PostFix$="Title" THEN SYS "Font_SetFont",EdgeFontHandle%
11220   SYS "ColourTrans_SetFontColours",0,&FFFFFF00,&00000000
11230   :
11240   REM Don't bother trimming the user-Note as this has got more space to work in than the other icons.
11250   IF PostFix$<>"Bold" THEN Text$=FN_TrimToFit(Message$)
11260   SYS Paint%,,Text$,&10,X%,Y%
11270ENDPROC
11280:
11290REM *****************************************************************************
11300REM Prints the tape number in a smaller point size at a fixed place on the inlay.
11310REM *****************************************************************************
11320DEF PROC_PrintTapeNumber
11330   LOCAL Text$,FontHandle%
11340   SYS Find%,,BaseFont$,10*16,10*16,0,0 TO FontHandle%
11350   SYS "ColourTrans_SetFontColours",0,&FFFFFF00,&00000000
11360   :
11370   Text$=FN_ReadIconText(Main%,TapeNumber%,7)
11380   IF InlayType$="VHS_C"   THEN SYS Paint%,,Text$,&10,X3%-100,Y3%+130
11390   IF InlayType$="Video_8" THEN SYS Paint%,,Text$,&10,X3%-100,Y3%+82
11400   IF InlayType$="DAT"     THEN SYS Paint%,,Text$,&10,X3%-95,Y3%+60
11410   :
11420   SYS Lose%,FontHandle%
11430ENDPROC
11440:
11450REM *****************************************************************************************
11460REM Check the printed length of the text against the size in pixels, and shorten if required.
11470REM Uses : FN_WarnAboutClipping
11480REM *****************************************************************************************
11490DEF FN_TrimToFit(Text$)
11500   LOCAL NumberOfPrintableCharacters%
11510   Continue%=TRUE
11520   IF InlayType$="Video_8" THEN Max_X_Size%=(74/25.4)*72000
11530   IF InlayType$="VHS_C"   THEN Max_X_Size%=(73/25.4)*72000
11540   IF InlayType$="DAT"     THEN Max_X_Size%=(60/25.4)*72000
11550   SYS "Font_StringWidth",,Text$,Max_X_Size%,15000,-1,LEN(Text$) TO ,,,,NumberOfPrintableCharacters%
11560   TextToPrint$=LEFT$(Text$,NumberOfPrintableCharacters%)
11570   IF NumberOfPrintableCharacters%<LEN(Text$) THEN Continue%=FN_WarnAboutClipping(Text$,TextToPrint$)
11580   IF Continue%=FALSE THEN ERROR 2001,"PrintKill"
11590=TextToPrint$
11600:
11610REM ************************************************************************************
11620REM If Clipping will occour, then display Warning message and allow user option to abort.
11630REM Uses: NONE
11640REM ************************************************************************************
11650DEF FN_WarnAboutClipping(IconText$,TextToPrint$)
11660   LOCAL Error$
11670   !Block%=0
11680   Error$="This text "+IconText$+" does not fit. Clipping to "+TextToPrint$+" OK to continue, CANCEL to abort"
11690   $(Block%+4)=Error$ + CHR$0
11700   SYS "Wimp_ReportError",Block%,%10011,MyTaskName$ TO ,Result%
11710   IF Result%=2 THEN Continue%=FALSE ELSE Continue%=TRUE
11720   SYS "Wimp_ReportError",Block%,1<<6,MyTaskName$
11730=Continue%
11740:
11750REM ************************************************************
11760REM Give help to the interactive help by sending a message to it
11770REM ************************************************************
11780DEF PROC_GiveHelp(Window%,Icon%,MouseX%,MouseY%)
11790   IF Window%=-2 AND Icon%=IconBarIconHandle% THEN
11800      Message$="Video Label Printer|MUtility to print out cassette inlay sleeves for Video camera cassettes, (Video 8 or VHS_C Format only) and DAT audio tapes."
11810      IF New% THEN
11820         Message$+="|<SELECT> to start with blank screen|M|<ADJUST> to start with on-screen hints."
11830      ELSE
11840         Message$+="|<SELECT> or |<ADJUST> to show current Inlay"
11850      ENDIF
11860      PROC_SendHelp(Message$)
11870   ENDIF
11880   IF Window%=Main% THEN
11890   Track%=24-(Icon% DIV 2)+1
11900   CASE Icon% OF
11910      WHEN -13
11920                PROC_SendHelp("This is the Archimedes Video cassette Label Printer.|MDesigned and coded by Mark Bright.|MYou are using version "+Version$+".|M")
11930      WHEN PrintF%
11940                PROC_SendHelp("Click any mouse button to send the contents of the window to the printer.|MPressing the |<PRINT> Key performs the same function.")
11950      WHEN 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48
11960                IF Icon%=00 THEN
11970                   Up$="|<CURSOR UP> to move to Index for item 1.|M"
11980                ELSE
11990                   Up$="|<CURSOR UP> to move to Index for item "+STR$(Track%+1)+".|M"
12000                ENDIF
12010                IF Icon%=BtmSetIndexEnd% THEN
12020                   Down$="|<CURSOR DOWN> to move to Index for item 25.|M"
12030                ELSE
12040                   Down$="|<CURSOR DOWN> to move to Index for item "+STR$(Track%-1)+".|M"
12050                ENDIF
12060                Tab$="|<TAB> to move to Title for Item "+STR$(Track%)+".|M"
12070                PROC_SendHelp("Enter the Index for item number "+STR$(Track%)+".|M"+Up$+Down$+Tab$)
12080      WHEN 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49
12090                IF Icon%=01 THEN
12100                   Up$="|<CURSOR UP> to move to Title for item 1.|M"
12110                ELSE
12120                   Up$="|<CURSOR UP> to move to Title for item "+STR$(Track%+1)+".|M"
12130                ENDIF
12140                IF Icon%=49 THEN
12150                   Down$="|<CURSOR DOWN> to move to Title for item 25.|M"
12160                ELSE
12170                   Down$="|<CURSOR DOWN> to move to Title for item "+STR$(Track%-1)+".|M"
12180                ENDIF
12190                Tab$="|<TAB> to move to Index for item "+STR$(Track%)+".|M"
12200                PROC_SendHelp("Enter the Title of track number "+STR$(Track%)+".|M"+Up$+Down$+Tab$)
12210      WHEN 51,52,53
12220                Up$  ="|<CURSOR UP> to move to previous line of tape title.|M"
12230                Down$="|<CURSOR DOWN> to move to next line of tape title.|M"
12240                IF Icon%=53 THEN Down$="|<CURSOR DOWN> to move to first line of tape title.|M"
12250                IF Icon%=51 THEN Up$="|<CURSOR UP> to move to third line of tape title.|M"
12260                PROC_SendHelp("Enter the title of the tape.|M"+Up$+Down$)
12270      WHEN TapeNumber%
12280                PROC_SendHelp("This is the Index number for this cassette!")
12290      WHEN DriverName%
12300                PROC_SendHelp("This is the Current Installed Printer - See Options Menu")
12310      WHEN UserNote%
12320                PROC_SendHelp("Enter any notes you wish here, eg Video8 / VideoHI8 / VHS_C format, dates Etc|MIf this is left blank a standard copywrite message will be put in its place")
12330      WHEN Format%
12340                PROC_SendHelp("Display which print format you have currently selected. Note: This is saved with your configuration")
12350      OTHERWISE
12360                PROC_SendHelp("Misc. Help :|M|<f10> - Swap case   |<f11> - Delete to end of line|M|<Shift>|<f9> - Wipe all fields.   |<Home> - Go to Index #1|M")
12370
12380   ENDCASE
12390   ENDIF
12400   IF Window%=Options% THEN
12410      CASE Icon% OF
12420         WHEN 01 : PROC_SendHelp("Select Draft printing mode")
12430         WHEN 00 : PROC_SendHelp("Select NLQ printing mode")
12440         WHEN 05 : PROC_SendHelp("Select RiscOS printer driver printing mode")
12450         WHEN 12 : PROC_SendHelp("Enter your printer code for NLQ ON if it is different from the code shown.")
12460         WHEN 16 : PROC_SendHelp("Enter your printer code for NLQ OFF if it is different from the code shown.")
12470         WHEN 34 : PROC_SendHelp("Enter your printer code for 12 CPI ON if it is different from the code shown.")
12480         WHEN 20 : PROC_SendHelp("Enter how many lines you want the paper to feed after character mode printing to clear the tear off bar")
12490         WHEN 28 : PROC_SendHelp("Save all the above preferences to the configuration file.")
12500      ENDCASE
12510   ENDIF
12520ENDPROC
12530:
12540REM ****************************************************
12550REM Send the help-giving message to the help application
12560REM ****************************************************
12570DEF PROC_SendHelp(Message$)
12580   Block%!12=Block%!8
12590   Block%!16=msg_helpACK%
12600   !Block%=(LEN(Message$)+25)AND NOT 3
12610   $(Block%+20)=Message$+CHR$0
12620   SYS "Wimp_SendMessage",usr_message%,Block%,Block%!4
12630ENDPROC
12640:
12650REM *********************************************
12660REM Swaps the case of of the specified character.
12670REM *********************************************
12680DEF PROC_SwapCase(Window%,Icon%,Index%)
12690   IF Index%<LEN(FN_ReadIconText(Main%,Icon%,FALSE)) THEN
12700      IconText$=FN_ReadIconText(Main%,Icon%,FALSE)
12710      C%=ASC(MID$(IconText$,Index%+1,1)) AND &DF
12720      IF C%>=&41 AND C%<=&5A THEN
12730         C$=CHR$(ASC(MID$(IconText$,Index%+1,1)) EOR &20)
12740         MID$(IconText$,Index%+1,1)=C$
12750         PROC_SetIconText(Icon%,Window%,IconText$)
12760         PROC_Redraw(Main%,Icon%)
12770      ENDIF
12780      PROC_SetCaretPosition(Icon%,Index%+1)
12790   ENDIF
12800ENDPROC
12810:
12820REM **********************************************************************
12830REM Sets the case of all the writable icons to ensure a consistant format.
12840REM **********************************************************************
12850DEF PROC_FormatIconText
12860   LOCAL Loop%
12870   FOR Loop%=TopSetIndexStart% TO BtmSetItemEnd% STEP 2
12880      PROC_SetIconText(Loop%+1,Main%,FN_CEW(Loop%+1))
12890      PROC_Redraw(Main%,Loop%+1)
12900   NEXT
12910   FOR Loop%=TitleFirstLine% TO TitleLastLine%
12920      PROC_SetIconText(Loop%,Main%,FN_Icon_FTU(Loop%))
12930      PROC_Redraw(Main%,Loop%)
12940   NEXT
12950   REM User note text is free format, I.E. I do not impose any rules at all!
12960ENDPROC
12970:
12980REM *************************************************
12990REM Function to Capitalise Each Word in a given Icon.
13000REM *************************************************
13010DEF FN_CEW(Icon%)
13020   LOCAL IconText$, Index%, End%, C%
13030   IconText$=FN_ReadIconText(Main%,Icon%,FALSE)
13040   REM If icon is empty, abandon format
13050   IF IconText$="" THEN =IconText$
13060   Index%=1 : End%=LEN(IconText$)
13070   REM Get 1st character
13080   WHILE Index%<=End%
13090      MID$(IconText$,Index%,1)=FN_Char_FTU(Icon%,Index%)
13100      Index%+=1
13110      C$=MID$(IconText$,Index%,1)
13120      REM Loop until end of word (or end of string)
13130      WHILE C$<>" " AND Index%<=End%
13140         MID$(IconText$,Index%,1)=FN_Char_FTL(Icon%,Index%)
13150         Index%+=1
13160         C$=MID$(IconText$,Index%,1)
13170      ENDWHILE
13180      REM Loop until next word found (Or end of string)
13190      WHILE C$=" " AND Index%<=End%
13200         Index%+=1
13210         C$=MID$(IconText$,Index%,1)
13220      ENDWHILE
13230      PRINTIndex%,End%
13240   ENDWHILE
13250=IconText$
13260:
13270REM *********************************************************
13280REM Function to Force all text in a given icon to UPPER CASE.
13290REM *********************************************************
13300DEF FN_Icon_FTU(Icon%)
13310   LOCAL IconText$
13320   IconText$=FN_ReadIconText(Main%,Icon%,FALSE)
13330   Index%=1 : End%=LEN(IconText$)
13340   WHILE Index%<=End%
13350      MID$(IconText$,Index%,1)=FN_Char_FTU(Icon%,Index%)
13360      Index%+=1
13370      C$=MID$(IconText$,Index%,1)
13380   ENDWHILE
13390=IconText$
13400:
13410REM *********************************************************
13420REM Function to Force all text in a given icon to LOWER CASE.
13430REM *********************************************************
13440DEF FN_Icon_FTL(Icon%)
13450   LOCAL IconText$
13460   IconText$=FN_ReadIconText(Main%,Icon%,FALSE)
13470   Index%=1 : End%=LEN(IconText$)
13480   WHILE Index%<=End%
13490      MID$(IconText$,Index%,1)=FN_Char_FTL(Icon%,Index%)
13500      Index%+=1
13510      C$=MID$(IconText$,Index%,1)
13520   ENDWHILE
13530:
13540REM **************************************************
13550REM Function to Force a given character to UPPER CASE.
13560REM **************************************************
13570DEF FN_Char_FTU(Icon%,Index%)
13580   LOCAL Temp$
13590   Temp$=MID$(IconText$,Index%,1)
13600   IF Temp$>="a" AND Temp$<="z" THEN Temp$=CHR$(ASC(Temp$) AND &DF)
13610=Temp$
13620:
13630REM **************************************************
13640REM Function to Force a given character to LOWER CASE.
13650REM **************************************************
13660DEF FN_Char_FTL(Icon%,Index%)
13670   LOCAL Temp$
13680   Temp$=MID$(IconText$,Index%,1)
13690   IF Temp$>="A" AND Temp$<="Z" THEN Temp$=CHR$(ASC(Temp$) OR &20)
13700=Temp$
13710:
13720REM ************************************************************************************
13730REM Set up variable for print routine to give correct sizes & format for Video_8 inlays.
13740REM ************************************************************************************
13750DEF PROC_GetDocumentSize_8(Box%)
13760   PrintTop%=FALSE
13770   FOR L%=TopSetIndexStart% TO TopSetItemEnd% STEP 2
13780      IF FN_ReadIconText(Main%,L%,FALSE)<>"" OR FN_ReadIconText(Main%,L%+1,FALSE)<>"" THEN PrintTop%=TRUE
13790   NEXT
13800   IF PrintTop% THEN Height%=1105 ELSE Height%=670
13810   Width%=675 : REM 7.1 UNITS=1MM
13820   X1%=0  :  X2%=135  : X3%=Width%
13830   REM Y1%=0  :  Y2%=114  : Y3%=227 : Y4%=670 : Y5%=Height%
13840   Y1%=Height%  :  Y2%=Y1%-114  : Y3%=Y1%-227 : Y4%=Y1%-670 : Y5%=0
13850   Box%!0=0         : Box%!4=0
13860   Box%!8=Width%+20 : Box%!12=Height%+20 : REM To Allow For Rounding Errors In Conversion Routines.
13870   REM Set up variable for inlay printing.
13880   Font1X%=13*16 : Font1Y%=12*16 : Font2X%=12*16 : Font2Y%=12*16 : Font3X%=13*16 : Font3Y%=13*16
13890   UserNote_Y_Offset%=Y2%+35
13900   Title1_Y_Offset%=Y3%+82 : Title2_Y_Offset%=Y3%+47 : Title3_Y_Offset%=Y3%+12 : Title_X_Offset%=80
13910   Index_X_Offset%=X1%+20 : Item_X_Offset%=X2%+10 : Text_Drop_Btm%=25 : Text_Drop_Top%=30
13920   Copyright_Text$="Video_8 Index Printer � M.Bright 1992"
13930ENDPROC
13940:
13950REM **********************************************************************************
13960REM Set up variable for print routine to give correct sizes & format for VHS_C inlays.
13970REM **********************************************************************************
13980DEF PROC_GetDocumentSize_C(Box%)
13990   PrintTop%=FALSE
14000   FOR L%=TopSetIndexStart% TO TopSetItemEnd% STEP 2
14010      IF FN_ReadIconText(Main%,L%,FALSE)<>"" OR FN_ReadIconText(Main%,L%+1,FALSE)<>"" THEN PrintTop%=TRUE
14020   NEXT
14030   IF PrintTop% THEN Height%=1120 ELSE Height%=700
14040   Width%=653 : REM 7.1 UNITS=1MM
14050   X1%=0  :  X2%=120  : X3%=Width%
14060   REM Y1%=0  :  Y2%=110  : Y3%=280 : Y4%=700 : Y5%=Height%
14070   Y1%=Height%  :  Y2%=Height%-110  : Y3%=Y1%-280 : Y4%=Y1%-700 : Y5%=0
14080   Box%!0=0         : Box%!4=0
14090   Box%!8=Width%+20 : Box%!12=Height%+20 : REM To Allow For Rounding Errors In Conversion Routines.
14100   REM Set up variable for inlay printing.
14110   Font1X%=13*16 : Font1Y%=13*16 : Font2X%=13*16 : Font2Y%=12*16 : Font3X%=12*16 : Font3Y%=12*16
14120   UserNote_Y_Offset%=Y2%+35
14130   Title1_Y_Offset%=Y3%+130 : Title2_Y_Offset%=Y3%+75 : Title3_Y_Offset%=Y3%+20 : Title_X_Offset%=80
14140   Index_X_Offset%=X1%+10 : Item_X_Offset%=X2%+10 : Text_Drop_Btm%=25 : Text_Drop_Top%=28
14150   Copyright_Text$="VHS-C Index Printer � M.Bright 1992"
14160ENDPROC
14170:
14180REM ********************************************************************************
14190REM Set up variable for print routine to give correct sizes & format for DAT inlays.
14200REM ********************************************************************************
14210DEF PROC_GetDocumentSize_D(Box%)
14220   PrintTop%=FALSE
14230   FOR L%=TopSetIndexStart% TO TopSetItemEnd% STEP 2
14240      IF FN_ReadIconText(Main%,L%,FALSE)<>"" OR FN_ReadIconText(Main%,L%+1,FALSE)<>"" THEN PrintTop%=TRUE
14250   NEXT
14260   IF PrintTop% THEN Height%=7.1*130 ELSE Height%=7.1*77
14270   Width%=7.1*73 : REM 7.1 UNITS=1MM
14280   X1%=0  :  X2%=7.1*12  : X3%=Width%
14290   Y1%=Height%  :  Y2%=Y1%-7.1*9.5  : Y3%=Y1%-7.1*22 : Y4%=Y1%-7.1*76 : Y5%=0
14300   Box%!0=0         : Box%!4=0
14310   Box%!8=Width%+20 : Box%!12=Height%+20 : REM To Allow For Rounding Errors In Conversion Routines.
14320   REM Set up variable for inlay printing.
14330   Font1X%=10*16 : Font1Y%=10*16 : Font2X%=11*16 : Font2Y%=11*16 : Font3X%=13*16 : Font3Y%=12*16
14340   UserNote_Y_Offset%=Y2%+25
14350   Title1_Y_Offset%=Y3%+50 : Title2_Y_Offset%=Y3%+20 : Title_X_Offset%=80
14360   Index_X_Offset%=X1%+4 : Item_X_Offset%=X2%+4 : Text_Drop_Btm%=23 : Text_Drop_Top%=23
14370   Copyright_Text$="DAT Inlay Printer � M.Bright 1992"
14380ENDPROC
14390:
14400REM ****************************************************************************************************************
14410REM 'Draw' the inlay, using previously defined variables. All output has been switched to the printer at this stage.
14420REM this routine is the heart of the Risc-OS printer output.
14430REM ****************************************************************************************************************
14440DEF PROC_DrawInlay(Co_ordinateBlock%)
14450   SYS Find%,,BaseFont$,Font1X%,Font1Y%,0,0 TO BaseFontHandle%
14460   SYS Find%,,BoldFont$,Font2X%,Font2Y%,0,0 TO BoldFontHandle%
14470   SYS Find%,,EdgeFont$,Font3X%,Font3Y%,0,0 TO EdgeFontHandle%
14480:
14490   IF FN_ReadIconText(Main%,UserNote%,FALSE)<>"" THEN
14500      Text$=FN_ReadIconText(Main%,UserNote%,FALSE)
14510   ELSE
14520      Text$=Copyright_Text$
14530   ENDIF
14540   PROC_CentreProp(Text$,UserNote_Y_Offset%,"Bold",Width%/7.1)
14550:
14560   PROC_CentreProp(FN_ReadIconText(Main%,TitleFirstLine%,FALSE),Title1_Y_Offset%,"Title",Title_X_Offset%)
14570   PROC_PrintTapeNumber
14580   PROC_CentreProp(FN_ReadIconText(Main%,TitleFirstLine%+1,FALSE),Title2_Y_Offset%,"Title",Title_X_Offset%)
14590   IF InlayType$<>"DAT" THEN
14600      PROC_CentreProp(FN_ReadIconText(Main%,TitleFirstLine%+2,FALSE),Title3_Y_Offset%,"Title",Title_X_Offset%)
14610   ENDIF
14620:
14630   Separation%=(Y3%-Y4%)/13
14640   SpaceStartY%=Y4% + Separation%
14650   Icon%=BtmSetIndexStart%
14660   SYS "ColourTrans_SetGCOL",&C0C0C000,,,0,0
14670   WHILE SpaceStartY% <= Y3%
14680      IF SpaceStartY% < Y3%-10 THEN MOVE X1%,SpaceStartY% :DRAW X3%,SpaceStartY%
14690      Text$=FN_ReadIconText(Main%,Icon%,FALSE)
14700      PROC_FontPaint("",Text$,Index_X_Offset%,SpaceStartY%-Text_Drop_Btm%)
14710      Text$=FN_ReadIconText(Main%,Icon%+1,FALSE)
14720      PROC_FontPaint("",Text$,Item_X_Offset%,SpaceStartY%-Text_Drop_Btm%)
14730      SpaceStartY%+=Separation%
14740      Icon%+=2
14750   ENDWHILE
14760:
14770   IF PrintTop% THEN
14780      Separation=(Y4%-Y5%)/12
14790      SpaceStartY=Y5% + Separation
14800      Icon%=TopSetIndexStart%
14810      SYS "ColourTrans_SetGCOL",&C0C0C000,,,0,0
14820      WHILE SpaceStartY <= Y4%
14830         IF SpaceStartY < Y4%-10 THEN MOVE X1%,SpaceStartY :DRAW X3%,SpaceStartY
14840         Text$=FN_ReadIconText(Main%,Icon%,FALSE)
14850         PROC_FontPaint("",Text$,Index_X_Offset%,SpaceStartY-Text_Drop_Top%)
14860         Text$=FN_ReadIconText(Main%,Icon%+1,FALSE)
14870         PROC_FontPaint("",Text$,Item_X_Offset%,SpaceStartY-Text_Drop_Top%)
14880         SpaceStartY+=Separation
14890         Icon%+=2
14900      ENDWHILE
14910   ENDIF
14920:
14930   SYS "ColourTrans_SetGCOL",&00000000,,,0,0
14940   RECTANGLE X1%,Y5%,X3%,Y1%
14950   RECTANGLE X1%,Y3%,X3%,Y2%-Y3%
14960   MOVE X1%,Y4% : DRAW X3%,Y4%
14970   MOVE X2%,Y3% : DRAW X2%,Y5%
14980:
14990   SYS Lose%,BaseFontHandle%
15000   SYS Lose%,BoldFontHandle%
15010   SYS Lose%,EdgeFontHandle%
15020ENDPROC
15030:
15040REM ********************************************************
15050REM Sends the inlay data to the printer in NON Risc-OS mode.
15060REM ********************************************************
15070DEF PROC_DoPrinting(InlayType$)
15080   PROC_SetPrintVariables(InlayType$)
15090   PROC_SendData(PrintPitch$)
15100   :
15110   PRINT LongMinus$ : IF InlayType$<>"DAT" THEN PRINT BlankLine$
15120   IF FN_ReadIconText(Main%,UserNote%,FALSE)="" THEN
15130      PRINT Copyright$
15140   ELSE
15150      PRINT "|";FN_Centre(FN_ReadIconText(Main%,UserNote%,FALSE),LineLength%);"|"
15160   ENDIF
15170   PRINT LongEqual$
15180   PROC_PrintTitle(InlayType$)
15190   PRINT LongEqual$ : IF InlayType$<>"DAT" THEN PRINT BlankLine$
15200   FOR L%=BtmSetIndexEnd% TO BtmSetIndexStart% STEP -2
15210      PRINT "|";RIGHT$(STRING$(7," "+FN_ReadIconText(Main%,L%,FALSE)),7);Spacer$;FN_ReadIconText(Main%,L%+1,TitleLen%);"|"
15220   NEXT
15230   IF InlayType$<>"DAT" THEN PRINT LongMinus$
15240   :
15250   PrintTop%=FALSE
15260   FOR L%=TopSetIndexEnd% TO TopSetIndexStart% STEP -2
15270      IF FN_ReadIconText(Main%,L%,FALSE)<>"" OR FN_ReadIconText(Main%,L%+1,FALSE)<>"" THEN PrintTop%=TRUE
15280   NEXT
15290   :
15300   IF PrintTop% THEN
15310      IF InlayType$<>"DAT" THEN PRINT BlankLine$
15320      FOR L%=TopSetIndexEnd% TO TopSetIndexStart% STEP -2
15330         PRINT "|";RIGHT$(STRING$(7," "+FN_ReadIconText(Main%,L%,FALSE)),7);Spacer$;FN_ReadIconText(Main%,L%+1,TitleLen%);"|"
15340      NEXT
15350      IF InlayType$="Video_8" THEN PRINT BlankLine$
15360      PRINT LongMinus$
15370   ENDIF
15380ENDPROC
15390:
15400REM ********************************************************************************************************
15410REM Set global print variable to enable the non Risc-OS printer rouytine to generate 3 differnt label types.
15420REM ********************************************************************************************************
15430DEF PROC_SetPrintVariables(InlayType$)
15440   CASE InlayType$ OF
15450      WHEN "Video_8" : Copyright$ ="|  Video 8 Inlay Printer  � M.S.Bright 1992  |"
15460                       Spacer$    =" : " : TitleLen%=34 : LineLength%=44
15470                       PrintPitch$=EliteON$
15480      WHEN "VHS_C"   : Copyright$ ="|  VHS-C Inlay Printer  � M.S.Bright 1992  |"
15490                       Spacer$    =":" : TitleLen%=34 : LineLength%=42
15500                       PrintPitch$=EliteON$
15510      WHEN "DAT"     : Copyright$ ="|     DAT Inlay Printer    � M.S.Bright 1992     |"
15520                       Spacer$    =" : " : TitleLen%=38 : LineLength%=48
15530                       PrintPitch$="1,15"
15540   ENDCASE
15550   LongMinus$ ="|"+STRING$(LineLength%,"-")+"|"
15560   BlankLine$ ="|"+STRING$(LineLength%," ")+"|"
15570   LongEqual$ ="|"+STRING$(LineLength%,"=")+"|"
15580ENDPROC
15590:
15600REM **********************************************************************************************************
15610REM Tis is part of the NON Risc-OS print routine. It prints the 'cassette' title area on the spine of the case
15620REM Due to the many differences in this area of the label a separate routine was required.
15630REM **********************************************************************************************************
15640DEF PROC_PrintTitle(InlayType$)
15650   IF InlayType$="Video_8" THEN
15660      PROC_SendData(EmphasisedON$)
15670      PRINT "| ";FN_Centre(FN_ReadIconText(Main%,TitleFirstLine%,FALSE),34);"  ";FN_ReadIconText(Main%,TapeNumber%,FALSE);" |"
15680      PRINT "| ";FN_Centre(FN_ReadIconText(Main%,TitleFirstLine%+1,FALSE),34);"         |"
15690      PRINT "| ";FN_Centre(FN_ReadIconText(Main%,TitleLastLine%,FALSE),34);"         |"
15700      PROC_SendData(EmphasisedOFF$)
15710   ENDIF
15720   IF InlayType$="VHS_C" THEN
15730      PROC_SendData(EmphasisedON$)
15740      PRINT "|";RIGHT$(STRING$(41,"  ")+FN_ReadIconText(Main%,TapeNumber%,7),41);" |"
15750      PRINT "|";FN_Centre(FN_ReadIconText(Main%,TitleFirstLine%,FALSE),42);"|"
15760      PRINT "|";FN_Centre(FN_ReadIconText(Main%,TitleFirstLine%+1,FALSE),42);"|"
15770      PRINT "|";FN_Centre(FN_ReadIconText(Main%,TitleLastLine%,FALSE),42);"|"
15780      PROC_SendData(EmphasisedOFF$)
15790   ENDIF
15800   IF InlayType$="DAT" THEN
15810      PRINT "| ";FN_Centre(FN_ReadIconText(Main%,TitleFirstLine%,FALSE),40);" ";FN_ReadIconText(Main%,TapeNumber%,FALSE);"|"
15820      PRINT "| ";FN_Centre(FN_ReadIconText(Main%,TitleFirstLine%+1,FALSE),40);"       |"
15830   ENDIF
15840ENDPROC
15850:
15860REM *************************************************************
15870REM Routine to amend the title bar, The title MUST BE INDIRECTED.
15880REM *************************************************************
15890DEF PROC_ChangeWindowTitle(Window%,NewTitle$)
15900   Block%!100 = Window%
15910   SYS "Wimp_GetWindowInfo",,Block%+100
15920   Pointer% = !(Block%+176)
15930   $Pointer% = NewTitle$
15940   IF MainWindowOpen% THEN SYS "Wimp_ForceRedraw",-1,Block%!104,(Block%!116)-36,Block%!112,Block%!116+36
15950ENDPROC

�>!RunImage
�
� � Mark Bright.
(:
2Version$="1.00 (05-Mar-92)"
<:
F7� Block% 1024*4  :� General purpose WIMP workspace!
P
Z�_Initialise_WIMP_System
d:
n#�_SetIconText(3,Info%,Version$)
x'�_SetIconText(4,Save%,"BoffBright")
�:
�� � �_Wimp_Error
�"�_Initialise_Program_Variables
�0�_SetIconText(TapeNumber%,Main%,TapeNumber$)
�:
�� � �_Wimp_Error
�:
�n� ********************************************************************************************************
�l� All RISCOS/WIMP Specific Proceedures First, !Video8 Proc'S after.... Makes for a better skeleton prog!
�n� ********************************************************************************************************
�
��
�'   ș "Wimp_Poll",Mask%,Block% � A%
   Ȏ A% �
C      � 2 : ș "Wimp_OpenWindow",,Block%   : � allows auto Drag
D      � 3 : ș "Wimp_CloseWindow",,Block%  : � allows auto Close
"7             : � Block%!0=Main% � MainWindowOpen%=�
,      � 6 : �_ButtonPressed
67      � 7 : �_DragBoxEnd(�_ReadIconText(Save%,4,�))
@'      � 8 : �_ProcessKey(Block%!24)
J      � 9 : �_MenuSelection
T1      � 16,17,18 : �_DecodeMessage(Block%!16)
^   �
h� �
r:
|/� *****************************************
�/� This is the WIMP Error handling routine !
�/� *****************************************
�� �_Wimp_Error
�   � Error$
�   ș "OS_Byte",3,0
�   ș "Wimp_DragBox",,-1
�   !Block%=�
�   Error$ = �$
�Y   � �<>2001 � Error$ += "Internal Error ("+�(�)+"). OK to continue, CANCEL to abort"
�   $(Block%+4)=Error$ + �0
�O   ș "Wimp_ReportError",Block%,%001 - (2*(�<>2001)),MyTaskName$ � ,Result%
�    � Result%=2 � �_CloseDown
��
:
*� ************************************
*� Mouse 'Click' Whilst Over Menu Item.
&*� ************************************
0� �_MenuSelection
:   � IconBarMenuActive% �
D      Ȏ Block%!0 �
N>         � 0 : �_OpenSubMenu(Info%) : IconBarMenuActive%=�
XA         � 1 : �_OpenSubMenu(Options%) : IconBarMenuActive%=�
b9         � 2 : Old$=InlayType$ : InlayType$="Video_8"
l3                  � Old$="VHS_C" � Old$="DAT" �
v0                     menu%!(28+24*2)=Ticked%
�h                     menu%!(28+24*3)=NotTicked%                  : � Tick Item 2, Untick Items 3 & 4
�A                     menu%!(28+24*4)=NotTicked% � Underlined%
�?                     �_SetIconText(Format%,Main%,"Video_8")
�0                     �_Redraw(Main%,Format%)
�@                     �_ChangeWindowTitle(Main%,WindowTitle$)
�@                     �_NotSelectable(Main%,TitleLastLine%,�)
�                  �
�7         � 3 : Old$=InlayType$ : InlayType$="VHS_C"
�6                  � Old$="Video_8"  � Old$="DAT" �
�3                     menu%!(28+24*2)=NotTicked%
�i                     menu%!(28+24*3)=Ticked%                      : � Tick Item 3, Untick Items 2 & 4
�A                     menu%!(28+24*4)=NotTicked% � Underlined%
�=                     �_SetIconText(Format%,Main%,"VHS_C")
0                     �_Redraw(Main%,Format%)
@                     �_ChangeWindowTitle(Main%,WindowTitle$)
@                     �_NotSelectable(Main%,TitleLastLine%,�)
                   �
*5         � 4 : Old$=InlayType$ : InlayType$="DAT"
47                  � Old$="Video_8" � Old$="VHS_C" �
>3                     menu%!(28+24*2)=NotTicked%
HW                     menu%!(28+24*3)=NotTicked% : � Tick Item 4, Untick Items 3 & 2
R>                     menu%!(28+24*4)=Ticked% � Underlined%
\;                     �_SetIconText(Format%,Main%,"DAT")
f0                     �_Redraw(Main%,Format%)
p=                     �_ChangeWindowTitle(Main%,DatTitle$)
z@                     �_NotSelectable(Main%,TitleLastLine%,�)
�                  �
�E         � 5 : �_CloseDown : � <Select> on "quit" causes shutdown
�      �
�   �
�
�    � MainWindowMenuActive% �
�      Ȏ Block%!0 �
�A         � 0 : �_OpenSubMenu(Info%) : MainWindowMenuActive%=�
�A         � 1 : �_OpenSubMenu(Save%) : MainWindowMenuActive%=�
�D         � 2 : �_OpenSubMenu(Options%) : MainWindowMenuActive%=�
�#         � 3 : �_FormatIconText
�!         � 4 : �_WipeIconText
�      �
   �

'   ș "Wimp_GetPointerInfo",,Block%
$   � (Block%!8 � 1) �
.<      � IconBarMenuActive% � ș "Wimp_CreateMenu",,menu%
8C      � MainWindowMenuActive% � ș "Wimp_CreateMenu",,MainMenu%
B   �
L�
V:
`&� ********************************
j&� Mouse Button Status Has Changed.
t&� ********************************
~� �_ButtonPressed
�+� MouseX%,MouseY%,Button%,Window%,Icon%
�F   MouseX%=Block%!00 : � Block%!00 = Mouse X (Screen Co-ordinates)
�F   MouseY%=Block%!04 : � Block%!04 = Mouse Y (Screen Co-ordinates)
�0   Button%=Block%!08 : � Block%!08 = Buttons
�V   Window%=Block%!12 : � Block%!12 = Window Handle (BackGround = -1, IconBar = -2)
�Q   Icon%  =Block%!16 : � Block%!16 = Icon Handle ( Work Area BackGround = -1)
�
�/   � Window%=Options% � Icon%=OptionsOKF% �
�H      �_ButtonPress(Options%, OptionsOKF%, OptionsOKL%, OptionsOKD%)
�      �_StoreUserData
�   �
�
6   � Window%=IconBar% � Icon%=IconBarIconHandle% �

      Ȏ Button% �
)         � %001 : �_OpenMainWindow(�)
)         � %100 : �_OpenMainWindow(�)
(D         � %010 : MainWindowMenuActive%=� : IconBarMenuActive%=�
2K                     ș "Wimp_CreateMenu",,menu%,Block%!0-64,(40*7)+104
<      �
F   �
P
Z9   � Button%<> %010 � Window%=Main% � Icon%=PrintF% �
d9      �_ButtonPress(Main%, PrintF%, PrintL%, PrintD%)
n      �_PrintOut
x      �
�
�'   � Button%=%010 � Window%=Main% �
�7      � InlayType$="Video_8" � InlayType$="VHS_C" �
�$         Postfix$=�InlayType$,2)
�      �
�         Postfix$="_D"
�      �
�_      Temp$=�_ReadIconText(Save%,4,�) : Temp2$=�_ReadIconText(Main%,TapeNumber%,�)+Postfix$
�8      � �Temp$,10)="BoffBright" � OldName$<>Temp2$ �
�;         NewSaveName$=�_ConvertSoftToHardSpaces(Temp2$)
�#         � �(Temp$)>�(Temp2$) �
�!            Pointer%=�(Temp$)
�E            ȕ �Temp$,Pointer%,1)<>"." � Pointer%>0:Pointer%-=1:�
D            �_SetIconText(4,Save%,�Temp$,Pointer%)+NewSaveName$)
         �
3            �_SetIconText(4,Save%,NewSaveName$)
"         �
,         OldName$=Temp2$
6      �
@7      �_CreateMainWindowMenu(MouseX%,MouseY%,Icon%)
J   �
T
^6   � Window%=Save% � Icon%=SaveIcon%  � �_DragSave
h+   � Window%=Save% � Icon%=SaveOKF%   �
r<      �_ButtonPress(Save%, SaveOKF%, SaveOKL%, SaveOKD%)
|-      �_SaveTo(�_ReadIconText(Save%,4,�))
�   �
�
�,   � Button%<> %010 � Window%=Options% �
�      Ȏ Icon% �
�b         �  0,1,5 : �_SetIconText(DriverName%,Main%,PDriver$(�_ReadESGSelected(Options%,9)+1))
�      �
�%      �_Redraw(Main%,DriverName%)
�   �
��
�:
�m� *******************************************************************************************************
�m� Change all occurances of <SPACE> in the tape number to <ALT-SPACE> to stop the filer throwing a wobbly.
�m� *******************************************************************************************************
&� �_ConvertSoftToHardSpaces(Name$)
   Pointer%=�(Name$)
   �
&"      Char$=�Name$,Pointer%,1)
0      � Char$=" " �
:         Char$="�"
D%         �Name$,Pointer%,1)=Char$
N      �
X      Pointer%-=1
b   � Pointer%=1
l
=Name$
v:
�$********************************
�"� 'Press' a button in a window
�$********************************
�3� �_ButtonPress(Window%, Front%, Light%, Dark%)
�   � TimeNow%
�*   �_SetIconColour(Window%, Light%, 4)
�)   �_SetIconColour(Window%, Dark%, 0)
�+   �_SetIconColour(Window%, Front%, 14)
�   TimeNow% = �
�   �
�   � � > TimeNow%+25
�*   �_SetIconColour(Window%, Light%, 0)
�)   �_SetIconColour(Window%, Dark%, 4)
*   �_SetIconColour(Window%, Front%, 1)
�
:
 0********************************************
*.� Change the colour of an icon in a window
40********************************************
>.� �_SetIconColour(Window%, Icon%, Colour%)
H   Block%!0  = Window%
R   Block%!4  = Icon%
\    Block%!8  = Colour% << 28
f   Block%!12 = %1111 << 28
p&   ș "Wimp_SetIconState",, Block%
z�
�:
�I� *******************************************************************
�I� When a key is pressed, Check if it concerns me. If not, Pass it on!
�I� *******************************************************************
�� �_ProcessKey(KeyPressed)
�   � Icon%,Index%,Window%
�   Window%=Block%!0
�   Icon%=Block%!4
�   Index%=Block%!20
�   Ȏ KeyPressed �
�
�B      � &180 : �_ButtonPress(Main%, PrintF%, PrintL%, PrintD%)
�                   �_PrintOut
	      � <Print>
	
	      � &18A
	$      � <Tab>
	./                  � Icon%<=BtmSetItemEnd% �
	8Y                     �_SetCaretPosition(Icon%-((Icon% � 2)=0)+((Icon% � 2)=1),Index%)
	B                  �
	Li                  � Icon%>=TitleFirstLine% � Icon%<TitleLastLine% � �_SetCaretPosition(TapeNumber%,0)
	VQ                  � Icon%=TapeNumber% � �_SetCaretPosition(TitleFirstLine%,0)
	`
	j      � &0D
	t      � <Return>
	~?                  � Window%=Main% � Icon%<=BtmSetItemEnd% �
	�A                     � ((Icon% � 2)=1) � �_MoveDownOneBackOne
	�J                     � ((Icon% � 2)=0) � �_SetCaretPosition(Icon%+1,0)
	�                  �
	�j                  � Window%=Main% � Icon%>=TitleFirstLine% � Icon%<=TitleLastLine% � �_MoveDownAnEntry
	�[                  � Window%=Main% � Icon%=TapeNumber% � �_SetCaretPosition(UserNote%,0)
	�'                  � Window%=Save% �
	�K                     �_ButtonPress(Save%, SaveOKF%, SaveOKL%, SaveOKD%)
	�<                     �_SaveTo(�_ReadIconText(Save%,4,�))
	�                  �
	�
	�      � &1E
	�      � <Home>
U                  � Icon%<=BtmSetItemEnd% � �_SetCaretPosition(BtmSetIndexEnd%,0)


      � &18F
      � <Cursor Up>
(%                  �_MoveUpAnEntry
2
<      � &18E
F      � <Cursor Down>
P'                  �_MoveDownAnEntry
Z
d      � &199
n      � <Shift><f9>
x$                  �_WipeIconText
�
�      � &1CA
�      � <f10>
�4                  �_SwapCase(Main%,Icon%,Index%)
�
�      � &1CB
�)      � <f11> - Delete to end of line
�B                  Text$=��_ReadIconText(Main%,Icon%,�),Index%)
�6                  �_SetIconText(Icon%,Main%,Text$)
�+                  �_Redraw(Main%,Icon%)
�
�,         ș "Wimp_ProcessKey",Block%!24
�
   �
�
:
"G� *****************************************************************
,G� Set which icon the caret is in, scrolling the window as required.
6G� *****************************************************************
@&� �_SetCaretPosition(Icon%,Index%)
J4   � CaretX%, CaretY%, Top%, Btm%, Left%, Right%
T3   IconLength%=�(�_ReadIconText(Main%,Icon%,�))
^0   � Index%>IconLength% � Index%=IconLength%
h9   ș "Wimp_SetCaretPosition",Main%,Icon%,,,-1,Index%
r)   ș "Wimp_GetCaretPosition",,Block%
|+   CaretX%=Block%!8 : CaretY%=Block%!12
�   Block%!0=Main%
�'   ș "Wimp_GetWindowState",,Block%
�:   Top% =Block%!24 : Btm%  =Top% -(Block%!16-Block%!8)
�:   Left%=Block%!20 : Right%=Left%+(Block%!12-Block%!4)
�w   � Since caret co-ordinates locate the bottom of the caret, there is a fudge of 64 above and 32 below (32=1 char)
�   � (Top%-64 < CaretY%) �
�      Block%!24=CaretY%+64
�&      ș "Wimp_OpenWindow",,Block%
�   �
�   � (Btm%+32 > CaretY%) �
�1      Block%!24=Block%!24-(Btm%-(CaretY%-32))
�&      ș "Wimp_OpenWindow",,Block%
�   �
�
:
%� *******************************
&%� Redraw the specifiied icon (v2)
0%� *******************************
:� �_Redraw(Window%,Icon%)
D   Block%!0=Window%
N   Block%!4=Icon%
X   Block%!8=0
b   Block%!12=0
l%   ș "Wimp_SetIconState",,Block%
v�
�:
�E� ***************************************************************
�H� When a message is received, Control is passed to here for decoding
�E� ***************************************************************
�� �_DecodeMessage(Request%)
�   Ȏ Request% �
�'      � msg_quit%     : �_CloseDown
�A      � msg_datasave% : Block%!0=(48+�("<Wimp$Scrap> "))� � 3
�1                           Block%!12=Block%!8
�*                           Block%!16=2
�:                           $(Block%+44)="<Wimp$Scrap>"
�1                           SaveRef%=Block%!12
�Q                           ș "Wimp_SendMessage",usr_message%,Block%,Block%!4

7      � msg_dsaveACK% : �_HandleMessage_DataSaveAck

-      � msg_dataload% : �_FileDroppedOnMe

 O      � msg_help%     : �_GiveHelp(Block%!32,Block%!36,Block%!20,Block%!24)

*W      � msg_taskinit% : � �_ReadString(Block%+28)=MyTaskName$ � Block%!4<> My_id% �

4]                              � Another !Video8 is trying to start up, I am closing down!

>-                              �_CloseDown

H                            �

R   �

\�

f:

p>� ********************************************************

z@� Start Up program as a task with name "Video Inlay Printer"

�"� And put icon on the Icon bar

�>� ********************************************************

�� �_Initialise_WIMP_System

�(   MyTaskName$="Video Inlay Printer"

�C   ș "Wimp_Initialise",200,&4B534154,MyTaskName$ � ver%,My_id%

�-   IconBarIconHandle%=�_CreateIconBarIcon

�   �_Initialise_Sprites

�   �_Initialise_Templates

�n   Mask%=%1100000110001    : � Mask Out codes for Gain/Lose Caret, Pointer Enter/Leave Window & Null Event

��

�:

�A� ***********************************************************

�A� All WIMP Programs should be able to shut themselves down!!!
A� ***********************************************************
� �_CloseDown
+   ș "Wimp_CloseDown",My_id%,&4B534154
$   ș "OS_Exit"
.�
8:
BF� ****************************************************************
LF� Opens up the template file, Fondles it, and then creates Windows
VF� ****************************************************************
`� �_Initialise_Templates
j.   maxws%=&900 : � ws% maxws% : curws%=ws%
t?   ș"Wimp_OpenTemplate",,"<Video$Dir>.Resources.Templates"
~J   ș"Wimp_LoadTemplate",,Block%,ws%,ws%+maxws%,-1,"info",0 � ,,curws%
�,   ș"Wimp_CreateWindow",,Block% � Info%
�M   ș"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"save",0 � ,,curws%
�,   ș"Wimp_CreateWindow",,Block% � Save%
�M   ș"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"Main",0 � ,,curws%
�,   ș"Wimp_CreateWindow",,Block% � Main%
�R   ș"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"Print_Opt",0 � ,,curws%
�   Block%!64 = SpriteArea%
�/   ș"Wimp_CreateWindow",,Block% � Options%
�   ș"Wimp_CloseTemplate"
��
�:
�I� *******************************************************************
I� This writes over the text in the Icon, and it should not be done!!!

.� Only Works With Indirected Text Strings!
I� *******************************************************************
4� �_SetIconText(IconHandle%,WindowHandle%,Text$)
(   � Pointer%
2   Block%!0=WindowHandle%
<   Block%!4=IconHandle%
F%   ș "Wimp_GetIconState",,Block%
P"   � (Block%!24 � (1<<8))<>0 �
Z      Pointer%=Block%!28
d   �
n      Pointer%=Block%+28
x   �
�   $Pointer%=Text$
��
�:
�,� **************************************
�,� The name sort of says it all really!!!
�,� **************************************
�� �_SetUpIconBarMenu
�   � m%
�   � menu% 28+6*24
�   $menu%="Video"
�   menu%?12=`black
�   menu%?13=`grey2
�   menu%?14=`black
   menu%?15=`white
   menu%!16=128
   menu%!20=40
"   menu%!24=0
,
6   m%=menu%+28
@   m%!0=&0
J0   m%!4=Info%    :� name from template open.
T   m%!8=(7<<24) � %10001
^   $(m%+12)="Info"
h
r   m%=m%+24
|   m%!0=&02
�   m%!4=Options%
�   m%!8=(7<<24) � %10001
�   $(m%+12)="Options"
�
�   m%=m%+24
�3   � InlayType$="Video_8" � m%!0=&01 � m%!0=&00
�
   m%!4=0
�   m%!8=(7<<24) � %10001
�   $(m%+12)="Video 8"
�
�   m%=m%+24
�1   � InlayType$="VHS_C" � m%!0=&01 � m%!0=&00
�
   m%!4=0
   m%!8=(7<<24) � %10001
   $(m%+12)="VHS C"

&   m%=m%+24
0/   � InlayType$="DAT" � m%!0=&03 � m%!0=&02
:
   m%!4=0
D^   m%!8=(7<<24) � %10001        : � to grey icon out add 'OR 1<<22' to the end of the line
N   $(m%+12)="DAT"
X
b   m%=m%+24
l   m%!0=&80
v
   m%!4=0
�   m%!8=(7<<24)� %10001
�   $(m%+12)="Quit"
��
�:
�C� *************************************************************
�C� This takes a Sprite and makes it into an Icon For the IconBar
�C� *************************************************************
�� �_CreateIconBarIcon
�   � Icon%
�   Block%!0=-1
�   Block%!4=0
�   Block%!8=0
�   Block%!12=68
   Block%!16=68
    Block%!20=%10000000000010
   $(Block%+24)="!Video"
 +   ș "Wimp_CreateIcon",,Block% � Icon%
*
=Icon%
4:
>3� *********************************************
H3� Read Info for Window Main, and then open it !
R3� *********************************************
\-� �_OpenMainWindow(WipeTemplateIconText%)
f6   � WipeTemplateIconText% � New% � �_WipeIconText
p   !Block%=Main%
z'   ș "Wimp_GetWindowState",,Block%
�#   ș "Wimp_OpenWindow",,Block%
�
   New%=�
�,   �_SetCaretPosition(BtmSetIndexEnd%,0)
�   MainWindowOpen%=�
��
�:
�L� **********************************************************************
�L� This reads the text from the writable Icon specified in the parameters
�H� and if Pad%<>FALSE TRUE then pads out the result to required size.
�L� **********************************************************************
�4� �_ReadIconText(WindowHandle%,IconHandle%,Pad%)
�   � Result$
�   Block%!0=WindowHandle%
   Block%!4=IconHandle%
%   ș "Wimp_GetIconState",,Block%
"   � (Block%!24 � (1<<8))<>0 �
$      Result$=$(Block%!28)
.   �
8      Result$=$(Block%+28)
B   �
L,   � Pad%>0 � =�Result$+�Pad%," "),Pad%)
V=Result$
`:
j/� *****************************************
t/� Wipe the text from all the writable icons
~/� *****************************************
�� �_WipeIconText
�3   � ItemText$,IndexText$,TapeNumberText$,Loop%
�#   ItemText$="" : IndexText$=""
�5   � Loop%=TopSetIndexStart% � BtmSetItemEnd% � 2
�X      �_SetIconText(Loop%,Main%,IndexText$) : �_SetIconText(Loop%+1,Main%,ItemText$)
�9      �_Redraw(Main%,Loop%) : �_Redraw(Main%,Loop%+1)
�   �
�/   � Loop%=TitleFirstLine% � TitleLastLine%
�F      �_SetIconText(Loop%,Main%,ItemText$) : �_Redraw(Main%,Loop%)
�   �
�3   �_SetIconText(TapeNumber%,Main%,TapeNumber$)
�/   �_SetIconText(UserNote%,Main%,ItemText$)
"   �_Redraw(Main%,TapeNumber%)

    �_Redraw(Main%,UserNote%)
�
:
(,� **************************************
2,� The name sort of says it all really!!!
<+� *************************************
F)� �_CreateMainWindowMenu(X%,Y%,Icon%)
P0   � m%,Flags%,Pointer%,Sel%,IconFlag%,Item$
Z5   MainWindowMenuActive%=� : IconBarMenuActive%=�
d   � MainMenu% 29+7*24
n   $MainMenu%="Main"
x   MainMenu%?12=`black
�   MainMenu%?13=`grey2
�   MainMenu%?14=`black
�   MainMenu%?15=`white
�   MainMenu%!16=16*16
�   MainMenu%!20=40
�   MainMenu%!24=0
�   m%=MainMenu%+28
�   �
�0      � Flags%,Pointer%,Sel%,IconFlag%,Item$
�C      m%!0=Flags%                                 :� Menu Flags
�Y      m%!4=Pointer%                               :� Pointer to Sub-Menu (-1 If None)
�F      m%!8=IconFlag% � (Sel%<<22) � (7<<24)     :� Menu Icon Flags
�R      $(m%+12)=Item$                              :� Item Name (12 Bytes Max.)
      m%=m%+24
   � Flags%=&80
   :
"   � +0
,"   � &00,Info%,0,%10001,"Info"
6'   � &00,Save%,0,%10001,"Save data"
@(   � &00,Options%,0,%10001,"Options"
J!   � &00,-1,0,%10001,"Format"
T#   � &80,-1,0,%10001,"Wipe all"
^   :
h/   ș "Wimp_CreateMenu",,MainMenu%,X%-96,Y%
r�
|:
�T� ******************************************************************************
�T� Control Comes To Here When The User Has Dragged The Save Icon And Released It.
�T� ******************************************************************************
�� �_DragBoxEnd(LeafName$)
�   Pointer%=�LeafName$
�2   ȕ Pointer%>0 � �LeafName$,Pointer%,1)<>"."
�      Pointer%-=1
�   �
�'   LeafName$=�LeafName$,Pointer%+1)
�'   ș "Wimp_GetPointerInfo",,Block%
�   SenderWindow%=Block%!12
�   SenderIcon%=Block%!16
�   Block%!20=SenderWindow%
   Block%!24=SenderIcon%
   Block%!28=Block%!0
   Block%!32=Block%!4
&   Block%!0=44+�LeafName$
0!   Block%!0+=4-(Block%!0 � 4)
:   Block%!4=0
D   Block%!8=0
N   Block%!12=0
X'   Block%!16=1 : � Message_DataSave
b.   Block%!36=0 : � Length of proposed save
l   Block%!40=MyFileType%
v    $(Block%+44)=LeafName$+�0
�x   � � ((SenderWindow%=Save%) � (SenderWindow%=Main%) � (SenderWindow%=IconBar% � SenderIcon%=IconBarIconHandle%)) �
�M      ș "Wimp_SendMessage",usr_message%,Block%,SenderWindow%,SenderIcon%
�   �
��
�:
�<� ******************************************************
�;� A Data Save Acknowlegement Message Has Been Received!
�<� ******************************************************
�!� �_HandleMessage_DataSaveAck
�   � PathName$,Pointer%
�   Pointer%=Block%+44
�   �
�      PathName$+=�?Pointer%
      Pointer%+=1
   � ?Pointer%=0
   �_SaveTo(PathName$)
    Block%!0=40+�PathName$+4
*!   Block%!0+=4-(Block%!0 � 4)
4   Block%!16=msg_dataload%
>   Block%!36=0
H   Block%!40=MyFileType%
R"   $(Block%+44)=PathName$+�(0)
\N   ș "Wimp_SendMessage",usr_msgrecorded%,Block%,SenderWindow%,SenderIcon%
f�
p:
;� *****************************************************
;� Read a string from a pointer, using a zero-terminator
;� *****************************************************
$� �_ReadString(Pointer%)
.   � String$
8   ȕ ?Pointer%<>0
B      String$+=�?Pointer%
L      Pointer%+=1
V   �
`=String$
j:
tN� ************************************************************************
~N� This Bit Does The Actual Saving Of The Data When Requested By The Filer.
�N� ************************************************************************
�� �_SaveTo(PathName$)
�   Pointer%=�PathName$
�2   ȕ Pointer%>1 � �PathName$,Pointer%,1)<>"."
�      Pointer%-=1
�   �
�K   � Pointer%=1 � � 2001,"To save: Drag the icon to a directory viewer"
�   ș "Wimp_CreateMenu",,-1
�   ș "OS_Byte",3,2
�   �("SPOOL "+PathName$)
�G   � First print out an identifier, so I can tell if it is my file!
�!   � MyFileIdentifier$;�(10);
;   � Open Out A File And Print Out All the information!

.   � Loop%=TopSetIndexStart% � TapeNumber%
0      � �_ReadIconText(Main%,Loop%,�);�(10);
   �
(1   � �_ReadIconText(Main%,UserNote%,�);�(10);
2"   � Then Close the file again
<
   *SPOOL
F   ș "OS_Byte",3,0
P1   � "SetType "+PathName$+" "+�~(MyFileType%)
Zq   � Overwrite leafname text with "BoffBright" to enable auto insertion of the tape number for the file name!
d2   PathName$=�PathName$,Pointer%)+"BoffBright"
n'   �_SetIconText(4,Save%,PathName$)
x�
�:
�?� *********************************************************
�?� This Handles The Dragging Of THe Outline Of The Save Box.
�?� *********************************************************
�� �_DragSave
�   !Block%=Save%
�'   ș "Wimp_GetWindowState",,Block%
�"   OffsetX%=Block%!4-Block%!20
�#   OffsetY%=Block%!16-Block%!24
�   Block%!0=Save%
�   Block%!4=0
�%   ș "Wimp_GetIconState",,Block%
�   !Block%=Save%
   Block%!4=5
!   Block%!8=Block%!8+OffsetX%
#   Block%!12=Block%!12+OffsetY%
"#   Block%!16=Block%!16+OffsetX%
,#   Block%!20=Block%!20+OffsetY%
6   Block%!24=0
@   Block%!28=0
J   Block%!32=&7FFFFFFF
T   Block%!36=&7FFFFFFF
^    ș "Wimp_DragBox",,Block%
h�
r:
|@� **********************************************************
�@� When A File Is Dropped Onto My Icon Bar Icon, I Come Here!
�@� **********************************************************
�� �_FileDroppedOnMe
�!   � Block%!40 =MyFileType% �
�+      SaveName$=�_ReadString(Block%+44)
�      Block%!12=Block%!8
�      Block%!16=4
�<      ș "Wimp_SendMessage",usr_message%,Block%,Block%!4
�(      �_DoActualLoadThing(SaveName$)
�   �
�!   � Block%!40 =ConfigFile% �
�      �_ReadUserData
�"      � InlayType$="Video_8" �
$         menu%!(28+24*2)=Ticked%
V         menu%!(28+24*3)=NotTicked%                 : � Tick Item 2, Untick Item 3
5         menu%!(28+24*4)=NotTicked% � Underlined%
&      �
0       � InlayType$="VHS_C" �
:'         menu%!(28+24*2)=NotTicked%
DW         menu%!(28+24*3)=Ticked%                     : � Tick Item 3, Untick Item 2
N5         menu%!(28+24*3)=NotTicked% � Underlined%
X      �
b      � InlayType$="DAT" �
l'         menu%!(28+24*2)=NotTicked%
vV         menu%!(28+24*3)=NotTicked%                 : � Tick Item 3, Untick Item 2
�2         menu%!(28+24*3)=Ticked% � Underlined%
�      �
�   �
��
�:
�U� *******************************************************************************
�U� Control Comes Here When A Valid File Type Has Been Dropped Onto My Application.
�U� *******************************************************************************
�� �_LoadData(FileName$)
�   LoadFile%=�(FileName$)
�   TempText$=�#(LoadFile%)
�X   � TempText$<>MyFileIdentifier$ � � #LoadFile% : � 2001,"Not a !Video saved file."
�2   � LoadLoop%=TopSetIndexStart% � TapeNumber%
!      TempText$=�#(LoadFile%)
2      �_SetIconText(LoadLoop%,Main%,TempText$)
#      �_Redraw(Main%,LoadLoop%)
    �
*   TempText$=�#(LoadFile%)
4/   �_SetIconText(UserNote%,Main%,TempText$)
>    �_Redraw(Main%,UserNote%)
H   � #LoadFile%
R�
\:
fK� *********************************************************************
pJ� Reads State Of Icons in Window Stated and Returns The First Selected
zF� Icon In The Give Exclusive Selection Group. (-1 = None Selected)
�J� ********************************************************************
�+� �_ReadESGSelected(WindowHandle%,Esg%)
�   � Mask%,Pattern%
�A   Mask%   = (1<<21)+(31<<16)       : � Bit 21 and Bits 16-20
�>   Pattern%= (1<<21)+(Esg%<<16)     : � Selected and ESG X
�B   ș "Wimp_WhichIcon",WindowHandle%,Block%+200,Mask%,Pattern%
�=Block%!200
�:
�:
�i� ***************************************************************************************************
�g� ALTHOUGH A LOT OF THE ABOVE CODE IS STILL VERY SPECIFIC TO THIS PROGRAM, IT CAN BE EASILY ADAPTED
�U� ALL CODE BELOW THIS LINE IS UNLIKELY TO BE OF MUCH USE TO ANY OTHER APPLICATION
�i� ***************************************************************************************************
:
:
6� ************************************************
$6� Move Caret Up To The Next Entry, With Wrap-round
.6� ************************************************
8� �_MoveUpAnEntry
B   � I%
L/   � Icon%<=(BtmSetItemEnd%-2) � I%=Icon%+2
VC   � Icon%=BtmSetIndexEnd% � Icon%=BtmSetItemEnd% � I%=Icon%-48
`C   � Icon%>TitleFirstLine% � Icon%<=TitleLastLine% � I%=Icon%-1
j2   � Icon%=TitleFirstLine% � I%=TitleLastLine%
t@   � Icon%=TitleFirstLine% � CantGoToLastTitle% � I%=Icon%+1
~$   �_SetCaretPosition(I%,Index%)
��
�:
�4� **********************************************
�4� Move Caret Down To Next Entry, With Wrap-round
�4� **********************************************
�� �_MoveDownAnEntry
�   � I%
�2   � Icon%>=(TopSetIndexStart%+2) � I%=Icon%-2
�G   � Icon%=TopSetIndexStart% � Icon%=TopSetItemStart% � I%=Icon%+48
�C   � Icon%<TitleLastLine% � Icon%>=TitleFirstLine% � I%=Icon%+1
�2   � Icon%=TitleLastLine% � I%=TitleFirstLine%
�J   � Icon%=TitleFirstLine%+1 � CantGoToLastTitle% � I%=TitleFirstLine%
$   �_SetCaretPosition(I%,Index%)

�
:
� �_MoveDownOneBackOne
(D   � Icon%>(TopSetIndexStart%+2) � �_SetCaretPosition(Icon%-3,0)
2@   � Icon%=TopSetItemStart% � �_SetCaretPosition(Icon%+47,0)
<�
F:
P@� **********************************************************
Z4� Printout the contents of the writable icons!!!
d@� **********************************************************
n� �_PrintOut
x)   Ȏ �_ReadESGSelected(Options%,9) �
�2      � 0 : �_PrintTextMode(NlqON$,InlayType$)
�3      � 1 : �_PrintTextMode(NlqOFF$,InlayType$)
�/      � 5 : �_PrintGraphicsMode(InlayType$)
�       � 2001, "ModeErr"
�   �
��
�:
�;� *****************************************************
�4� Print out the label in text mode (non Risc OS)
�;� Parameter is an optional control string (ie NLQ etc.)
�;� *****************************************************
�)� �_PrintTextMode(Prelog$,InlayType$)
�   � L%
    � �_Printer_NotOnLine � �
   ș "Hourglass_On"
   :
"<   ș "OS_Byte",3,10          :� SCREEN OFF, PRINTER ON.
,/   �_SendData(Prelog$)      :� Set NLQ Mode
6   :
@   �_DoPrinting(InlayType$)
J   :
T   � L%=0 � �(FormLength$)
^      � :� short Form Feed
h   �
r   :
|<   ș "OS_Byte",3,00          :� SCREEN ON, PRINTER OFF.
�   ș "Hourglass_Off"
��
�:
�� �_Centre(Text$,Width%)
�,NewText$=�(Width%-�(Text$))/2," ")+Text$
�.NewText$=NewText$+�Width%-�(NewText$)," ")
�
=NewText$
�:
�@� **********************************************************
�.� Function to check if printer is on line,
�@� If printer is not online TRUE is returned, otherwise FALSE
�@� **********************************************************
�� �_Printer_NotOnLine
    ș "Hourglass_On"
    �
 #      PrinterOnLine=� : What%=0
 &      Now%=�
 0      Before%=�(-4)
 :/      � 2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3
 D!      Now%=� : � � �>Now%+100
 N      After%=�(-4)
 X      � Before%<>After% �
 b         ș "Hourglass_Off"
 l         PrinterOnLine=�
 vz         $Block%="The printer is not responding. Please check it has paper, it is switched on and on-line. Try again?"
 �E         ș "Wimp_ReportError",Block%,%10011,MyTaskName$ � ,What%
 �         ș "Hourglass_On"
 �      �
 �4   � PrinterOnLine � (� PrinterOnLine � What%=2)
 �   ș "Hourglass_Off"
 �   � What%=2 � =�
 �=�
 �:
 �H� ******************************************************************
 �H� Prints contents of Icon(Icon%) right justified in a field of Chars
 �H� ******************************************************************
 �!� �_RightJustify(Icon%,Char%)
 �*   Text$=�_ReadIconText(Main%,Icon%,�)
!=�Char%-�(Text$)," ")+Text$
!:
!L� **********************************************************************
! L� This is purely for program variables and is nothing to do with Risc_OS
!*L� **********************************************************************
!4$� �_Initialise_Program_Variables
!>Y   � Initailise Global variables first, These are usable in all RISCOS WIMP programs.
!Hm   `white = 0 : `grey1 = 1 : `grey2 = 2 :  `grey3 = 3 : `grey4 = 4 : `grey5 = 5 : `grey6 = 6 : `black = 7
!R�   `dark_blue = 8 : `yellow = 9 : `green = 10 : `red = 11 : `cream = 12 : `army_green = 13 : `orange = 14 : `light_blue = 15
!\d   msg_quit% = 0 : msg_datasave% = 1 : msg_dsaveACK% = 2 : msg_dataload% = 3 : msg_dloadACK% = 4
!fq   msg_RAMfetch% = 6 : msg_RAMtrans% = 7 : usr_message% = 17 : usr_msgrecorded% = 18 : msg_taskinit% = &400C2
!p.   msg_help% = &502 : msg_helpACK%  = &503
!z   :
!�6   � Variables to do with RiscOS PDriver InterFace
!�    Box%=Box% : � Box%<>0 � �
!�   � Box% 16 : � Box2% 16
!�7   ScaleX%=1 : ScaleY%=1   :� For Future Expansion?
!�   � Matrix% 16
!�0   Matrix%!04=0    : Matrix%!00=2^16*ScaleX%
!�0   Matrix%!08=0    : Matrix%!12=2^16*ScaleY%
!�   � Origin% 8
!�:
!�4   � Global variables, specific to this program.
!�O   LongEqual_8$    = "|"+�44,"=")+"|"  : LongEqual_C$    = "|"+�42,"=")+"|"
!�O   LongMinus_8$    = "|"+�44,"-")+"|"  : LongMinus_C$    = "|"+�42,"-")+"|"
!�O   BlankLine_8$    = "|"+�44," ")+"|"  : BlankLine_C$    = "|"+�42," ")+"|"
"   New%            = �
"   NLQ%            = �
"#   NlqON$          = "27,120,1"
"$#   NlqOFF$         = "27,120,0"
".E   EliteON$        = "27,77"       : � Set 12 Characters per Inch
"8A   EmphasisedON$   = "27,69"       : � Select Emphasised Mode
"BC   EmphasisedOFF$  = "27,70"       : � Deselect Emphasised Mode
"L#   PrintFile$      = "PrintOut"
"VD   InlayType$      = "Video_8"     : � Default to Video_8 format
"`r   LatestVer%      = 4             : � Version Number Of Config File. Change If File Is Made Incompatable.....
"j   MainWindowOpen% = �
"tT   WindowTitle$    = " Video Inlay Printer " : DatTitle$ = " DAT Inlay Printer "
"~   CantGoToLastTitle%=�
"�   OldName$        = ""
"�:
"�O   � Give names to some of the icons etc. to make the program more readable
"�*   MyFileType%=&FFF : ConfigFile%=&D0B
"�G   MyFileIdentifier$="!Video Saved Inlay File.   � M.S.Bright 1992"
"�%   BackGround%= -1 : IconBar%= -2
"�Z   TopSetIndexStart%=00 : TopSetIndexEnd%=22 : TopSetItemStart%=01 : TopSetItemEnd%=23
"�Z   BtmSetIndexStart%=24 : BtmSetIndexEnd%=48 : BtmSetItemStart%=25 : BtmSetItemEnd%=49
"�-   TitleFirstLine%=51 : TitleLastLine%=53
"�%   NumberOfLines%=56 : Format%=66
"�7   TapeNumber%=54 : UserNote%  =67 : DriverName%=59
"�7   PrintF%    =65 : PrintL%    =64 : PrintD%    =63
#7   OptionsOKF%=28 : OptionsOKL%=26 : OptionsOKD%=27
#
<   NlqON%=12 : NlqOFF%=16 : FormLength%=20 : EliteON%=34
#F   SaveOKF%   =11 : SaveOKL%    =9 : SaveOKD%   =10 : SaveIcon%= 0
#2   Ticked%=%1 : NotTicked%=0 : Underlined%=%10
#(   � PDriver$(6)
#26   PDriver$(0)="Null:" : PDriver$(1)="NLQ Printer"
#<@   PDriver$(2)="Draft Printer" : PDriver$(6)="RiscOS Driver"
#F   �_ReadUserData
#P   �_SetUpIconBarMenu
#Z:
#dF   � Get SWI Numbers for font calls to speed up bottleneck in code
#n;   ș "OS_SWINumberFromString",,"Font_FindFont" � Find%
#x;   ș "OS_SWINumberFromString",,"Font_LoseFont" � Lose%
#�9   ș "OS_SWINumberFromString",,"Font_SetFont" � Set%
#�9   ș "OS_SWINumberFromString",,"Font_Paint" � Paint%
#�:
#�:   BaseFont$=�_ConvertSystemToString("Video$BaseFont")
#�:   EdgeFont$=�_ConvertSystemToString("Video$EdgeFont")
#�:   BoldFont$=�_ConvertSystemToString("Video$BoldFont")
#�9   TapeNumber$=�_ConvertSystemToString("Tape$Prefix")
#�   � �(TapeNumber$)>3 �
#�"      Clipped$=�TapeNumber$,3)
#�      !Block%=9090
#�u      Error$="Tape$Prefix is set to longet than 3 characters. OK to clip to "+Clipped$+" Cancel to abort program"
#�!      $(Block%+4)=Error$ + �0
#�B      ș "Wimp_ReportError",Block%,%011,MyTaskName$ � ,Result%
$#      � Result%=2 � �_CloseDown
$$      TapeNumber$=Clipped$+" 00"
$   �
$"'      TapeNumber$=TapeNumber$+" 00"
$,   �
$6�
$@:
$J(� �_ConvertSystemToString(Variable$)
$T   � Loop%
$^1   � Loop%=100 � 150 � 4 : Block%!Loop%=0 : �
$h5   ș "OS_ReadVarVal",Variable$,Block%+100,50,0,3
$r=�_ReadString(Block%+100)
$|   :
$�S� *****************************************************************************
$�Q� Store User Configurable Settings In Config File Within !Video8 Application.
$�S� *****************************************************************************
$�� �_StoreUserData
$�0   DataFile%=�"<Video$Dir>.Resources.Config"
$�   � #DataFile%,LatestVer%
$�5   � #DataFile%,�_ReadIconText(Options%,NlqON%,�)
$�6   � #DataFile%,�_ReadIconText(Options%,NlqOFF%,�)
$�:   � #DataFile%,�_ReadIconText(Options%,FormLength%,�)
$�7   � #DataFile%,�_ReadIconText(Options%,EliteON%,�)
$�3   � #DataFile%,�_ReadIconText(Main%,Format%,�)
$�1   � #DataFile%,�_ReadESGSelected(Options%,9)
$�   � #DataFile%
%   ș "Wimp_CreateMenu",,-1
%�
%:
%&R� ****************************************************************************
%0P� Read User Configurable Settings In Config File Within !Video8 Application.
%:R� ****************************************************************************
%D� �_ReadUserData
%N0   DataFile%=�"<Video$Dir>.Resources.Config"
%X   � DataFile%=0 � �
%b   Ver%=�#DataFile%
%l   � #DataFile%,NlqON$
%v   � #DataFile%,NlqOFF$
%�   � #DataFile%,FormLength$
%�   � #DataFile%,EliteON$
%�   � #DataFile%,InlayType$
%�'   � #DataFile%,SelectedPrinterIcon
%�   � #DataFile%
%�-   � Ver%<LatestVer% � � 1000,"ConfigErr"
%�[   � SelectedPrinterIcon=15 � SelectedPrinterIcon=5 : � Fudge for template change - Stu
%�-   �_SetIconText(20,Options%,FormLength$)
%�   �_Redraw(Options%,20)
%�(   �_SetIconText(12,Options%,NlqON$)
%�   �_Redraw(Options%,12)
%�)   �_SetIconText(16,Options%,NlqOFF$)
%�   �_Redraw(Options%,16)
&G   �_SetIconText(DriverName%,Main%,PDriver$(SelectedPrinterIcon+1))
&"   �_Redraw(Main%,DriverName%)
&.   �_SetIconText(Format%,Main%,InlayType$)
&    �_Redraw(Main%,Format%)
&*5   �_SelectIcon(Options%,0,SelectedPrinterIcon=0)
&45   �_SelectIcon(Options%,1,SelectedPrinterIcon=1)
&>5   �_SelectIcon(Options%,5,SelectedPrinterIcon=5)
&H�
&R:
&\'� �_SelectIcon(Window%,Icon%,Flag%)
&f   Block%!0=Window%
&p   Block%!4=Icon%
&z   Block%!8=(-1*Flag%)<<21
&�   Block%!12=1<<21
&�%   ș "Wimp_SetIconState",,Block%
&��
&�:
&�*� �_NotSelectable(Window%,Icon%,Flag%)
&�   Block%!0=Window%
&�   Block%!4=Icon%
&�'   � Make unselectable / Selectable
&�   Block%!8=(-1*Flag%)<<22
&�   Block%!12=1<<22
&�%   ș "Wimp_SetIconState",,Block%
&�%   � Make non-writable / Writable
&�:   � Flag%=� � Block%!8=%0000<<12 � Block%!8=%1111<<12
'   Block%!12=%1111<<12
'%   ș "Wimp_SetIconState",,Block%
'   CantGoToLastTitle%=Flag%
'$H   � Flag% � MainWindowOpen% � �_SetCaretPosition(TitleFirstLine%,0)
'.�
'8:
'B^� ****************************************************************************************
'L^� This Takes A 'Numeric' String, Breaks it Down, And Sends The Value To The Output Device.
'V^� ****************************************************************************************
'`� �_SendData(Data$)
'j   � Finish%,Count%
't"   Count%=0 : Finish%=�(Data$)
'~G   Data$=Data$+"," : � This is cheating...See WHILE Condition!!!!!!
'�   �
'�      Sub$=""
'�      Pointer%=1
'�$      ȕ �Data$,Pointer%,1)<>","
'�)         Sub$=Sub$+�Data$,Pointer%,1)
'�         Pointer%+=1
'�      �
'�"      Data$=�Data$,Pointer%+1)
'�      � �(�(Sub$));
'�!      Count%=Count%+�(Sub$)+1
'�   � Count%>=Finish%
'��
(:
(
g***************************************************************************************************
(e� Sets The Save Name In The Save Icon To The Full Pathname Of The Loaded File, And Then Loads It.
(g***************************************************************************************************
(($� �_DoActualLoadThing(FileName$)
(2'   �_SetIconText(4,Save%,FileName$)
(<   �_LoadData(FileName$)
(F   �_OpenMainWindow(�)
(P�
(Z:
(dD****************************************************************
(nB� Initialises User Sprite Area, and Loads sprite file into it.
(xD****************************************************************
(�� �_Initialise_Sprites
(�.   Temp%=� "<Video$Dir>.Resources.Sprites"
(�   FileLength%=4+(�#Temp%)
(�   � #Temp%
(�    � SpriteArea% FileLength%
(�    SpriteArea%!0=FileLength%
(�   SpriteArea%!4=0
(�   SpriteArea%!8=16
(�   SpriteArea%!12=16
(�H   ș "OS_SpriteOp",&10A,SpriteArea%,"<Video$Dir>.Resources.Sprites"
(��
(�:
(�/*******************************************
)-� Communicate with RiscOS Printer Driver.
)/*******************************************
)%� �_PrintGraphicsMode(InlayType$)
)"4   � Check For Presence Of PrinterDriver Modules
),<   ș "XOS_SWINumberFromString",,"PDriver_Info" � ;Flag%
)6J   � Flag% � 1 � � 2001,"No Printer Driver, Please Load and Try Again"
)@:
)J   � PrintFile%,OldJob%
)T   � White%, PageToPrint%
)^)   White%=&FFFFFF00 : E%=0 : Usage%=0
)h   PrintFile%=�"printer:"
)r
   � �
)|N   � � � : � � : F%=� : F$=�$ : � #PrintFile% : � E%=0 � � F%,F$ � � E%,F$
)�E   ș "PDriver_SelectJob",PrintFile%,"Boffin Print Job" � OldJob%
)�   ș "Hourglass_On"
)�
   � �
)��   � � � : � � : E%=� : E$=�$ : ș "Hourglass_Off" : ș "PDriver_AbortJob",PrintFile% : ș "PDriver_SelectJob",OldJob% : � E%,E$
)�9   � InlayType$="Video_8" � �_GetDocumentSize_8(Box%)
)�9   � InlayType$="VHS_C"   � �_GetDocumentSize_C(Box%)
)�9   � InlayType$="DAT"     � �_GetDocumentSize_D(Box%)
)�\   �_FitToPage(Height%,Width%) : ș "PDriver_GiveRectangle",,Box%,Matrix%,Origin%,White%
)�6   ș "PDriver_DrawPage",1,Box2%,0,0 � CopiesLeft%
)�   ȕ CopiesLeft%
)�      �_DrawInlay(Box2%)
)�7      ș "PDriver_GetRectangle",,Box% � CopiesLeft%
)�   �
*%   ș "PDriver_EndJob",PrintFile%
*
   � �
*   ș "Hourglass_Off"
*&%   ș "PDriver_SelectJob",OldJob%
*0
   � �
*:   � #PrintFile%
*D�
*N:
*X� �_OpenSubMenu(Window%)
*b'   ș "Wimp_GetPointerInfo",,Block%
*l<   ș "Wimp_CreateMenu",,Window%,Block%!0-64,Block%!4+48
*v�
*�:
*�!� �_FitToPage(Height%,Width%)
*�"   � Left%,Bottom%,Right%,Top%
*�e   � Returns values in Millipoints, Height% & Width% are in OS Units. 1 OS Unit = 400 Millipoints
*�;   ș "PDriver_PageSize" � ,,,Left%,Bottom%,Right%,Top%
*�M   OriginX%=((Right%+Left%)-(Width%*400))/2 : OriginY%=Top%-(Height%*400)
*�.   Origin%!0=OriginX% : Origin%!4=OriginY%
*��
*�:
*�-� �_CentreProp(Text$,Y%,Postfix$,Length%)
*�8   � Postfix$="" � ș "Font_SetFont",BaseFontHandle%
*�<   � Postfix$="Bold" � ș "Font_SetFont",BoldFontHandle%
*�=   � Postfix$="Title" � ș "Font_SetFont",EdgeFontHandle%
+B   ș "Font_StringBBox",,Text$ � ,,,StringLengthInMillipoints%
+:   � StringLengthInMillipoints%>(Length%/25.4)*72000 �
+p      ș "Font_StringWidth",,Text$,(Length%/25.4)*72000,15000,-1,�(Text$) � ,,,,NumberOfPrintableCharacters%
+ ;      TextToPrint$=�Text$,NumberOfPrintableCharacters%)
+*;      Continue%=�_WarnAboutClipping(Text$,TextToPrint$)
+4D      � Continue%=� � � 2001,"Aborting Printout. OK to Continue"
+>   �
+H[   LengthInMM%=(StringLengthInMillipoints%/72000)*25.4 : X%=(Length%-LengthInMM%)*7.1/2
+R(   �_FontPaint(Postfix$,Text$,X%,Y%)
+\�
+f:
+pE*****************************************************************
+zC� Select required Font and colour, then print Message$ at X%,Y%
+�E*****************************************************************
+�*� �_FontPaint(PostFix$,Message$,X%,Y%)
+�   � FontHandle%
+�   � Message$="" � �
+�;   � Dont Waste Time Messing about if nothing to print!
+�8   � PostFix$="" � ș "Font_SetFont",BaseFontHandle%
+�<   � PostFix$="Bold" � ș "Font_SetFont",BoldFontHandle%
+�=   � PostFix$="Title" � ș "Font_SetFont",EdgeFontHandle%
+�<   ș "ColourTrans_SetFontColours",0,&FFFFFF00,&00000000
+�   :
+�h   � Don't bother trimming the user-Note as this has got more space to work in than the other icons.
+�7   � PostFix$<>"Bold" � Text$=�_TrimToFit(Message$)
+�!   ș Paint%,,Text$,&10,X%,Y%
,�
,:
,S� *****************************************************************************
,$S� Prints the tape number in a smaller point size at a fixed place on the inlay.
,.S� *****************************************************************************
,8� �_PrintTapeNumber
,B   � Text$,FontHandle%
,L8   ș Find%,,BaseFont$,10*16,10*16,0,0 � FontHandle%
,V<   ș "ColourTrans_SetFontColours",0,&FFFFFF00,&00000000
,`   :
,j0   Text$=�_ReadIconText(Main%,TapeNumber%,7)
,tD   � InlayType$="VHS_C"   � ș Paint%,,Text$,&10,X3%-100,Y3%+130
,~C   � InlayType$="Video_8" � ș Paint%,,Text$,&10,X3%-100,Y3%+82
,�B   � InlayType$="DAT"     � ș Paint%,,Text$,&10,X3%-95,Y3%+60
,�   :
,�   ș Lose%,FontHandle%
,��
,�:
,�_� *****************************************************************************************
,�_� Check the printed length of the text against the size in pixels, and shorten if required.
,�!� Uses : FN_WarnAboutClipping
,�_� *****************************************************************************************
,�� �_TrimToFit(Text$)
,�%   � NumberOfPrintableCharacters%
,�   Continue%=�
-;   � InlayType$="Video_8" � Max_X_Size%=(74/25.4)*72000
-
;   � InlayType$="VHS_C"   � Max_X_Size%=(73/25.4)*72000
-;   � InlayType$="DAT"     � Max_X_Size%=(60/25.4)*72000
-d   ș "Font_StringWidth",,Text$,Max_X_Size%,15000,-1,�(Text$) � ,,,,NumberOfPrintableCharacters%
-(8   TextToPrint$=�Text$,NumberOfPrintableCharacters%)
-2b   � NumberOfPrintableCharacters%<�(Text$) � Continue%=�_WarnAboutClipping(Text$,TextToPrint$)
-<)   � Continue%=� � � 2001,"PrintKill"
-F=TextToPrint$
-P:
-ZZ� ************************************************************************************
-d[� If Clipping will occour, then display Warning message and allow user option to abort.
-n� Uses: NONE
-xZ� ************************************************************************************
-�1� �_WarnAboutClipping(IconText$,TextToPrint$)
-�   � Error$
-�   !Block%=0
-�r   Error$="This text "+IconText$+" does not fit. Clipping to "+TextToPrint$+" OK to continue, CANCEL to abort"
-�   $(Block%+4)=Error$ + �0
-�A   ș "Wimp_ReportError",Block%,%10011,MyTaskName$ � ,Result%
-�.   � Result%=2 � Continue%=� � Continue%=�
-�4   ș "Wimp_ReportError",Block%,1<<6,MyTaskName$
-�=Continue%
-�:
-�B� ************************************************************
-�B� Give help to the interactive help by sending a message to it
-�B� ************************************************************
./� �_GiveHelp(Window%,Icon%,MouseX%,MouseY%)
.0   � Window%=-2 � Icon%=IconBarIconHandle% �
.�      Message$="Video Label Printer|MUtility to print out cassette inlay sleeves for Video camera cassettes, (Video 8 or VHS_C Format only) and DAT audio tapes."
."      � New% �
.,g         Message$+="|<SELECT> to start with blank screen|M|<ADJUST> to start with on-screen hints."
.6      �
.@E         Message$+="|<SELECT> or |<ADJUST> to show current Inlay"
.J      �
.T      �_SendHelp(Message$)
.^   �
.h   � Window%=Main% �
.r   Track%=24-(Icon% � 2)+1
.|   Ȏ Icon% �
.�      � -13
.��                �_SendHelp("This is the Archimedes Video cassette Label Printer.|MDesigned and coded by Mark Bright.|MYou are using version "+Version$+".|M")
.�      � PrintF%
.��                �_SendHelp("Click any mouse button to send the contents of the window to the printer.|MPressing the |<PRINT> Key performs the same function.")
.�Q      � 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48
.�                 � Icon%=00 �
.�H                   Up$="|<CURSOR UP> to move to Index for item 1.|M"
.�                �
.�V                   Up$="|<CURSOR UP> to move to Index for item "+�(Track%+1)+".|M"
.�                �
.�-                � Icon%=BtmSetIndexEnd% �
.�M                   Down$="|<CURSOR DOWN> to move to Index for item 25.|M"
.�                �
/Z                   Down$="|<CURSOR DOWN> to move to Index for item "+�(Track%-1)+".|M"
/                �
/L                Tab$="|<TAB> to move to Title for Item "+�(Track%)+".|M"
/&a                �_SendHelp("Enter the Index for item number "+�(Track%)+".|M"+Up$+Down$+Tab$)
/0Q      � 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49
/:                 � Icon%=01 �
/DH                   Up$="|<CURSOR UP> to move to Title for item 1.|M"
/N                �
/XV                   Up$="|<CURSOR UP> to move to Title for item "+�(Track%+1)+".|M"
/b                �
/l                 � Icon%=49 �
/vM                   Down$="|<CURSOR DOWN> to move to Title for item 25.|M"
/�                �
/�Z                   Down$="|<CURSOR DOWN> to move to Title for item "+�(Track%-1)+".|M"
/�                �
/�L                Tab$="|<TAB> to move to Index for item "+�(Track%)+".|M"
/�a                �_SendHelp("Enter the Title of track number "+�(Track%)+".|M"+Up$+Down$+Tab$)
/�      � 51,52,53
/�R                Up$  ="|<CURSOR UP> to move to previous line of tape title.|M"
/�P                Down$="|<CURSOR DOWN> to move to next line of tape title.|M"
/�^                � Icon%=53 � Down$="|<CURSOR DOWN> to move to first line of tape title.|M"
/�Z                � Icon%=51 � Up$="|<CURSOR UP> to move to third line of tape title.|M"
/�J                �_SendHelp("Enter the title of the tape.|M"+Up$+Down$)
/�      � TapeNumber%
/�M                �_SendHelp("This is the Index number for this cassette!")
0      � DriverName%
0Z                �_SendHelp("This is the Current Installed Printer - See Options Menu")
0      � UserNote%
0 �                �_SendHelp("Enter any notes you wish here, eg Video8 / VideoHI8 / VHS_C format, dates Etc|MIf this is left blank a standard copywrite message will be put in its place")
0*      � Format%
04�                �_SendHelp("Display which print format you have currently selected. Note: This is saved with your configuration")
0>      
0H�                �_SendHelp("Misc. Help :|M|<f10> - Swap case   |<f11> - Delete to end of line|M|<Shift>|<f9> - Wipe all fields.   |<Home> - Go to Index #1|M")
0R
0\   �
0f   �
0p   � Window%=Options% �
0z      Ȏ Icon% �
0�<         � 01 : �_SendHelp("Select Draft printing mode")
0�:         � 00 : �_SendHelp("Select NLQ printing mode")
0�L         � 05 : �_SendHelp("Select RiscOS printer driver printing mode")
0�l         � 12 : �_SendHelp("Enter your printer code for NLQ ON if it is different from the code shown.")
0�m         � 16 : �_SendHelp("Enter your printer code for NLQ OFF if it is different from the code shown.")
0�o         � 34 : �_SendHelp("Enter your printer code for 12 CPI ON if it is different from the code shown.")
0��         � 20 : �_SendHelp("Enter how many lines you want the paper to feed after character mode printing to clear the tear off bar")
0�[         � 28 : �_SendHelp("Save all the above preferences to the configuration file.")
0�      �
0�   �
0��
0�:
0�:� ****************************************************
1:� Send the help-giving message to the help application
1:� ****************************************************
1� �_SendHelp(Message$)
1$   Block%!12=Block%!8
1.   Block%!16=msg_helpACK%
18$   !Block%=(�(Message$)+25)� � 3
1B   $(Block%+20)=Message$+�0
1L9   ș "Wimp_SendMessage",usr_message%,Block%,Block%!4
1V�
1`:
1j3� *********************************************
1t3� Swaps the case of of the specified character.
1~3� *********************************************
1�&� �_SwapCase(Window%,Icon%,Index%)
1�2   � Index%<�(�_ReadIconText(Main%,Icon%,�)) �
1�1      IconText$=�_ReadIconText(Main%,Icon%,�)
1�,      C%=�(�IconText$,Index%+1,1)) � &DF
1�      � C%>=&41 � C%<=&5A �
1�2         C$=�(�(�IconText$,Index%+1,1)) � &20)
1�&         �IconText$,Index%+1,1)=C$
1�3         �_SetIconText(Icon%,Window%,IconText$)
1�"         �_Redraw(Main%,Icon%)
1�      �
1�,      �_SetCaretPosition(Icon%,Index%+1)
1�   �
2�
2
:
2L� **********************************************************************
2L� Sets the case of all the writable icons to ensure a consistant format.
2(L� **********************************************************************
22� �_FormatIconText
2<   � Loop%
2F5   � Loop%=TopSetIndexStart% � BtmSetItemEnd% � 2
2P5      �_SetIconText(Loop%+1,Main%,�_CEW(Loop%+1))
2Z!      �_Redraw(Main%,Loop%+1)
2d   �
2n/   � Loop%=TitleFirstLine% � TitleLastLine%
2x6      �_SetIconText(Loop%,Main%,�_Icon_FTU(Loop%))
2�      �_Redraw(Main%,Loop%)
2�   �
2�N   � User note text is free format, I.E. I do not impose any rules at all!
2��
2�:
2�7� *************************************************
2�7� Function to Capitalise Each Word in a given Icon.
2�7� *************************************************
2�� �_CEW(Icon%)
2�$   � IconText$, Index%, End%, C%
2�.   IconText$=�_ReadIconText(Main%,Icon%,�)
2�)   � If icon is empty, abandon format
2�"   � IconText$="" � =IconText$
3#   Index%=1 : End%=�(IconText$)
3   � Get 1st character
3   ȕ Index%<=End%
3"7      �IconText$,Index%,1)=�_Char_FTU(Icon%,Index%)
3,      Index%+=1
36!      C$=�IconText$,Index%,1)
3@5      � Loop until end of word (or end of string)
3J#      ȕ C$<>" " � Index%<=End%
3T:         �IconText$,Index%,1)=�_Char_FTL(Icon%,Index%)
3^         Index%+=1
3h$         C$=�IconText$,Index%,1)
3r      �
3|9      � Loop until next word found (Or end of string)
3�"      ȕ C$=" " � Index%<=End%
3�         Index%+=1
3�$         C$=�IconText$,Index%,1)
3�      �
3�      �Index%,End%
3�   �
3�=IconText$
3�:
3�?� *********************************************************
3�?� Function to Force all text in a given icon to UPPER CASE.
3�?� *********************************************************
3�� �_Icon_FTU(Icon%)
3�   � IconText$
4.   IconText$=�_ReadIconText(Main%,Icon%,�)
4#   Index%=1 : End%=�(IconText$)
4   ȕ Index%<=End%
4&7      �IconText$,Index%,1)=�_Char_FTU(Icon%,Index%)
40      Index%+=1
4:!      C$=�IconText$,Index%,1)
4D   �
4N=IconText$
4X:
4b?� *********************************************************
4l?� Function to Force all text in a given icon to LOWER CASE.
4v?� *********************************************************
4�� �_Icon_FTL(Icon%)
4�   � IconText$
4�.   IconText$=�_ReadIconText(Main%,Icon%,�)
4�#   Index%=1 : End%=�(IconText$)
4�   ȕ Index%<=End%
4�7      �IconText$,Index%,1)=�_Char_FTL(Icon%,Index%)
4�      Index%+=1
4�!      C$=�IconText$,Index%,1)
4�   �
4�:
4�8� **************************************************
4�8� Function to Force a given character to UPPER CASE.
4�8� **************************************************
5� �_Char_FTU(Icon%,Index%)
5   � Temp$
5!   Temp$=�IconText$,Index%,1)
5 :   � Temp$>="a" � Temp$<="z" � Temp$=�(�(Temp$) � &DF)
5*
=Temp$
54:
5>8� **************************************************
5H8� Function to Force a given character to LOWER CASE.
5R8� **************************************************
5\� �_Char_FTL(Icon%,Index%)
5f   � Temp$
5p!   Temp$=�IconText$,Index%,1)
5z:   � Temp$>="A" � Temp$<="Z" � Temp$=�(�(Temp$) � &20)
5�
=Temp$
5�:
5�Z� ************************************************************************************
5�Z� Set up variable for print routine to give correct sizes & format for Video_8 inlays.
5�Z� ************************************************************************************
5�� �_GetDocumentSize_8(Box%)
5�   PrintTop%=�
5�2   � L%=TopSetIndexStart% � TopSetItemEnd% � 2
5�[      � �_ReadIconText(Main%,L%,�)<>"" � �_ReadIconText(Main%,L%+1,�)<>"" � PrintTop%=�
5�   �
5�/   � PrintTop% � Height%=1105 � Height%=670
5�#   Width%=675 : � 7.1 UNITS=1MM
5�&   X1%=0  :  X2%=135  : X3%=Width%
6=   � Y1%=0  :  Y2%=114  : Y3%=227 : Y4%=670 : Y5%=Height%
6G   Y1%=Height%  :  Y2%=Y1%-114  : Y3%=Y1%-227 : Y4%=Y1%-670 : Y5%=0
6"   Box%!0=0         : Box%!4=0
6$e   Box%!8=Width%+20 : Box%!12=Height%+20 : � To Allow For Rounding Errors In Conversion Routines.
6.,   � Set up variable for inlay printing.
68d   Font1X%=13*16 : Font1Y%=12*16 : Font2X%=12*16 : Font2Y%=12*16 : Font3X%=13*16 : Font3Y%=13*16
6B    UserNote_Y_Offset%=Y2%+35
6Lg   Title1_Y_Offset%=Y3%+82 : Title2_Y_Offset%=Y3%+47 : Title3_Y_Offset%=Y3%+12 : Title_X_Offset%=80
6V]   Index_X_Offset%=X1%+20 : Item_X_Offset%=X2%+10 : Text_Drop_Btm%=25 : Text_Drop_Top%=30
6`>   Copyright_Text$="Video_8 Index Printer � M.Bright 1992"
6j�
6t:
6~X� **********************************************************************************
6�X� Set up variable for print routine to give correct sizes & format for VHS_C inlays.
6�X� **********************************************************************************
6�� �_GetDocumentSize_C(Box%)
6�   PrintTop%=�
6�2   � L%=TopSetIndexStart% � TopSetItemEnd% � 2
6�[      � �_ReadIconText(Main%,L%,�)<>"" � �_ReadIconText(Main%,L%+1,�)<>"" � PrintTop%=�
6�   �
6�/   � PrintTop% � Height%=1120 � Height%=700
6�#   Width%=653 : � 7.1 UNITS=1MM
6�&   X1%=0  :  X2%=120  : X3%=Width%
6�=   � Y1%=0  :  Y2%=110  : Y3%=280 : Y4%=700 : Y5%=Height%
6�K   Y1%=Height%  :  Y2%=Height%-110  : Y3%=Y1%-280 : Y4%=Y1%-700 : Y5%=0
7"   Box%!0=0         : Box%!4=0
7
e   Box%!8=Width%+20 : Box%!12=Height%+20 : � To Allow For Rounding Errors In Conversion Routines.
7,   � Set up variable for inlay printing.
7d   Font1X%=13*16 : Font1Y%=13*16 : Font2X%=13*16 : Font2Y%=12*16 : Font3X%=12*16 : Font3Y%=12*16
7(    UserNote_Y_Offset%=Y2%+35
72h   Title1_Y_Offset%=Y3%+130 : Title2_Y_Offset%=Y3%+75 : Title3_Y_Offset%=Y3%+20 : Title_X_Offset%=80
7<]   Index_X_Offset%=X1%+10 : Item_X_Offset%=X2%+10 : Text_Drop_Btm%=25 : Text_Drop_Top%=28
7F<   Copyright_Text$="VHS-C Index Printer � M.Bright 1992"
7P�
7Z:
7dV� ********************************************************************************
7nV� Set up variable for print routine to give correct sizes & format for DAT inlays.
7xV� ********************************************************************************
7�� �_GetDocumentSize_D(Box%)
7�   PrintTop%=�
7�2   � L%=TopSetIndexStart% � TopSetItemEnd% � 2
7�[      � �_ReadIconText(Main%,L%,�)<>"" � �_ReadIconText(Main%,L%+1,�)<>"" � PrintTop%=�
7�   �
7�5   � PrintTop% � Height%=7.1*130 � Height%=7.1*77
7�&   Width%=7.1*73 : � 7.1 UNITS=1MM
7�)   X1%=0  :  X2%=7.1*12  : X3%=Width%
7�Q   Y1%=Height%  :  Y2%=Y1%-7.1*9.5  : Y3%=Y1%-7.1*22 : Y4%=Y1%-7.1*76 : Y5%=0
7�"   Box%!0=0         : Box%!4=0
7�e   Box%!8=Width%+20 : Box%!12=Height%+20 : � To Allow For Rounding Errors In Conversion Routines.
7�,   � Set up variable for inlay printing.
7�d   Font1X%=10*16 : Font1Y%=10*16 : Font2X%=11*16 : Font2Y%=11*16 : Font3X%=13*16 : Font3Y%=12*16
8    UserNote_Y_Offset%=Y2%+25
8M   Title1_Y_Offset%=Y3%+50 : Title2_Y_Offset%=Y3%+20 : Title_X_Offset%=80
8[   Index_X_Offset%=X1%+4 : Item_X_Offset%=X2%+4 : Text_Drop_Btm%=23 : Text_Drop_Top%=23
8":   Copyright_Text$="DAT Inlay Printer � M.Bright 1992"
8,�
86:
8@v� ****************************************************************************************************************
8Jv� 'Draw' the inlay, using previously defined variables. All output has been switched to the printer at this stage.
8T>� this routine is the heart of the Risc-OS printer output.
8^v� ****************************************************************************************************************
8h$� �_DrawInlay(Co_ordinateBlock%)
8r@   ș Find%,,BaseFont$,Font1X%,Font1Y%,0,0 � BaseFontHandle%
8|@   ș Find%,,BoldFont$,Font2X%,Font2Y%,0,0 � BoldFontHandle%
8�@   ș Find%,,EdgeFont$,Font3X%,Font3Y%,0,0 � EdgeFontHandle%
8�:
8�0   � �_ReadIconText(Main%,UserNote%,�)<>"" �
8�1      Text$=�_ReadIconText(Main%,UserNote%,�)
8�   �
8�      Text$=Copyright_Text$
8�   �
8�?   �_CentreProp(Text$,UserNote_Y_Offset%,"Bold",Width%/7.1)
8�:
8�e   �_CentreProp(�_ReadIconText(Main%,TitleFirstLine%,�),Title1_Y_Offset%,"Title",Title_X_Offset%)
8�   �_PrintTapeNumber
8�g   �_CentreProp(�_ReadIconText(Main%,TitleFirstLine%+1,�),Title2_Y_Offset%,"Title",Title_X_Offset%)
8�   � InlayType$<>"DAT" �
9j      �_CentreProp(�_ReadIconText(Main%,TitleFirstLine%+2,�),Title3_Y_Offset%,"Title",Title_X_Offset%)
9   �
9:
9&   Separation%=(Y3%-Y4%)/13
90%   SpaceStartY%=Y4% + Separation%
9:   Icon%=BtmSetIndexStart%
9D/   ș "ColourTrans_SetGCOL",&C0C0C000,,,0,0
9N   ȕ SpaceStartY% <= Y3%
9XJ      � SpaceStartY% < Y3%-10 � � X1%,SpaceStartY% :� X3%,SpaceStartY%
9b-      Text$=�_ReadIconText(Main%,Icon%,�)
9lK      �_FontPaint("",Text$,Index_X_Offset%,SpaceStartY%-Text_Drop_Btm%)
9v/      Text$=�_ReadIconText(Main%,Icon%+1,�)
9�J      �_FontPaint("",Text$,Item_X_Offset%,SpaceStartY%-Text_Drop_Btm%)
9�#      SpaceStartY%+=Separation%
9�      Icon%+=2
9�   �
9�:
9�   � PrintTop% �
9�!      Separation=(Y4%-Y5%)/12
9�&      SpaceStartY=Y5% + Separation
9�!      Icon%=TopSetIndexStart%
9�2      ș "ColourTrans_SetGCOL",&C0C0C000,,,0,0
9�      ȕ SpaceStartY <= Y4%
9�J         � SpaceStartY < Y4%-10 � � X1%,SpaceStartY :� X3%,SpaceStartY
9�0         Text$=�_ReadIconText(Main%,Icon%,�)
:M         �_FontPaint("",Text$,Index_X_Offset%,SpaceStartY-Text_Drop_Top%)
:2         Text$=�_ReadIconText(Main%,Icon%+1,�)
:L         �_FontPaint("",Text$,Item_X_Offset%,SpaceStartY-Text_Drop_Top%)
: $         SpaceStartY+=Separation
:*         Icon%+=2
:4      �
:>   �
:H:
:R/   ș "ColourTrans_SetGCOL",&00000000,,,0,0
:\   ȓ X1%,Y5%,X3%,Y1%
:f   ȓ X1%,Y3%,X3%,Y2%-Y3%
:p   � X1%,Y4% : � X3%,Y4%
:z   � X2%,Y3% : � X2%,Y5%
:�:
:�   ș Lose%,BaseFontHandle%
:�   ș Lose%,BoldFontHandle%
:�   ș Lose%,EdgeFontHandle%
:��
:�:
:�>� ********************************************************
:�>� Sends the inlay data to the printer in NON Risc-OS mode.
:�>� ********************************************************
:�� �_DoPrinting(InlayType$)
:�&   �_SetPrintVariables(InlayType$)
:�   �_SendData(PrintPitch$)
:�   :
;8   � LongMinus$ : � InlayType$<>"DAT" � � BlankLine$
;/   � �_ReadIconText(Main%,UserNote%,�)="" �
;      � Copyright$
;$   �
;.K      � "|";�_Centre(�_ReadIconText(Main%,UserNote%,�),LineLength%);"|"
;8   �
;B   � LongEqual$
;L   �_PrintTitle(InlayType$)
;V8   � LongEqual$ : � InlayType$<>"DAT" � � BlankLine$
;`4   � L%=BtmSetIndexEnd% � BtmSetIndexStart% � -2
;jg      � "|";��7," "+�_ReadIconText(Main%,L%,�)),7);Spacer$;�_ReadIconText(Main%,L%+1,TitleLen%);"|"
;t   �
;~)   � InlayType$<>"DAT" � � LongMinus$
;�   :
;�   PrintTop%=�
;�4   � L%=TopSetIndexEnd% � TopSetIndexStart% � -2
;�[      � �_ReadIconText(Main%,L%,�)<>"" � �_ReadIconText(Main%,L%+1,�)<>"" � PrintTop%=�
;�   �
;�   :
;�   � PrintTop% �
;�,      � InlayType$<>"DAT" � � BlankLine$
;�7      � L%=TopSetIndexEnd% � TopSetIndexStart% � -2
;�j         � "|";��7," "+�_ReadIconText(Main%,L%,�)),7);Spacer$;�_ReadIconText(Main%,L%+1,TitleLen%);"|"
;�      �
;�/      � InlayType$="Video_8" � � BlankLine$
<      � LongMinus$
<
   �
<�
<:
<(n� ********************************************************************************************************
<2n� Set global print variable to enable the non Risc-OS printer rouytine to generate 3 differnt label types.
<<n� ********************************************************************************************************
<F%� �_SetPrintVariables(InlayType$)
<P   Ȏ InlayType$ �
<ZT      � "Video_8" : Copyright$ ="|  Video 8 Inlay Printer  � M.S.Bright 1992  |"
<dL                       Spacer$    =" : " : TitleLen%=34 : LineLength%=44
<n/                       PrintPitch$=EliteON$
<xR      � "VHS_C"   : Copyright$ ="|  VHS-C Inlay Printer  � M.S.Bright 1992  |"
<�J                       Spacer$    =":" : TitleLen%=34 : LineLength%=42
<�/                       PrintPitch$=EliteON$
<�X      � "DAT"     : Copyright$ ="|     DAT Inlay Printer    � M.S.Bright 1992     |"
<�L                       Spacer$    =" : " : TitleLen%=38 : LineLength%=48
<�-                       PrintPitch$="1,15"
<�   �
<�,   LongMinus$ ="|"+�LineLength%,"-")+"|"
<�,   BlankLine$ ="|"+�LineLength%," ")+"|"
<�,   LongEqual$ ="|"+�LineLength%,"=")+"|"
<��
<�:
<�p� **********************************************************************************************************
<�p� Tis is part of the NON Risc-OS print routine. It prints the 'cassette' title area on the spine of the case
=\� Due to the many differences in this area of the label a separate routine was required.
=p� **********************************************************************************************************
=� �_PrintTitle(InlayType$)
="   � InlayType$="Video_8" �
=,#      �_SendData(EmphasisedON$)
=6s      � "| ";�_Centre(�_ReadIconText(Main%,TitleFirstLine%,�),34);"  ";�_ReadIconText(Main%,TapeNumber%,�);" |"
=@T      � "| ";�_Centre(�_ReadIconText(Main%,TitleFirstLine%+1,�),34);"         |"
=JQ      � "| ";�_Centre(�_ReadIconText(Main%,TitleLastLine%,�),34);"         |"
=T$      �_SendData(EmphasisedOFF$)
=^   �
=h   � InlayType$="VHS_C" �
=r#      �_SendData(EmphasisedON$)
=|G      � "|";��41,"  ")+�_ReadIconText(Main%,TapeNumber%,7),41);" |"
=�H      � "|";�_Centre(�_ReadIconText(Main%,TitleFirstLine%,�),42);"|"
=�J      � "|";�_Centre(�_ReadIconText(Main%,TitleFirstLine%+1,�),42);"|"
=�G      � "|";�_Centre(�_ReadIconText(Main%,TitleLastLine%,�),42);"|"
=�$      �_SendData(EmphasisedOFF$)
=�   �
=�   � InlayType$="DAT" �
=�q      � "| ";�_Centre(�_ReadIconText(Main%,TitleFirstLine%,�),40);" ";�_ReadIconText(Main%,TapeNumber%,�);"|"
=�R      � "| ";�_Centre(�_ReadIconText(Main%,TitleFirstLine%+1,�),40);"       |"
=�   �
=��
=�:
=�C� *************************************************************
=�C� Routine to amend the title bar, The title MUST BE INDIRECTED.
>C� *************************************************************
>,� �_ChangeWindowTitle(Window%,NewTitle$)
>   Block%!100 = Window%
>&*   ș "Wimp_GetWindowInfo",,Block%+100
>0   Pointer% = !(Block%+176)
>:   $Pointer% = NewTitle$
>Dg   � MainWindowOpen% � ș "Wimp_ForceRedraw",-1,Block%!104,(Block%!116)-36,Block%!112,Block%!116+36
>N�
�
00000000  0d 00 0a 0f f4 3e 21 52  75 6e 49 6d 61 67 65 0d  |.....>!RunImage.|
00000010  00 14 05 f4 0d 00 1e 14  f4 20 a9 20 4d 61 72 6b  |......... . Mark|
00000020  20 42 72 69 67 68 74 2e  0d 00 28 05 3a 0d 00 32  | Bright...(.:..2|
00000030  1f 56 65 72 73 69 6f 6e  24 3d 22 31 2e 30 30 20  |.Version$="1.00 |
00000040  28 30 35 2d 4d 61 72 2d  39 32 29 22 0d 00 3c 05  |(05-Mar-92)"..<.|
00000050  3a 0d 00 46 37 de 20 42  6c 6f 63 6b 25 20 31 30  |:..F7. Block% 10|
00000060  32 34 2a 34 20 20 3a f4  20 47 65 6e 65 72 61 6c  |24*4  :. General|
00000070  20 70 75 72 70 6f 73 65  20 57 49 4d 50 20 77 6f  | purpose WIMP wo|
00000080  72 6b 73 70 61 63 65 21  0d 00 50 04 0d 00 5a 1c  |rkspace!..P...Z.|
00000090  f2 5f 49 6e 69 74 69 61  6c 69 73 65 5f 57 49 4d  |._Initialise_WIM|
000000a0  50 5f 53 79 73 74 65 6d  0d 00 64 05 3a 0d 00 6e  |P_System..d.:..n|
000000b0  23 f2 5f 53 65 74 49 63  6f 6e 54 65 78 74 28 33  |#._SetIconText(3|
000000c0  2c 49 6e 66 6f 25 2c 56  65 72 73 69 6f 6e 24 29  |,Info%,Version$)|
000000d0  0d 00 78 27 f2 5f 53 65  74 49 63 6f 6e 54 65 78  |..x'._SetIconTex|
000000e0  74 28 34 2c 53 61 76 65  25 2c 22 42 6f 66 66 42  |t(4,Save%,"BoffB|
000000f0  72 69 67 68 74 22 29 0d  00 82 05 3a 0d 00 8c 14  |right")....:....|
00000100  ee 20 85 20 f2 5f 57 69  6d 70 5f 45 72 72 6f 72  |. . ._Wimp_Error|
00000110  0d 00 96 22 f2 5f 49 6e  69 74 69 61 6c 69 73 65  |..."._Initialise|
00000120  5f 50 72 6f 67 72 61 6d  5f 56 61 72 69 61 62 6c  |_Program_Variabl|
00000130  65 73 0d 00 a0 30 f2 5f  53 65 74 49 63 6f 6e 54  |es...0._SetIconT|
00000140  65 78 74 28 54 61 70 65  4e 75 6d 62 65 72 25 2c  |ext(TapeNumber%,|
00000150  4d 61 69 6e 25 2c 54 61  70 65 4e 75 6d 62 65 72  |Main%,TapeNumber|
00000160  24 29 0d 00 aa 05 3a 0d  00 b4 14 ee 20 85 20 f2  |$)....:..... . .|
00000170  5f 57 69 6d 70 5f 45 72  72 6f 72 0d 00 be 05 3a  |_Wimp_Error....:|
00000180  0d 00 c8 6e f4 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |...n. **********|
00000190  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000001e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 00  |**************..|
000001f0  d2 6c f4 20 41 6c 6c 20  52 49 53 43 4f 53 2f 57  |.l. All RISCOS/W|
00000200  49 4d 50 20 53 70 65 63  69 66 69 63 20 50 72 6f  |IMP Specific Pro|
00000210  63 65 65 64 75 72 65 73  20 46 69 72 73 74 2c 20  |ceedures First, |
00000220  21 56 69 64 65 6f 38 20  50 72 6f 63 27 53 20 61  |!Video8 Proc'S a|
00000230  66 74 65 72 2e 2e 2e 2e  20 4d 61 6b 65 73 20 66  |fter.... Makes f|
00000240  6f 72 20 61 20 62 65 74  74 65 72 20 73 6b 65 6c  |or a better skel|
00000250  65 74 6f 6e 20 70 72 6f  67 21 0d 00 dc 6e f4 20  |eton prog!...n. |
00000260  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000002c0  2a 2a 2a 2a 2a 2a 2a 2a  0d 00 e6 04 0d 00 f0 05  |********........|
000002d0  f5 0d 00 fa 27 20 20 20  c8 99 20 22 57 69 6d 70  |....'   .. "Wimp|
000002e0  5f 50 6f 6c 6c 22 2c 4d  61 73 6b 25 2c 42 6c 6f  |_Poll",Mask%,Blo|
000002f0  63 6b 25 20 b8 20 41 25  0d 01 04 0e 20 20 20 c8  |ck% . A%....   .|
00000300  8e 20 41 25 20 ca 0d 01  0e 43 20 20 20 20 20 20  |. A% ....C      |
00000310  c9 20 32 20 3a 20 c8 99  20 22 57 69 6d 70 5f 4f  |. 2 : .. "Wimp_O|
00000320  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 42 6c 6f 63  |penWindow",,Bloc|
00000330  6b 25 20 20 20 3a 20 f4  20 61 6c 6c 6f 77 73 20  |k%   : . allows |
00000340  61 75 74 6f 20 44 72 61  67 0d 01 18 44 20 20 20  |auto Drag...D   |
00000350  20 20 20 c9 20 33 20 3a  20 c8 99 20 22 57 69 6d  |   . 3 : .. "Wim|
00000360  70 5f 43 6c 6f 73 65 57  69 6e 64 6f 77 22 2c 2c  |p_CloseWindow",,|
00000370  42 6c 6f 63 6b 25 20 20  3a 20 f4 20 61 6c 6c 6f  |Block%  : . allo|
00000380  77 73 20 61 75 74 6f 20  43 6c 6f 73 65 0d 01 22  |ws auto Close.."|
00000390  37 20 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |7             : |
000003a0  e7 20 42 6c 6f 63 6b 25  21 30 3d 4d 61 69 6e 25  |. Block%!0=Main%|
000003b0  20 8c 20 4d 61 69 6e 57  69 6e 64 6f 77 4f 70 65  | . MainWindowOpe|
000003c0  6e 25 3d a3 0d 01 2c 1f  20 20 20 20 20 20 c9 20  |n%=...,.      . |
000003d0  36 20 3a 20 f2 5f 42 75  74 74 6f 6e 50 72 65 73  |6 : ._ButtonPres|
000003e0  73 65 64 0d 01 36 37 20  20 20 20 20 20 c9 20 37  |sed..67      . 7|
000003f0  20 3a 20 f2 5f 44 72 61  67 42 6f 78 45 6e 64 28  | : ._DragBoxEnd(|
00000400  a4 5f 52 65 61 64 49 63  6f 6e 54 65 78 74 28 53  |._ReadIconText(S|
00000410  61 76 65 25 2c 34 2c a3  29 29 0d 01 40 27 20 20  |ave%,4,.))..@'  |
00000420  20 20 20 20 c9 20 38 20  3a 20 f2 5f 50 72 6f 63  |    . 8 : ._Proc|
00000430  65 73 73 4b 65 79 28 42  6c 6f 63 6b 25 21 32 34  |essKey(Block%!24|
00000440  29 0d 01 4a 1f 20 20 20  20 20 20 c9 20 39 20 3a  |)..J.      . 9 :|
00000450  20 f2 5f 4d 65 6e 75 53  65 6c 65 63 74 69 6f 6e  | ._MenuSelection|
00000460  0d 01 54 31 20 20 20 20  20 20 c9 20 31 36 2c 31  |..T1      . 16,1|
00000470  37 2c 31 38 20 3a 20 f2  5f 44 65 63 6f 64 65 4d  |7,18 : ._DecodeM|
00000480  65 73 73 61 67 65 28 42  6c 6f 63 6b 25 21 31 36  |essage(Block%!16|
00000490  29 0d 01 5e 08 20 20 20  cb 0d 01 68 07 fd 20 a3  |)..^.   ...h.. .|
000004a0  0d 01 72 05 3a 0d 01 7c  2f f4 20 2a 2a 2a 2a 2a  |..r.:..|/. *****|
000004b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000004d0  2a 2a 2a 2a 0d 01 86 2f  f4 20 54 68 69 73 20 69  |****.../. This i|
000004e0  73 20 74 68 65 20 57 49  4d 50 20 45 72 72 6f 72  |s the WIMP Error|
000004f0  20 68 61 6e 64 6c 69 6e  67 20 72 6f 75 74 69 6e  | handling routin|
00000500  65 20 21 0d 01 90 2f f4  20 2a 2a 2a 2a 2a 2a 2a  |e !.../. *******|
00000510  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000530  2a 2a 0d 01 9a 12 dd 20  f2 5f 57 69 6d 70 5f 45  |**..... ._Wimp_E|
00000540  72 72 6f 72 0d 01 a4 0f  20 20 20 ea 20 45 72 72  |rror....   . Err|
00000550  6f 72 24 0d 01 ae 17 20  20 20 c8 99 20 22 4f 53  |or$....   .. "OS|
00000560  5f 42 79 74 65 22 2c 33  2c 30 0d 01 b8 1c 20 20  |_Byte",3,0....  |
00000570  20 c8 99 20 22 57 69 6d  70 5f 44 72 61 67 42 6f  | .. "Wimp_DragBo|
00000580  78 22 2c 2c 2d 31 0d 01  c2 10 20 20 20 21 42 6c  |x",,-1....   !Bl|
00000590  6f 63 6b 25 3d 9f 0d 01  cc 12 20 20 20 45 72 72  |ock%=.....   Err|
000005a0  6f 72 24 20 3d 20 f6 24  0d 01 d6 59 20 20 20 e7  |or$ = .$...Y   .|
000005b0  20 9f 3c 3e 32 30 30 31  20 8c 20 45 72 72 6f 72  | .<>2001 . Error|
000005c0  24 20 2b 3d 20 22 49 6e  74 65 72 6e 61 6c 20 45  |$ += "Internal E|
000005d0  72 72 6f 72 20 28 22 2b  c3 28 9e 29 2b 22 29 2e  |rror ("+.(.)+").|
000005e0  20 4f 4b 20 74 6f 20 63  6f 6e 74 69 6e 75 65 2c  | OK to continue,|
000005f0  20 43 41 4e 43 45 4c 20  74 6f 20 61 62 6f 72 74  | CANCEL to abort|
00000600  22 0d 01 e0 1e 20 20 20  24 28 42 6c 6f 63 6b 25  |"....   $(Block%|
00000610  2b 34 29 3d 45 72 72 6f  72 24 20 2b 20 bd 30 0d  |+4)=Error$ + .0.|
00000620  01 ea 4f 20 20 20 c8 99  20 22 57 69 6d 70 5f 52  |..O   .. "Wimp_R|
00000630  65 70 6f 72 74 45 72 72  6f 72 22 2c 42 6c 6f 63  |eportError",Bloc|
00000640  6b 25 2c 25 30 30 31 20  2d 20 28 32 2a 28 9f 3c  |k%,%001 - (2*(.<|
00000650  3e 32 30 30 31 29 29 2c  4d 79 54 61 73 6b 4e 61  |>2001)),MyTaskNa|
00000660  6d 65 24 20 b8 20 2c 52  65 73 75 6c 74 25 0d 01  |me$ . ,Result%..|
00000670  f4 20 20 20 20 e7 20 52  65 73 75 6c 74 25 3d 32  |.    . Result%=2|
00000680  20 8c 20 f2 5f 43 6c 6f  73 65 44 6f 77 6e 0d 01  | . ._CloseDown..|
00000690  fe 05 e1 0d 02 08 05 3a  0d 02 12 2a f4 20 2a 2a  |.......:...*. **|
000006a0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000006c0  2a 2a 0d 02 1c 2a f4 20  4d 6f 75 73 65 20 27 43  |**...*. Mouse 'C|
000006d0  6c 69 63 6b 27 20 57 68  69 6c 73 74 20 4f 76 65  |lick' Whilst Ove|
000006e0  72 20 4d 65 6e 75 20 49  74 65 6d 2e 0d 02 26 2a  |r Menu Item...&*|
000006f0  f4 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |. **************|
00000700  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00000710  2a 2a 2a 2a 2a 2a 0d 02  30 15 dd 20 f2 5f 4d 65  |******..0.. ._Me|
00000720  6e 75 53 65 6c 65 63 74  69 6f 6e 0d 02 3a 1d 20  |nuSelection..:. |
00000730  20 20 e7 20 49 63 6f 6e  42 61 72 4d 65 6e 75 41  |  . IconBarMenuA|
00000740  63 74 69 76 65 25 20 8c  0d 02 44 17 20 20 20 20  |ctive% ...D.    |
00000750  20 20 c8 8e 20 42 6c 6f  63 6b 25 21 30 20 ca 0d  |  .. Block%!0 ..|
00000760  02 4e 3e 20 20 20 20 20  20 20 20 20 c9 20 30 20  |.N>         . 0 |
00000770  3a 20 f2 5f 4f 70 65 6e  53 75 62 4d 65 6e 75 28  |: ._OpenSubMenu(|
00000780  49 6e 66 6f 25 29 20 3a  20 49 63 6f 6e 42 61 72  |Info%) : IconBar|
00000790  4d 65 6e 75 41 63 74 69  76 65 25 3d a3 0d 02 58  |MenuActive%=...X|
000007a0  41 20 20 20 20 20 20 20  20 20 c9 20 31 20 3a 20  |A         . 1 : |
000007b0  f2 5f 4f 70 65 6e 53 75  62 4d 65 6e 75 28 4f 70  |._OpenSubMenu(Op|
000007c0  74 69 6f 6e 73 25 29 20  3a 20 49 63 6f 6e 42 61  |tions%) : IconBa|
000007d0  72 4d 65 6e 75 41 63 74  69 76 65 25 3d a3 0d 02  |rMenuActive%=...|
000007e0  62 39 20 20 20 20 20 20  20 20 20 c9 20 32 20 3a  |b9         . 2 :|
000007f0  20 4f 6c 64 24 3d 49 6e  6c 61 79 54 79 70 65 24  | Old$=InlayType$|
00000800  20 3a 20 49 6e 6c 61 79  54 79 70 65 24 3d 22 56  | : InlayType$="V|
00000810  69 64 65 6f 5f 38 22 0d  02 6c 33 20 20 20 20 20  |ideo_8"..l3     |
00000820  20 20 20 20 20 20 20 20  20 20 20 20 20 e7 20 4f  |             . O|
00000830  6c 64 24 3d 22 56 48 53  5f 43 22 20 84 20 4f 6c  |ld$="VHS_C" . Ol|
00000840  64 24 3d 22 44 41 54 22  20 8c 0d 02 76 30 20 20  |d$="DAT" ...v0  |
00000850  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000860  20 20 20 6d 65 6e 75 25  21 28 32 38 2b 32 34 2a  |   menu%!(28+24*|
00000870  32 29 3d 54 69 63 6b 65  64 25 0d 02 80 68 20 20  |2)=Ticked%...h  |
00000880  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000890  20 20 20 6d 65 6e 75 25  21 28 32 38 2b 32 34 2a  |   menu%!(28+24*|
000008a0  33 29 3d 4e 6f 74 54 69  63 6b 65 64 25 20 20 20  |3)=NotTicked%   |
000008b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3a  |               :|
000008c0  20 f4 20 54 69 63 6b 20  49 74 65 6d 20 32 2c 20  | . Tick Item 2, |
000008d0  55 6e 74 69 63 6b 20 49  74 65 6d 73 20 33 20 26  |Untick Items 3 &|
000008e0  20 34 0d 02 8a 41 20 20  20 20 20 20 20 20 20 20  | 4...A          |
000008f0  20 20 20 20 20 20 20 20  20 20 20 6d 65 6e 75 25  |           menu%|
00000900  21 28 32 38 2b 32 34 2a  34 29 3d 4e 6f 74 54 69  |!(28+24*4)=NotTi|
00000910  63 6b 65 64 25 20 84 20  55 6e 64 65 72 6c 69 6e  |cked% . Underlin|
00000920  65 64 25 0d 02 94 3f 20  20 20 20 20 20 20 20 20  |ed%...?         |
00000930  20 20 20 20 20 20 20 20  20 20 20 20 f2 5f 53 65  |            ._Se|
00000940  74 49 63 6f 6e 54 65 78  74 28 46 6f 72 6d 61 74  |tIconText(Format|
00000950  25 2c 4d 61 69 6e 25 2c  22 56 69 64 65 6f 5f 38  |%,Main%,"Video_8|
00000960  22 29 0d 02 9e 30 20 20  20 20 20 20 20 20 20 20  |")...0          |
00000970  20 20 20 20 20 20 20 20  20 20 20 f2 5f 52 65 64  |           ._Red|
00000980  72 61 77 28 4d 61 69 6e  25 2c 46 6f 72 6d 61 74  |raw(Main%,Format|
00000990  25 29 0d 02 a8 40 20 20  20 20 20 20 20 20 20 20  |%)...@          |
000009a0  20 20 20 20 20 20 20 20  20 20 20 f2 5f 43 68 61  |           ._Cha|
000009b0  6e 67 65 57 69 6e 64 6f  77 54 69 74 6c 65 28 4d  |ngeWindowTitle(M|
000009c0  61 69 6e 25 2c 57 69 6e  64 6f 77 54 69 74 6c 65  |ain%,WindowTitle|
000009d0  24 29 0d 02 b2 40 20 20  20 20 20 20 20 20 20 20  |$)...@          |
000009e0  20 20 20 20 20 20 20 20  20 20 20 f2 5f 4e 6f 74  |           ._Not|
000009f0  53 65 6c 65 63 74 61 62  6c 65 28 4d 61 69 6e 25  |Selectable(Main%|
00000a00  2c 54 69 74 6c 65 4c 61  73 74 4c 69 6e 65 25 2c  |,TitleLastLine%,|
00000a10  a3 29 0d 02 bc 17 20 20  20 20 20 20 20 20 20 20  |.)....          |
00000a20  20 20 20 20 20 20 20 20  cd 0d 02 c6 37 20 20 20  |        ....7   |
00000a30  20 20 20 20 20 20 c9 20  33 20 3a 20 4f 6c 64 24  |      . 3 : Old$|
00000a40  3d 49 6e 6c 61 79 54 79  70 65 24 20 3a 20 49 6e  |=InlayType$ : In|
00000a50  6c 61 79 54 79 70 65 24  3d 22 56 48 53 5f 43 22  |layType$="VHS_C"|
00000a60  0d 02 d0 36 20 20 20 20  20 20 20 20 20 20 20 20  |...6            |
00000a70  20 20 20 20 20 20 e7 20  4f 6c 64 24 3d 22 56 69  |      . Old$="Vi|
00000a80  64 65 6f 5f 38 22 20 20  84 20 4f 6c 64 24 3d 22  |deo_8"  . Old$="|
00000a90  44 41 54 22 20 8c 0d 02  da 33 20 20 20 20 20 20  |DAT" ....3      |
00000aa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 6d  |               m|
00000ab0  65 6e 75 25 21 28 32 38  2b 32 34 2a 32 29 3d 4e  |enu%!(28+24*2)=N|
00000ac0  6f 74 54 69 63 6b 65 64  25 0d 02 e4 69 20 20 20  |otTicked%...i   |
00000ad0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ae0  20 20 6d 65 6e 75 25 21  28 32 38 2b 32 34 2a 33  |  menu%!(28+24*3|
00000af0  29 3d 54 69 63 6b 65 64  25 20 20 20 20 20 20 20  |)=Ticked%       |
00000b00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3a  |               :|
00000b10  20 f4 20 54 69 63 6b 20  49 74 65 6d 20 33 2c 20  | . Tick Item 3, |
00000b20  55 6e 74 69 63 6b 20 49  74 65 6d 73 20 32 20 26  |Untick Items 2 &|
00000b30  20 34 0d 02 ee 41 20 20  20 20 20 20 20 20 20 20  | 4...A          |
00000b40  20 20 20 20 20 20 20 20  20 20 20 6d 65 6e 75 25  |           menu%|
00000b50  21 28 32 38 2b 32 34 2a  34 29 3d 4e 6f 74 54 69  |!(28+24*4)=NotTi|
00000b60  63 6b 65 64 25 20 84 20  55 6e 64 65 72 6c 69 6e  |cked% . Underlin|
00000b70  65 64 25 0d 02 f8 3d 20  20 20 20 20 20 20 20 20  |ed%...=         |
00000b80  20 20 20 20 20 20 20 20  20 20 20 20 f2 5f 53 65  |            ._Se|
00000b90  74 49 63 6f 6e 54 65 78  74 28 46 6f 72 6d 61 74  |tIconText(Format|
00000ba0  25 2c 4d 61 69 6e 25 2c  22 56 48 53 5f 43 22 29  |%,Main%,"VHS_C")|
00000bb0  0d 03 02 30 20 20 20 20  20 20 20 20 20 20 20 20  |...0            |
00000bc0  20 20 20 20 20 20 20 20  20 f2 5f 52 65 64 72 61  |         ._Redra|
00000bd0  77 28 4d 61 69 6e 25 2c  46 6f 72 6d 61 74 25 29  |w(Main%,Format%)|
00000be0  0d 03 0c 40 20 20 20 20  20 20 20 20 20 20 20 20  |...@            |
00000bf0  20 20 20 20 20 20 20 20  20 f2 5f 43 68 61 6e 67  |         ._Chang|
00000c00  65 57 69 6e 64 6f 77 54  69 74 6c 65 28 4d 61 69  |eWindowTitle(Mai|
00000c10  6e 25 2c 57 69 6e 64 6f  77 54 69 74 6c 65 24 29  |n%,WindowTitle$)|
00000c20  0d 03 16 40 20 20 20 20  20 20 20 20 20 20 20 20  |...@            |
00000c30  20 20 20 20 20 20 20 20  20 f2 5f 4e 6f 74 53 65  |         ._NotSe|
00000c40  6c 65 63 74 61 62 6c 65  28 4d 61 69 6e 25 2c 54  |lectable(Main%,T|
00000c50  69 74 6c 65 4c 61 73 74  4c 69 6e 65 25 2c a3 29  |itleLastLine%,.)|
00000c60  0d 03 20 17 20 20 20 20  20 20 20 20 20 20 20 20  |.. .            |
00000c70  20 20 20 20 20 20 cd 0d  03 2a 35 20 20 20 20 20  |      ...*5     |
00000c80  20 20 20 20 c9 20 34 20  3a 20 4f 6c 64 24 3d 49  |    . 4 : Old$=I|
00000c90  6e 6c 61 79 54 79 70 65  24 20 3a 20 49 6e 6c 61  |nlayType$ : Inla|
00000ca0  79 54 79 70 65 24 3d 22  44 41 54 22 0d 03 34 37  |yType$="DAT"..47|
00000cb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000cc0  20 20 e7 20 4f 6c 64 24  3d 22 56 69 64 65 6f 5f  |  . Old$="Video_|
00000cd0  38 22 20 84 20 4f 6c 64  24 3d 22 56 48 53 5f 43  |8" . Old$="VHS_C|
00000ce0  22 20 8c 0d 03 3e 33 20  20 20 20 20 20 20 20 20  |" ...>3         |
00000cf0  20 20 20 20 20 20 20 20  20 20 20 20 6d 65 6e 75  |            menu|
00000d00  25 21 28 32 38 2b 32 34  2a 32 29 3d 4e 6f 74 54  |%!(28+24*2)=NotT|
00000d10  69 63 6b 65 64 25 0d 03  48 57 20 20 20 20 20 20  |icked%..HW      |
00000d20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 6d  |               m|
00000d30  65 6e 75 25 21 28 32 38  2b 32 34 2a 33 29 3d 4e  |enu%!(28+24*3)=N|
00000d40  6f 74 54 69 63 6b 65 64  25 20 3a 20 f4 20 54 69  |otTicked% : . Ti|
00000d50  63 6b 20 49 74 65 6d 20  34 2c 20 55 6e 74 69 63  |ck Item 4, Untic|
00000d60  6b 20 49 74 65 6d 73 20  33 20 26 20 32 0d 03 52  |k Items 3 & 2..R|
00000d70  3e 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |>               |
00000d80  20 20 20 20 20 20 6d 65  6e 75 25 21 28 32 38 2b  |      menu%!(28+|
00000d90  32 34 2a 34 29 3d 54 69  63 6b 65 64 25 20 84 20  |24*4)=Ticked% . |
00000da0  55 6e 64 65 72 6c 69 6e  65 64 25 0d 03 5c 3b 20  |Underlined%..\; |
00000db0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000dc0  20 20 20 20 f2 5f 53 65  74 49 63 6f 6e 54 65 78  |    ._SetIconTex|
00000dd0  74 28 46 6f 72 6d 61 74  25 2c 4d 61 69 6e 25 2c  |t(Format%,Main%,|
00000de0  22 44 41 54 22 29 0d 03  66 30 20 20 20 20 20 20  |"DAT")..f0      |
00000df0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00000e00  5f 52 65 64 72 61 77 28  4d 61 69 6e 25 2c 46 6f  |_Redraw(Main%,Fo|
00000e10  72 6d 61 74 25 29 0d 03  70 3d 20 20 20 20 20 20  |rmat%)..p=      |
00000e20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00000e30  5f 43 68 61 6e 67 65 57  69 6e 64 6f 77 54 69 74  |_ChangeWindowTit|
00000e40  6c 65 28 4d 61 69 6e 25  2c 44 61 74 54 69 74 6c  |le(Main%,DatTitl|
00000e50  65 24 29 0d 03 7a 40 20  20 20 20 20 20 20 20 20  |e$)..z@         |
00000e60  20 20 20 20 20 20 20 20  20 20 20 20 f2 5f 4e 6f  |            ._No|
00000e70  74 53 65 6c 65 63 74 61  62 6c 65 28 4d 61 69 6e  |tSelectable(Main|
00000e80  25 2c 54 69 74 6c 65 4c  61 73 74 4c 69 6e 65 25  |%,TitleLastLine%|
00000e90  2c b9 29 0d 03 84 17 20  20 20 20 20 20 20 20 20  |,.)....         |
00000ea0  20 20 20 20 20 20 20 20  20 cd 0d 03 8e 45 20 20  |         ....E  |
00000eb0  20 20 20 20 20 20 20 c9  20 35 20 3a 20 f2 5f 43  |       . 5 : ._C|
00000ec0  6c 6f 73 65 44 6f 77 6e  20 3a 20 f4 20 3c 53 65  |loseDown : . <Se|
00000ed0  6c 65 63 74 3e 20 6f 6e  20 22 71 75 69 74 22 20  |lect> on "quit" |
00000ee0  63 61 75 73 65 73 20 73  68 75 74 64 6f 77 6e 0d  |causes shutdown.|
00000ef0  03 98 0b 20 20 20 20 20  20 cb 0d 03 a2 08 20 20  |...      .....  |
00000f00  20 cd 0d 03 ac 04 0d 03  b6 20 20 20 20 e7 20 4d  | ........    . M|
00000f10  61 69 6e 57 69 6e 64 6f  77 4d 65 6e 75 41 63 74  |ainWindowMenuAct|
00000f20  69 76 65 25 20 8c 0d 03  c0 17 20 20 20 20 20 20  |ive% .....      |
00000f30  c8 8e 20 42 6c 6f 63 6b  25 21 30 20 ca 0d 03 ca  |.. Block%!0 ....|
00000f40  41 20 20 20 20 20 20 20  20 20 c9 20 30 20 3a 20  |A         . 0 : |
00000f50  f2 5f 4f 70 65 6e 53 75  62 4d 65 6e 75 28 49 6e  |._OpenSubMenu(In|
00000f60  66 6f 25 29 20 3a 20 4d  61 69 6e 57 69 6e 64 6f  |fo%) : MainWindo|
00000f70  77 4d 65 6e 75 41 63 74  69 76 65 25 3d a3 0d 03  |wMenuActive%=...|
00000f80  d4 41 20 20 20 20 20 20  20 20 20 c9 20 31 20 3a  |.A         . 1 :|
00000f90  20 f2 5f 4f 70 65 6e 53  75 62 4d 65 6e 75 28 53  | ._OpenSubMenu(S|
00000fa0  61 76 65 25 29 20 3a 20  4d 61 69 6e 57 69 6e 64  |ave%) : MainWind|
00000fb0  6f 77 4d 65 6e 75 41 63  74 69 76 65 25 3d a3 0d  |owMenuActive%=..|
00000fc0  03 de 44 20 20 20 20 20  20 20 20 20 c9 20 32 20  |..D         . 2 |
00000fd0  3a 20 f2 5f 4f 70 65 6e  53 75 62 4d 65 6e 75 28  |: ._OpenSubMenu(|
00000fe0  4f 70 74 69 6f 6e 73 25  29 20 3a 20 4d 61 69 6e  |Options%) : Main|
00000ff0  57 69 6e 64 6f 77 4d 65  6e 75 41 63 74 69 76 65  |WindowMenuActive|
00001000  25 3d a3 0d 03 e8 23 20  20 20 20 20 20 20 20 20  |%=....#         |
00001010  c9 20 33 20 3a 20 f2 5f  46 6f 72 6d 61 74 49 63  |. 3 : ._FormatIc|
00001020  6f 6e 54 65 78 74 0d 03  f2 21 20 20 20 20 20 20  |onText...!      |
00001030  20 20 20 c9 20 34 20 3a  20 f2 5f 57 69 70 65 49  |   . 4 : ._WipeI|
00001040  63 6f 6e 54 65 78 74 0d  03 fc 0b 20 20 20 20 20  |conText....     |
00001050  20 cb 0d 04 06 08 20 20  20 cd 0d 04 10 04 0d 04  | .....   .......|
00001060  1a 27 20 20 20 c8 99 20  22 57 69 6d 70 5f 47 65  |.'   .. "Wimp_Ge|
00001070  74 50 6f 69 6e 74 65 72  49 6e 66 6f 22 2c 2c 42  |tPointerInfo",,B|
00001080  6c 6f 63 6b 25 0d 04 24  19 20 20 20 e7 20 28 42  |lock%..$.   . (B|
00001090  6c 6f 63 6b 25 21 38 20  80 20 31 29 20 8c 0d 04  |lock%!8 . 1) ...|
000010a0  2e 3c 20 20 20 20 20 20  e7 20 49 63 6f 6e 42 61  |.<      . IconBa|
000010b0  72 4d 65 6e 75 41 63 74  69 76 65 25 20 8c 20 c8  |rMenuActive% . .|
000010c0  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |. "Wimp_CreateMe|
000010d0  6e 75 22 2c 2c 6d 65 6e  75 25 0d 04 38 43 20 20  |nu",,menu%..8C  |
000010e0  20 20 20 20 e7 20 4d 61  69 6e 57 69 6e 64 6f 77  |    . MainWindow|
000010f0  4d 65 6e 75 41 63 74 69  76 65 25 20 8c 20 c8 99  |MenuActive% . ..|
00001100  20 22 57 69 6d 70 5f 43  72 65 61 74 65 4d 65 6e  | "Wimp_CreateMen|
00001110  75 22 2c 2c 4d 61 69 6e  4d 65 6e 75 25 0d 04 42  |u",,MainMenu%..B|
00001120  08 20 20 20 cd 0d 04 4c  05 e1 0d 04 56 05 3a 0d  |.   ...L....V.:.|
00001130  04 60 26 f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.`&. ***********|
00001140  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00001150  2a 2a 2a 2a 2a 0d 04 6a  26 f4 20 4d 6f 75 73 65  |*****..j&. Mouse|
00001160  20 42 75 74 74 6f 6e 20  53 74 61 74 75 73 20 48  | Button Status H|
00001170  61 73 20 43 68 61 6e 67  65 64 2e 0d 04 74 26 f4  |as Changed...t&.|
00001180  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00001190  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
000011a0  2a 0d 04 7e 15 dd 20 f2  5f 42 75 74 74 6f 6e 50  |*..~.. ._ButtonP|
000011b0  72 65 73 73 65 64 0d 04  88 2b ea 20 4d 6f 75 73  |ressed...+. Mous|
000011c0  65 58 25 2c 4d 6f 75 73  65 59 25 2c 42 75 74 74  |eX%,MouseY%,Butt|
000011d0  6f 6e 25 2c 57 69 6e 64  6f 77 25 2c 49 63 6f 6e  |on%,Window%,Icon|
000011e0  25 0d 04 92 46 20 20 20  4d 6f 75 73 65 58 25 3d  |%...F   MouseX%=|
000011f0  42 6c 6f 63 6b 25 21 30  30 20 3a 20 f4 20 42 6c  |Block%!00 : . Bl|
00001200  6f 63 6b 25 21 30 30 20  3d 20 4d 6f 75 73 65 20  |ock%!00 = Mouse |
00001210  58 20 28 53 63 72 65 65  6e 20 43 6f 2d 6f 72 64  |X (Screen Co-ord|
00001220  69 6e 61 74 65 73 29 0d  04 9c 46 20 20 20 4d 6f  |inates)...F   Mo|
00001230  75 73 65 59 25 3d 42 6c  6f 63 6b 25 21 30 34 20  |useY%=Block%!04 |
00001240  3a 20 f4 20 42 6c 6f 63  6b 25 21 30 34 20 3d 20  |: . Block%!04 = |
00001250  4d 6f 75 73 65 20 59 20  28 53 63 72 65 65 6e 20  |Mouse Y (Screen |
00001260  43 6f 2d 6f 72 64 69 6e  61 74 65 73 29 0d 04 a6  |Co-ordinates)...|
00001270  30 20 20 20 42 75 74 74  6f 6e 25 3d 42 6c 6f 63  |0   Button%=Bloc|
00001280  6b 25 21 30 38 20 3a 20  f4 20 42 6c 6f 63 6b 25  |k%!08 : . Block%|
00001290  21 30 38 20 3d 20 42 75  74 74 6f 6e 73 0d 04 b0  |!08 = Buttons...|
000012a0  56 20 20 20 57 69 6e 64  6f 77 25 3d 42 6c 6f 63  |V   Window%=Bloc|
000012b0  6b 25 21 31 32 20 3a 20  f4 20 42 6c 6f 63 6b 25  |k%!12 : . Block%|
000012c0  21 31 32 20 3d 20 57 69  6e 64 6f 77 20 48 61 6e  |!12 = Window Han|
000012d0  64 6c 65 20 28 42 61 63  6b 47 72 6f 75 6e 64 20  |dle (BackGround |
000012e0  3d 20 2d 31 2c 20 49 63  6f 6e 42 61 72 20 3d 20  |= -1, IconBar = |
000012f0  2d 32 29 0d 04 ba 51 20  20 20 49 63 6f 6e 25 20  |-2)...Q   Icon% |
00001300  20 3d 42 6c 6f 63 6b 25  21 31 36 20 3a 20 f4 20  | =Block%!16 : . |
00001310  42 6c 6f 63 6b 25 21 31  36 20 3d 20 49 63 6f 6e  |Block%!16 = Icon|
00001320  20 48 61 6e 64 6c 65 20  28 20 57 6f 72 6b 20 41  | Handle ( Work A|
00001330  72 65 61 20 42 61 63 6b  47 72 6f 75 6e 64 20 3d  |rea BackGround =|
00001340  20 2d 31 29 0d 04 c4 04  0d 04 ce 2f 20 20 20 e7  | -1)......./   .|
00001350  20 57 69 6e 64 6f 77 25  3d 4f 70 74 69 6f 6e 73  | Window%=Options|
00001360  25 20 80 20 49 63 6f 6e  25 3d 4f 70 74 69 6f 6e  |% . Icon%=Option|
00001370  73 4f 4b 46 25 20 8c 0d  04 d8 48 20 20 20 20 20  |sOKF% ....H     |
00001380  20 f2 5f 42 75 74 74 6f  6e 50 72 65 73 73 28 4f  | ._ButtonPress(O|
00001390  70 74 69 6f 6e 73 25 2c  20 4f 70 74 69 6f 6e 73  |ptions%, Options|
000013a0  4f 4b 46 25 2c 20 4f 70  74 69 6f 6e 73 4f 4b 4c  |OKF%, OptionsOKL|
000013b0  25 2c 20 4f 70 74 69 6f  6e 73 4f 4b 44 25 29 0d  |%, OptionsOKD%).|
000013c0  04 e2 19 20 20 20 20 20  20 f2 5f 53 74 6f 72 65  |...      ._Store|
000013d0  55 73 65 72 44 61 74 61  0d 04 ec 08 20 20 20 cd  |UserData....   .|
000013e0  0d 04 f6 04 0d 05 00 36  20 20 20 e7 20 57 69 6e  |.......6   . Win|
000013f0  64 6f 77 25 3d 49 63 6f  6e 42 61 72 25 20 80 20  |dow%=IconBar% . |
00001400  49 63 6f 6e 25 3d 49 63  6f 6e 42 61 72 49 63 6f  |Icon%=IconBarIco|
00001410  6e 48 61 6e 64 6c 65 25  20 8c 0d 05 0a 16 20 20  |nHandle% .....  |
00001420  20 20 20 20 c8 8e 20 42  75 74 74 6f 6e 25 20 ca  |    .. Button% .|
00001430  0d 05 14 29 20 20 20 20  20 20 20 20 20 c9 20 25  |...)         . %|
00001440  30 30 31 20 3a 20 f2 5f  4f 70 65 6e 4d 61 69 6e  |001 : ._OpenMain|
00001450  57 69 6e 64 6f 77 28 a3  29 0d 05 1e 29 20 20 20  |Window(.)...)   |
00001460  20 20 20 20 20 20 c9 20  25 31 30 30 20 3a 20 f2  |      . %100 : .|
00001470  5f 4f 70 65 6e 4d 61 69  6e 57 69 6e 64 6f 77 28  |_OpenMainWindow(|
00001480  b9 29 0d 05 28 44 20 20  20 20 20 20 20 20 20 c9  |.)..(D         .|
00001490  20 25 30 31 30 20 3a 20  4d 61 69 6e 57 69 6e 64  | %010 : MainWind|
000014a0  6f 77 4d 65 6e 75 41 63  74 69 76 65 25 3d a3 20  |owMenuActive%=. |
000014b0  3a 20 49 63 6f 6e 42 61  72 4d 65 6e 75 41 63 74  |: IconBarMenuAct|
000014c0  69 76 65 25 3d b9 0d 05  32 4b 20 20 20 20 20 20  |ive%=...2K      |
000014d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 c8  |               .|
000014e0  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |. "Wimp_CreateMe|
000014f0  6e 75 22 2c 2c 6d 65 6e  75 25 2c 42 6c 6f 63 6b  |nu",,menu%,Block|
00001500  25 21 30 2d 36 34 2c 28  34 30 2a 37 29 2b 31 30  |%!0-64,(40*7)+10|
00001510  34 0d 05 3c 0b 20 20 20  20 20 20 cb 0d 05 46 08  |4..<.      ...F.|
00001520  20 20 20 cd 0d 05 50 04  0d 05 5a 39 20 20 20 e7  |   ...P...Z9   .|
00001530  20 42 75 74 74 6f 6e 25  3c 3e 20 25 30 31 30 20  | Button%<> %010 |
00001540  80 20 57 69 6e 64 6f 77  25 3d 4d 61 69 6e 25 20  |. Window%=Main% |
00001550  80 20 49 63 6f 6e 25 3d  50 72 69 6e 74 46 25 20  |. Icon%=PrintF% |
00001560  8c 0d 05 64 39 20 20 20  20 20 20 f2 5f 42 75 74  |...d9      ._But|
00001570  74 6f 6e 50 72 65 73 73  28 4d 61 69 6e 25 2c 20  |tonPress(Main%, |
00001580  50 72 69 6e 74 46 25 2c  20 50 72 69 6e 74 4c 25  |PrintF%, PrintL%|
00001590  2c 20 50 72 69 6e 74 44  25 29 0d 05 6e 14 20 20  |, PrintD%)..n.  |
000015a0  20 20 20 20 f2 5f 50 72  69 6e 74 4f 75 74 0d 05  |    ._PrintOut..|
000015b0  78 0b 20 20 20 20 20 20  cd 0d 05 82 04 0d 05 8c  |x.      ........|
000015c0  27 20 20 20 e7 20 42 75  74 74 6f 6e 25 3d 25 30  |'   . Button%=%0|
000015d0  31 30 20 80 20 57 69 6e  64 6f 77 25 3d 4d 61 69  |10 . Window%=Mai|
000015e0  6e 25 20 8c 0d 05 96 37  20 20 20 20 20 20 e7 20  |n% ....7      . |
000015f0  49 6e 6c 61 79 54 79 70  65 24 3d 22 56 69 64 65  |InlayType$="Vide|
00001600  6f 5f 38 22 20 84 20 49  6e 6c 61 79 54 79 70 65  |o_8" . InlayType|
00001610  24 3d 22 56 48 53 5f 43  22 20 8c 0d 05 a0 24 20  |$="VHS_C" ....$ |
00001620  20 20 20 20 20 20 20 20  50 6f 73 74 66 69 78 24  |        Postfix$|
00001630  3d c2 49 6e 6c 61 79 54  79 70 65 24 2c 32 29 0d  |=.InlayType$,2).|
00001640  05 aa 0b 20 20 20 20 20  20 cc 0d 05 b4 1a 20 20  |...      .....  |
00001650  20 20 20 20 20 20 20 50  6f 73 74 66 69 78 24 3d  |       Postfix$=|
00001660  22 5f 44 22 0d 05 be 0b  20 20 20 20 20 20 cd 0d  |"_D"....      ..|
00001670  05 c8 5f 20 20 20 20 20  20 54 65 6d 70 24 3d a4  |.._      Temp$=.|
00001680  5f 52 65 61 64 49 63 6f  6e 54 65 78 74 28 53 61  |_ReadIconText(Sa|
00001690  76 65 25 2c 34 2c a3 29  20 3a 20 54 65 6d 70 32  |ve%,4,.) : Temp2|
000016a0  24 3d a4 5f 52 65 61 64  49 63 6f 6e 54 65 78 74  |$=._ReadIconText|
000016b0  28 4d 61 69 6e 25 2c 54  61 70 65 4e 75 6d 62 65  |(Main%,TapeNumbe|
000016c0  72 25 2c a3 29 2b 50 6f  73 74 66 69 78 24 0d 05  |r%,.)+Postfix$..|
000016d0  d2 38 20 20 20 20 20 20  e7 20 c2 54 65 6d 70 24  |.8      . .Temp$|
000016e0  2c 31 30 29 3d 22 42 6f  66 66 42 72 69 67 68 74  |,10)="BoffBright|
000016f0  22 20 84 20 4f 6c 64 4e  61 6d 65 24 3c 3e 54 65  |" . OldName$<>Te|
00001700  6d 70 32 24 20 8c 0d 05  dc 3b 20 20 20 20 20 20  |mp2$ ....;      |
00001710  20 20 20 4e 65 77 53 61  76 65 4e 61 6d 65 24 3d  |   NewSaveName$=|
00001720  a4 5f 43 6f 6e 76 65 72  74 53 6f 66 74 54 6f 48  |._ConvertSoftToH|
00001730  61 72 64 53 70 61 63 65  73 28 54 65 6d 70 32 24  |ardSpaces(Temp2$|
00001740  29 0d 05 e6 23 20 20 20  20 20 20 20 20 20 e7 20  |)...#         . |
00001750  a9 28 54 65 6d 70 24 29  3e a9 28 54 65 6d 70 32  |.(Temp$)>.(Temp2|
00001760  24 29 20 8c 0d 05 f0 21  20 20 20 20 20 20 20 20  |$) ....!        |
00001770  20 20 20 20 50 6f 69 6e  74 65 72 25 3d a9 28 54  |    Pointer%=.(T|
00001780  65 6d 70 24 29 0d 05 fa  45 20 20 20 20 20 20 20  |emp$)...E       |
00001790  20 20 20 20 20 c8 95 20  c1 54 65 6d 70 24 2c 50  |     .. .Temp$,P|
000017a0  6f 69 6e 74 65 72 25 2c  31 29 3c 3e 22 2e 22 20  |ointer%,1)<>"." |
000017b0  80 20 50 6f 69 6e 74 65  72 25 3e 30 3a 50 6f 69  |. Pointer%>0:Poi|
000017c0  6e 74 65 72 25 2d 3d 31  3a ce 0d 06 04 44 20 20  |nter%-=1:....D  |
000017d0  20 20 20 20 20 20 20 20  20 20 f2 5f 53 65 74 49  |          ._SetI|
000017e0  63 6f 6e 54 65 78 74 28  34 2c 53 61 76 65 25 2c  |conText(4,Save%,|
000017f0  c0 54 65 6d 70 24 2c 50  6f 69 6e 74 65 72 25 29  |.Temp$,Pointer%)|
00001800  2b 4e 65 77 53 61 76 65  4e 61 6d 65 24 29 0d 06  |+NewSaveName$)..|
00001810  0e 0e 20 20 20 20 20 20  20 20 20 cc 0d 06 18 33  |..         ....3|
00001820  20 20 20 20 20 20 20 20  20 20 20 20 f2 5f 53 65  |            ._Se|
00001830  74 49 63 6f 6e 54 65 78  74 28 34 2c 53 61 76 65  |tIconText(4,Save|
00001840  25 2c 4e 65 77 53 61 76  65 4e 61 6d 65 24 29 0d  |%,NewSaveName$).|
00001850  06 22 0e 20 20 20 20 20  20 20 20 20 cd 0d 06 2c  |.".         ...,|
00001860  1c 20 20 20 20 20 20 20  20 20 4f 6c 64 4e 61 6d  |.         OldNam|
00001870  65 24 3d 54 65 6d 70 32  24 0d 06 36 0b 20 20 20  |e$=Temp2$..6.   |
00001880  20 20 20 cd 0d 06 40 37  20 20 20 20 20 20 f2 5f  |   ...@7      ._|
00001890  43 72 65 61 74 65 4d 61  69 6e 57 69 6e 64 6f 77  |CreateMainWindow|
000018a0  4d 65 6e 75 28 4d 6f 75  73 65 58 25 2c 4d 6f 75  |Menu(MouseX%,Mou|
000018b0  73 65 59 25 2c 49 63 6f  6e 25 29 0d 06 4a 08 20  |seY%,Icon%)..J. |
000018c0  20 20 cd 0d 06 54 04 0d  06 5e 36 20 20 20 e7 20  |  ...T...^6   . |
000018d0  57 69 6e 64 6f 77 25 3d  53 61 76 65 25 20 80 20  |Window%=Save% . |
000018e0  49 63 6f 6e 25 3d 53 61  76 65 49 63 6f 6e 25 20  |Icon%=SaveIcon% |
000018f0  20 8c 20 f2 5f 44 72 61  67 53 61 76 65 0d 06 68  | . ._DragSave..h|
00001900  2b 20 20 20 e7 20 57 69  6e 64 6f 77 25 3d 53 61  |+   . Window%=Sa|
00001910  76 65 25 20 80 20 49 63  6f 6e 25 3d 53 61 76 65  |ve% . Icon%=Save|
00001920  4f 4b 46 25 20 20 20 8c  0d 06 72 3c 20 20 20 20  |OKF%   ...r<    |
00001930  20 20 f2 5f 42 75 74 74  6f 6e 50 72 65 73 73 28  |  ._ButtonPress(|
00001940  53 61 76 65 25 2c 20 53  61 76 65 4f 4b 46 25 2c  |Save%, SaveOKF%,|
00001950  20 53 61 76 65 4f 4b 4c  25 2c 20 53 61 76 65 4f  | SaveOKL%, SaveO|
00001960  4b 44 25 29 0d 06 7c 2d  20 20 20 20 20 20 f2 5f  |KD%)..|-      ._|
00001970  53 61 76 65 54 6f 28 a4  5f 52 65 61 64 49 63 6f  |SaveTo(._ReadIco|
00001980  6e 54 65 78 74 28 53 61  76 65 25 2c 34 2c a3 29  |nText(Save%,4,.)|
00001990  29 0d 06 86 08 20 20 20  cd 0d 06 90 04 0d 06 9a  |)....   ........|
000019a0  2c 20 20 20 e7 20 42 75  74 74 6f 6e 25 3c 3e 20  |,   . Button%<> |
000019b0  25 30 31 30 20 80 20 57  69 6e 64 6f 77 25 3d 4f  |%010 . Window%=O|
000019c0  70 74 69 6f 6e 73 25 20  8c 0d 06 a4 14 20 20 20  |ptions% .....   |
000019d0  20 20 20 c8 8e 20 49 63  6f 6e 25 20 ca 0d 06 ae  |   .. Icon% ....|
000019e0  62 20 20 20 20 20 20 20  20 20 c9 20 20 30 2c 31  |b         .  0,1|
000019f0  2c 35 20 3a 20 f2 5f 53  65 74 49 63 6f 6e 54 65  |,5 : ._SetIconTe|
00001a00  78 74 28 44 72 69 76 65  72 4e 61 6d 65 25 2c 4d  |xt(DriverName%,M|
00001a10  61 69 6e 25 2c 50 44 72  69 76 65 72 24 28 a4 5f  |ain%,PDriver$(._|
00001a20  52 65 61 64 45 53 47 53  65 6c 65 63 74 65 64 28  |ReadESGSelected(|
00001a30  4f 70 74 69 6f 6e 73 25  2c 39 29 2b 31 29 29 0d  |Options%,9)+1)).|
00001a40  06 b8 0b 20 20 20 20 20  20 cb 0d 06 c2 25 20 20  |...      ....%  |
00001a50  20 20 20 20 f2 5f 52 65  64 72 61 77 28 4d 61 69  |    ._Redraw(Mai|
00001a60  6e 25 2c 44 72 69 76 65  72 4e 61 6d 65 25 29 0d  |n%,DriverName%).|
00001a70  06 cc 08 20 20 20 cd 0d  06 d6 05 e1 0d 06 e0 05  |...   ..........|
00001a80  3a 0d 06 ea 6d f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |:...m. *********|
00001a90  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001ae0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 06  |**************..|
00001af0  f4 6d f4 20 43 68 61 6e  67 65 20 61 6c 6c 20 6f  |.m. Change all o|
00001b00  63 63 75 72 61 6e 63 65  73 20 6f 66 20 3c 53 50  |ccurances of <SP|
00001b10  41 43 45 3e 20 69 6e 20  74 68 65 20 74 61 70 65  |ACE> in the tape|
00001b20  20 6e 75 6d 62 65 72 20  74 6f 20 3c 41 4c 54 2d  | number to <ALT-|
00001b30  53 50 41 43 45 3e 20 74  6f 20 73 74 6f 70 20 74  |SPACE> to stop t|
00001b40  68 65 20 66 69 6c 65 72  20 74 68 72 6f 77 69 6e  |he filer throwin|
00001b50  67 20 61 20 77 6f 62 62  6c 79 2e 0d 06 fe 6d f4  |g a wobbly....m.|
00001b60  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00001b70  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001bc0  2a 2a 2a 2a 2a 2a 2a 2a  0d 07 08 26 dd 20 a4 5f  |********...&. ._|
00001bd0  43 6f 6e 76 65 72 74 53  6f 66 74 54 6f 48 61 72  |ConvertSoftToHar|
00001be0  64 53 70 61 63 65 73 28  4e 61 6d 65 24 29 0d 07  |dSpaces(Name$)..|
00001bf0  12 18 20 20 20 50 6f 69  6e 74 65 72 25 3d a9 28  |..   Pointer%=.(|
00001c00  4e 61 6d 65 24 29 0d 07  1c 08 20 20 20 f5 0d 07  |Name$)....   ...|
00001c10  26 22 20 20 20 20 20 20  43 68 61 72 24 3d c1 4e  |&"      Char$=.N|
00001c20  61 6d 65 24 2c 50 6f 69  6e 74 65 72 25 2c 31 29  |ame$,Pointer%,1)|
00001c30  0d 07 30 17 20 20 20 20  20 20 e7 20 43 68 61 72  |..0.      . Char|
00001c40  24 3d 22 20 22 20 8c 0d  07 3a 16 20 20 20 20 20  |$=" " ...:.     |
00001c50  20 20 20 20 43 68 61 72  24 3d 22 a0 22 0d 07 44  |    Char$="."..D|
00001c60  25 20 20 20 20 20 20 20  20 20 c1 4e 61 6d 65 24  |%         .Name$|
00001c70  2c 50 6f 69 6e 74 65 72  25 2c 31 29 3d 43 68 61  |,Pointer%,1)=Cha|
00001c80  72 24 0d 07 4e 0b 20 20  20 20 20 20 cd 0d 07 58  |r$..N.      ...X|
00001c90  15 20 20 20 20 20 20 50  6f 69 6e 74 65 72 25 2d  |.      Pointer%-|
00001ca0  3d 31 0d 07 62 13 20 20  20 fd 20 50 6f 69 6e 74  |=1..b.   . Point|
00001cb0  65 72 25 3d 31 0d 07 6c  0a 3d 4e 61 6d 65 24 0d  |er%=1..l.=Name$.|
00001cc0  07 76 05 3a 0d 07 80 24  2a 2a 2a 2a 2a 2a 2a 2a  |.v.:...$********|
00001cd0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00001ce0  2a 2a 2a 2a 2a 2a 2a 2a  0d 07 8a 22 f4 20 27 50  |********...". 'P|
00001cf0  72 65 73 73 27 20 61 20  62 75 74 74 6f 6e 20 69  |ress' a button i|
00001d00  6e 20 61 20 77 69 6e 64  6f 77 0d 07 94 24 2a 2a  |n a window...$**|
00001d10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00001d20  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 07  |**************..|
00001d30  9e 33 dd 20 f2 5f 42 75  74 74 6f 6e 50 72 65 73  |.3. ._ButtonPres|
00001d40  73 28 57 69 6e 64 6f 77  25 2c 20 46 72 6f 6e 74  |s(Window%, Front|
00001d50  25 2c 20 4c 69 67 68 74  25 2c 20 44 61 72 6b 25  |%, Light%, Dark%|
00001d60  29 0d 07 a8 11 20 20 20  ea 20 54 69 6d 65 4e 6f  |)....   . TimeNo|
00001d70  77 25 0d 07 b2 2a 20 20  20 f2 5f 53 65 74 49 63  |w%...*   ._SetIc|
00001d80  6f 6e 43 6f 6c 6f 75 72  28 57 69 6e 64 6f 77 25  |onColour(Window%|
00001d90  2c 20 4c 69 67 68 74 25  2c 20 34 29 0d 07 bc 29  |, Light%, 4)...)|
00001da0  20 20 20 f2 5f 53 65 74  49 63 6f 6e 43 6f 6c 6f  |   ._SetIconColo|
00001db0  75 72 28 57 69 6e 64 6f  77 25 2c 20 44 61 72 6b  |ur(Window%, Dark|
00001dc0  25 2c 20 30 29 0d 07 c6  2b 20 20 20 f2 5f 53 65  |%, 0)...+   ._Se|
00001dd0  74 49 63 6f 6e 43 6f 6c  6f 75 72 28 57 69 6e 64  |tIconColour(Wind|
00001de0  6f 77 25 2c 20 46 72 6f  6e 74 25 2c 20 31 34 29  |ow%, Front%, 14)|
00001df0  0d 07 d0 13 20 20 20 54  69 6d 65 4e 6f 77 25 20  |....   TimeNow% |
00001e00  3d 20 91 0d 07 da 08 20  20 20 f5 0d 07 e4 18 20  |= .....   ..... |
00001e10  20 20 fd 20 91 20 3e 20  54 69 6d 65 4e 6f 77 25  |  . . > TimeNow%|
00001e20  2b 32 35 0d 07 ee 2a 20  20 20 f2 5f 53 65 74 49  |+25...*   ._SetI|
00001e30  63 6f 6e 43 6f 6c 6f 75  72 28 57 69 6e 64 6f 77  |conColour(Window|
00001e40  25 2c 20 4c 69 67 68 74  25 2c 20 30 29 0d 07 f8  |%, Light%, 0)...|
00001e50  29 20 20 20 f2 5f 53 65  74 49 63 6f 6e 43 6f 6c  |)   ._SetIconCol|
00001e60  6f 75 72 28 57 69 6e 64  6f 77 25 2c 20 44 61 72  |our(Window%, Dar|
00001e70  6b 25 2c 20 34 29 0d 08  02 2a 20 20 20 f2 5f 53  |k%, 4)...*   ._S|
00001e80  65 74 49 63 6f 6e 43 6f  6c 6f 75 72 28 57 69 6e  |etIconColour(Win|
00001e90  64 6f 77 25 2c 20 46 72  6f 6e 74 25 2c 20 31 29  |dow%, Front%, 1)|
00001ea0  0d 08 0c 05 e1 0d 08 16  05 3a 0d 08 20 30 2a 2a  |.........:.. 0**|
00001eb0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001ed0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 08 2a 2e f4 20  |**********..*.. |
00001ee0  43 68 61 6e 67 65 20 74  68 65 20 63 6f 6c 6f 75  |Change the colou|
00001ef0  72 20 6f 66 20 61 6e 20  69 63 6f 6e 20 69 6e 20  |r of an icon in |
00001f00  61 20 77 69 6e 64 6f 77  0d 08 34 30 2a 2a 2a 2a  |a window..40****|
00001f10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001f30  2a 2a 2a 2a 2a 2a 2a 2a  0d 08 3e 2e dd 20 f2 5f  |********..>.. ._|
00001f40  53 65 74 49 63 6f 6e 43  6f 6c 6f 75 72 28 57 69  |SetIconColour(Wi|
00001f50  6e 64 6f 77 25 2c 20 49  63 6f 6e 25 2c 20 43 6f  |ndow%, Icon%, Co|
00001f60  6c 6f 75 72 25 29 0d 08  48 1a 20 20 20 42 6c 6f  |lour%)..H.   Blo|
00001f70  63 6b 25 21 30 20 20 3d  20 57 69 6e 64 6f 77 25  |ck%!0  = Window%|
00001f80  0d 08 52 18 20 20 20 42  6c 6f 63 6b 25 21 34 20  |..R.   Block%!4 |
00001f90  20 3d 20 49 63 6f 6e 25  0d 08 5c 20 20 20 20 42  | = Icon%..\    B|
00001fa0  6c 6f 63 6b 25 21 38 20  20 3d 20 43 6f 6c 6f 75  |lock%!8  = Colou|
00001fb0  72 25 20 3c 3c 20 32 38  0d 08 66 1e 20 20 20 42  |r% << 28..f.   B|
00001fc0  6c 6f 63 6b 25 21 31 32  20 3d 20 25 31 31 31 31  |lock%!12 = %1111|
00001fd0  20 3c 3c 20 32 38 0d 08  70 26 20 20 20 c8 99 20  | << 28..p&   .. |
00001fe0  22 57 69 6d 70 5f 53 65  74 49 63 6f 6e 53 74 61  |"Wimp_SetIconSta|
00001ff0  74 65 22 2c 2c 20 42 6c  6f 63 6b 25 0d 08 7a 05  |te",, Block%..z.|
00002000  e1 0d 08 84 05 3a 0d 08  8e 49 f4 20 2a 2a 2a 2a  |.....:...I. ****|
00002010  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002040  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
00002050  08 98 49 f4 20 57 68 65  6e 20 61 20 6b 65 79 20  |..I. When a key |
00002060  69 73 20 70 72 65 73 73  65 64 2c 20 43 68 65 63  |is pressed, Chec|
00002070  6b 20 69 66 20 69 74 20  63 6f 6e 63 65 72 6e 73  |k if it concerns|
00002080  20 6d 65 2e 20 49 66 20  6e 6f 74 2c 20 50 61 73  | me. If not, Pas|
00002090  73 20 69 74 20 6f 6e 21  0d 08 a2 49 f4 20 2a 2a  |s it on!...I. **|
000020a0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000020e0  2a 0d 08 ac 1e dd 20 f2  5f 50 72 6f 63 65 73 73  |*..... ._Process|
000020f0  4b 65 79 28 4b 65 79 50  72 65 73 73 65 64 29 0d  |Key(KeyPressed).|
00002100  08 b6 1d 20 20 20 ea 20  49 63 6f 6e 25 2c 49 6e  |...   . Icon%,In|
00002110  64 65 78 25 2c 57 69 6e  64 6f 77 25 0d 08 c0 17  |dex%,Window%....|
00002120  20 20 20 57 69 6e 64 6f  77 25 3d 42 6c 6f 63 6b  |   Window%=Block|
00002130  25 21 30 0d 08 ca 15 20  20 20 49 63 6f 6e 25 3d  |%!0....   Icon%=|
00002140  42 6c 6f 63 6b 25 21 34  0d 08 d4 17 20 20 20 49  |Block%!4....   I|
00002150  6e 64 65 78 25 3d 42 6c  6f 63 6b 25 21 32 30 0d  |ndex%=Block%!20.|
00002160  08 de 16 20 20 20 c8 8e  20 4b 65 79 50 72 65 73  |...   .. KeyPres|
00002170  73 65 64 20 ca 0d 08 e8  04 0d 08 f2 42 20 20 20  |sed ........B   |
00002180  20 20 20 c9 20 26 31 38  30 20 3a 20 f2 5f 42 75  |   . &180 : ._Bu|
00002190  74 74 6f 6e 50 72 65 73  73 28 4d 61 69 6e 25 2c  |ttonPress(Main%,|
000021a0  20 50 72 69 6e 74 46 25  2c 20 50 72 69 6e 74 4c  | PrintF%, PrintL|
000021b0  25 2c 20 50 72 69 6e 74  44 25 29 0d 08 fc 20 20  |%, PrintD%)...  |
000021c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000021d0  20 f2 5f 50 72 69 6e 74  4f 75 74 0d 09 06 13 20  | ._PrintOut.... |
000021e0  20 20 20 20 20 f4 20 3c  50 72 69 6e 74 3e 0d 09  |     . <Print>..|
000021f0  10 04 0d 09 1a 10 20 20  20 20 20 20 c9 20 26 31  |......      . &1|
00002200  38 41 0d 09 24 11 20 20  20 20 20 20 f4 20 3c 54  |8A..$.      . <T|
00002210  61 62 3e 0d 09 2e 2f 20  20 20 20 20 20 20 20 20  |ab>.../         |
00002220  20 20 20 20 20 20 20 20  20 e7 20 49 63 6f 6e 25  |         . Icon%|
00002230  3c 3d 42 74 6d 53 65 74  49 74 65 6d 45 6e 64 25  |<=BtmSetItemEnd%|
00002240  20 8c 0d 09 38 59 20 20  20 20 20 20 20 20 20 20  | ...8Y          |
00002250  20 20 20 20 20 20 20 20  20 20 20 f2 5f 53 65 74  |           ._Set|
00002260  43 61 72 65 74 50 6f 73  69 74 69 6f 6e 28 49 63  |CaretPosition(Ic|
00002270  6f 6e 25 2d 28 28 49 63  6f 6e 25 20 83 20 32 29  |on%-((Icon% . 2)|
00002280  3d 30 29 2b 28 28 49 63  6f 6e 25 20 83 20 32 29  |=0)+((Icon% . 2)|
00002290  3d 31 29 2c 49 6e 64 65  78 25 29 0d 09 42 17 20  |=1),Index%)..B. |
000022a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000022b0  20 cd 0d 09 4c 69 20 20  20 20 20 20 20 20 20 20  | ...Li          |
000022c0  20 20 20 20 20 20 20 20  e7 20 49 63 6f 6e 25 3e  |        . Icon%>|
000022d0  3d 54 69 74 6c 65 46 69  72 73 74 4c 69 6e 65 25  |=TitleFirstLine%|
000022e0  20 80 20 49 63 6f 6e 25  3c 54 69 74 6c 65 4c 61  | . Icon%<TitleLa|
000022f0  73 74 4c 69 6e 65 25 20  8c 20 f2 5f 53 65 74 43  |stLine% . ._SetC|
00002300  61 72 65 74 50 6f 73 69  74 69 6f 6e 28 54 61 70  |aretPosition(Tap|
00002310  65 4e 75 6d 62 65 72 25  2c 30 29 0d 09 56 51 20  |eNumber%,0)..VQ |
00002320  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002330  20 e7 20 49 63 6f 6e 25  3d 54 61 70 65 4e 75 6d  | . Icon%=TapeNum|
00002340  62 65 72 25 20 8c 20 f2  5f 53 65 74 43 61 72 65  |ber% . ._SetCare|
00002350  74 50 6f 73 69 74 69 6f  6e 28 54 69 74 6c 65 46  |tPosition(TitleF|
00002360  69 72 73 74 4c 69 6e 65  25 2c 30 29 0d 09 60 04  |irstLine%,0)..`.|
00002370  0d 09 6a 0f 20 20 20 20  20 20 c9 20 26 30 44 0d  |..j.      . &0D.|
00002380  09 74 14 20 20 20 20 20  20 f4 20 3c 52 65 74 75  |.t.      . <Retu|
00002390  72 6e 3e 0d 09 7e 3f 20  20 20 20 20 20 20 20 20  |rn>..~?         |
000023a0  20 20 20 20 20 20 20 20  20 e7 20 57 69 6e 64 6f  |         . Windo|
000023b0  77 25 3d 4d 61 69 6e 25  20 80 20 49 63 6f 6e 25  |w%=Main% . Icon%|
000023c0  3c 3d 42 74 6d 53 65 74  49 74 65 6d 45 6e 64 25  |<=BtmSetItemEnd%|
000023d0  20 8c 0d 09 88 41 20 20  20 20 20 20 20 20 20 20  | ....A          |
000023e0  20 20 20 20 20 20 20 20  20 20 20 e7 20 28 28 49  |           . ((I|
000023f0  63 6f 6e 25 20 83 20 32  29 3d 31 29 20 8c 20 f2  |con% . 2)=1) . .|
00002400  5f 4d 6f 76 65 44 6f 77  6e 4f 6e 65 42 61 63 6b  |_MoveDownOneBack|
00002410  4f 6e 65 0d 09 92 4a 20  20 20 20 20 20 20 20 20  |One...J         |
00002420  20 20 20 20 20 20 20 20  20 20 20 20 e7 20 28 28  |            . ((|
00002430  49 63 6f 6e 25 20 83 20  32 29 3d 30 29 20 8c 20  |Icon% . 2)=0) . |
00002440  f2 5f 53 65 74 43 61 72  65 74 50 6f 73 69 74 69  |._SetCaretPositi|
00002450  6f 6e 28 49 63 6f 6e 25  2b 31 2c 30 29 0d 09 9c  |on(Icon%+1,0)...|
00002460  17 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00002470  20 20 20 cd 0d 09 a6 6a  20 20 20 20 20 20 20 20  |   ....j        |
00002480  20 20 20 20 20 20 20 20  20 20 e7 20 57 69 6e 64  |          . Wind|
00002490  6f 77 25 3d 4d 61 69 6e  25 20 80 20 49 63 6f 6e  |ow%=Main% . Icon|
000024a0  25 3e 3d 54 69 74 6c 65  46 69 72 73 74 4c 69 6e  |%>=TitleFirstLin|
000024b0  65 25 20 80 20 49 63 6f  6e 25 3c 3d 54 69 74 6c  |e% . Icon%<=Titl|
000024c0  65 4c 61 73 74 4c 69 6e  65 25 20 8c 20 f2 5f 4d  |eLastLine% . ._M|
000024d0  6f 76 65 44 6f 77 6e 41  6e 45 6e 74 72 79 0d 09  |oveDownAnEntry..|
000024e0  b0 5b 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.[              |
000024f0  20 20 20 20 e7 20 57 69  6e 64 6f 77 25 3d 4d 61  |    . Window%=Ma|
00002500  69 6e 25 20 80 20 49 63  6f 6e 25 3d 54 61 70 65  |in% . Icon%=Tape|
00002510  4e 75 6d 62 65 72 25 20  8c 20 f2 5f 53 65 74 43  |Number% . ._SetC|
00002520  61 72 65 74 50 6f 73 69  74 69 6f 6e 28 55 73 65  |aretPosition(Use|
00002530  72 4e 6f 74 65 25 2c 30  29 0d 09 ba 27 20 20 20  |rNote%,0)...'   |
00002540  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 e7  |               .|
00002550  20 57 69 6e 64 6f 77 25  3d 53 61 76 65 25 20 8c  | Window%=Save% .|
00002560  0d 09 c4 4b 20 20 20 20  20 20 20 20 20 20 20 20  |...K            |
00002570  20 20 20 20 20 20 20 20  20 f2 5f 42 75 74 74 6f  |         ._Butto|
00002580  6e 50 72 65 73 73 28 53  61 76 65 25 2c 20 53 61  |nPress(Save%, Sa|
00002590  76 65 4f 4b 46 25 2c 20  53 61 76 65 4f 4b 4c 25  |veOKF%, SaveOKL%|
000025a0  2c 20 53 61 76 65 4f 4b  44 25 29 0d 09 ce 3c 20  |, SaveOKD%)...< |
000025b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000025c0  20 20 20 20 f2 5f 53 61  76 65 54 6f 28 a4 5f 52  |    ._SaveTo(._R|
000025d0  65 61 64 49 63 6f 6e 54  65 78 74 28 53 61 76 65  |eadIconText(Save|
000025e0  25 2c 34 2c a3 29 29 0d  09 d8 17 20 20 20 20 20  |%,4,.))....     |
000025f0  20 20 20 20 20 20 20 20  20 20 20 20 20 cd 0d 09  |             ...|
00002600  e2 04 0d 09 ec 0f 20 20  20 20 20 20 c9 20 26 31  |......      . &1|
00002610  45 0d 09 f6 12 20 20 20  20 20 20 f4 20 3c 48 6f  |E....      . <Ho|
00002620  6d 65 3e 0d 0a 00 55 20  20 20 20 20 20 20 20 20  |me>...U         |
00002630  20 20 20 20 20 20 20 20  20 e7 20 49 63 6f 6e 25  |         . Icon%|
00002640  3c 3d 42 74 6d 53 65 74  49 74 65 6d 45 6e 64 25  |<=BtmSetItemEnd%|
00002650  20 8c 20 f2 5f 53 65 74  43 61 72 65 74 50 6f 73  | . ._SetCaretPos|
00002660  69 74 69 6f 6e 28 42 74  6d 53 65 74 49 6e 64 65  |ition(BtmSetInde|
00002670  78 45 6e 64 25 2c 30 29  0d 0a 0a 04 0d 0a 14 10  |xEnd%,0)........|
00002680  20 20 20 20 20 20 c9 20  26 31 38 46 0d 0a 1e 17  |      . &18F....|
00002690  20 20 20 20 20 20 f4 20  3c 43 75 72 73 6f 72 20  |      . <Cursor |
000026a0  55 70 3e 0d 0a 28 25 20  20 20 20 20 20 20 20 20  |Up>..(%         |
000026b0  20 20 20 20 20 20 20 20  20 f2 5f 4d 6f 76 65 55  |         ._MoveU|
000026c0  70 41 6e 45 6e 74 72 79  0d 0a 32 04 0d 0a 3c 10  |pAnEntry..2...<.|
000026d0  20 20 20 20 20 20 c9 20  26 31 38 45 0d 0a 46 19  |      . &18E..F.|
000026e0  20 20 20 20 20 20 f4 20  3c 43 75 72 73 6f 72 20  |      . <Cursor |
000026f0  44 6f 77 6e 3e 0d 0a 50  27 20 20 20 20 20 20 20  |Down>..P'       |
00002700  20 20 20 20 20 20 20 20  20 20 20 f2 5f 4d 6f 76  |           ._Mov|
00002710  65 44 6f 77 6e 41 6e 45  6e 74 72 79 0d 0a 5a 04  |eDownAnEntry..Z.|
00002720  0d 0a 64 10 20 20 20 20  20 20 c9 20 26 31 39 39  |..d.      . &199|
00002730  0d 0a 6e 17 20 20 20 20  20 20 f4 20 3c 53 68 69  |..n.      . <Shi|
00002740  66 74 3e 3c 66 39 3e 0d  0a 78 24 20 20 20 20 20  |ft><f9>..x$     |
00002750  20 20 20 20 20 20 20 20  20 20 20 20 20 f2 5f 57  |             ._W|
00002760  69 70 65 49 63 6f 6e 54  65 78 74 0d 0a 82 04 0d  |ipeIconText.....|
00002770  0a 8c 10 20 20 20 20 20  20 c9 20 26 31 43 41 0d  |...      . &1CA.|
00002780  0a 96 11 20 20 20 20 20  20 f4 20 3c 66 31 30 3e  |...      . <f10>|
00002790  0d 0a a0 34 20 20 20 20  20 20 20 20 20 20 20 20  |...4            |
000027a0  20 20 20 20 20 20 f2 5f  53 77 61 70 43 61 73 65  |      ._SwapCase|
000027b0  28 4d 61 69 6e 25 2c 49  63 6f 6e 25 2c 49 6e 64  |(Main%,Icon%,Ind|
000027c0  65 78 25 29 0d 0a aa 04  0d 0a b4 10 20 20 20 20  |ex%)........    |
000027d0  20 20 c9 20 26 31 43 42  0d 0a be 29 20 20 20 20  |  . &1CB...)    |
000027e0  20 20 f4 20 3c 66 31 31  3e 20 2d 20 44 65 6c 65  |  . <f11> - Dele|
000027f0  74 65 20 74 6f 20 65 6e  64 20 6f 66 20 6c 69 6e  |te to end of lin|
00002800  65 0d 0a c8 42 20 20 20  20 20 20 20 20 20 20 20  |e...B           |
00002810  20 20 20 20 20 20 20 54  65 78 74 24 3d c0 a4 5f  |       Text$=.._|
00002820  52 65 61 64 49 63 6f 6e  54 65 78 74 28 4d 61 69  |ReadIconText(Mai|
00002830  6e 25 2c 49 63 6f 6e 25  2c a3 29 2c 49 6e 64 65  |n%,Icon%,.),Inde|
00002840  78 25 29 0d 0a d2 36 20  20 20 20 20 20 20 20 20  |x%)...6         |
00002850  20 20 20 20 20 20 20 20  20 f2 5f 53 65 74 49 63  |         ._SetIc|
00002860  6f 6e 54 65 78 74 28 49  63 6f 6e 25 2c 4d 61 69  |onText(Icon%,Mai|
00002870  6e 25 2c 54 65 78 74 24  29 0d 0a dc 2b 20 20 20  |n%,Text$)...+   |
00002880  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 f2  |               .|
00002890  5f 52 65 64 72 61 77 28  4d 61 69 6e 25 2c 49 63  |_Redraw(Main%,Ic|
000028a0  6f 6e 25 29 0d 0a e6 04  0d 0a f0 2c 20 20 20 20  |on%).......,    |
000028b0  20 20 7f 20 20 20 c8 99  20 22 57 69 6d 70 5f 50  |  .   .. "Wimp_P|
000028c0  72 6f 63 65 73 73 4b 65  79 22 2c 42 6c 6f 63 6b  |rocessKey",Block|
000028d0  25 21 32 34 0d 0a fa 04  0d 0b 04 08 20 20 20 cb  |%!24........   .|
000028e0  0d 0b 0e 05 e1 0d 0b 18  05 3a 0d 0b 22 47 f4 20  |.........:.."G. |
000028f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002930  2a 0d 0b 2c 47 f4 20 53  65 74 20 77 68 69 63 68  |*..,G. Set which|
00002940  20 69 63 6f 6e 20 74 68  65 20 63 61 72 65 74 20  | icon the caret |
00002950  69 73 20 69 6e 2c 20 73  63 72 6f 6c 6c 69 6e 67  |is in, scrolling|
00002960  20 74 68 65 20 77 69 6e  64 6f 77 20 61 73 20 72  | the window as r|
00002970  65 71 75 69 72 65 64 2e  0d 0b 36 47 f4 20 2a 2a  |equired...6G. **|
00002980  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000029b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
000029c0  0b 40 26 dd 20 f2 5f 53  65 74 43 61 72 65 74 50  |.@&. ._SetCaretP|
000029d0  6f 73 69 74 69 6f 6e 28  49 63 6f 6e 25 2c 49 6e  |osition(Icon%,In|
000029e0  64 65 78 25 29 0d 0b 4a  34 20 20 20 ea 20 43 61  |dex%)..J4   . Ca|
000029f0  72 65 74 58 25 2c 20 43  61 72 65 74 59 25 2c 20  |retX%, CaretY%, |
00002a00  54 6f 70 25 2c 20 42 74  6d 25 2c 20 4c 65 66 74  |Top%, Btm%, Left|
00002a10  25 2c 20 52 69 67 68 74  25 0d 0b 54 33 20 20 20  |%, Right%..T3   |
00002a20  49 63 6f 6e 4c 65 6e 67  74 68 25 3d a9 28 a4 5f  |IconLength%=.(._|
00002a30  52 65 61 64 49 63 6f 6e  54 65 78 74 28 4d 61 69  |ReadIconText(Mai|
00002a40  6e 25 2c 49 63 6f 6e 25  2c a3 29 29 0d 0b 5e 30  |n%,Icon%,.))..^0|
00002a50  20 20 20 e7 20 49 6e 64  65 78 25 3e 49 63 6f 6e  |   . Index%>Icon|
00002a60  4c 65 6e 67 74 68 25 20  8c 20 49 6e 64 65 78 25  |Length% . Index%|
00002a70  3d 49 63 6f 6e 4c 65 6e  67 74 68 25 0d 0b 68 39  |=IconLength%..h9|
00002a80  20 20 20 c8 99 20 22 57  69 6d 70 5f 53 65 74 43  |   .. "Wimp_SetC|
00002a90  61 72 65 74 50 6f 73 69  74 69 6f 6e 22 2c 4d 61  |aretPosition",Ma|
00002aa0  69 6e 25 2c 49 63 6f 6e  25 2c 2c 2c 2d 31 2c 49  |in%,Icon%,,,-1,I|
00002ab0  6e 64 65 78 25 0d 0b 72  29 20 20 20 c8 99 20 22  |ndex%..r)   .. "|
00002ac0  57 69 6d 70 5f 47 65 74  43 61 72 65 74 50 6f 73  |Wimp_GetCaretPos|
00002ad0  69 74 69 6f 6e 22 2c 2c  42 6c 6f 63 6b 25 0d 0b  |ition",,Block%..|
00002ae0  7c 2b 20 20 20 43 61 72  65 74 58 25 3d 42 6c 6f  ||+   CaretX%=Blo|
00002af0  63 6b 25 21 38 20 3a 20  43 61 72 65 74 59 25 3d  |ck%!8 : CaretY%=|
00002b00  42 6c 6f 63 6b 25 21 31  32 0d 0b 86 15 20 20 20  |Block%!12....   |
00002b10  42 6c 6f 63 6b 25 21 30  3d 4d 61 69 6e 25 0d 0b  |Block%!0=Main%..|
00002b20  90 27 20 20 20 c8 99 20  22 57 69 6d 70 5f 47 65  |.'   .. "Wimp_Ge|
00002b30  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 2c 42  |tWindowState",,B|
00002b40  6c 6f 63 6b 25 0d 0b 9a  3a 20 20 20 54 6f 70 25  |lock%...:   Top%|
00002b50  20 3d 42 6c 6f 63 6b 25  21 32 34 20 3a 20 42 74  | =Block%!24 : Bt|
00002b60  6d 25 20 20 3d 54 6f 70  25 20 2d 28 42 6c 6f 63  |m%  =Top% -(Bloc|
00002b70  6b 25 21 31 36 2d 42 6c  6f 63 6b 25 21 38 29 0d  |k%!16-Block%!8).|
00002b80  0b a4 3a 20 20 20 4c 65  66 74 25 3d 42 6c 6f 63  |..:   Left%=Bloc|
00002b90  6b 25 21 32 30 20 3a 20  52 69 67 68 74 25 3d 4c  |k%!20 : Right%=L|
00002ba0  65 66 74 25 2b 28 42 6c  6f 63 6b 25 21 31 32 2d  |eft%+(Block%!12-|
00002bb0  42 6c 6f 63 6b 25 21 34  29 0d 0b ae 77 20 20 20  |Block%!4)...w   |
00002bc0  f4 20 53 69 6e 63 65 20  63 61 72 65 74 20 63 6f  |. Since caret co|
00002bd0  2d 6f 72 64 69 6e 61 74  65 73 20 6c 6f 63 61 74  |-ordinates locat|
00002be0  65 20 74 68 65 20 62 6f  74 74 6f 6d 20 6f 66 20  |e the bottom of |
00002bf0  74 68 65 20 63 61 72 65  74 2c 20 74 68 65 72 65  |the caret, there|
00002c00  20 69 73 20 61 20 66 75  64 67 65 20 6f 66 20 36  | is a fudge of 6|
00002c10  34 20 61 62 6f 76 65 20  61 6e 64 20 33 32 20 62  |4 above and 32 b|
00002c20  65 6c 6f 77 20 28 33 32  3d 31 20 63 68 61 72 29  |elow (32=1 char)|
00002c30  0d 0b b8 1e 20 20 20 e7  20 28 54 6f 70 25 2d 36  |....   . (Top%-6|
00002c40  34 20 3c 20 43 61 72 65  74 59 25 29 20 8c 0d 0b  |4 < CaretY%) ...|
00002c50  c2 1e 20 20 20 20 20 20  42 6c 6f 63 6b 25 21 32  |..      Block%!2|
00002c60  34 3d 43 61 72 65 74 59  25 2b 36 34 0d 0b cc 26  |4=CaretY%+64...&|
00002c70  20 20 20 20 20 20 c8 99  20 22 57 69 6d 70 5f 4f  |      .. "Wimp_O|
00002c80  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 42 6c 6f 63  |penWindow",,Bloc|
00002c90  6b 25 0d 0b d6 08 20 20  20 cd 0d 0b e0 1e 20 20  |k%....   .....  |
00002ca0  20 e7 20 28 42 74 6d 25  2b 33 32 20 3e 20 43 61  | . (Btm%+32 > Ca|
00002cb0  72 65 74 59 25 29 20 8c  0d 0b ea 31 20 20 20 20  |retY%) ....1    |
00002cc0  20 20 42 6c 6f 63 6b 25  21 32 34 3d 42 6c 6f 63  |  Block%!24=Bloc|
00002cd0  6b 25 21 32 34 2d 28 42  74 6d 25 2d 28 43 61 72  |k%!24-(Btm%-(Car|
00002ce0  65 74 59 25 2d 33 32 29  29 0d 0b f4 26 20 20 20  |etY%-32))...&   |
00002cf0  20 20 20 c8 99 20 22 57  69 6d 70 5f 4f 70 65 6e  |   .. "Wimp_Open|
00002d00  57 69 6e 64 6f 77 22 2c  2c 42 6c 6f 63 6b 25 0d  |Window",,Block%.|
00002d10  0b fe 08 20 20 20 cd 0d  0c 08 05 e1 0d 0c 12 05  |...   ..........|
00002d20  3a 0d 0c 1c 25 f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |:...%. *********|
00002d30  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00002d40  2a 2a 2a 2a 2a 2a 0d 0c  26 25 f4 20 52 65 64 72  |******..&%. Redr|
00002d50  61 77 20 74 68 65 20 73  70 65 63 69 66 69 69 65  |aw the specifiie|
00002d60  64 20 69 63 6f 6e 20 28  76 32 29 0d 0c 30 25 f4  |d icon (v2)..0%.|
00002d70  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00002d80  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00002d90  0d 0c 3a 1d dd 20 f2 5f  52 65 64 72 61 77 28 57  |..:.. ._Redraw(W|
00002da0  69 6e 64 6f 77 25 2c 49  63 6f 6e 25 29 0d 0c 44  |indow%,Icon%)..D|
00002db0  17 20 20 20 42 6c 6f 63  6b 25 21 30 3d 57 69 6e  |.   Block%!0=Win|
00002dc0  64 6f 77 25 0d 0c 4e 15  20 20 20 42 6c 6f 63 6b  |dow%..N.   Block|
00002dd0  25 21 34 3d 49 63 6f 6e  25 0d 0c 58 11 20 20 20  |%!4=Icon%..X.   |
00002de0  42 6c 6f 63 6b 25 21 38  3d 30 0d 0c 62 12 20 20  |Block%!8=0..b.  |
00002df0  20 42 6c 6f 63 6b 25 21  31 32 3d 30 0d 0c 6c 25  | Block%!12=0..l%|
00002e00  20 20 20 c8 99 20 22 57  69 6d 70 5f 53 65 74 49  |   .. "Wimp_SetI|
00002e10  63 6f 6e 53 74 61 74 65  22 2c 2c 42 6c 6f 63 6b  |conState",,Block|
00002e20  25 0d 0c 76 05 e1 0d 0c  80 05 3a 0d 0c 8a 45 f4  |%..v......:...E.|
00002e30  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00002e40  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002e70  0d 0c 94 48 f4 20 57 68  65 6e 20 61 20 6d 65 73  |...H. When a mes|
00002e80  73 61 67 65 20 69 73 20  72 65 63 65 69 76 65 64  |sage is received|
00002e90  2c 20 43 6f 6e 74 72 6f  6c 20 69 73 20 70 61 73  |, Control is pas|
00002ea0  73 65 64 20 74 6f 20 68  65 72 65 20 66 6f 72 20  |sed to here for |
00002eb0  64 65 63 6f 64 69 6e 67  0d 0c 9e 45 f4 20 2a 2a  |decoding...E. **|
00002ec0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002ef0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 0c a8  |*************...|
00002f00  1f dd 20 f2 5f 44 65 63  6f 64 65 4d 65 73 73 61  |.. ._DecodeMessa|
00002f10  67 65 28 52 65 71 75 65  73 74 25 29 0d 0c b2 14  |ge(Request%)....|
00002f20  20 20 20 c8 8e 20 52 65  71 75 65 73 74 25 20 ca  |   .. Request% .|
00002f30  0d 0c bc 27 20 20 20 20  20 20 c9 20 6d 73 67 5f  |...'      . msg_|
00002f40  71 75 69 74 25 20 20 20  20 20 3a 20 f2 5f 43 6c  |quit%     : ._Cl|
00002f50  6f 73 65 44 6f 77 6e 0d  0c c6 41 20 20 20 20 20  |oseDown...A     |
00002f60  20 c9 20 6d 73 67 5f 64  61 74 61 73 61 76 65 25  | . msg_datasave%|
00002f70  20 3a 20 42 6c 6f 63 6b  25 21 30 3d 28 34 38 2b  | : Block%!0=(48+|
00002f80  a9 28 22 3c 57 69 6d 70  24 53 63 72 61 70 3e 20  |.("<Wimp$Scrap> |
00002f90  22 29 29 80 20 ac 20 33  0d 0c d0 31 20 20 20 20  |")). . 3...1    |
00002fa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002fb0  20 20 20 20 20 20 20 42  6c 6f 63 6b 25 21 31 32  |       Block%!12|
00002fc0  3d 42 6c 6f 63 6b 25 21  38 0d 0c da 2a 20 20 20  |=Block%!8...*   |
00002fd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002fe0  20 20 20 20 20 20 20 20  42 6c 6f 63 6b 25 21 31  |        Block%!1|
00002ff0  36 3d 32 0d 0c e4 3a 20  20 20 20 20 20 20 20 20  |6=2...:         |
00003000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003010  20 20 24 28 42 6c 6f 63  6b 25 2b 34 34 29 3d 22  |  $(Block%+44)="|
00003020  3c 57 69 6d 70 24 53 63  72 61 70 3e 22 0d 0c ee  |<Wimp$Scrap>"...|
00003030  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1               |
00003040  20 20 20 20 20 20 20 20  20 20 20 20 53 61 76 65  |            Save|
00003050  52 65 66 25 3d 42 6c 6f  63 6b 25 21 31 32 0d 0c  |Ref%=Block%!12..|
00003060  f8 51 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.Q              |
00003070  20 20 20 20 20 20 20 20  20 20 20 20 20 c8 99 20  |             .. |
00003080  22 57 69 6d 70 5f 53 65  6e 64 4d 65 73 73 61 67  |"Wimp_SendMessag|
00003090  65 22 2c 75 73 72 5f 6d  65 73 73 61 67 65 25 2c  |e",usr_message%,|
000030a0  42 6c 6f 63 6b 25 2c 42  6c 6f 63 6b 25 21 34 0d  |Block%,Block%!4.|
000030b0  0d 02 37 20 20 20 20 20  20 c9 20 6d 73 67 5f 64  |..7      . msg_d|
000030c0  73 61 76 65 41 43 4b 25  20 3a 20 f2 5f 48 61 6e  |saveACK% : ._Han|
000030d0  64 6c 65 4d 65 73 73 61  67 65 5f 44 61 74 61 53  |dleMessage_DataS|
000030e0  61 76 65 41 63 6b 0d 0d  0c 2d 20 20 20 20 20 20  |aveAck...-      |
000030f0  c9 20 6d 73 67 5f 64 61  74 61 6c 6f 61 64 25 20  |. msg_dataload% |
00003100  3a 20 f2 5f 46 69 6c 65  44 72 6f 70 70 65 64 4f  |: ._FileDroppedO|
00003110  6e 4d 65 0d 0d 20 4f 20  20 20 20 20 20 c9 20 6d  |nMe.. O      . m|
00003120  73 67 5f 68 65 6c 70 25  20 20 20 20 20 3a 20 f2  |sg_help%     : .|
00003130  5f 47 69 76 65 48 65 6c  70 28 42 6c 6f 63 6b 25  |_GiveHelp(Block%|
00003140  21 33 32 2c 42 6c 6f 63  6b 25 21 33 36 2c 42 6c  |!32,Block%!36,Bl|
00003150  6f 63 6b 25 21 32 30 2c  42 6c 6f 63 6b 25 21 32  |ock%!20,Block%!2|
00003160  34 29 0d 0d 2a 57 20 20  20 20 20 20 c9 20 6d 73  |4)..*W      . ms|
00003170  67 5f 74 61 73 6b 69 6e  69 74 25 20 3a 20 e7 20  |g_taskinit% : . |
00003180  a4 5f 52 65 61 64 53 74  72 69 6e 67 28 42 6c 6f  |._ReadString(Blo|
00003190  63 6b 25 2b 32 38 29 3d  4d 79 54 61 73 6b 4e 61  |ck%+28)=MyTaskNa|
000031a0  6d 65 24 20 80 20 42 6c  6f 63 6b 25 21 34 3c 3e  |me$ . Block%!4<>|
000031b0  20 4d 79 5f 69 64 25 20  8c 0d 0d 34 5d 20 20 20  | My_id% ...4]   |
000031c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000031d0  20 20 20 20 20 20 20 20  20 20 20 f4 20 41 6e 6f  |           . Ano|
000031e0  74 68 65 72 20 21 56 69  64 65 6f 38 20 69 73 20  |ther !Video8 is |
000031f0  74 72 79 69 6e 67 20 74  6f 20 73 74 61 72 74 20  |trying to start |
00003200  75 70 2c 20 49 20 61 6d  20 63 6c 6f 73 69 6e 67  |up, I am closing|
00003210  20 64 6f 77 6e 21 0d 0d  3e 2d 20 20 20 20 20 20  | down!..>-      |
00003220  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003230  20 20 20 20 20 20 20 20  f2 5f 43 6c 6f 73 65 44  |        ._CloseD|
00003240  6f 77 6e 0d 0d 48 20 20  20 20 20 20 20 20 20 20  |own..H          |
00003250  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003260  20 20 cd 0d 0d 52 08 20  20 20 cb 0d 0d 5c 05 e1  |  ...R.   ...\..|
00003270  0d 0d 66 05 3a 0d 0d 70  3e f4 20 2a 2a 2a 2a 2a  |..f.:..p>. *****|
00003280  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000032b0  2a 2a 2a 0d 0d 7a 40 f4  20 53 74 61 72 74 20 55  |***..z@. Start U|
000032c0  70 20 70 72 6f 67 72 61  6d 20 61 73 20 61 20 74  |p program as a t|
000032d0  61 73 6b 20 77 69 74 68  20 6e 61 6d 65 20 22 56  |ask with name "V|
000032e0  69 64 65 6f 20 49 6e 6c  61 79 20 50 72 69 6e 74  |ideo Inlay Print|
000032f0  65 72 22 0d 0d 84 22 f4  20 41 6e 64 20 70 75 74  |er"...". And put|
00003300  20 69 63 6f 6e 20 6f 6e  20 74 68 65 20 49 63 6f  | icon on the Ico|
00003310  6e 20 62 61 72 0d 0d 8e  3e f4 20 2a 2a 2a 2a 2a  |n bar...>. *****|
00003320  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00003350  2a 2a 2a 0d 0d 98 1e dd  20 f2 5f 49 6e 69 74 69  |***..... ._Initi|
00003360  61 6c 69 73 65 5f 57 49  4d 50 5f 53 79 73 74 65  |alise_WIMP_Syste|
00003370  6d 0d 0d a2 28 20 20 20  4d 79 54 61 73 6b 4e 61  |m...(   MyTaskNa|
00003380  6d 65 24 3d 22 56 69 64  65 6f 20 49 6e 6c 61 79  |me$="Video Inlay|
00003390  20 50 72 69 6e 74 65 72  22 0d 0d ac 43 20 20 20  | Printer"...C   |
000033a0  c8 99 20 22 57 69 6d 70  5f 49 6e 69 74 69 61 6c  |.. "Wimp_Initial|
000033b0  69 73 65 22 2c 32 30 30  2c 26 34 42 35 33 34 31  |ise",200,&4B5341|
000033c0  35 34 2c 4d 79 54 61 73  6b 4e 61 6d 65 24 20 b8  |54,MyTaskName$ .|
000033d0  20 76 65 72 25 2c 4d 79  5f 69 64 25 0d 0d b6 2d  | ver%,My_id%...-|
000033e0  20 20 20 49 63 6f 6e 42  61 72 49 63 6f 6e 48 61  |   IconBarIconHa|
000033f0  6e 64 6c 65 25 3d a4 5f  43 72 65 61 74 65 49 63  |ndle%=._CreateIc|
00003400  6f 6e 42 61 72 49 63 6f  6e 0d 0d c0 1b 20 20 20  |onBarIcon....   |
00003410  f2 5f 49 6e 69 74 69 61  6c 69 73 65 5f 53 70 72  |._Initialise_Spr|
00003420  69 74 65 73 0d 0d ca 1d  20 20 20 f2 5f 49 6e 69  |ites....   ._Ini|
00003430  74 69 61 6c 69 73 65 5f  54 65 6d 70 6c 61 74 65  |tialise_Template|
00003440  73 0d 0d d4 6e 20 20 20  4d 61 73 6b 25 3d 25 31  |s...n   Mask%=%1|
00003450  31 30 30 30 30 30 31 31  30 30 30 31 20 20 20 20  |100000110001    |
00003460  3a 20 f4 20 4d 61 73 6b  20 4f 75 74 20 63 6f 64  |: . Mask Out cod|
00003470  65 73 20 66 6f 72 20 47  61 69 6e 2f 4c 6f 73 65  |es for Gain/Lose|
00003480  20 43 61 72 65 74 2c 20  50 6f 69 6e 74 65 72 20  | Caret, Pointer |
00003490  45 6e 74 65 72 2f 4c 65  61 76 65 20 57 69 6e 64  |Enter/Leave Wind|
000034a0  6f 77 20 26 20 4e 75 6c  6c 20 45 76 65 6e 74 0d  |ow & Null Event.|
000034b0  0d de 05 e1 0d 0d e8 05  3a 0d 0d f2 41 f4 20 2a  |........:...A. *|
000034c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000034f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 0d fc 41 f4 20  |**********...A. |
00003500  41 6c 6c 20 57 49 4d 50  20 50 72 6f 67 72 61 6d  |All WIMP Program|
00003510  73 20 73 68 6f 75 6c 64  20 62 65 20 61 62 6c 65  |s should be able|
00003520  20 74 6f 20 73 68 75 74  20 74 68 65 6d 73 65 6c  | to shut themsel|
00003530  76 65 73 20 64 6f 77 6e  21 21 21 0d 0e 06 41 f4  |ves down!!!...A.|
00003540  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00003550  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00003570  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 0e 10 11  |************....|
00003580  dd 20 f2 5f 43 6c 6f 73  65 44 6f 77 6e 0d 0e 1a  |. ._CloseDown...|
00003590  2b 20 20 20 c8 99 20 22  57 69 6d 70 5f 43 6c 6f  |+   .. "Wimp_Clo|
000035a0  73 65 44 6f 77 6e 22 2c  4d 79 5f 69 64 25 2c 26  |seDown",My_id%,&|
000035b0  34 42 35 33 34 31 35 34  0d 0e 24 13 20 20 20 c8  |4B534154..$.   .|
000035c0  99 20 22 4f 53 5f 45 78  69 74 22 0d 0e 2e 05 e1  |. "OS_Exit".....|
000035d0  0d 0e 38 05 3a 0d 0e 42  46 f4 20 2a 2a 2a 2a 2a  |..8.:..BF. *****|
000035e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00003610  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 0e 4c 46 f4  |***********..LF.|
00003620  20 4f 70 65 6e 73 20 75  70 20 74 68 65 20 74 65  | Opens up the te|
00003630  6d 70 6c 61 74 65 20 66  69 6c 65 2c 20 46 6f 6e  |mplate file, Fon|
00003640  64 6c 65 73 20 69 74 2c  20 61 6e 64 20 74 68 65  |dles it, and the|
00003650  6e 20 63 72 65 61 74 65  73 20 57 69 6e 64 6f 77  |n creates Window|
00003660  73 0d 0e 56 46 f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |s..VF. *********|
00003670  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000036a0  2a 2a 2a 2a 2a 2a 2a 0d  0e 60 1c dd 20 f2 5f 49  |*******..`.. ._I|
000036b0  6e 69 74 69 61 6c 69 73  65 5f 54 65 6d 70 6c 61  |nitialise_Templa|
000036c0  74 65 73 0d 0e 6a 2e 20  20 20 6d 61 78 77 73 25  |tes..j.   maxws%|
000036d0  3d 26 39 30 30 20 3a 20  de 20 77 73 25 20 6d 61  |=&900 : . ws% ma|
000036e0  78 77 73 25 20 3a 20 63  75 72 77 73 25 3d 77 73  |xws% : curws%=ws|
000036f0  25 0d 0e 74 3f 20 20 20  c8 99 22 57 69 6d 70 5f  |%..t?   .."Wimp_|
00003700  4f 70 65 6e 54 65 6d 70  6c 61 74 65 22 2c 2c 22  |OpenTemplate",,"|
00003710  3c 56 69 64 65 6f 24 44  69 72 3e 2e 52 65 73 6f  |<Video$Dir>.Reso|
00003720  75 72 63 65 73 2e 54 65  6d 70 6c 61 74 65 73 22  |urces.Templates"|
00003730  0d 0e 7e 4a 20 20 20 c8  99 22 57 69 6d 70 5f 4c  |..~J   .."Wimp_L|
00003740  6f 61 64 54 65 6d 70 6c  61 74 65 22 2c 2c 42 6c  |oadTemplate",,Bl|
00003750  6f 63 6b 25 2c 77 73 25  2c 77 73 25 2b 6d 61 78  |ock%,ws%,ws%+max|
00003760  77 73 25 2c 2d 31 2c 22  69 6e 66 6f 22 2c 30 20  |ws%,-1,"info",0 |
00003770  b8 20 2c 2c 63 75 72 77  73 25 0d 0e 88 2c 20 20  |. ,,curws%...,  |
00003780  20 c8 99 22 57 69 6d 70  5f 43 72 65 61 74 65 57  | .."Wimp_CreateW|
00003790  69 6e 64 6f 77 22 2c 2c  42 6c 6f 63 6b 25 20 b8  |indow",,Block% .|
000037a0  20 49 6e 66 6f 25 0d 0e  92 4d 20 20 20 c8 99 22  | Info%...M   .."|
000037b0  57 69 6d 70 5f 4c 6f 61  64 54 65 6d 70 6c 61 74  |Wimp_LoadTemplat|
000037c0  65 22 2c 2c 42 6c 6f 63  6b 25 2c 63 75 72 77 73  |e",,Block%,curws|
000037d0  25 2c 77 73 25 2b 6d 61  78 77 73 25 2c 2d 31 2c  |%,ws%+maxws%,-1,|
000037e0  22 73 61 76 65 22 2c 30  20 b8 20 2c 2c 63 75 72  |"save",0 . ,,cur|
000037f0  77 73 25 0d 0e 9c 2c 20  20 20 c8 99 22 57 69 6d  |ws%...,   .."Wim|
00003800  70 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 22 2c  |p_CreateWindow",|
00003810  2c 42 6c 6f 63 6b 25 20  b8 20 53 61 76 65 25 0d  |,Block% . Save%.|
00003820  0e a6 4d 20 20 20 c8 99  22 57 69 6d 70 5f 4c 6f  |..M   .."Wimp_Lo|
00003830  61 64 54 65 6d 70 6c 61  74 65 22 2c 2c 42 6c 6f  |adTemplate",,Blo|
00003840  63 6b 25 2c 63 75 72 77  73 25 2c 77 73 25 2b 6d  |ck%,curws%,ws%+m|
00003850  61 78 77 73 25 2c 2d 31  2c 22 4d 61 69 6e 22 2c  |axws%,-1,"Main",|
00003860  30 20 b8 20 2c 2c 63 75  72 77 73 25 0d 0e b0 2c  |0 . ,,curws%...,|
00003870  20 20 20 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  |   .."Wimp_Creat|
00003880  65 57 69 6e 64 6f 77 22  2c 2c 42 6c 6f 63 6b 25  |eWindow",,Block%|
00003890  20 b8 20 4d 61 69 6e 25  0d 0e ba 52 20 20 20 c8  | . Main%...R   .|
000038a0  99 22 57 69 6d 70 5f 4c  6f 61 64 54 65 6d 70 6c  |."Wimp_LoadTempl|
000038b0  61 74 65 22 2c 2c 42 6c  6f 63 6b 25 2c 63 75 72  |ate",,Block%,cur|
000038c0  77 73 25 2c 77 73 25 2b  6d 61 78 77 73 25 2c 2d  |ws%,ws%+maxws%,-|
000038d0  31 2c 22 50 72 69 6e 74  5f 4f 70 74 22 2c 30 20  |1,"Print_Opt",0 |
000038e0  b8 20 2c 2c 63 75 72 77  73 25 0d 0e c4 1e 20 20  |. ,,curws%....  |
000038f0  20 42 6c 6f 63 6b 25 21  36 34 20 3d 20 53 70 72  | Block%!64 = Spr|
00003900  69 74 65 41 72 65 61 25  0d 0e ce 2f 20 20 20 c8  |iteArea%.../   .|
00003910  99 22 57 69 6d 70 5f 43  72 65 61 74 65 57 69 6e  |."Wimp_CreateWin|
00003920  64 6f 77 22 2c 2c 42 6c  6f 63 6b 25 20 b8 20 4f  |dow",,Block% . O|
00003930  70 74 69 6f 6e 73 25 0d  0e d8 1d 20 20 20 c8 99  |ptions%....   ..|
00003940  22 57 69 6d 70 5f 43 6c  6f 73 65 54 65 6d 70 6c  |"Wimp_CloseTempl|
00003950  61 74 65 22 0d 0e e2 05  e1 0d 0e ec 05 3a 0d 0e  |ate".........:..|
00003960  f6 49 f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.I. ************|
00003970  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000039a0  2a 2a 2a 2a 2a 2a 2a 0d  0f 00 49 f4 20 54 68 69  |*******...I. Thi|
000039b0  73 20 77 72 69 74 65 73  20 6f 76 65 72 20 74 68  |s writes over th|
000039c0  65 20 74 65 78 74 20 69  6e 20 74 68 65 20 49 63  |e text in the Ic|
000039d0  6f 6e 2c 20 61 6e 64 20  69 74 20 73 68 6f 75 6c  |on, and it shoul|
000039e0  64 20 6e 6f 74 20 62 65  20 64 6f 6e 65 21 21 21  |d not be done!!!|
000039f0  0d 0f 0a 2e f4 20 4f 6e  6c 79 20 57 6f 72 6b 73  |..... Only Works|
00003a00  20 57 69 74 68 20 49 6e  64 69 72 65 63 74 65 64  | With Indirected|
00003a10  20 54 65 78 74 20 53 74  72 69 6e 67 73 21 0d 0f  | Text Strings!..|
00003a20  14 49 f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.I. ************|
00003a30  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00003a60  2a 2a 2a 2a 2a 2a 2a 0d  0f 1e 34 dd 20 f2 5f 53  |*******...4. ._S|
00003a70  65 74 49 63 6f 6e 54 65  78 74 28 49 63 6f 6e 48  |etIconText(IconH|
00003a80  61 6e 64 6c 65 25 2c 57  69 6e 64 6f 77 48 61 6e  |andle%,WindowHan|
00003a90  64 6c 65 25 2c 54 65 78  74 24 29 0d 0f 28 11 20  |dle%,Text$)..(. |
00003aa0  20 20 ea 20 50 6f 69 6e  74 65 72 25 0d 0f 32 1d  |  . Pointer%..2.|
00003ab0  20 20 20 42 6c 6f 63 6b  25 21 30 3d 57 69 6e 64  |   Block%!0=Wind|
00003ac0  6f 77 48 61 6e 64 6c 65  25 0d 0f 3c 1b 20 20 20  |owHandle%..<.   |
00003ad0  42 6c 6f 63 6b 25 21 34  3d 49 63 6f 6e 48 61 6e  |Block%!4=IconHan|
00003ae0  64 6c 65 25 0d 0f 46 25  20 20 20 c8 99 20 22 57  |dle%..F%   .. "W|
00003af0  69 6d 70 5f 47 65 74 49  63 6f 6e 53 74 61 74 65  |imp_GetIconState|
00003b00  22 2c 2c 42 6c 6f 63 6b  25 0d 0f 50 22 20 20 20  |",,Block%..P"   |
00003b10  e7 20 28 42 6c 6f 63 6b  25 21 32 34 20 80 20 28  |. (Block%!24 . (|
00003b20  31 3c 3c 38 29 29 3c 3e  30 20 8c 0d 0f 5a 1c 20  |1<<8))<>0 ...Z. |
00003b30  20 20 20 20 20 50 6f 69  6e 74 65 72 25 3d 42 6c  |     Pointer%=Bl|
00003b40  6f 63 6b 25 21 32 38 0d  0f 64 08 20 20 20 cc 0d  |ock%!28..d.   ..|
00003b50  0f 6e 1c 20 20 20 20 20  20 50 6f 69 6e 74 65 72  |.n.      Pointer|
00003b60  25 3d 42 6c 6f 63 6b 25  2b 32 38 0d 0f 78 08 20  |%=Block%+28..x. |
00003b70  20 20 cd 0d 0f 82 16 20  20 20 24 50 6f 69 6e 74  |  .....   $Point|
00003b80  65 72 25 3d 54 65 78 74  24 0d 0f 8c 05 e1 0d 0f  |er%=Text$.......|
00003b90  96 05 3a 0d 0f a0 2c f4  20 2a 2a 2a 2a 2a 2a 2a  |..:...,. *******|
00003ba0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00003bb0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
00003bc0  0f aa 2c f4 20 54 68 65  20 6e 61 6d 65 20 73 6f  |..,. The name so|
00003bd0  72 74 20 6f 66 20 73 61  79 73 20 69 74 20 61 6c  |rt of says it al|
00003be0  6c 20 72 65 61 6c 6c 79  21 21 21 0d 0f b4 2c f4  |l really!!!...,.|
00003bf0  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00003c00  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00003c10  2a 2a 2a 2a 2a 2a 2a 0d  0f be 18 dd 20 f2 5f 53  |*******..... ._S|
00003c20  65 74 55 70 49 63 6f 6e  42 61 72 4d 65 6e 75 0d  |etUpIconBarMenu.|
00003c30  0f c8 0b 20 20 20 ea 20  6d 25 0d 0f d2 16 20 20  |...   . m%....  |
00003c40  20 de 20 6d 65 6e 75 25  20 32 38 2b 36 2a 32 34  | . menu% 28+6*24|
00003c50  0d 0f dc 15 20 20 20 24  6d 65 6e 75 25 3d 22 56  |....   $menu%="V|
00003c60  69 64 65 6f 22 0d 0f e6  16 20 20 20 6d 65 6e 75  |ideo"....   menu|
00003c70  25 3f 31 32 3d 60 62 6c  61 63 6b 0d 0f f0 16 20  |%?12=`black.... |
00003c80  20 20 6d 65 6e 75 25 3f  31 33 3d 60 67 72 65 79  |  menu%?13=`grey|
00003c90  32 0d 0f fa 16 20 20 20  6d 65 6e 75 25 3f 31 34  |2....   menu%?14|
00003ca0  3d 60 62 6c 61 63 6b 0d  10 04 16 20 20 20 6d 65  |=`black....   me|
00003cb0  6e 75 25 3f 31 35 3d 60  77 68 69 74 65 0d 10 0e  |nu%?15=`white...|
00003cc0  13 20 20 20 6d 65 6e 75  25 21 31 36 3d 31 32 38  |.   menu%!16=128|
00003cd0  0d 10 18 12 20 20 20 6d  65 6e 75 25 21 32 30 3d  |....   menu%!20=|
00003ce0  34 30 0d 10 22 11 20 20  20 6d 65 6e 75 25 21 32  |40..".   menu%!2|
00003cf0  34 3d 30 0d 10 2c 04 0d  10 36 12 20 20 20 6d 25  |4=0..,...6.   m%|
00003d00  3d 6d 65 6e 75 25 2b 32  38 0d 10 40 0e 20 20 20  |=menu%+28..@.   |
00003d10  6d 25 21 30 3d 26 30 0d  10 4a 30 20 20 20 6d 25  |m%!0=&0..J0   m%|
00003d20  21 34 3d 49 6e 66 6f 25  20 20 20 20 3a f4 20 6e  |!4=Info%    :. n|
00003d30  61 6d 65 20 66 72 6f 6d  20 74 65 6d 70 6c 61 74  |ame from templat|
00003d40  65 20 6f 70 65 6e 2e 0d  10 54 1c 20 20 20 6d 25  |e open...T.   m%|
00003d50  21 38 3d 28 37 3c 3c 32  34 29 20 84 20 25 31 30  |!8=(7<<24) . %10|
00003d60  30 30 31 0d 10 5e 16 20  20 20 24 28 6d 25 2b 31  |001..^.   $(m%+1|
00003d70  32 29 3d 22 49 6e 66 6f  22 0d 10 68 04 0d 10 72  |2)="Info"..h...r|
00003d80  0f 20 20 20 6d 25 3d 6d  25 2b 32 34 0d 10 7c 0f  |.   m%=m%+24..|.|
00003d90  20 20 20 6d 25 21 30 3d  26 30 32 0d 10 86 14 20  |   m%!0=&02.... |
00003da0  20 20 6d 25 21 34 3d 4f  70 74 69 6f 6e 73 25 0d  |  m%!4=Options%.|
00003db0  10 90 1c 20 20 20 6d 25  21 38 3d 28 37 3c 3c 32  |...   m%!8=(7<<2|
00003dc0  34 29 20 84 20 25 31 30  30 30 31 0d 10 9a 19 20  |4) . %10001.... |
00003dd0  20 20 24 28 6d 25 2b 31  32 29 3d 22 4f 70 74 69  |  $(m%+12)="Opti|
00003de0  6f 6e 73 22 0d 10 a4 04  0d 10 ae 0f 20 20 20 6d  |ons"........   m|
00003df0  25 3d 6d 25 2b 32 34 0d  10 b8 33 20 20 20 e7 20  |%=m%+24...3   . |
00003e00  49 6e 6c 61 79 54 79 70  65 24 3d 22 56 69 64 65  |InlayType$="Vide|
00003e10  6f 5f 38 22 20 8c 20 6d  25 21 30 3d 26 30 31 20  |o_8" . m%!0=&01 |
00003e20  8b 20 6d 25 21 30 3d 26  30 30 0d 10 c2 0d 20 20  |. m%!0=&00....  |
00003e30  20 6d 25 21 34 3d 30 0d  10 cc 1c 20 20 20 6d 25  | m%!4=0....   m%|
00003e40  21 38 3d 28 37 3c 3c 32  34 29 20 84 20 25 31 30  |!8=(7<<24) . %10|
00003e50  30 30 31 0d 10 d6 19 20  20 20 24 28 6d 25 2b 31  |001....   $(m%+1|
00003e60  32 29 3d 22 56 69 64 65  6f 20 38 22 0d 10 e0 04  |2)="Video 8"....|
00003e70  0d 10 ea 0f 20 20 20 6d  25 3d 6d 25 2b 32 34 0d  |....   m%=m%+24.|
00003e80  10 f4 31 20 20 20 e7 20  49 6e 6c 61 79 54 79 70  |..1   . InlayTyp|
00003e90  65 24 3d 22 56 48 53 5f  43 22 20 8c 20 6d 25 21  |e$="VHS_C" . m%!|
00003ea0  30 3d 26 30 31 20 8b 20  6d 25 21 30 3d 26 30 30  |0=&01 . m%!0=&00|
00003eb0  0d 10 fe 0d 20 20 20 6d  25 21 34 3d 30 0d 11 08  |....   m%!4=0...|
00003ec0  1c 20 20 20 6d 25 21 38  3d 28 37 3c 3c 32 34 29  |.   m%!8=(7<<24)|
00003ed0  20 84 20 25 31 30 30 30  31 0d 11 12 17 20 20 20  | . %10001....   |
00003ee0  24 28 6d 25 2b 31 32 29  3d 22 56 48 53 20 43 22  |$(m%+12)="VHS C"|
00003ef0  0d 11 1c 04 0d 11 26 0f  20 20 20 6d 25 3d 6d 25  |......&.   m%=m%|
00003f00  2b 32 34 0d 11 30 2f 20  20 20 e7 20 49 6e 6c 61  |+24..0/   . Inla|
00003f10  79 54 79 70 65 24 3d 22  44 41 54 22 20 8c 20 6d  |yType$="DAT" . m|
00003f20  25 21 30 3d 26 30 33 20  8b 20 6d 25 21 30 3d 26  |%!0=&03 . m%!0=&|
00003f30  30 32 0d 11 3a 0d 20 20  20 6d 25 21 34 3d 30 0d  |02..:.   m%!4=0.|
00003f40  11 44 5e 20 20 20 6d 25  21 38 3d 28 37 3c 3c 32  |.D^   m%!8=(7<<2|
00003f50  34 29 20 84 20 25 31 30  30 30 31 20 20 20 20 20  |4) . %10001     |
00003f60  20 20 20 3a 20 f4 20 74  6f 20 67 72 65 79 20 69  |   : . to grey i|
00003f70  63 6f 6e 20 6f 75 74 20  61 64 64 20 27 4f 52 20  |con out add 'OR |
00003f80  31 3c 3c 32 32 27 20 74  6f 20 74 68 65 20 65 6e  |1<<22' to the en|
00003f90  64 20 6f 66 20 74 68 65  20 6c 69 6e 65 0d 11 4e  |d of the line..N|
00003fa0  15 20 20 20 24 28 6d 25  2b 31 32 29 3d 22 44 41  |.   $(m%+12)="DA|
00003fb0  54 22 0d 11 58 04 0d 11  62 0f 20 20 20 6d 25 3d  |T"..X...b.   m%=|
00003fc0  6d 25 2b 32 34 0d 11 6c  0f 20 20 20 6d 25 21 30  |m%+24..l.   m%!0|
00003fd0  3d 26 38 30 0d 11 76 0d  20 20 20 6d 25 21 34 3d  |=&80..v.   m%!4=|
00003fe0  30 0d 11 80 1b 20 20 20  6d 25 21 38 3d 28 37 3c  |0....   m%!8=(7<|
00003ff0  3c 32 34 29 84 20 25 31  30 30 30 31 0d 11 8a 16  |<24). %10001....|
00004000  20 20 20 24 28 6d 25 2b  31 32 29 3d 22 51 75 69  |   $(m%+12)="Qui|
00004010  74 22 0d 11 94 05 e1 0d  11 9e 05 3a 0d 11 a8 43  |t".........:...C|
00004020  f4 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |. **************|
00004030  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00004050  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
00004060  11 b2 43 f4 20 54 68 69  73 20 74 61 6b 65 73 20  |..C. This takes |
00004070  61 20 53 70 72 69 74 65  20 61 6e 64 20 6d 61 6b  |a Sprite and mak|
00004080  65 73 20 69 74 20 69 6e  74 6f 20 61 6e 20 49 63  |es it into an Ic|
00004090  6f 6e 20 46 6f 72 20 74  68 65 20 49 63 6f 6e 42  |on For the IconB|
000040a0  61 72 0d 11 bc 43 f4 20  2a 2a 2a 2a 2a 2a 2a 2a  |ar...C. ********|
000040b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000040e0  2a 2a 2a 2a 2a 0d 11 c6  19 dd 20 a4 5f 43 72 65  |*****..... ._Cre|
000040f0  61 74 65 49 63 6f 6e 42  61 72 49 63 6f 6e 0d 11  |ateIconBarIcon..|
00004100  d0 0e 20 20 20 ea 20 49  63 6f 6e 25 0d 11 da 12  |..   . Icon%....|
00004110  20 20 20 42 6c 6f 63 6b  25 21 30 3d 2d 31 0d 11  |   Block%!0=-1..|
00004120  e4 11 20 20 20 42 6c 6f  63 6b 25 21 34 3d 30 0d  |..   Block%!4=0.|
00004130  11 ee 11 20 20 20 42 6c  6f 63 6b 25 21 38 3d 30  |...   Block%!8=0|
00004140  0d 11 f8 13 20 20 20 42  6c 6f 63 6b 25 21 31 32  |....   Block%!12|
00004150  3d 36 38 0d 12 02 13 20  20 20 42 6c 6f 63 6b 25  |=68....   Block%|
00004160  21 31 36 3d 36 38 0d 12  0c 20 20 20 20 42 6c 6f  |!16=68...    Blo|
00004170  63 6b 25 21 32 30 3d 25  31 30 30 30 30 30 30 30  |ck%!20=%10000000|
00004180  30 30 30 30 31 30 0d 12  16 1c 20 20 20 24 28 42  |000010....   $(B|
00004190  6c 6f 63 6b 25 2b 32 34  29 3d 22 21 56 69 64 65  |lock%+24)="!Vide|
000041a0  6f 22 0d 12 20 2b 20 20  20 c8 99 20 22 57 69 6d  |o".. +   .. "Wim|
000041b0  70 5f 43 72 65 61 74 65  49 63 6f 6e 22 2c 2c 42  |p_CreateIcon",,B|
000041c0  6c 6f 63 6b 25 20 b8 20  49 63 6f 6e 25 0d 12 2a  |lock% . Icon%..*|
000041d0  0a 3d 49 63 6f 6e 25 0d  12 34 05 3a 0d 12 3e 33  |.=Icon%..4.:..>3|
000041e0  f4 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |. **************|
000041f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00004200  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
00004210  12 48 33 f4 20 52 65 61  64 20 49 6e 66 6f 20 66  |.H3. Read Info f|
00004220  6f 72 20 57 69 6e 64 6f  77 20 4d 61 69 6e 2c 20  |or Window Main, |
00004230  61 6e 64 20 74 68 65 6e  20 6f 70 65 6e 20 69 74  |and then open it|
00004240  20 21 0d 12 52 33 f4 20  2a 2a 2a 2a 2a 2a 2a 2a  | !..R3. ********|
00004250  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00004270  2a 2a 2a 2a 2a 0d 12 5c  2d dd 20 f2 5f 4f 70 65  |*****..\-. ._Ope|
00004280  6e 4d 61 69 6e 57 69 6e  64 6f 77 28 57 69 70 65  |nMainWindow(Wipe|
00004290  54 65 6d 70 6c 61 74 65  49 63 6f 6e 54 65 78 74  |TemplateIconText|
000042a0  25 29 0d 12 66 36 20 20  20 e7 20 57 69 70 65 54  |%)..f6   . WipeT|
000042b0  65 6d 70 6c 61 74 65 49  63 6f 6e 54 65 78 74 25  |emplateIconText%|
000042c0  20 80 20 4e 65 77 25 20  8c 20 f2 5f 57 69 70 65  | . New% . ._Wipe|
000042d0  49 63 6f 6e 54 65 78 74  0d 12 70 14 20 20 20 21  |IconText..p.   !|
000042e0  42 6c 6f 63 6b 25 3d 4d  61 69 6e 25 0d 12 7a 27  |Block%=Main%..z'|
000042f0  20 20 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 57  |   .. "Wimp_GetW|
00004300  69 6e 64 6f 77 53 74 61  74 65 22 2c 2c 42 6c 6f  |indowState",,Blo|
00004310  63 6b 25 0d 12 84 23 20  20 20 c8 99 20 22 57 69  |ck%...#   .. "Wi|
00004320  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00004330  42 6c 6f 63 6b 25 0d 12  8e 0d 20 20 20 4e 65 77  |Block%....   New|
00004340  25 3d a3 0d 12 98 2c 20  20 20 f2 5f 53 65 74 43  |%=....,   ._SetC|
00004350  61 72 65 74 50 6f 73 69  74 69 6f 6e 28 42 74 6d  |aretPosition(Btm|
00004360  53 65 74 49 6e 64 65 78  45 6e 64 25 2c 30 29 0d  |SetIndexEnd%,0).|
00004370  12 a2 18 20 20 20 4d 61  69 6e 57 69 6e 64 6f 77  |...   MainWindow|
00004380  4f 70 65 6e 25 3d b9 0d  12 ac 05 e1 0d 12 b6 05  |Open%=..........|
00004390  3a 0d 12 c0 4c f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |:...L. *********|
000043a0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000043d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 12 ca  |*************...|
000043e0  4c f4 20 54 68 69 73 20  72 65 61 64 73 20 74 68  |L. This reads th|
000043f0  65 20 74 65 78 74 20 66  72 6f 6d 20 74 68 65 20  |e text from the |
00004400  77 72 69 74 61 62 6c 65  20 49 63 6f 6e 20 73 70  |writable Icon sp|
00004410  65 63 69 66 69 65 64 20  69 6e 20 74 68 65 20 70  |ecified in the p|
00004420  61 72 61 6d 65 74 65 72  73 0d 12 d4 48 f4 20 61  |arameters...H. a|
00004430  6e 64 20 69 66 20 50 61  64 25 3c 3e 46 41 4c 53  |nd if Pad%<>FALS|
00004440  45 20 54 52 55 45 20 74  68 65 6e 20 70 61 64 73  |E TRUE then pads|
00004450  20 6f 75 74 20 74 68 65  20 72 65 73 75 6c 74 20  | out the result |
00004460  74 6f 20 72 65 71 75 69  72 65 64 20 73 69 7a 65  |to required size|
00004470  2e 0d 12 de 4c f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |....L. *********|
00004480  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000044b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 12 e8  |*************...|
000044c0  34 dd 20 a4 5f 52 65 61  64 49 63 6f 6e 54 65 78  |4. ._ReadIconTex|
000044d0  74 28 57 69 6e 64 6f 77  48 61 6e 64 6c 65 25 2c  |t(WindowHandle%,|
000044e0  49 63 6f 6e 48 61 6e 64  6c 65 25 2c 50 61 64 25  |IconHandle%,Pad%|
000044f0  29 0d 12 f2 10 20 20 20  ea 20 52 65 73 75 6c 74  |)....   . Result|
00004500  24 0d 12 fc 1d 20 20 20  42 6c 6f 63 6b 25 21 30  |$....   Block%!0|
00004510  3d 57 69 6e 64 6f 77 48  61 6e 64 6c 65 25 0d 13  |=WindowHandle%..|
00004520  06 1b 20 20 20 42 6c 6f  63 6b 25 21 34 3d 49 63  |..   Block%!4=Ic|
00004530  6f 6e 48 61 6e 64 6c 65  25 0d 13 10 25 20 20 20  |onHandle%...%   |
00004540  c8 99 20 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |.. "Wimp_GetIcon|
00004550  53 74 61 74 65 22 2c 2c  42 6c 6f 63 6b 25 0d 13  |State",,Block%..|
00004560  1a 22 20 20 20 e7 20 28  42 6c 6f 63 6b 25 21 32  |."   . (Block%!2|
00004570  34 20 80 20 28 31 3c 3c  38 29 29 3c 3e 30 20 8c  |4 . (1<<8))<>0 .|
00004580  0d 13 24 1e 20 20 20 20  20 20 52 65 73 75 6c 74  |..$.      Result|
00004590  24 3d 24 28 42 6c 6f 63  6b 25 21 32 38 29 0d 13  |$=$(Block%!28)..|
000045a0  2e 08 20 20 20 cc 0d 13  38 1e 20 20 20 20 20 20  |..   ...8.      |
000045b0  52 65 73 75 6c 74 24 3d  24 28 42 6c 6f 63 6b 25  |Result$=$(Block%|
000045c0  2b 32 38 29 0d 13 42 08  20 20 20 cd 0d 13 4c 2c  |+28)..B.   ...L,|
000045d0  20 20 20 e7 20 50 61 64  25 3e 30 20 8c 20 3d c0  |   . Pad%>0 . =.|
000045e0  52 65 73 75 6c 74 24 2b  c4 50 61 64 25 2c 22 20  |Result$+.Pad%," |
000045f0  22 29 2c 50 61 64 25 29  0d 13 56 0c 3d 52 65 73  |"),Pad%)..V.=Res|
00004600  75 6c 74 24 0d 13 60 05  3a 0d 13 6a 2f f4 20 2a  |ult$..`.:..j/. *|
00004610  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00004630  2a 2a 2a 2a 2a 2a 2a 2a  0d 13 74 2f f4 20 57 69  |********..t/. Wi|
00004640  70 65 20 74 68 65 20 74  65 78 74 20 66 72 6f 6d  |pe the text from|
00004650  20 61 6c 6c 20 74 68 65  20 77 72 69 74 61 62 6c  | all the writabl|
00004660  65 20 69 63 6f 6e 73 0d  13 7e 2f f4 20 2a 2a 2a  |e icons..~/. ***|
00004670  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00004690  2a 2a 2a 2a 2a 2a 0d 13  88 14 dd 20 f2 5f 57 69  |******..... ._Wi|
000046a0  70 65 49 63 6f 6e 54 65  78 74 0d 13 92 33 20 20  |peIconText...3  |
000046b0  20 ea 20 49 74 65 6d 54  65 78 74 24 2c 49 6e 64  | . ItemText$,Ind|
000046c0  65 78 54 65 78 74 24 2c  54 61 70 65 4e 75 6d 62  |exText$,TapeNumb|
000046d0  65 72 54 65 78 74 24 2c  4c 6f 6f 70 25 0d 13 9c  |erText$,Loop%...|
000046e0  23 20 20 20 49 74 65 6d  54 65 78 74 24 3d 22 22  |#   ItemText$=""|
000046f0  20 3a 20 49 6e 64 65 78  54 65 78 74 24 3d 22 22  | : IndexText$=""|
00004700  0d 13 a6 35 20 20 20 e3  20 4c 6f 6f 70 25 3d 54  |...5   . Loop%=T|
00004710  6f 70 53 65 74 49 6e 64  65 78 53 74 61 72 74 25  |opSetIndexStart%|
00004720  20 b8 20 42 74 6d 53 65  74 49 74 65 6d 45 6e 64  | . BtmSetItemEnd|
00004730  25 20 88 20 32 0d 13 b0  58 20 20 20 20 20 20 f2  |% . 2...X      .|
00004740  5f 53 65 74 49 63 6f 6e  54 65 78 74 28 4c 6f 6f  |_SetIconText(Loo|
00004750  70 25 2c 4d 61 69 6e 25  2c 49 6e 64 65 78 54 65  |p%,Main%,IndexTe|
00004760  78 74 24 29 20 3a 20 f2  5f 53 65 74 49 63 6f 6e  |xt$) : ._SetIcon|
00004770  54 65 78 74 28 4c 6f 6f  70 25 2b 31 2c 4d 61 69  |Text(Loop%+1,Mai|
00004780  6e 25 2c 49 74 65 6d 54  65 78 74 24 29 0d 13 ba  |n%,ItemText$)...|
00004790  39 20 20 20 20 20 20 f2  5f 52 65 64 72 61 77 28  |9      ._Redraw(|
000047a0  4d 61 69 6e 25 2c 4c 6f  6f 70 25 29 20 3a 20 f2  |Main%,Loop%) : .|
000047b0  5f 52 65 64 72 61 77 28  4d 61 69 6e 25 2c 4c 6f  |_Redraw(Main%,Lo|
000047c0  6f 70 25 2b 31 29 0d 13  c4 08 20 20 20 ed 0d 13  |op%+1)....   ...|
000047d0  ce 2f 20 20 20 e3 20 4c  6f 6f 70 25 3d 54 69 74  |./   . Loop%=Tit|
000047e0  6c 65 46 69 72 73 74 4c  69 6e 65 25 20 b8 20 54  |leFirstLine% . T|
000047f0  69 74 6c 65 4c 61 73 74  4c 69 6e 65 25 0d 13 d8  |itleLastLine%...|
00004800  46 20 20 20 20 20 20 f2  5f 53 65 74 49 63 6f 6e  |F      ._SetIcon|
00004810  54 65 78 74 28 4c 6f 6f  70 25 2c 4d 61 69 6e 25  |Text(Loop%,Main%|
00004820  2c 49 74 65 6d 54 65 78  74 24 29 20 3a 20 f2 5f  |,ItemText$) : ._|
00004830  52 65 64 72 61 77 28 4d  61 69 6e 25 2c 4c 6f 6f  |Redraw(Main%,Loo|
00004840  70 25 29 0d 13 e2 08 20  20 20 ed 0d 13 ec 33 20  |p%)....   ....3 |
00004850  20 20 f2 5f 53 65 74 49  63 6f 6e 54 65 78 74 28  |  ._SetIconText(|
00004860  54 61 70 65 4e 75 6d 62  65 72 25 2c 4d 61 69 6e  |TapeNumber%,Main|
00004870  25 2c 54 61 70 65 4e 75  6d 62 65 72 24 29 0d 13  |%,TapeNumber$)..|
00004880  f6 2f 20 20 20 f2 5f 53  65 74 49 63 6f 6e 54 65  |./   ._SetIconTe|
00004890  78 74 28 55 73 65 72 4e  6f 74 65 25 2c 4d 61 69  |xt(UserNote%,Mai|
000048a0  6e 25 2c 49 74 65 6d 54  65 78 74 24 29 0d 14 00  |n%,ItemText$)...|
000048b0  22 20 20 20 f2 5f 52 65  64 72 61 77 28 4d 61 69  |"   ._Redraw(Mai|
000048c0  6e 25 2c 54 61 70 65 4e  75 6d 62 65 72 25 29 0d  |n%,TapeNumber%).|
000048d0  14 0a 20 20 20 20 f2 5f  52 65 64 72 61 77 28 4d  |..    ._Redraw(M|
000048e0  61 69 6e 25 2c 55 73 65  72 4e 6f 74 65 25 29 0d  |ain%,UserNote%).|
000048f0  14 14 05 e1 0d 14 1e 05  3a 0d 14 28 2c f4 20 2a  |........:..(,. *|
00004900  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00004920  2a 2a 2a 2a 2a 0d 14 32  2c f4 20 54 68 65 20 6e  |*****..2,. The n|
00004930  61 6d 65 20 73 6f 72 74  20 6f 66 20 73 61 79 73  |ame sort of says|
00004940  20 69 74 20 61 6c 6c 20  72 65 61 6c 6c 79 21 21  | it all really!!|
00004950  21 0d 14 3c 2b f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |!..<+. *********|
00004960  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00004970  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 14 46 29  |************..F)|
00004980  dd 20 f2 5f 43 72 65 61  74 65 4d 61 69 6e 57 69  |. ._CreateMainWi|
00004990  6e 64 6f 77 4d 65 6e 75  28 58 25 2c 59 25 2c 49  |ndowMenu(X%,Y%,I|
000049a0  63 6f 6e 25 29 0d 14 50  30 20 20 20 ea 20 6d 25  |con%)..P0   . m%|
000049b0  2c 46 6c 61 67 73 25 2c  50 6f 69 6e 74 65 72 25  |,Flags%,Pointer%|
000049c0  2c 53 65 6c 25 2c 49 63  6f 6e 46 6c 61 67 25 2c  |,Sel%,IconFlag%,|
000049d0  49 74 65 6d 24 0d 14 5a  35 20 20 20 4d 61 69 6e  |Item$..Z5   Main|
000049e0  57 69 6e 64 6f 77 4d 65  6e 75 41 63 74 69 76 65  |WindowMenuActive|
000049f0  25 3d b9 20 3a 20 49 63  6f 6e 42 61 72 4d 65 6e  |%=. : IconBarMen|
00004a00  75 41 63 74 69 76 65 25  3d a3 0d 14 64 1a 20 20  |uActive%=...d.  |
00004a10  20 de 20 4d 61 69 6e 4d  65 6e 75 25 20 32 39 2b  | . MainMenu% 29+|
00004a20  37 2a 32 34 0d 14 6e 18  20 20 20 24 4d 61 69 6e  |7*24..n.   $Main|
00004a30  4d 65 6e 75 25 3d 22 4d  61 69 6e 22 0d 14 78 1a  |Menu%="Main"..x.|
00004a40  20 20 20 4d 61 69 6e 4d  65 6e 75 25 3f 31 32 3d  |   MainMenu%?12=|
00004a50  60 62 6c 61 63 6b 0d 14  82 1a 20 20 20 4d 61 69  |`black....   Mai|
00004a60  6e 4d 65 6e 75 25 3f 31  33 3d 60 67 72 65 79 32  |nMenu%?13=`grey2|
00004a70  0d 14 8c 1a 20 20 20 4d  61 69 6e 4d 65 6e 75 25  |....   MainMenu%|
00004a80  3f 31 34 3d 60 62 6c 61  63 6b 0d 14 96 1a 20 20  |?14=`black....  |
00004a90  20 4d 61 69 6e 4d 65 6e  75 25 3f 31 35 3d 60 77  | MainMenu%?15=`w|
00004aa0  68 69 74 65 0d 14 a0 19  20 20 20 4d 61 69 6e 4d  |hite....   MainM|
00004ab0  65 6e 75 25 21 31 36 3d  31 36 2a 31 36 0d 14 aa  |enu%!16=16*16...|
00004ac0  16 20 20 20 4d 61 69 6e  4d 65 6e 75 25 21 32 30  |.   MainMenu%!20|
00004ad0  3d 34 30 0d 14 b4 15 20  20 20 4d 61 69 6e 4d 65  |=40....   MainMe|
00004ae0  6e 75 25 21 32 34 3d 30  0d 14 be 16 20 20 20 6d  |nu%!24=0....   m|
00004af0  25 3d 4d 61 69 6e 4d 65  6e 75 25 2b 32 38 0d 14  |%=MainMenu%+28..|
00004b00  c8 08 20 20 20 f5 0d 14  d2 30 20 20 20 20 20 20  |..   ....0      |
00004b10  f3 20 46 6c 61 67 73 25  2c 50 6f 69 6e 74 65 72  |. Flags%,Pointer|
00004b20  25 2c 53 65 6c 25 2c 49  63 6f 6e 46 6c 61 67 25  |%,Sel%,IconFlag%|
00004b30  2c 49 74 65 6d 24 0d 14  dc 43 20 20 20 20 20 20  |,Item$...C      |
00004b40  6d 25 21 30 3d 46 6c 61  67 73 25 20 20 20 20 20  |m%!0=Flags%     |
00004b50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004b60  20 20 20 20 20 20 20 20  20 20 20 20 3a f4 20 4d  |            :. M|
00004b70  65 6e 75 20 46 6c 61 67  73 0d 14 e6 59 20 20 20  |enu Flags...Y   |
00004b80  20 20 20 6d 25 21 34 3d  50 6f 69 6e 74 65 72 25  |   m%!4=Pointer%|
00004b90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004ba0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3a  |               :|
00004bb0  f4 20 50 6f 69 6e 74 65  72 20 74 6f 20 53 75 62  |. Pointer to Sub|
00004bc0  2d 4d 65 6e 75 20 28 2d  31 20 49 66 20 4e 6f 6e  |-Menu (-1 If Non|
00004bd0  65 29 0d 14 f0 46 20 20  20 20 20 20 6d 25 21 38  |e)...F      m%!8|
00004be0  3d 49 63 6f 6e 46 6c 61  67 25 20 84 20 28 53 65  |=IconFlag% . (Se|
00004bf0  6c 25 3c 3c 32 32 29 20  84 20 28 37 3c 3c 32 34  |l%<<22) . (7<<24|
00004c00  29 20 20 20 20 20 3a f4  20 4d 65 6e 75 20 49 63  |)     :. Menu Ic|
00004c10  6f 6e 20 46 6c 61 67 73  0d 14 fa 52 20 20 20 20  |on Flags...R    |
00004c20  20 20 24 28 6d 25 2b 31  32 29 3d 49 74 65 6d 24  |  $(m%+12)=Item$|
00004c30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004c40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3a f4  |              :.|
00004c50  20 49 74 65 6d 20 4e 61  6d 65 20 28 31 32 20 42  | Item Name (12 B|
00004c60  79 74 65 73 20 4d 61 78  2e 29 0d 15 04 12 20 20  |ytes Max.)....  |
00004c70  20 20 20 20 6d 25 3d 6d  25 2b 32 34 0d 15 0e 13  |    m%=m%+24....|
00004c80  20 20 20 fd 20 46 6c 61  67 73 25 3d 26 38 30 0d  |   . Flags%=&80.|
00004c90  15 18 08 20 20 20 3a 0d  15 22 0b 20 20 20 f7 20  |...   :..".   . |
00004ca0  2b 30 0d 15 2c 22 20 20  20 dc 20 26 30 30 2c 49  |+0..,"   . &00,I|
00004cb0  6e 66 6f 25 2c 30 2c 25  31 30 30 30 31 2c 22 49  |nfo%,0,%10001,"I|
00004cc0  6e 66 6f 22 0d 15 36 27  20 20 20 dc 20 26 30 30  |nfo"..6'   . &00|
00004cd0  2c 53 61 76 65 25 2c 30  2c 25 31 30 30 30 31 2c  |,Save%,0,%10001,|
00004ce0  22 53 61 76 65 20 64 61  74 61 22 0d 15 40 28 20  |"Save data"..@( |
00004cf0  20 20 dc 20 26 30 30 2c  4f 70 74 69 6f 6e 73 25  |  . &00,Options%|
00004d00  2c 30 2c 25 31 30 30 30  31 2c 22 4f 70 74 69 6f  |,0,%10001,"Optio|
00004d10  6e 73 22 0d 15 4a 21 20  20 20 dc 20 26 30 30 2c  |ns"..J!   . &00,|
00004d20  2d 31 2c 30 2c 25 31 30  30 30 31 2c 22 46 6f 72  |-1,0,%10001,"For|
00004d30  6d 61 74 22 0d 15 54 23  20 20 20 dc 20 26 38 30  |mat"..T#   . &80|
00004d40  2c 2d 31 2c 30 2c 25 31  30 30 30 31 2c 22 57 69  |,-1,0,%10001,"Wi|
00004d50  70 65 20 61 6c 6c 22 0d  15 5e 08 20 20 20 3a 0d  |pe all"..^.   :.|
00004d60  15 68 2f 20 20 20 c8 99  20 22 57 69 6d 70 5f 43  |.h/   .. "Wimp_C|
00004d70  72 65 61 74 65 4d 65 6e  75 22 2c 2c 4d 61 69 6e  |reateMenu",,Main|
00004d80  4d 65 6e 75 25 2c 58 25  2d 39 36 2c 59 25 0d 15  |Menu%,X%-96,Y%..|
00004d90  72 05 e1 0d 15 7c 05 3a  0d 15 86 54 f4 20 2a 2a  |r....|.:...T. **|
00004da0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00004de0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 15 90 54  |************...T|
00004df0  f4 20 43 6f 6e 74 72 6f  6c 20 43 6f 6d 65 73 20  |. Control Comes |
00004e00  54 6f 20 48 65 72 65 20  57 68 65 6e 20 54 68 65  |To Here When The|
00004e10  20 55 73 65 72 20 48 61  73 20 44 72 61 67 67 65  | User Has Dragge|
00004e20  64 20 54 68 65 20 53 61  76 65 20 49 63 6f 6e 20  |d The Save Icon |
00004e30  41 6e 64 20 52 65 6c 65  61 73 65 64 20 49 74 2e  |And Released It.|
00004e40  0d 15 9a 54 f4 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |...T. **********|
00004e50  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00004e90  2a 2a 2a 2a 0d 15 a4 1d  dd 20 f2 5f 44 72 61 67  |****..... ._Drag|
00004ea0  42 6f 78 45 6e 64 28 4c  65 61 66 4e 61 6d 65 24  |BoxEnd(LeafName$|
00004eb0  29 0d 15 ae 1a 20 20 20  50 6f 69 6e 74 65 72 25  |)....   Pointer%|
00004ec0  3d a9 4c 65 61 66 4e 61  6d 65 24 0d 15 b8 32 20  |=.LeafName$...2 |
00004ed0  20 20 c8 95 20 50 6f 69  6e 74 65 72 25 3e 30 20  |  .. Pointer%>0 |
00004ee0  80 20 c1 4c 65 61 66 4e  61 6d 65 24 2c 50 6f 69  |. .LeafName$,Poi|
00004ef0  6e 74 65 72 25 2c 31 29  3c 3e 22 2e 22 0d 15 c2  |nter%,1)<>"."...|
00004f00  15 20 20 20 20 20 20 50  6f 69 6e 74 65 72 25 2d  |.      Pointer%-|
00004f10  3d 31 0d 15 cc 08 20 20  20 ce 0d 15 d6 27 20 20  |=1....   ....'  |
00004f20  20 4c 65 61 66 4e 61 6d  65 24 3d c1 4c 65 61 66  | LeafName$=.Leaf|
00004f30  4e 61 6d 65 24 2c 50 6f  69 6e 74 65 72 25 2b 31  |Name$,Pointer%+1|
00004f40  29 0d 15 e0 27 20 20 20  c8 99 20 22 57 69 6d 70  |)...'   .. "Wimp|
00004f50  5f 47 65 74 50 6f 69 6e  74 65 72 49 6e 66 6f 22  |_GetPointerInfo"|
00004f60  2c 2c 42 6c 6f 63 6b 25  0d 15 ea 1e 20 20 20 53  |,,Block%....   S|
00004f70  65 6e 64 65 72 57 69 6e  64 6f 77 25 3d 42 6c 6f  |enderWindow%=Blo|
00004f80  63 6b 25 21 31 32 0d 15  f4 1c 20 20 20 53 65 6e  |ck%!12....   Sen|
00004f90  64 65 72 49 63 6f 6e 25  3d 42 6c 6f 63 6b 25 21  |derIcon%=Block%!|
00004fa0  31 36 0d 15 fe 1e 20 20  20 42 6c 6f 63 6b 25 21  |16....   Block%!|
00004fb0  32 30 3d 53 65 6e 64 65  72 57 69 6e 64 6f 77 25  |20=SenderWindow%|
00004fc0  0d 16 08 1c 20 20 20 42  6c 6f 63 6b 25 21 32 34  |....   Block%!24|
00004fd0  3d 53 65 6e 64 65 72 49  63 6f 6e 25 0d 16 12 19  |=SenderIcon%....|
00004fe0  20 20 20 42 6c 6f 63 6b  25 21 32 38 3d 42 6c 6f  |   Block%!28=Blo|
00004ff0  63 6b 25 21 30 0d 16 1c  19 20 20 20 42 6c 6f 63  |ck%!0....   Bloc|
00005000  6b 25 21 33 32 3d 42 6c  6f 63 6b 25 21 34 0d 16  |k%!32=Block%!4..|
00005010  26 1d 20 20 20 42 6c 6f  63 6b 25 21 30 3d 34 34  |&.   Block%!0=44|
00005020  2b a9 4c 65 61 66 4e 61  6d 65 24 0d 16 30 21 20  |+.LeafName$..0! |
00005030  20 20 42 6c 6f 63 6b 25  21 30 2b 3d 34 2d 28 42  |  Block%!0+=4-(B|
00005040  6c 6f 63 6b 25 21 30 20  83 20 34 29 0d 16 3a 11  |lock%!0 . 4)..:.|
00005050  20 20 20 42 6c 6f 63 6b  25 21 34 3d 30 0d 16 44  |   Block%!4=0..D|
00005060  11 20 20 20 42 6c 6f 63  6b 25 21 38 3d 30 0d 16  |.   Block%!8=0..|
00005070  4e 12 20 20 20 42 6c 6f  63 6b 25 21 31 32 3d 30  |N.   Block%!12=0|
00005080  0d 16 58 27 20 20 20 42  6c 6f 63 6b 25 21 31 36  |..X'   Block%!16|
00005090  3d 31 20 3a 20 f4 20 4d  65 73 73 61 67 65 5f 44  |=1 : . Message_D|
000050a0  61 74 61 53 61 76 65 0d  16 62 2e 20 20 20 42 6c  |ataSave..b.   Bl|
000050b0  6f 63 6b 25 21 33 36 3d  30 20 3a 20 f4 20 4c 65  |ock%!36=0 : . Le|
000050c0  6e 67 74 68 20 6f 66 20  70 72 6f 70 6f 73 65 64  |ngth of proposed|
000050d0  20 73 61 76 65 0d 16 6c  1c 20 20 20 42 6c 6f 63  | save..l.   Bloc|
000050e0  6b 25 21 34 30 3d 4d 79  46 69 6c 65 54 79 70 65  |k%!40=MyFileType|
000050f0  25 0d 16 76 20 20 20 20  24 28 42 6c 6f 63 6b 25  |%..v    $(Block%|
00005100  2b 34 34 29 3d 4c 65 61  66 4e 61 6d 65 24 2b bd  |+44)=LeafName$+.|
00005110  30 0d 16 80 78 20 20 20  e7 20 ac 20 28 28 53 65  |0...x   . . ((Se|
00005120  6e 64 65 72 57 69 6e 64  6f 77 25 3d 53 61 76 65  |nderWindow%=Save|
00005130  25 29 20 84 20 28 53 65  6e 64 65 72 57 69 6e 64  |%) . (SenderWind|
00005140  6f 77 25 3d 4d 61 69 6e  25 29 20 84 20 28 53 65  |ow%=Main%) . (Se|
00005150  6e 64 65 72 57 69 6e 64  6f 77 25 3d 49 63 6f 6e  |nderWindow%=Icon|
00005160  42 61 72 25 20 80 20 53  65 6e 64 65 72 49 63 6f  |Bar% . SenderIco|
00005170  6e 25 3d 49 63 6f 6e 42  61 72 49 63 6f 6e 48 61  |n%=IconBarIconHa|
00005180  6e 64 6c 65 25 29 29 20  8c 0d 16 8a 4d 20 20 20  |ndle%)) ....M   |
00005190  20 20 20 c8 99 20 22 57  69 6d 70 5f 53 65 6e 64  |   .. "Wimp_Send|
000051a0  4d 65 73 73 61 67 65 22  2c 75 73 72 5f 6d 65 73  |Message",usr_mes|
000051b0  73 61 67 65 25 2c 42 6c  6f 63 6b 25 2c 53 65 6e  |sage%,Block%,Sen|
000051c0  64 65 72 57 69 6e 64 6f  77 25 2c 53 65 6e 64 65  |derWindow%,Sende|
000051d0  72 49 63 6f 6e 25 0d 16  94 08 20 20 20 cd 0d 16  |rIcon%....   ...|
000051e0  9e 05 e1 0d 16 a8 05 3a  0d 16 b2 3c f4 20 2a 2a  |.......:...<. **|
000051f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005220  2a 2a 2a 2a 0d 16 bc 3b  f4 20 41 20 44 61 74 61  |****...;. A Data|
00005230  20 53 61 76 65 20 41 63  6b 6e 6f 77 6c 65 67 65  | Save Acknowlege|
00005240  6d 65 6e 74 20 4d 65 73  73 61 67 65 20 48 61 73  |ment Message Has|
00005250  20 42 65 65 6e 20 52 65  63 65 69 76 65 64 21 0d  | Been Received!.|
00005260  16 c6 3c f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..<. ***********|
00005270  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005290  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 16 d0 21 dd  |***********...!.|
000052a0  20 f2 5f 48 61 6e 64 6c  65 4d 65 73 73 61 67 65  | ._HandleMessage|
000052b0  5f 44 61 74 61 53 61 76  65 41 63 6b 0d 16 da 1b  |_DataSaveAck....|
000052c0  20 20 20 ea 20 50 61 74  68 4e 61 6d 65 24 2c 50  |   . PathName$,P|
000052d0  6f 69 6e 74 65 72 25 0d  16 e4 19 20 20 20 50 6f  |ointer%....   Po|
000052e0  69 6e 74 65 72 25 3d 42  6c 6f 63 6b 25 2b 34 34  |inter%=Block%+44|
000052f0  0d 16 ee 08 20 20 20 f5  0d 16 f8 1f 20 20 20 20  |....   .....    |
00005300  20 20 50 61 74 68 4e 61  6d 65 24 2b 3d bd 3f 50  |  PathName$+=.?P|
00005310  6f 69 6e 74 65 72 25 0d  17 02 15 20 20 20 20 20  |ointer%....     |
00005320  20 50 6f 69 6e 74 65 72  25 2b 3d 31 0d 17 0c 14  | Pointer%+=1....|
00005330  20 20 20 fd 20 3f 50 6f  69 6e 74 65 72 25 3d 30  |   . ?Pointer%=0|
00005340  0d 17 16 1a 20 20 20 f2  5f 53 61 76 65 54 6f 28  |....   ._SaveTo(|
00005350  50 61 74 68 4e 61 6d 65  24 29 0d 17 20 1f 20 20  |PathName$).. .  |
00005360  20 42 6c 6f 63 6b 25 21  30 3d 34 30 2b a9 50 61  | Block%!0=40+.Pa|
00005370  74 68 4e 61 6d 65 24 2b  34 0d 17 2a 21 20 20 20  |thName$+4..*!   |
00005380  42 6c 6f 63 6b 25 21 30  2b 3d 34 2d 28 42 6c 6f  |Block%!0+=4-(Blo|
00005390  63 6b 25 21 30 20 83 20  34 29 0d 17 34 1e 20 20  |ck%!0 . 4)..4.  |
000053a0  20 42 6c 6f 63 6b 25 21  31 36 3d 6d 73 67 5f 64  | Block%!16=msg_d|
000053b0  61 74 61 6c 6f 61 64 25  0d 17 3e 12 20 20 20 42  |ataload%..>.   B|
000053c0  6c 6f 63 6b 25 21 33 36  3d 30 0d 17 48 1c 20 20  |lock%!36=0..H.  |
000053d0  20 42 6c 6f 63 6b 25 21  34 30 3d 4d 79 46 69 6c  | Block%!40=MyFil|
000053e0  65 54 79 70 65 25 0d 17  52 22 20 20 20 24 28 42  |eType%..R"   $(B|
000053f0  6c 6f 63 6b 25 2b 34 34  29 3d 50 61 74 68 4e 61  |lock%+44)=PathNa|
00005400  6d 65 24 2b bd 28 30 29  0d 17 5c 4e 20 20 20 c8  |me$+.(0)..\N   .|
00005410  99 20 22 57 69 6d 70 5f  53 65 6e 64 4d 65 73 73  |. "Wimp_SendMess|
00005420  61 67 65 22 2c 75 73 72  5f 6d 73 67 72 65 63 6f  |age",usr_msgreco|
00005430  72 64 65 64 25 2c 42 6c  6f 63 6b 25 2c 53 65 6e  |rded%,Block%,Sen|
00005440  64 65 72 57 69 6e 64 6f  77 25 2c 53 65 6e 64 65  |derWindow%,Sende|
00005450  72 49 63 6f 6e 25 0d 17  66 05 e1 0d 17 70 05 3a  |rIcon%..f....p.:|
00005460  0d 18 06 3b f4 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |...;. **********|
00005470  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005490  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 18 10 3b f4  |***********...;.|
000054a0  20 52 65 61 64 20 61 20  73 74 72 69 6e 67 20 66  | Read a string f|
000054b0  72 6f 6d 20 61 20 70 6f  69 6e 74 65 72 2c 20 75  |rom a pointer, u|
000054c0  73 69 6e 67 20 61 20 7a  65 72 6f 2d 74 65 72 6d  |sing a zero-term|
000054d0  69 6e 61 74 6f 72 0d 18  1a 3b f4 20 2a 2a 2a 2a  |inator...;. ****|
000054e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005510  2a 0d 18 24 1c dd 20 a4  5f 52 65 61 64 53 74 72  |*..$.. ._ReadStr|
00005520  69 6e 67 28 50 6f 69 6e  74 65 72 25 29 0d 18 2e  |ing(Pointer%)...|
00005530  10 20 20 20 ea 20 53 74  72 69 6e 67 24 0d 18 38  |.   . String$..8|
00005540  16 20 20 20 c8 95 20 3f  50 6f 69 6e 74 65 72 25  |.   .. ?Pointer%|
00005550  3c 3e 30 0d 18 42 1d 20  20 20 20 20 20 53 74 72  |<>0..B.      Str|
00005560  69 6e 67 24 2b 3d bd 3f  50 6f 69 6e 74 65 72 25  |ing$+=.?Pointer%|
00005570  0d 18 4c 15 20 20 20 20  20 20 50 6f 69 6e 74 65  |..L.      Pointe|
00005580  72 25 2b 3d 31 0d 18 56  08 20 20 20 ce 0d 18 60  |r%+=1..V.   ...`|
00005590  0c 3d 53 74 72 69 6e 67  24 0d 18 6a 05 3a 0d 18  |.=String$..j.:..|
000055a0  74 4e f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |tN. ************|
000055b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000055e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 18 7e 4e  |************..~N|
000055f0  f4 20 54 68 69 73 20 42  69 74 20 44 6f 65 73 20  |. This Bit Does |
00005600  54 68 65 20 41 63 74 75  61 6c 20 53 61 76 69 6e  |The Actual Savin|
00005610  67 20 4f 66 20 54 68 65  20 44 61 74 61 20 57 68  |g Of The Data Wh|
00005620  65 6e 20 52 65 71 75 65  73 74 65 64 20 42 79 20  |en Requested By |
00005630  54 68 65 20 46 69 6c 65  72 2e 0d 18 88 4e f4 20  |The Filer....N. |
00005640  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005680  2a 2a 2a 2a 2a 2a 2a 2a  0d 18 92 19 dd 20 f2 5f  |********..... ._|
00005690  53 61 76 65 54 6f 28 50  61 74 68 4e 61 6d 65 24  |SaveTo(PathName$|
000056a0  29 0d 18 9c 1a 20 20 20  50 6f 69 6e 74 65 72 25  |)....   Pointer%|
000056b0  3d a9 50 61 74 68 4e 61  6d 65 24 0d 18 a6 32 20  |=.PathName$...2 |
000056c0  20 20 c8 95 20 50 6f 69  6e 74 65 72 25 3e 31 20  |  .. Pointer%>1 |
000056d0  80 20 c1 50 61 74 68 4e  61 6d 65 24 2c 50 6f 69  |. .PathName$,Poi|
000056e0  6e 74 65 72 25 2c 31 29  3c 3e 22 2e 22 0d 18 b0  |nter%,1)<>"."...|
000056f0  15 20 20 20 20 20 20 50  6f 69 6e 74 65 72 25 2d  |.      Pointer%-|
00005700  3d 31 0d 18 ba 08 20 20  20 ce 0d 18 c4 4b 20 20  |=1....   ....K  |
00005710  20 e7 20 50 6f 69 6e 74  65 72 25 3d 31 20 8c 20  | . Pointer%=1 . |
00005720  85 20 32 30 30 31 2c 22  54 6f 20 73 61 76 65 3a  |. 2001,"To save:|
00005730  20 44 72 61 67 20 74 68  65 20 69 63 6f 6e 20 74  | Drag the icon t|
00005740  6f 20 61 20 64 69 72 65  63 74 6f 72 79 20 76 69  |o a directory vi|
00005750  65 77 65 72 22 0d 18 ce  1f 20 20 20 c8 99 20 22  |ewer"....   .. "|
00005760  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
00005770  2c 2c 2d 31 0d 18 d8 17  20 20 20 c8 99 20 22 4f  |,,-1....   .. "O|
00005780  53 5f 42 79 74 65 22 2c  33 2c 32 0d 18 e2 1c 20  |S_Byte",3,2.... |
00005790  20 20 ff 28 22 53 50 4f  4f 4c 20 22 2b 50 61 74  |  .("SPOOL "+Pat|
000057a0  68 4e 61 6d 65 24 29 0d  18 ec 47 20 20 20 f4 20  |hName$)...G   . |
000057b0  46 69 72 73 74 20 70 72  69 6e 74 20 6f 75 74 20  |First print out |
000057c0  61 6e 20 69 64 65 6e 74  69 66 69 65 72 2c 20 73  |an identifier, s|
000057d0  6f 20 49 20 63 61 6e 20  74 65 6c 6c 20 69 66 20  |o I can tell if |
000057e0  69 74 20 69 73 20 6d 79  20 66 69 6c 65 21 0d 18  |it is my file!..|
000057f0  f6 21 20 20 20 f1 20 4d  79 46 69 6c 65 49 64 65  |.!   . MyFileIde|
00005800  6e 74 69 66 69 65 72 24  3b bd 28 31 30 29 3b 0d  |ntifier$;.(10);.|
00005810  19 00 3b 20 20 20 f4 20  4f 70 65 6e 20 4f 75 74  |..;   . Open Out|
00005820  20 41 20 46 69 6c 65 20  41 6e 64 20 50 72 69 6e  | A File And Prin|
00005830  74 20 4f 75 74 20 41 6c  6c 20 74 68 65 20 69 6e  |t Out All the in|
00005840  66 6f 72 6d 61 74 69 6f  6e 21 0d 19 0a 2e 20 20  |formation!....  |
00005850  20 e3 20 4c 6f 6f 70 25  3d 54 6f 70 53 65 74 49  | . Loop%=TopSetI|
00005860  6e 64 65 78 53 74 61 72  74 25 20 b8 20 54 61 70  |ndexStart% . Tap|
00005870  65 4e 75 6d 62 65 72 25  0d 19 14 30 20 20 20 20  |eNumber%...0    |
00005880  20 20 f1 20 a4 5f 52 65  61 64 49 63 6f 6e 54 65  |  . ._ReadIconTe|
00005890  78 74 28 4d 61 69 6e 25  2c 4c 6f 6f 70 25 2c a3  |xt(Main%,Loop%,.|
000058a0  29 3b bd 28 31 30 29 3b  0d 19 1e 08 20 20 20 ed  |);.(10);....   .|
000058b0  0d 19 28 31 20 20 20 f1  20 a4 5f 52 65 61 64 49  |..(1   . ._ReadI|
000058c0  63 6f 6e 54 65 78 74 28  4d 61 69 6e 25 2c 55 73  |conText(Main%,Us|
000058d0  65 72 4e 6f 74 65 25 2c  a3 29 3b bd 28 31 30 29  |erNote%,.);.(10)|
000058e0  3b 0d 19 32 22 20 20 20  f4 20 54 68 65 6e 20 43  |;..2"   . Then C|
000058f0  6c 6f 73 65 20 74 68 65  20 66 69 6c 65 20 61 67  |lose the file ag|
00005900  61 69 6e 0d 19 3c 0d 20  20 20 2a 53 50 4f 4f 4c  |ain..<.   *SPOOL|
00005910  0d 19 46 17 20 20 20 c8  99 20 22 4f 53 5f 42 79  |..F.   .. "OS_By|
00005920  74 65 22 2c 33 2c 30 0d  19 50 31 20 20 20 ff 20  |te",3,0..P1   . |
00005930  22 53 65 74 54 79 70 65  20 22 2b 50 61 74 68 4e  |"SetType "+PathN|
00005940  61 6d 65 24 2b 22 20 22  2b c3 7e 28 4d 79 46 69  |ame$+" "+.~(MyFi|
00005950  6c 65 54 79 70 65 25 29  0d 19 5a 71 20 20 20 f4  |leType%)..Zq   .|
00005960  20 4f 76 65 72 77 72 69  74 65 20 6c 65 61 66 6e  | Overwrite leafn|
00005970  61 6d 65 20 74 65 78 74  20 77 69 74 68 20 22 42  |ame text with "B|
00005980  6f 66 66 42 72 69 67 68  74 22 20 74 6f 20 65 6e  |offBright" to en|
00005990  61 62 6c 65 20 61 75 74  6f 20 69 6e 73 65 72 74  |able auto insert|
000059a0  69 6f 6e 20 6f 66 20 74  68 65 20 74 61 70 65 20  |ion of the tape |
000059b0  6e 75 6d 62 65 72 20 66  6f 72 20 74 68 65 20 66  |number for the f|
000059c0  69 6c 65 20 6e 61 6d 65  21 0d 19 64 32 20 20 20  |ile name!..d2   |
000059d0  50 61 74 68 4e 61 6d 65  24 3d c0 50 61 74 68 4e  |PathName$=.PathN|
000059e0  61 6d 65 24 2c 50 6f 69  6e 74 65 72 25 29 2b 22  |ame$,Pointer%)+"|
000059f0  42 6f 66 66 42 72 69 67  68 74 22 0d 19 6e 27 20  |BoffBright"..n' |
00005a00  20 20 f2 5f 53 65 74 49  63 6f 6e 54 65 78 74 28  |  ._SetIconText(|
00005a10  34 2c 53 61 76 65 25 2c  50 61 74 68 4e 61 6d 65  |4,Save%,PathName|
00005a20  24 29 0d 19 78 05 e1 0d  19 82 05 3a 0d 19 8c 3f  |$)..x......:...?|
00005a30  f4 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |. **************|
00005a40  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005a60  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 19 96 3f f4  |***********...?.|
00005a70  20 54 68 69 73 20 48 61  6e 64 6c 65 73 20 54 68  | This Handles Th|
00005a80  65 20 44 72 61 67 67 69  6e 67 20 4f 66 20 54 48  |e Dragging Of TH|
00005a90  65 20 4f 75 74 6c 69 6e  65 20 4f 66 20 54 68 65  |e Outline Of The|
00005aa0  20 53 61 76 65 20 42 6f  78 2e 0d 19 a0 3f f4 20  | Save Box....?. |
00005ab0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005ae0  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 19 aa 10 dd 20 f2  |*********..... .|
00005af0  5f 44 72 61 67 53 61 76  65 0d 19 b4 14 20 20 20  |_DragSave....   |
00005b00  21 42 6c 6f 63 6b 25 3d  53 61 76 65 25 0d 19 be  |!Block%=Save%...|
00005b10  27 20 20 20 c8 99 20 22  57 69 6d 70 5f 47 65 74  |'   .. "Wimp_Get|
00005b20  57 69 6e 64 6f 77 53 74  61 74 65 22 2c 2c 42 6c  |WindowState",,Bl|
00005b30  6f 63 6b 25 0d 19 c8 22  20 20 20 4f 66 66 73 65  |ock%..."   Offse|
00005b40  74 58 25 3d 42 6c 6f 63  6b 25 21 34 2d 42 6c 6f  |tX%=Block%!4-Blo|
00005b50  63 6b 25 21 32 30 0d 19  d2 23 20 20 20 4f 66 66  |ck%!20...#   Off|
00005b60  73 65 74 59 25 3d 42 6c  6f 63 6b 25 21 31 36 2d  |setY%=Block%!16-|
00005b70  42 6c 6f 63 6b 25 21 32  34 0d 19 dc 15 20 20 20  |Block%!24....   |
00005b80  42 6c 6f 63 6b 25 21 30  3d 53 61 76 65 25 0d 19  |Block%!0=Save%..|
00005b90  e6 11 20 20 20 42 6c 6f  63 6b 25 21 34 3d 30 0d  |..   Block%!4=0.|
00005ba0  19 f0 25 20 20 20 c8 99  20 22 57 69 6d 70 5f 47  |..%   .. "Wimp_G|
00005bb0  65 74 49 63 6f 6e 53 74  61 74 65 22 2c 2c 42 6c  |etIconState",,Bl|
00005bc0  6f 63 6b 25 0d 19 fa 14  20 20 20 21 42 6c 6f 63  |ock%....   !Bloc|
00005bd0  6b 25 3d 53 61 76 65 25  0d 1a 04 11 20 20 20 42  |k%=Save%....   B|
00005be0  6c 6f 63 6b 25 21 34 3d  35 0d 1a 0e 21 20 20 20  |lock%!4=5...!   |
00005bf0  42 6c 6f 63 6b 25 21 38  3d 42 6c 6f 63 6b 25 21  |Block%!8=Block%!|
00005c00  38 2b 4f 66 66 73 65 74  58 25 0d 1a 18 23 20 20  |8+OffsetX%...#  |
00005c10  20 42 6c 6f 63 6b 25 21  31 32 3d 42 6c 6f 63 6b  | Block%!12=Block|
00005c20  25 21 31 32 2b 4f 66 66  73 65 74 59 25 0d 1a 22  |%!12+OffsetY%.."|
00005c30  23 20 20 20 42 6c 6f 63  6b 25 21 31 36 3d 42 6c  |#   Block%!16=Bl|
00005c40  6f 63 6b 25 21 31 36 2b  4f 66 66 73 65 74 58 25  |ock%!16+OffsetX%|
00005c50  0d 1a 2c 23 20 20 20 42  6c 6f 63 6b 25 21 32 30  |..,#   Block%!20|
00005c60  3d 42 6c 6f 63 6b 25 21  32 30 2b 4f 66 66 73 65  |=Block%!20+Offse|
00005c70  74 59 25 0d 1a 36 12 20  20 20 42 6c 6f 63 6b 25  |tY%..6.   Block%|
00005c80  21 32 34 3d 30 0d 1a 40  12 20 20 20 42 6c 6f 63  |!24=0..@.   Bloc|
00005c90  6b 25 21 32 38 3d 30 0d  1a 4a 1a 20 20 20 42 6c  |k%!28=0..J.   Bl|
00005ca0  6f 63 6b 25 21 33 32 3d  26 37 46 46 46 46 46 46  |ock%!32=&7FFFFFF|
00005cb0  46 0d 1a 54 1a 20 20 20  42 6c 6f 63 6b 25 21 33  |F..T.   Block%!3|
00005cc0  36 3d 26 37 46 46 46 46  46 46 46 0d 1a 5e 20 20  |6=&7FFFFFFF..^  |
00005cd0  20 20 c8 99 20 22 57 69  6d 70 5f 44 72 61 67 42  |  .. "Wimp_DragB|
00005ce0  6f 78 22 2c 2c 42 6c 6f  63 6b 25 0d 1a 68 05 e1  |ox",,Block%..h..|
00005cf0  0d 1a 72 05 3a 0d 1a 7c  40 f4 20 2a 2a 2a 2a 2a  |..r.:..|@. *****|
00005d00  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005d30  2a 2a 2a 2a 2a 0d 1a 86  40 f4 20 57 68 65 6e 20  |*****...@. When |
00005d40  41 20 46 69 6c 65 20 49  73 20 44 72 6f 70 70 65  |A File Is Droppe|
00005d50  64 20 4f 6e 74 6f 20 4d  79 20 49 63 6f 6e 20 42  |d Onto My Icon B|
00005d60  61 72 20 49 63 6f 6e 2c  20 49 20 43 6f 6d 65 20  |ar Icon, I Come |
00005d70  48 65 72 65 21 0d 1a 90  40 f4 20 2a 2a 2a 2a 2a  |Here!...@. *****|
00005d80  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00005db0  2a 2a 2a 2a 2a 0d 1a 9a  17 dd 20 f2 5f 46 69 6c  |*****..... ._Fil|
00005dc0  65 44 72 6f 70 70 65 64  4f 6e 4d 65 0d 1a a4 21  |eDroppedOnMe...!|
00005dd0  20 20 20 e7 20 42 6c 6f  63 6b 25 21 34 30 20 3d  |   . Block%!40 =|
00005de0  4d 79 46 69 6c 65 54 79  70 65 25 20 8c 0d 1a ae  |MyFileType% ....|
00005df0  2b 20 20 20 20 20 20 53  61 76 65 4e 61 6d 65 24  |+      SaveName$|
00005e00  3d a4 5f 52 65 61 64 53  74 72 69 6e 67 28 42 6c  |=._ReadString(Bl|
00005e10  6f 63 6b 25 2b 34 34 29  0d 1a b8 1c 20 20 20 20  |ock%+44)....    |
00005e20  20 20 42 6c 6f 63 6b 25  21 31 32 3d 42 6c 6f 63  |  Block%!12=Bloc|
00005e30  6b 25 21 38 0d 1a c2 15  20 20 20 20 20 20 42 6c  |k%!8....      Bl|
00005e40  6f 63 6b 25 21 31 36 3d  34 0d 1a cc 3c 20 20 20  |ock%!16=4...<   |
00005e50  20 20 20 c8 99 20 22 57  69 6d 70 5f 53 65 6e 64  |   .. "Wimp_Send|
00005e60  4d 65 73 73 61 67 65 22  2c 75 73 72 5f 6d 65 73  |Message",usr_mes|
00005e70  73 61 67 65 25 2c 42 6c  6f 63 6b 25 2c 42 6c 6f  |sage%,Block%,Blo|
00005e80  63 6b 25 21 34 0d 1a d6  28 20 20 20 20 20 20 f2  |ck%!4...(      .|
00005e90  5f 44 6f 41 63 74 75 61  6c 4c 6f 61 64 54 68 69  |_DoActualLoadThi|
00005ea0  6e 67 28 53 61 76 65 4e  61 6d 65 24 29 0d 1a e0  |ng(SaveName$)...|
00005eb0  08 20 20 20 cd 0d 1a ea  21 20 20 20 e7 20 42 6c  |.   ....!   . Bl|
00005ec0  6f 63 6b 25 21 34 30 20  3d 43 6f 6e 66 69 67 46  |ock%!40 =ConfigF|
00005ed0  69 6c 65 25 20 8c 0d 1a  f4 18 20 20 20 20 20 20  |ile% .....      |
00005ee0  f2 5f 52 65 61 64 55 73  65 72 44 61 74 61 0d 1a  |._ReadUserData..|
00005ef0  fe 22 20 20 20 20 20 20  e7 20 49 6e 6c 61 79 54  |."      . InlayT|
00005f00  79 70 65 24 3d 22 56 69  64 65 6f 5f 38 22 20 8c  |ype$="Video_8" .|
00005f10  0d 1b 08 24 20 20 20 20  20 20 20 20 20 6d 65 6e  |...$         men|
00005f20  75 25 21 28 32 38 2b 32  34 2a 32 29 3d 54 69 63  |u%!(28+24*2)=Tic|
00005f30  6b 65 64 25 0d 1b 12 56  20 20 20 20 20 20 20 20  |ked%...V        |
00005f40  20 6d 65 6e 75 25 21 28  32 38 2b 32 34 2a 33 29  | menu%!(28+24*3)|
00005f50  3d 4e 6f 74 54 69 63 6b  65 64 25 20 20 20 20 20  |=NotTicked%     |
00005f60  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 f4 20  |            : . |
00005f70  54 69 63 6b 20 49 74 65  6d 20 32 2c 20 55 6e 74  |Tick Item 2, Unt|
00005f80  69 63 6b 20 49 74 65 6d  20 33 0d 1b 1c 35 20 20  |ick Item 3...5  |
00005f90  20 20 20 20 20 20 20 6d  65 6e 75 25 21 28 32 38  |       menu%!(28|
00005fa0  2b 32 34 2a 34 29 3d 4e  6f 74 54 69 63 6b 65 64  |+24*4)=NotTicked|
00005fb0  25 20 84 20 55 6e 64 65  72 6c 69 6e 65 64 25 0d  |% . Underlined%.|
00005fc0  1b 26 0b 20 20 20 20 20  20 cd 0d 1b 30 20 20 20  |.&.      ...0   |
00005fd0  20 20 20 20 e7 20 49 6e  6c 61 79 54 79 70 65 24  |    . InlayType$|
00005fe0  3d 22 56 48 53 5f 43 22  20 8c 0d 1b 3a 27 20 20  |="VHS_C" ...:'  |
00005ff0  20 20 20 20 20 20 20 6d  65 6e 75 25 21 28 32 38  |       menu%!(28|
00006000  2b 32 34 2a 32 29 3d 4e  6f 74 54 69 63 6b 65 64  |+24*2)=NotTicked|
00006010  25 0d 1b 44 57 20 20 20  20 20 20 20 20 20 6d 65  |%..DW         me|
00006020  6e 75 25 21 28 32 38 2b  32 34 2a 33 29 3d 54 69  |nu%!(28+24*3)=Ti|
00006030  63 6b 65 64 25 20 20 20  20 20 20 20 20 20 20 20  |cked%           |
00006040  20 20 20 20 20 20 20 20  20 20 3a 20 f4 20 54 69  |          : . Ti|
00006050  63 6b 20 49 74 65 6d 20  33 2c 20 55 6e 74 69 63  |ck Item 3, Untic|
00006060  6b 20 49 74 65 6d 20 32  0d 1b 4e 35 20 20 20 20  |k Item 2..N5    |
00006070  20 20 20 20 20 6d 65 6e  75 25 21 28 32 38 2b 32  |     menu%!(28+2|
00006080  34 2a 33 29 3d 4e 6f 74  54 69 63 6b 65 64 25 20  |4*3)=NotTicked% |
00006090  84 20 55 6e 64 65 72 6c  69 6e 65 64 25 0d 1b 58  |. Underlined%..X|
000060a0  0b 20 20 20 20 20 20 cd  0d 1b 62 1e 20 20 20 20  |.      ...b.    |
000060b0  20 20 e7 20 49 6e 6c 61  79 54 79 70 65 24 3d 22  |  . InlayType$="|
000060c0  44 41 54 22 20 8c 0d 1b  6c 27 20 20 20 20 20 20  |DAT" ...l'      |
000060d0  20 20 20 6d 65 6e 75 25  21 28 32 38 2b 32 34 2a  |   menu%!(28+24*|
000060e0  32 29 3d 4e 6f 74 54 69  63 6b 65 64 25 0d 1b 76  |2)=NotTicked%..v|
000060f0  56 20 20 20 20 20 20 20  20 20 6d 65 6e 75 25 21  |V         menu%!|
00006100  28 32 38 2b 32 34 2a 33  29 3d 4e 6f 74 54 69 63  |(28+24*3)=NotTic|
00006110  6b 65 64 25 20 20 20 20  20 20 20 20 20 20 20 20  |ked%            |
00006120  20 20 20 20 20 3a 20 f4  20 54 69 63 6b 20 49 74  |     : . Tick It|
00006130  65 6d 20 33 2c 20 55 6e  74 69 63 6b 20 49 74 65  |em 3, Untick Ite|
00006140  6d 20 32 0d 1b 80 32 20  20 20 20 20 20 20 20 20  |m 2...2         |
00006150  6d 65 6e 75 25 21 28 32  38 2b 32 34 2a 33 29 3d  |menu%!(28+24*3)=|
00006160  54 69 63 6b 65 64 25 20  84 20 55 6e 64 65 72 6c  |Ticked% . Underl|
00006170  69 6e 65 64 25 0d 1b 8a  0b 20 20 20 20 20 20 cd  |ined%....      .|
00006180  0d 1b 94 08 20 20 20 cd  0d 1b 9e 05 e1 0d 1b a8  |....   .........|
00006190  05 3a 0d 1b b2 55 f4 20  2a 2a 2a 2a 2a 2a 2a 2a  |.:...U. ********|
000061a0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000061e0  2a 2a 2a 2a 2a 2a 2a 0d  1b bc 55 f4 20 43 6f 6e  |*******...U. Con|
000061f0  74 72 6f 6c 20 43 6f 6d  65 73 20 48 65 72 65 20  |trol Comes Here |
00006200  57 68 65 6e 20 41 20 56  61 6c 69 64 20 46 69 6c  |When A Valid Fil|
00006210  65 20 54 79 70 65 20 48  61 73 20 42 65 65 6e 20  |e Type Has Been |
00006220  44 72 6f 70 70 65 64 20  4f 6e 74 6f 20 4d 79 20  |Dropped Onto My |
00006230  41 70 70 6c 69 63 61 74  69 6f 6e 2e 0d 1b c6 55  |Application....U|
00006240  f4 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |. **************|
00006250  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006290  2a 0d 1b d0 1b dd 20 f2  5f 4c 6f 61 64 44 61 74  |*..... ._LoadDat|
000062a0  61 28 46 69 6c 65 4e 61  6d 65 24 29 0d 1b da 1d  |a(FileName$)....|
000062b0  20 20 20 4c 6f 61 64 46  69 6c 65 25 3d 8e 28 46  |   LoadFile%=.(F|
000062c0  69 6c 65 4e 61 6d 65 24  29 0d 1b e4 1e 20 20 20  |ileName$)....   |
000062d0  54 65 6d 70 54 65 78 74  24 3d be 23 28 4c 6f 61  |TempText$=.#(Loa|
000062e0  64 46 69 6c 65 25 29 0d  1b ee 58 20 20 20 e7 20  |dFile%)...X   . |
000062f0  54 65 6d 70 54 65 78 74  24 3c 3e 4d 79 46 69 6c  |TempText$<>MyFil|
00006300  65 49 64 65 6e 74 69 66  69 65 72 24 20 8c 20 d9  |eIdentifier$ . .|
00006310  20 23 4c 6f 61 64 46 69  6c 65 25 20 3a 20 85 20  | #LoadFile% : . |
00006320  32 30 30 31 2c 22 4e 6f  74 20 61 20 21 56 69 64  |2001,"Not a !Vid|
00006330  65 6f 20 73 61 76 65 64  20 66 69 6c 65 2e 22 0d  |eo saved file.".|
00006340  1b f8 32 20 20 20 e3 20  4c 6f 61 64 4c 6f 6f 70  |..2   . LoadLoop|
00006350  25 3d 54 6f 70 53 65 74  49 6e 64 65 78 53 74 61  |%=TopSetIndexSta|
00006360  72 74 25 20 b8 20 54 61  70 65 4e 75 6d 62 65 72  |rt% . TapeNumber|
00006370  25 0d 1c 02 21 20 20 20  20 20 20 54 65 6d 70 54  |%...!      TempT|
00006380  65 78 74 24 3d be 23 28  4c 6f 61 64 46 69 6c 65  |ext$=.#(LoadFile|
00006390  25 29 0d 1c 0c 32 20 20  20 20 20 20 f2 5f 53 65  |%)...2      ._Se|
000063a0  74 49 63 6f 6e 54 65 78  74 28 4c 6f 61 64 4c 6f  |tIconText(LoadLo|
000063b0  6f 70 25 2c 4d 61 69 6e  25 2c 54 65 6d 70 54 65  |op%,Main%,TempTe|
000063c0  78 74 24 29 0d 1c 16 23  20 20 20 20 20 20 f2 5f  |xt$)...#      ._|
000063d0  52 65 64 72 61 77 28 4d  61 69 6e 25 2c 4c 6f 61  |Redraw(Main%,Loa|
000063e0  64 4c 6f 6f 70 25 29 0d  1c 20 08 20 20 20 ed 0d  |dLoop%).. .   ..|
000063f0  1c 2a 1e 20 20 20 54 65  6d 70 54 65 78 74 24 3d  |.*.   TempText$=|
00006400  be 23 28 4c 6f 61 64 46  69 6c 65 25 29 0d 1c 34  |.#(LoadFile%)..4|
00006410  2f 20 20 20 f2 5f 53 65  74 49 63 6f 6e 54 65 78  |/   ._SetIconTex|
00006420  74 28 55 73 65 72 4e 6f  74 65 25 2c 4d 61 69 6e  |t(UserNote%,Main|
00006430  25 2c 54 65 6d 70 54 65  78 74 24 29 0d 1c 3e 20  |%,TempText$)..> |
00006440  20 20 20 f2 5f 52 65 64  72 61 77 28 4d 61 69 6e  |   ._Redraw(Main|
00006450  25 2c 55 73 65 72 4e 6f  74 65 25 29 0d 1c 48 13  |%,UserNote%)..H.|
00006460  20 20 20 d9 20 23 4c 6f  61 64 46 69 6c 65 25 0d  |   . #LoadFile%.|
00006470  1c 52 05 e1 0d 1c 5c 05  3a 0d 1c 66 4b f4 20 2a  |.R....\.:..fK. *|
00006480  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000064c0  2a 2a 2a 2a 0d 1c 70 4a  f4 20 52 65 61 64 73 20  |****..pJ. Reads |
000064d0  53 74 61 74 65 20 4f 66  20 49 63 6f 6e 73 20 69  |State Of Icons i|
000064e0  6e 20 57 69 6e 64 6f 77  20 53 74 61 74 65 64 20  |n Window Stated |
000064f0  61 6e 64 20 52 65 74 75  72 6e 73 20 54 68 65 20  |and Returns The |
00006500  46 69 72 73 74 20 53 65  6c 65 63 74 65 64 0d 1c  |First Selected..|
00006510  7a 46 f4 20 49 63 6f 6e  20 49 6e 20 54 68 65 20  |zF. Icon In The |
00006520  47 69 76 65 20 45 78 63  6c 75 73 69 76 65 20 53  |Give Exclusive S|
00006530  65 6c 65 63 74 69 6f 6e  20 47 72 6f 75 70 2e 20  |election Group. |
00006540  28 2d 31 20 3d 20 4e 6f  6e 65 20 53 65 6c 65 63  |(-1 = None Selec|
00006550  74 65 64 29 0d 1c 84 4a  f4 20 2a 2a 2a 2a 2a 2a  |ted)...J. ******|
00006560  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006590  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 1c  |**************..|
000065a0  8e 2b dd 20 a4 5f 52 65  61 64 45 53 47 53 65 6c  |.+. ._ReadESGSel|
000065b0  65 63 74 65 64 28 57 69  6e 64 6f 77 48 61 6e 64  |ected(WindowHand|
000065c0  6c 65 25 2c 45 73 67 25  29 0d 1c 98 17 20 20 20  |le%,Esg%)....   |
000065d0  ea 20 4d 61 73 6b 25 2c  50 61 74 74 65 72 6e 25  |. Mask%,Pattern%|
000065e0  0d 1c a2 41 20 20 20 4d  61 73 6b 25 20 20 20 3d  |...A   Mask%   =|
000065f0  20 28 31 3c 3c 32 31 29  2b 28 33 31 3c 3c 31 36  | (1<<21)+(31<<16|
00006600  29 20 20 20 20 20 20 20  3a 20 f4 20 42 69 74 20  |)       : . Bit |
00006610  32 31 20 61 6e 64 20 42  69 74 73 20 31 36 2d 32  |21 and Bits 16-2|
00006620  30 0d 1c ac 3e 20 20 20  50 61 74 74 65 72 6e 25  |0...>   Pattern%|
00006630  3d 20 28 31 3c 3c 32 31  29 2b 28 45 73 67 25 3c  |= (1<<21)+(Esg%<|
00006640  3c 31 36 29 20 20 20 20  20 3a 20 f4 20 53 65 6c  |<16)     : . Sel|
00006650  65 63 74 65 64 20 61 6e  64 20 45 53 47 20 58 0d  |ected and ESG X.|
00006660  1c b6 42 20 20 20 c8 99  20 22 57 69 6d 70 5f 57  |..B   .. "Wimp_W|
00006670  68 69 63 68 49 63 6f 6e  22 2c 57 69 6e 64 6f 77  |hichIcon",Window|
00006680  48 61 6e 64 6c 65 25 2c  42 6c 6f 63 6b 25 2b 32  |Handle%,Block%+2|
00006690  30 30 2c 4d 61 73 6b 25  2c 50 61 74 74 65 72 6e  |00,Mask%,Pattern|
000066a0  25 0d 1c c0 0f 3d 42 6c  6f 63 6b 25 21 32 30 30  |%....=Block%!200|
000066b0  0d 1c ca 05 3a 0d 1c d4  05 3a 0d 1c de 69 f4 20  |....:....:...i. |
000066c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006720  2a 2a 2a 0d 1c e8 67 f4  20 41 4c 54 48 4f 55 47  |***...g. ALTHOUG|
00006730  48 20 41 20 4c 4f 54 20  4f 46 20 54 48 45 20 41  |H A LOT OF THE A|
00006740  42 4f 56 45 20 43 4f 44  45 20 49 53 20 53 54 49  |BOVE CODE IS STI|
00006750  4c 4c 20 56 45 52 59 20  53 50 45 43 49 46 49 43  |LL VERY SPECIFIC|
00006760  20 54 4f 20 54 48 49 53  20 50 52 4f 47 52 41 4d  | TO THIS PROGRAM|
00006770  2c 20 49 54 20 43 41 4e  20 42 45 20 45 41 53 49  |, IT CAN BE EASI|
00006780  4c 59 20 41 44 41 50 54  45 44 0d 1c f2 55 f4 20  |LY ADAPTED...U. |
00006790  41 4c 4c 20 43 4f 44 45  20 42 45 4c 4f 57 20 54  |ALL CODE BELOW T|
000067a0  48 49 53 20 4c 49 4e 45  20 49 53 20 55 4e 4c 49  |HIS LINE IS UNLI|
000067b0  4b 45 4c 59 20 54 4f 20  42 45 20 4f 46 20 4d 55  |KELY TO BE OF MU|
000067c0  43 48 20 55 53 45 20 54  4f 20 41 4e 59 20 4f 54  |CH USE TO ANY OT|
000067d0  48 45 52 20 41 50 50 4c  49 43 41 54 49 4f 4e 0d  |HER APPLICATION.|
000067e0  1c fc 69 f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..i. ***********|
000067f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006840  2a 2a 2a 2a 2a 2a 2a 2a  0d 1d 06 05 3a 0d 1d 10  |********....:...|
00006850  05 3a 0d 1d 1a 36 f4 20  2a 2a 2a 2a 2a 2a 2a 2a  |.:...6. ********|
00006860  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006880  2a 2a 2a 2a 2a 2a 2a 2a  0d 1d 24 36 f4 20 4d 6f  |********..$6. Mo|
00006890  76 65 20 43 61 72 65 74  20 55 70 20 54 6f 20 54  |ve Caret Up To T|
000068a0  68 65 20 4e 65 78 74 20  45 6e 74 72 79 2c 20 57  |he Next Entry, W|
000068b0  69 74 68 20 57 72 61 70  2d 72 6f 75 6e 64 0d 1d  |ith Wrap-round..|
000068c0  2e 36 f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.6. ************|
000068d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000068f0  2a 2a 2a 2a 0d 1d 38 15  dd 20 f2 5f 4d 6f 76 65  |****..8.. ._Move|
00006900  55 70 41 6e 45 6e 74 72  79 0d 1d 42 0b 20 20 20  |UpAnEntry..B.   |
00006910  ea 20 49 25 0d 1d 4c 2f  20 20 20 e7 20 49 63 6f  |. I%..L/   . Ico|
00006920  6e 25 3c 3d 28 42 74 6d  53 65 74 49 74 65 6d 45  |n%<=(BtmSetItemE|
00006930  6e 64 25 2d 32 29 20 8c  20 49 25 3d 49 63 6f 6e  |nd%-2) . I%=Icon|
00006940  25 2b 32 0d 1d 56 43 20  20 20 e7 20 49 63 6f 6e  |%+2..VC   . Icon|
00006950  25 3d 42 74 6d 53 65 74  49 6e 64 65 78 45 6e 64  |%=BtmSetIndexEnd|
00006960  25 20 84 20 49 63 6f 6e  25 3d 42 74 6d 53 65 74  |% . Icon%=BtmSet|
00006970  49 74 65 6d 45 6e 64 25  20 8c 20 49 25 3d 49 63  |ItemEnd% . I%=Ic|
00006980  6f 6e 25 2d 34 38 0d 1d  60 43 20 20 20 e7 20 49  |on%-48..`C   . I|
00006990  63 6f 6e 25 3e 54 69 74  6c 65 46 69 72 73 74 4c  |con%>TitleFirstL|
000069a0  69 6e 65 25 20 80 20 49  63 6f 6e 25 3c 3d 54 69  |ine% . Icon%<=Ti|
000069b0  74 6c 65 4c 61 73 74 4c  69 6e 65 25 20 8c 20 49  |tleLastLine% . I|
000069c0  25 3d 49 63 6f 6e 25 2d  31 0d 1d 6a 32 20 20 20  |%=Icon%-1..j2   |
000069d0  e7 20 49 63 6f 6e 25 3d  54 69 74 6c 65 46 69 72  |. Icon%=TitleFir|
000069e0  73 74 4c 69 6e 65 25 20  8c 20 49 25 3d 54 69 74  |stLine% . I%=Tit|
000069f0  6c 65 4c 61 73 74 4c 69  6e 65 25 0d 1d 74 40 20  |leLastLine%..t@ |
00006a00  20 20 e7 20 49 63 6f 6e  25 3d 54 69 74 6c 65 46  |  . Icon%=TitleF|
00006a10  69 72 73 74 4c 69 6e 65  25 20 80 20 43 61 6e 74  |irstLine% . Cant|
00006a20  47 6f 54 6f 4c 61 73 74  54 69 74 6c 65 25 20 8c  |GoToLastTitle% .|
00006a30  20 49 25 3d 49 63 6f 6e  25 2b 31 0d 1d 7e 24 20  | I%=Icon%+1..~$ |
00006a40  20 20 f2 5f 53 65 74 43  61 72 65 74 50 6f 73 69  |  ._SetCaretPosi|
00006a50  74 69 6f 6e 28 49 25 2c  49 6e 64 65 78 25 29 0d  |tion(I%,Index%).|
00006a60  1d 88 05 e1 0d 1d 92 05  3a 0d 1d 9c 34 f4 20 2a  |........:...4. *|
00006a70  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006a90  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 1d a6  |*************...|
00006aa0  34 f4 20 4d 6f 76 65 20  43 61 72 65 74 20 44 6f  |4. Move Caret Do|
00006ab0  77 6e 20 54 6f 20 4e 65  78 74 20 45 6e 74 72 79  |wn To Next Entry|
00006ac0  2c 20 57 69 74 68 20 57  72 61 70 2d 72 6f 75 6e  |, With Wrap-roun|
00006ad0  64 0d 1d b0 34 f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |d...4. *********|
00006ae0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006b00  2a 2a 2a 2a 2a 0d 1d ba  17 dd 20 f2 5f 4d 6f 76  |*****..... ._Mov|
00006b10  65 44 6f 77 6e 41 6e 45  6e 74 72 79 0d 1d c4 0b  |eDownAnEntry....|
00006b20  20 20 20 ea 20 49 25 0d  1d ce 32 20 20 20 e7 20  |   . I%...2   . |
00006b30  49 63 6f 6e 25 3e 3d 28  54 6f 70 53 65 74 49 6e  |Icon%>=(TopSetIn|
00006b40  64 65 78 53 74 61 72 74  25 2b 32 29 20 8c 20 49  |dexStart%+2) . I|
00006b50  25 3d 49 63 6f 6e 25 2d  32 0d 1d d8 47 20 20 20  |%=Icon%-2...G   |
00006b60  e7 20 49 63 6f 6e 25 3d  54 6f 70 53 65 74 49 6e  |. Icon%=TopSetIn|
00006b70  64 65 78 53 74 61 72 74  25 20 84 20 49 63 6f 6e  |dexStart% . Icon|
00006b80  25 3d 54 6f 70 53 65 74  49 74 65 6d 53 74 61 72  |%=TopSetItemStar|
00006b90  74 25 20 8c 20 49 25 3d  49 63 6f 6e 25 2b 34 38  |t% . I%=Icon%+48|
00006ba0  0d 1d e2 43 20 20 20 e7  20 49 63 6f 6e 25 3c 54  |...C   . Icon%<T|
00006bb0  69 74 6c 65 4c 61 73 74  4c 69 6e 65 25 20 80 20  |itleLastLine% . |
00006bc0  49 63 6f 6e 25 3e 3d 54  69 74 6c 65 46 69 72 73  |Icon%>=TitleFirs|
00006bd0  74 4c 69 6e 65 25 20 8c  20 49 25 3d 49 63 6f 6e  |tLine% . I%=Icon|
00006be0  25 2b 31 0d 1d ec 32 20  20 20 e7 20 49 63 6f 6e  |%+1...2   . Icon|
00006bf0  25 3d 54 69 74 6c 65 4c  61 73 74 4c 69 6e 65 25  |%=TitleLastLine%|
00006c00  20 8c 20 49 25 3d 54 69  74 6c 65 46 69 72 73 74  | . I%=TitleFirst|
00006c10  4c 69 6e 65 25 0d 1d f6  4a 20 20 20 e7 20 49 63  |Line%...J   . Ic|
00006c20  6f 6e 25 3d 54 69 74 6c  65 46 69 72 73 74 4c 69  |on%=TitleFirstLi|
00006c30  6e 65 25 2b 31 20 80 20  43 61 6e 74 47 6f 54 6f  |ne%+1 . CantGoTo|
00006c40  4c 61 73 74 54 69 74 6c  65 25 20 8c 20 49 25 3d  |LastTitle% . I%=|
00006c50  54 69 74 6c 65 46 69 72  73 74 4c 69 6e 65 25 0d  |TitleFirstLine%.|
00006c60  1e 00 24 20 20 20 f2 5f  53 65 74 43 61 72 65 74  |..$   ._SetCaret|
00006c70  50 6f 73 69 74 69 6f 6e  28 49 25 2c 49 6e 64 65  |Position(I%,Inde|
00006c80  78 25 29 0d 1e 0a 05 e1  0d 1e 14 05 3a 0d 1e 1e  |x%).........:...|
00006c90  1a dd 20 f2 5f 4d 6f 76  65 44 6f 77 6e 4f 6e 65  |.. ._MoveDownOne|
00006ca0  42 61 63 6b 4f 6e 65 0d  1e 28 44 20 20 20 e7 20  |BackOne..(D   . |
00006cb0  49 63 6f 6e 25 3e 28 54  6f 70 53 65 74 49 6e 64  |Icon%>(TopSetInd|
00006cc0  65 78 53 74 61 72 74 25  2b 32 29 20 8c 20 f2 5f  |exStart%+2) . ._|
00006cd0  53 65 74 43 61 72 65 74  50 6f 73 69 74 69 6f 6e  |SetCaretPosition|
00006ce0  28 49 63 6f 6e 25 2d 33  2c 30 29 0d 1e 32 40 20  |(Icon%-3,0)..2@ |
00006cf0  20 20 e7 20 49 63 6f 6e  25 3d 54 6f 70 53 65 74  |  . Icon%=TopSet|
00006d00  49 74 65 6d 53 74 61 72  74 25 20 8c 20 f2 5f 53  |ItemStart% . ._S|
00006d10  65 74 43 61 72 65 74 50  6f 73 69 74 69 6f 6e 28  |etCaretPosition(|
00006d20  49 63 6f 6e 25 2b 34 37  2c 30 29 0d 1e 3c 05 e1  |Icon%+47,0)..<..|
00006d30  0d 1e 46 05 3a 0d 1e 50  40 f4 20 2a 2a 2a 2a 2a  |..F.:..P@. *****|
00006d40  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006d70  2a 2a 2a 2a 2a 0d 1e 5a  34 f4 20 50 72 69 6e 74  |*****..Z4. Print|
00006d80  6f 75 74 20 74 68 65 20  63 6f 6e 74 65 6e 74 73  |out the contents|
00006d90  20 6f 66 20 74 68 65 20  77 72 69 74 61 62 6c 65  | of the writable|
00006da0  20 69 63 6f 6e 73 21 21  21 0d 1e 64 40 f4 20 2a  | icons!!!..d@. *|
00006db0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006de0  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 1e 6e 10 dd 20 f2  |*********..n.. .|
00006df0  5f 50 72 69 6e 74 4f 75  74 0d 1e 78 29 20 20 20  |_PrintOut..x)   |
00006e00  c8 8e 20 a4 5f 52 65 61  64 45 53 47 53 65 6c 65  |.. ._ReadESGSele|
00006e10  63 74 65 64 28 4f 70 74  69 6f 6e 73 25 2c 39 29  |cted(Options%,9)|
00006e20  20 ca 0d 1e 82 32 20 20  20 20 20 20 c9 20 30 20  | ....2      . 0 |
00006e30  3a 20 f2 5f 50 72 69 6e  74 54 65 78 74 4d 6f 64  |: ._PrintTextMod|
00006e40  65 28 4e 6c 71 4f 4e 24  2c 49 6e 6c 61 79 54 79  |e(NlqON$,InlayTy|
00006e50  70 65 24 29 0d 1e 8c 33  20 20 20 20 20 20 c9 20  |pe$)...3      . |
00006e60  31 20 3a 20 f2 5f 50 72  69 6e 74 54 65 78 74 4d  |1 : ._PrintTextM|
00006e70  6f 64 65 28 4e 6c 71 4f  46 46 24 2c 49 6e 6c 61  |ode(NlqOFF$,Inla|
00006e80  79 54 79 70 65 24 29 0d  1e 96 2f 20 20 20 20 20  |yType$).../     |
00006e90  20 c9 20 35 20 3a 20 f2  5f 50 72 69 6e 74 47 72  | . 5 : ._PrintGr|
00006ea0  61 70 68 69 63 73 4d 6f  64 65 28 49 6e 6c 61 79  |aphicsMode(Inlay|
00006eb0  54 79 70 65 24 29 0d 1e  a0 1d 20 20 20 20 20 20  |Type$)....      |
00006ec0  7f 20 85 20 32 30 30 31  2c 20 22 4d 6f 64 65 45  |. . 2001, "ModeE|
00006ed0  72 72 22 0d 1e aa 08 20  20 20 cb 0d 1e b4 05 e1  |rr"....   ......|
00006ee0  0d 1e be 05 3a 0d 1e c8  3b f4 20 2a 2a 2a 2a 2a  |....:...;. *****|
00006ef0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006f20  0d 1e d2 34 f4 20 50 72  69 6e 74 20 6f 75 74 20  |...4. Print out |
00006f30  74 68 65 20 6c 61 62 65  6c 20 69 6e 20 74 65 78  |the label in tex|
00006f40  74 20 6d 6f 64 65 20 28  6e 6f 6e 20 52 69 73 63  |t mode (non Risc|
00006f50  20 4f 53 29 0d 1e dc 3b  f4 20 50 61 72 61 6d 65  | OS)...;. Parame|
00006f60  74 65 72 20 69 73 20 61  6e 20 6f 70 74 69 6f 6e  |ter is an option|
00006f70  61 6c 20 63 6f 6e 74 72  6f 6c 20 73 74 72 69 6e  |al control strin|
00006f80  67 20 28 69 65 20 4e 4c  51 20 65 74 63 2e 29 0d  |g (ie NLQ etc.).|
00006f90  1e e6 3b f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..;. ***********|
00006fa0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00006fc0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 1e f0 29 dd 20  |**********...). |
00006fd0  f2 5f 50 72 69 6e 74 54  65 78 74 4d 6f 64 65 28  |._PrintTextMode(|
00006fe0  50 72 65 6c 6f 67 24 2c  49 6e 6c 61 79 54 79 70  |Prelog$,InlayTyp|
00006ff0  65 24 29 0d 1e fa 0b 20  20 20 ea 20 4c 25 0d 1f  |e$)....   . L%..|
00007000  04 20 20 20 20 e7 20 a4  5f 50 72 69 6e 74 65 72  |.    . ._Printer|
00007010  5f 4e 6f 74 4f 6e 4c 69  6e 65 20 8c 20 e1 0d 1f  |_NotOnLine . ...|
00007020  0e 18 20 20 20 c8 99 20  22 48 6f 75 72 67 6c 61  |..   .. "Hourgla|
00007030  73 73 5f 4f 6e 22 0d 1f  18 08 20 20 20 3a 0d 1f  |ss_On"....   :..|
00007040  22 3c 20 20 20 c8 99 20  22 4f 53 5f 42 79 74 65  |"<   .. "OS_Byte|
00007050  22 2c 33 2c 31 30 20 20  20 20 20 20 20 20 20 20  |",3,10          |
00007060  3a f4 20 53 43 52 45 45  4e 20 4f 46 46 2c 20 50  |:. SCREEN OFF, P|
00007070  52 49 4e 54 45 52 20 4f  4e 2e 0d 1f 2c 2f 20 20  |RINTER ON...,/  |
00007080  20 f2 5f 53 65 6e 64 44  61 74 61 28 50 72 65 6c  | ._SendData(Prel|
00007090  6f 67 24 29 20 20 20 20  20 20 3a f4 20 53 65 74  |og$)      :. Set|
000070a0  20 4e 4c 51 20 4d 6f 64  65 0d 1f 36 08 20 20 20  | NLQ Mode..6.   |
000070b0  3a 0d 1f 40 1f 20 20 20  f2 5f 44 6f 50 72 69 6e  |:..@.   ._DoPrin|
000070c0  74 69 6e 67 28 49 6e 6c  61 79 54 79 70 65 24 29  |ting(InlayType$)|
000070d0  0d 1f 4a 08 20 20 20 3a  0d 1f 54 1e 20 20 20 e3  |..J.   :..T.   .|
000070e0  20 4c 25 3d 30 20 b8 20  bb 28 46 6f 72 6d 4c 65  | L%=0 . .(FormLe|
000070f0  6e 67 74 68 24 29 0d 1f  5e 1e 20 20 20 20 20 20  |ngth$)..^.      |
00007100  f1 20 3a f4 20 73 68 6f  72 74 20 46 6f 72 6d 20  |. :. short Form |
00007110  46 65 65 64 0d 1f 68 08  20 20 20 ed 0d 1f 72 08  |Feed..h.   ...r.|
00007120  20 20 20 3a 0d 1f 7c 3c  20 20 20 c8 99 20 22 4f  |   :..|<   .. "O|
00007130  53 5f 42 79 74 65 22 2c  33 2c 30 30 20 20 20 20  |S_Byte",3,00    |
00007140  20 20 20 20 20 20 3a f4  20 53 43 52 45 45 4e 20  |      :. SCREEN |
00007150  4f 4e 2c 20 50 52 49 4e  54 45 52 20 4f 46 46 2e  |ON, PRINTER OFF.|
00007160  0d 1f 86 19 20 20 20 c8  99 20 22 48 6f 75 72 67  |....   .. "Hourg|
00007170  6c 61 73 73 5f 4f 66 66  22 0d 1f 90 05 e1 0d 1f  |lass_Off".......|
00007180  9a 05 3a 0d 1f a4 1c dd  20 a4 5f 43 65 6e 74 72  |..:..... ._Centr|
00007190  65 28 54 65 78 74 24 2c  57 69 64 74 68 25 29 0d  |e(Text$,Width%).|
000071a0  1f ae 2c 4e 65 77 54 65  78 74 24 3d c4 28 57 69  |..,NewText$=.(Wi|
000071b0  64 74 68 25 2d a9 28 54  65 78 74 24 29 29 2f 32  |dth%-.(Text$))/2|
000071c0  2c 22 20 22 29 2b 54 65  78 74 24 0d 1f b8 2e 4e  |," ")+Text$....N|
000071d0  65 77 54 65 78 74 24 3d  4e 65 77 54 65 78 74 24  |ewText$=NewText$|
000071e0  2b c4 57 69 64 74 68 25  2d a9 28 4e 65 77 54 65  |+.Width%-.(NewTe|
000071f0  78 74 24 29 2c 22 20 22  29 0d 1f c2 0d 3d 4e 65  |xt$)," ")....=Ne|
00007200  77 54 65 78 74 24 0d 1f  cc 05 3a 0d 1f d6 40 f4  |wText$....:...@.|
00007210  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00007220  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00007240  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 1f e0 2e f4  |***********.....|
00007250  20 46 75 6e 63 74 69 6f  6e 20 74 6f 20 63 68 65  | Function to che|
00007260  63 6b 20 69 66 20 70 72  69 6e 74 65 72 20 69 73  |ck if printer is|
00007270  20 6f 6e 20 6c 69 6e 65  2c 0d 1f ea 40 f4 20 49  | on line,...@. I|
00007280  66 20 70 72 69 6e 74 65  72 20 69 73 20 6e 6f 74  |f printer is not|
00007290  20 6f 6e 6c 69 6e 65 20  54 52 55 45 20 69 73 20  | online TRUE is |
000072a0  72 65 74 75 72 6e 65 64  2c 20 6f 74 68 65 72 77  |returned, otherw|
000072b0  69 73 65 20 46 41 4c 53  45 0d 1f f4 40 f4 20 2a  |ise FALSE...@. *|
000072c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000072f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 1f fe 19 dd 20 a4  |*********..... .|
00007300  5f 50 72 69 6e 74 65 72  5f 4e 6f 74 4f 6e 4c 69  |_Printer_NotOnLi|
00007310  6e 65 0d 20 08 18 20 20  20 c8 99 20 22 48 6f 75  |ne. ..   .. "Hou|
00007320  72 67 6c 61 73 73 5f 4f  6e 22 0d 20 12 08 20 20  |rglass_On". ..  |
00007330  20 f5 0d 20 1c 23 20 20  20 20 20 20 50 72 69 6e  | .. .#      Prin|
00007340  74 65 72 4f 6e 4c 69 6e  65 3d b9 20 3a 20 57 68  |terOnLine=. : Wh|
00007350  61 74 25 3d 30 0d 20 26  10 20 20 20 20 20 20 4e  |at%=0. &.      N|
00007360  6f 77 25 3d 91 0d 20 30  17 20 20 20 20 20 20 42  |ow%=.. 0.      B|
00007370  65 66 6f 72 65 25 3d 96  28 2d 34 29 0d 20 3a 2f  |efore%=.(-4). :/|
00007380  20 20 20 20 20 20 ef 20  32 2c 31 2c 30 2c 31 2c  |      . 2,1,0,1,|
00007390  30 2c 31 2c 30 2c 31 2c  30 2c 31 2c 30 2c 31 2c  |0,1,0,1,0,1,0,1,|
000073a0  30 2c 31 2c 30 2c 31 2c  30 2c 33 0d 20 44 21 20  |0,1,0,1,0,3. D! |
000073b0  20 20 20 20 20 4e 6f 77  25 3d 91 20 3a 20 f5 20  |     Now%=. : . |
000073c0  fd 20 91 3e 4e 6f 77 25  2b 31 30 30 0d 20 4e 16  |. .>Now%+100. N.|
000073d0  20 20 20 20 20 20 41 66  74 65 72 25 3d 96 28 2d  |      After%=.(-|
000073e0  34 29 0d 20 58 1d 20 20  20 20 20 20 e7 20 42 65  |4). X.      . Be|
000073f0  66 6f 72 65 25 3c 3e 41  66 74 65 72 25 20 8c 0d  |fore%<>After% ..|
00007400  20 62 1f 20 20 20 20 20  20 20 20 20 c8 99 20 22  | b.         .. "|
00007410  48 6f 75 72 67 6c 61 73  73 5f 4f 66 66 22 0d 20  |Hourglass_Off". |
00007420  6c 1c 20 20 20 20 20 20  20 20 20 50 72 69 6e 74  |l.         Print|
00007430  65 72 4f 6e 4c 69 6e 65  3d a3 0d 20 76 7a 20 20  |erOnLine=.. vz  |
00007440  20 20 20 20 20 20 20 24  42 6c 6f 63 6b 25 3d 22  |       $Block%="|
00007450  54 68 65 20 70 72 69 6e  74 65 72 20 69 73 20 6e  |The printer is n|
00007460  6f 74 20 72 65 73 70 6f  6e 64 69 6e 67 2e 20 50  |ot responding. P|
00007470  6c 65 61 73 65 20 63 68  65 63 6b 20 69 74 20 68  |lease check it h|
00007480  61 73 20 70 61 70 65 72  2c 20 69 74 20 69 73 20  |as paper, it is |
00007490  73 77 69 74 63 68 65 64  20 6f 6e 20 61 6e 64 20  |switched on and |
000074a0  6f 6e 2d 6c 69 6e 65 2e  20 54 72 79 20 61 67 61  |on-line. Try aga|
000074b0  69 6e 3f 22 0d 20 80 45  20 20 20 20 20 20 20 20  |in?". .E        |
000074c0  20 c8 99 20 22 57 69 6d  70 5f 52 65 70 6f 72 74  | .. "Wimp_Report|
000074d0  45 72 72 6f 72 22 2c 42  6c 6f 63 6b 25 2c 25 31  |Error",Block%,%1|
000074e0  30 30 31 31 2c 4d 79 54  61 73 6b 4e 61 6d 65 24  |0011,MyTaskName$|
000074f0  20 b8 20 2c 57 68 61 74  25 0d 20 8a 1e 20 20 20  | . ,What%. ..   |
00007500  20 20 20 20 20 20 c8 99  20 22 48 6f 75 72 67 6c  |      .. "Hourgl|
00007510  61 73 73 5f 4f 6e 22 0d  20 94 0b 20 20 20 20 20  |ass_On". ..     |
00007520  20 cd 0d 20 9e 34 20 20  20 fd 20 50 72 69 6e 74  | .. .4   . Print|
00007530  65 72 4f 6e 4c 69 6e 65  20 84 20 28 ac 20 50 72  |erOnLine . (. Pr|
00007540  69 6e 74 65 72 4f 6e 4c  69 6e 65 20 80 20 57 68  |interOnLine . Wh|
00007550  61 74 25 3d 32 29 0d 20  a8 19 20 20 20 c8 99 20  |at%=2). ..   .. |
00007560  22 48 6f 75 72 67 6c 61  73 73 5f 4f 66 66 22 0d  |"Hourglass_Off".|
00007570  20 b2 15 20 20 20 e7 20  57 68 61 74 25 3d 32 20  | ..   . What%=2 |
00007580  8c 20 3d b9 0d 20 bc 06  3d a3 0d 20 c6 05 3a 0d  |. =.. ..=.. ..:.|
00007590  20 d0 48 f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | .H. ***********|
000075a0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000075d0  2a 2a 2a 2a 2a 2a 2a 0d  20 da 48 f4 20 50 72 69  |*******. .H. Pri|
000075e0  6e 74 73 20 63 6f 6e 74  65 6e 74 73 20 6f 66 20  |nts contents of |
000075f0  49 63 6f 6e 28 49 63 6f  6e 25 29 20 72 69 67 68  |Icon(Icon%) righ|
00007600  74 20 6a 75 73 74 69 66  69 65 64 20 69 6e 20 61  |t justified in a|
00007610  20 66 69 65 6c 64 20 6f  66 20 43 68 61 72 73 0d  | field of Chars.|
00007620  20 e4 48 f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | .H. ***********|
00007630  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00007660  2a 2a 2a 2a 2a 2a 2a 0d  20 ee 21 dd 20 a4 5f 52  |*******. .!. ._R|
00007670  69 67 68 74 4a 75 73 74  69 66 79 28 49 63 6f 6e  |ightJustify(Icon|
00007680  25 2c 43 68 61 72 25 29  0d 20 f8 2a 20 20 20 54  |%,Char%). .*   T|
00007690  65 78 74 24 3d a4 5f 52  65 61 64 49 63 6f 6e 54  |ext$=._ReadIconT|
000076a0  65 78 74 28 4d 61 69 6e  25 2c 49 63 6f 6e 25 2c  |ext(Main%,Icon%,|
000076b0  a3 29 0d 21 02 1f 3d c4  43 68 61 72 25 2d a9 28  |.).!..=.Char%-.(|
000076c0  54 65 78 74 24 29 2c 22  20 22 29 2b 54 65 78 74  |Text$)," ")+Text|
000076d0  24 0d 21 0c 05 3a 0d 21  16 4c f4 20 2a 2a 2a 2a  |$.!..:.!.L. ****|
000076e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00007720  2a 2a 0d 21 20 4c f4 20  54 68 69 73 20 69 73 20  |**.! L. This is |
00007730  70 75 72 65 6c 79 20 66  6f 72 20 70 72 6f 67 72  |purely for progr|
00007740  61 6d 20 76 61 72 69 61  62 6c 65 73 20 61 6e 64  |am variables and|
00007750  20 69 73 20 6e 6f 74 68  69 6e 67 20 74 6f 20 64  | is nothing to d|
00007760  6f 20 77 69 74 68 20 52  69 73 63 5f 4f 53 0d 21  |o with Risc_OS.!|
00007770  2a 4c f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |*L. ************|
00007780  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000077b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 21 34 24 dd 20  |**********.!4$. |
000077c0  f2 5f 49 6e 69 74 69 61  6c 69 73 65 5f 50 72 6f  |._Initialise_Pro|
000077d0  67 72 61 6d 5f 56 61 72  69 61 62 6c 65 73 0d 21  |gram_Variables.!|
000077e0  3e 59 20 20 20 f4 20 49  6e 69 74 61 69 6c 69 73  |>Y   . Initailis|
000077f0  65 20 47 6c 6f 62 61 6c  20 76 61 72 69 61 62 6c  |e Global variabl|
00007800  65 73 20 66 69 72 73 74  2c 20 54 68 65 73 65 20  |es first, These |
00007810  61 72 65 20 75 73 61 62  6c 65 20 69 6e 20 61 6c  |are usable in al|
00007820  6c 20 52 49 53 43 4f 53  20 57 49 4d 50 20 70 72  |l RISCOS WIMP pr|
00007830  6f 67 72 61 6d 73 2e 0d  21 48 6d 20 20 20 60 77  |ograms..!Hm   `w|
00007840  68 69 74 65 20 3d 20 30  20 3a 20 60 67 72 65 79  |hite = 0 : `grey|
00007850  31 20 3d 20 31 20 3a 20  60 67 72 65 79 32 20 3d  |1 = 1 : `grey2 =|
00007860  20 32 20 3a 20 20 60 67  72 65 79 33 20 3d 20 33  | 2 :  `grey3 = 3|
00007870  20 3a 20 60 67 72 65 79  34 20 3d 20 34 20 3a 20  | : `grey4 = 4 : |
00007880  60 67 72 65 79 35 20 3d  20 35 20 3a 20 60 67 72  |`grey5 = 5 : `gr|
00007890  65 79 36 20 3d 20 36 20  3a 20 60 62 6c 61 63 6b  |ey6 = 6 : `black|
000078a0  20 3d 20 37 0d 21 52 80  20 20 20 60 64 61 72 6b  | = 7.!R.   `dark|
000078b0  5f 62 6c 75 65 20 3d 20  38 20 3a 20 60 79 65 6c  |_blue = 8 : `yel|
000078c0  6c 6f 77 20 3d 20 39 20  3a 20 60 67 72 65 65 6e  |low = 9 : `green|
000078d0  20 3d 20 31 30 20 3a 20  60 72 65 64 20 3d 20 31  | = 10 : `red = 1|
000078e0  31 20 3a 20 60 63 72 65  61 6d 20 3d 20 31 32 20  |1 : `cream = 12 |
000078f0  3a 20 60 61 72 6d 79 5f  67 72 65 65 6e 20 3d 20  |: `army_green = |
00007900  31 33 20 3a 20 60 6f 72  61 6e 67 65 20 3d 20 31  |13 : `orange = 1|
00007910  34 20 3a 20 60 6c 69 67  68 74 5f 62 6c 75 65 20  |4 : `light_blue |
00007920  3d 20 31 35 0d 21 5c 64  20 20 20 6d 73 67 5f 71  |= 15.!\d   msg_q|
00007930  75 69 74 25 20 3d 20 30  20 3a 20 6d 73 67 5f 64  |uit% = 0 : msg_d|
00007940  61 74 61 73 61 76 65 25  20 3d 20 31 20 3a 20 6d  |atasave% = 1 : m|
00007950  73 67 5f 64 73 61 76 65  41 43 4b 25 20 3d 20 32  |sg_dsaveACK% = 2|
00007960  20 3a 20 6d 73 67 5f 64  61 74 61 6c 6f 61 64 25  | : msg_dataload%|
00007970  20 3d 20 33 20 3a 20 6d  73 67 5f 64 6c 6f 61 64  | = 3 : msg_dload|
00007980  41 43 4b 25 20 3d 20 34  0d 21 66 71 20 20 20 6d  |ACK% = 4.!fq   m|
00007990  73 67 5f 52 41 4d 66 65  74 63 68 25 20 3d 20 36  |sg_RAMfetch% = 6|
000079a0  20 3a 20 6d 73 67 5f 52  41 4d 74 72 61 6e 73 25  | : msg_RAMtrans%|
000079b0  20 3d 20 37 20 3a 20 75  73 72 5f 6d 65 73 73 61  | = 7 : usr_messa|
000079c0  67 65 25 20 3d 20 31 37  20 3a 20 75 73 72 5f 6d  |ge% = 17 : usr_m|
000079d0  73 67 72 65 63 6f 72 64  65 64 25 20 3d 20 31 38  |sgrecorded% = 18|
000079e0  20 3a 20 6d 73 67 5f 74  61 73 6b 69 6e 69 74 25  | : msg_taskinit%|
000079f0  20 3d 20 26 34 30 30 43  32 0d 21 70 2e 20 20 20  | = &400C2.!p.   |
00007a00  6d 73 67 5f 68 65 6c 70  25 20 3d 20 26 35 30 32  |msg_help% = &502|
00007a10  20 3a 20 6d 73 67 5f 68  65 6c 70 41 43 4b 25 20  | : msg_helpACK% |
00007a20  20 3d 20 26 35 30 33 0d  21 7a 08 20 20 20 3a 0d  | = &503.!z.   :.|
00007a30  21 84 36 20 20 20 f4 20  56 61 72 69 61 62 6c 65  |!.6   . Variable|
00007a40  73 20 74 6f 20 64 6f 20  77 69 74 68 20 52 69 73  |s to do with Ris|
00007a50  63 4f 53 20 50 44 72 69  76 65 72 20 49 6e 74 65  |cOS PDriver Inte|
00007a60  72 46 61 63 65 0d 21 8e  20 20 20 20 42 6f 78 25  |rFace.!.    Box%|
00007a70  3d 42 6f 78 25 20 3a 20  e7 20 42 6f 78 25 3c 3e  |=Box% : . Box%<>|
00007a80  30 20 8c 20 e1 0d 21 98  1d 20 20 20 de 20 42 6f  |0 . ..!..   . Bo|
00007a90  78 25 20 31 36 20 3a 20  de 20 42 6f 78 32 25 20  |x% 16 : . Box2% |
00007aa0  31 36 0d 21 a2 37 20 20  20 53 63 61 6c 65 58 25  |16.!.7   ScaleX%|
00007ab0  3d 31 20 3a 20 53 63 61  6c 65 59 25 3d 31 20 20  |=1 : ScaleY%=1  |
00007ac0  20 3a f4 20 46 6f 72 20  46 75 74 75 72 65 20 45  | :. For Future E|
00007ad0  78 70 61 6e 73 69 6f 6e  3f 0d 21 ac 13 20 20 20  |xpansion?.!..   |
00007ae0  de 20 4d 61 74 72 69 78  25 20 31 36 0d 21 b6 30  |. Matrix% 16.!.0|
00007af0  20 20 20 4d 61 74 72 69  78 25 21 30 34 3d 30 20  |   Matrix%!04=0 |
00007b00  20 20 20 3a 20 4d 61 74  72 69 78 25 21 30 30 3d  |   : Matrix%!00=|
00007b10  32 5e 31 36 2a 53 63 61  6c 65 58 25 0d 21 c0 30  |2^16*ScaleX%.!.0|
00007b20  20 20 20 4d 61 74 72 69  78 25 21 30 38 3d 30 20  |   Matrix%!08=0 |
00007b30  20 20 20 3a 20 4d 61 74  72 69 78 25 21 31 32 3d  |   : Matrix%!12=|
00007b40  32 5e 31 36 2a 53 63 61  6c 65 59 25 0d 21 ca 12  |2^16*ScaleY%.!..|
00007b50  20 20 20 de 20 4f 72 69  67 69 6e 25 20 38 0d 21  |   . Origin% 8.!|
00007b60  d4 05 3a 0d 21 de 34 20  20 20 f4 20 47 6c 6f 62  |..:.!.4   . Glob|
00007b70  61 6c 20 76 61 72 69 61  62 6c 65 73 2c 20 73 70  |al variables, sp|
00007b80  65 63 69 66 69 63 20 74  6f 20 74 68 69 73 20 70  |ecific to this p|
00007b90  72 6f 67 72 61 6d 2e 0d  21 e8 4f 20 20 20 4c 6f  |rogram..!.O   Lo|
00007ba0  6e 67 45 71 75 61 6c 5f  38 24 20 20 20 20 3d 20  |ngEqual_8$    = |
00007bb0  22 7c 22 2b c4 34 34 2c  22 3d 22 29 2b 22 7c 22  |"|"+.44,"=")+"|"|
00007bc0  20 20 3a 20 4c 6f 6e 67  45 71 75 61 6c 5f 43 24  |  : LongEqual_C$|
00007bd0  20 20 20 20 3d 20 22 7c  22 2b c4 34 32 2c 22 3d  |    = "|"+.42,"=|
00007be0  22 29 2b 22 7c 22 0d 21  f2 4f 20 20 20 4c 6f 6e  |")+"|".!.O   Lon|
00007bf0  67 4d 69 6e 75 73 5f 38  24 20 20 20 20 3d 20 22  |gMinus_8$    = "|
00007c00  7c 22 2b c4 34 34 2c 22  2d 22 29 2b 22 7c 22 20  ||"+.44,"-")+"|" |
00007c10  20 3a 20 4c 6f 6e 67 4d  69 6e 75 73 5f 43 24 20  | : LongMinus_C$ |
00007c20  20 20 20 3d 20 22 7c 22  2b c4 34 32 2c 22 2d 22  |   = "|"+.42,"-"|
00007c30  29 2b 22 7c 22 0d 21 fc  4f 20 20 20 42 6c 61 6e  |)+"|".!.O   Blan|
00007c40  6b 4c 69 6e 65 5f 38 24  20 20 20 20 3d 20 22 7c  |kLine_8$    = "||
00007c50  22 2b c4 34 34 2c 22 20  22 29 2b 22 7c 22 20 20  |"+.44," ")+"|"  |
00007c60  3a 20 42 6c 61 6e 6b 4c  69 6e 65 5f 43 24 20 20  |: BlankLine_C$  |
00007c70  20 20 3d 20 22 7c 22 2b  c4 34 32 2c 22 20 22 29  |  = "|"+.42," ")|
00007c80  2b 22 7c 22 0d 22 06 1a  20 20 20 4e 65 77 25 20  |+"|"."..   New% |
00007c90  20 20 20 20 20 20 20 20  20 20 20 3d 20 b9 0d 22  |           = .."|
00007ca0  10 1a 20 20 20 4e 4c 51  25 20 20 20 20 20 20 20  |..   NLQ%       |
00007cb0  20 20 20 20 20 3d 20 b9  0d 22 1a 23 20 20 20 4e  |     = ..".#   N|
00007cc0  6c 71 4f 4e 24 20 20 20  20 20 20 20 20 20 20 3d  |lqON$          =|
00007cd0  20 22 32 37 2c 31 32 30  2c 31 22 0d 22 24 23 20  | "27,120,1"."$# |
00007ce0  20 20 4e 6c 71 4f 46 46  24 20 20 20 20 20 20 20  |  NlqOFF$       |
00007cf0  20 20 3d 20 22 32 37 2c  31 32 30 2c 30 22 0d 22  |  = "27,120,0"."|
00007d00  2e 45 20 20 20 45 6c 69  74 65 4f 4e 24 20 20 20  |.E   EliteON$   |
00007d10  20 20 20 20 20 3d 20 22  32 37 2c 37 37 22 20 20  |     = "27,77"  |
00007d20  20 20 20 20 20 3a 20 f4  20 53 65 74 20 31 32 20  |     : . Set 12 |
00007d30  43 68 61 72 61 63 74 65  72 73 20 70 65 72 20 49  |Characters per I|
00007d40  6e 63 68 0d 22 38 41 20  20 20 45 6d 70 68 61 73  |nch."8A   Emphas|
00007d50  69 73 65 64 4f 4e 24 20  20 20 3d 20 22 32 37 2c  |isedON$   = "27,|
00007d60  36 39 22 20 20 20 20 20  20 20 3a 20 f4 20 53 65  |69"       : . Se|
00007d70  6c 65 63 74 20 45 6d 70  68 61 73 69 73 65 64 20  |lect Emphasised |
00007d80  4d 6f 64 65 0d 22 42 43  20 20 20 45 6d 70 68 61  |Mode."BC   Empha|
00007d90  73 69 73 65 64 4f 46 46  24 20 20 3d 20 22 32 37  |sisedOFF$  = "27|
00007da0  2c 37 30 22 20 20 20 20  20 20 20 3a 20 f4 20 44  |,70"       : . D|
00007db0  65 73 65 6c 65 63 74 20  45 6d 70 68 61 73 69 73  |eselect Emphasis|
00007dc0  65 64 20 4d 6f 64 65 0d  22 4c 23 20 20 20 50 72  |ed Mode."L#   Pr|
00007dd0  69 6e 74 46 69 6c 65 24  20 20 20 20 20 20 3d 20  |intFile$      = |
00007de0  22 50 72 69 6e 74 4f 75  74 22 0d 22 56 44 20 20  |"PrintOut"."VD  |
00007df0  20 49 6e 6c 61 79 54 79  70 65 24 20 20 20 20 20  | InlayType$     |
00007e00  20 3d 20 22 56 69 64 65  6f 5f 38 22 20 20 20 20  | = "Video_8"    |
00007e10  20 3a 20 f4 20 44 65 66  61 75 6c 74 20 74 6f 20  | : . Default to |
00007e20  56 69 64 65 6f 5f 38 20  66 6f 72 6d 61 74 0d 22  |Video_8 format."|
00007e30  60 72 20 20 20 4c 61 74  65 73 74 56 65 72 25 20  |`r   LatestVer% |
00007e40  20 20 20 20 20 3d 20 34  20 20 20 20 20 20 20 20  |     = 4        |
00007e50  20 20 20 20 20 3a 20 f4  20 56 65 72 73 69 6f 6e  |     : . Version|
00007e60  20 4e 75 6d 62 65 72 20  4f 66 20 43 6f 6e 66 69  | Number Of Confi|
00007e70  67 20 46 69 6c 65 2e 20  43 68 61 6e 67 65 20 49  |g File. Change I|
00007e80  66 20 46 69 6c 65 20 49  73 20 4d 61 64 65 20 49  |f File Is Made I|
00007e90  6e 63 6f 6d 70 61 74 61  62 6c 65 2e 2e 2e 2e 2e  |ncompatable.....|
00007ea0  0d 22 6a 1a 20 20 20 4d  61 69 6e 57 69 6e 64 6f  |."j.   MainWindo|
00007eb0  77 4f 70 65 6e 25 20 3d  20 a3 0d 22 74 54 20 20  |wOpen% = .."tT  |
00007ec0  20 57 69 6e 64 6f 77 54  69 74 6c 65 24 20 20 20  | WindowTitle$   |
00007ed0  20 3d 20 22 20 56 69 64  65 6f 20 49 6e 6c 61 79  | = " Video Inlay|
00007ee0  20 50 72 69 6e 74 65 72  20 22 20 3a 20 44 61 74  | Printer " : Dat|
00007ef0  54 69 74 6c 65 24 20 3d  20 22 20 44 41 54 20 49  |Title$ = " DAT I|
00007f00  6e 6c 61 79 20 50 72 69  6e 74 65 72 20 22 0d 22  |nlay Printer "."|
00007f10  7e 1b 20 20 20 43 61 6e  74 47 6f 54 6f 4c 61 73  |~.   CantGoToLas|
00007f20  74 54 69 74 6c 65 25 3d  a3 0d 22 88 1b 20 20 20  |tTitle%=.."..   |
00007f30  4f 6c 64 4e 61 6d 65 24  20 20 20 20 20 20 20 20  |OldName$        |
00007f40  3d 20 22 22 0d 22 92 05  3a 0d 22 9c 4f 20 20 20  |= ""."..:.".O   |
00007f50  f4 20 47 69 76 65 20 6e  61 6d 65 73 20 74 6f 20  |. Give names to |
00007f60  73 6f 6d 65 20 6f 66 20  74 68 65 20 69 63 6f 6e  |some of the icon|
00007f70  73 20 65 74 63 2e 20 74  6f 20 6d 61 6b 65 20 74  |s etc. to make t|
00007f80  68 65 20 70 72 6f 67 72  61 6d 20 6d 6f 72 65 20  |he program more |
00007f90  72 65 61 64 61 62 6c 65  0d 22 a6 2a 20 20 20 4d  |readable.".*   M|
00007fa0  79 46 69 6c 65 54 79 70  65 25 3d 26 46 46 46 20  |yFileType%=&FFF |
00007fb0  3a 20 43 6f 6e 66 69 67  46 69 6c 65 25 3d 26 44  |: ConfigFile%=&D|
00007fc0  30 42 0d 22 b0 47 20 20  20 4d 79 46 69 6c 65 49  |0B.".G   MyFileI|
00007fd0  64 65 6e 74 69 66 69 65  72 24 3d 22 21 56 69 64  |dentifier$="!Vid|
00007fe0  65 6f 20 53 61 76 65 64  20 49 6e 6c 61 79 20 46  |eo Saved Inlay F|
00007ff0  69 6c 65 2e 20 20 20 a9  20 4d 2e 53 2e 42 72 69  |ile.   . M.S.Bri|
00008000  67 68 74 20 31 39 39 32  22 0d 22 ba 25 20 20 20  |ght 1992".".%   |
00008010  42 61 63 6b 47 72 6f 75  6e 64 25 3d 20 2d 31 20  |BackGround%= -1 |
00008020  3a 20 49 63 6f 6e 42 61  72 25 3d 20 2d 32 0d 22  |: IconBar%= -2."|
00008030  c4 5a 20 20 20 54 6f 70  53 65 74 49 6e 64 65 78  |.Z   TopSetIndex|
00008040  53 74 61 72 74 25 3d 30  30 20 3a 20 54 6f 70 53  |Start%=00 : TopS|
00008050  65 74 49 6e 64 65 78 45  6e 64 25 3d 32 32 20 3a  |etIndexEnd%=22 :|
00008060  20 54 6f 70 53 65 74 49  74 65 6d 53 74 61 72 74  | TopSetItemStart|
00008070  25 3d 30 31 20 3a 20 54  6f 70 53 65 74 49 74 65  |%=01 : TopSetIte|
00008080  6d 45 6e 64 25 3d 32 33  0d 22 ce 5a 20 20 20 42  |mEnd%=23.".Z   B|
00008090  74 6d 53 65 74 49 6e 64  65 78 53 74 61 72 74 25  |tmSetIndexStart%|
000080a0  3d 32 34 20 3a 20 42 74  6d 53 65 74 49 6e 64 65  |=24 : BtmSetInde|
000080b0  78 45 6e 64 25 3d 34 38  20 3a 20 42 74 6d 53 65  |xEnd%=48 : BtmSe|
000080c0  74 49 74 65 6d 53 74 61  72 74 25 3d 32 35 20 3a  |tItemStart%=25 :|
000080d0  20 42 74 6d 53 65 74 49  74 65 6d 45 6e 64 25 3d  | BtmSetItemEnd%=|
000080e0  34 39 0d 22 d8 2d 20 20  20 54 69 74 6c 65 46 69  |49.".-   TitleFi|
000080f0  72 73 74 4c 69 6e 65 25  3d 35 31 20 3a 20 54 69  |rstLine%=51 : Ti|
00008100  74 6c 65 4c 61 73 74 4c  69 6e 65 25 3d 35 33 0d  |tleLastLine%=53.|
00008110  22 e2 25 20 20 20 4e 75  6d 62 65 72 4f 66 4c 69  |".%   NumberOfLi|
00008120  6e 65 73 25 3d 35 36 20  3a 20 46 6f 72 6d 61 74  |nes%=56 : Format|
00008130  25 3d 36 36 0d 22 ec 37  20 20 20 54 61 70 65 4e  |%=66.".7   TapeN|
00008140  75 6d 62 65 72 25 3d 35  34 20 3a 20 55 73 65 72  |umber%=54 : User|
00008150  4e 6f 74 65 25 20 20 3d  36 37 20 3a 20 44 72 69  |Note%  =67 : Dri|
00008160  76 65 72 4e 61 6d 65 25  3d 35 39 0d 22 f6 37 20  |verName%=59.".7 |
00008170  20 20 50 72 69 6e 74 46  25 20 20 20 20 3d 36 35  |  PrintF%    =65|
00008180  20 3a 20 50 72 69 6e 74  4c 25 20 20 20 20 3d 36  | : PrintL%    =6|
00008190  34 20 3a 20 50 72 69 6e  74 44 25 20 20 20 20 3d  |4 : PrintD%    =|
000081a0  36 33 0d 23 00 37 20 20  20 4f 70 74 69 6f 6e 73  |63.#.7   Options|
000081b0  4f 4b 46 25 3d 32 38 20  3a 20 4f 70 74 69 6f 6e  |OKF%=28 : Option|
000081c0  73 4f 4b 4c 25 3d 32 36  20 3a 20 4f 70 74 69 6f  |sOKL%=26 : Optio|
000081d0  6e 73 4f 4b 44 25 3d 32  37 0d 23 0a 3c 20 20 20  |nsOKD%=27.#.<   |
000081e0  4e 6c 71 4f 4e 25 3d 31  32 20 3a 20 4e 6c 71 4f  |NlqON%=12 : NlqO|
000081f0  46 46 25 3d 31 36 20 3a  20 46 6f 72 6d 4c 65 6e  |FF%=16 : FormLen|
00008200  67 74 68 25 3d 32 30 20  3a 20 45 6c 69 74 65 4f  |gth%=20 : EliteO|
00008210  4e 25 3d 33 34 0d 23 14  46 20 20 20 53 61 76 65  |N%=34.#.F   Save|
00008220  4f 4b 46 25 20 20 20 3d  31 31 20 3a 20 53 61 76  |OKF%   =11 : Sav|
00008230  65 4f 4b 4c 25 20 20 20  20 3d 39 20 3a 20 53 61  |eOKL%    =9 : Sa|
00008240  76 65 4f 4b 44 25 20 20  20 3d 31 30 20 3a 20 53  |veOKD%   =10 : S|
00008250  61 76 65 49 63 6f 6e 25  3d 20 30 0d 23 1e 32 20  |aveIcon%= 0.#.2 |
00008260  20 20 54 69 63 6b 65 64  25 3d 25 31 20 3a 20 4e  |  Ticked%=%1 : N|
00008270  6f 74 54 69 63 6b 65 64  25 3d 30 20 3a 20 55 6e  |otTicked%=0 : Un|
00008280  64 65 72 6c 69 6e 65 64  25 3d 25 31 30 0d 23 28  |derlined%=%10.#(|
00008290  14 20 20 20 de 20 50 44  72 69 76 65 72 24 28 36  |.   . PDriver$(6|
000082a0  29 0d 23 32 36 20 20 20  50 44 72 69 76 65 72 24  |).#26   PDriver$|
000082b0  28 30 29 3d 22 4e 75 6c  6c 3a 22 20 3a 20 50 44  |(0)="Null:" : PD|
000082c0  72 69 76 65 72 24 28 31  29 3d 22 4e 4c 51 20 50  |river$(1)="NLQ P|
000082d0  72 69 6e 74 65 72 22 0d  23 3c 40 20 20 20 50 44  |rinter".#<@   PD|
000082e0  72 69 76 65 72 24 28 32  29 3d 22 44 72 61 66 74  |river$(2)="Draft|
000082f0  20 50 72 69 6e 74 65 72  22 20 3a 20 50 44 72 69  | Printer" : PDri|
00008300  76 65 72 24 28 36 29 3d  22 52 69 73 63 4f 53 20  |ver$(6)="RiscOS |
00008310  44 72 69 76 65 72 22 0d  23 46 15 20 20 20 f2 5f  |Driver".#F.   ._|
00008320  52 65 61 64 55 73 65 72  44 61 74 61 0d 23 50 19  |ReadUserData.#P.|
00008330  20 20 20 f2 5f 53 65 74  55 70 49 63 6f 6e 42 61  |   ._SetUpIconBa|
00008340  72 4d 65 6e 75 0d 23 5a  05 3a 0d 23 64 46 20 20  |rMenu.#Z.:.#dF  |
00008350  20 f4 20 47 65 74 20 53  57 49 20 4e 75 6d 62 65  | . Get SWI Numbe|
00008360  72 73 20 66 6f 72 20 66  6f 6e 74 20 63 61 6c 6c  |rs for font call|
00008370  73 20 74 6f 20 73 70 65  65 64 20 75 70 20 62 6f  |s to speed up bo|
00008380  74 74 6c 65 6e 65 63 6b  20 69 6e 20 63 6f 64 65  |ttleneck in code|
00008390  0d 23 6e 3b 20 20 20 c8  99 20 22 4f 53 5f 53 57  |.#n;   .. "OS_SW|
000083a0  49 4e 75 6d 62 65 72 46  72 6f 6d 53 74 72 69 6e  |INumberFromStrin|
000083b0  67 22 2c 2c 22 46 6f 6e  74 5f 46 69 6e 64 46 6f  |g",,"Font_FindFo|
000083c0  6e 74 22 20 b8 20 46 69  6e 64 25 0d 23 78 3b 20  |nt" . Find%.#x; |
000083d0  20 20 c8 99 20 22 4f 53  5f 53 57 49 4e 75 6d 62  |  .. "OS_SWINumb|
000083e0  65 72 46 72 6f 6d 53 74  72 69 6e 67 22 2c 2c 22  |erFromString",,"|
000083f0  46 6f 6e 74 5f 4c 6f 73  65 46 6f 6e 74 22 20 b8  |Font_LoseFont" .|
00008400  20 4c 6f 73 65 25 0d 23  82 39 20 20 20 c8 99 20  | Lose%.#.9   .. |
00008410  22 4f 53 5f 53 57 49 4e  75 6d 62 65 72 46 72 6f  |"OS_SWINumberFro|
00008420  6d 53 74 72 69 6e 67 22  2c 2c 22 46 6f 6e 74 5f  |mString",,"Font_|
00008430  53 65 74 46 6f 6e 74 22  20 b8 20 53 65 74 25 0d  |SetFont" . Set%.|
00008440  23 8c 39 20 20 20 c8 99  20 22 4f 53 5f 53 57 49  |#.9   .. "OS_SWI|
00008450  4e 75 6d 62 65 72 46 72  6f 6d 53 74 72 69 6e 67  |NumberFromString|
00008460  22 2c 2c 22 46 6f 6e 74  5f 50 61 69 6e 74 22 20  |",,"Font_Paint" |
00008470  b8 20 50 61 69 6e 74 25  0d 23 96 05 3a 0d 23 a0  |. Paint%.#..:.#.|
00008480  3a 20 20 20 42 61 73 65  46 6f 6e 74 24 3d a4 5f  |:   BaseFont$=._|
00008490  43 6f 6e 76 65 72 74 53  79 73 74 65 6d 54 6f 53  |ConvertSystemToS|
000084a0  74 72 69 6e 67 28 22 56  69 64 65 6f 24 42 61 73  |tring("Video$Bas|
000084b0  65 46 6f 6e 74 22 29 0d  23 aa 3a 20 20 20 45 64  |eFont").#.:   Ed|
000084c0  67 65 46 6f 6e 74 24 3d  a4 5f 43 6f 6e 76 65 72  |geFont$=._Conver|
000084d0  74 53 79 73 74 65 6d 54  6f 53 74 72 69 6e 67 28  |tSystemToString(|
000084e0  22 56 69 64 65 6f 24 45  64 67 65 46 6f 6e 74 22  |"Video$EdgeFont"|
000084f0  29 0d 23 b4 3a 20 20 20  42 6f 6c 64 46 6f 6e 74  |).#.:   BoldFont|
00008500  24 3d a4 5f 43 6f 6e 76  65 72 74 53 79 73 74 65  |$=._ConvertSyste|
00008510  6d 54 6f 53 74 72 69 6e  67 28 22 56 69 64 65 6f  |mToString("Video|
00008520  24 42 6f 6c 64 46 6f 6e  74 22 29 0d 23 be 39 20  |$BoldFont").#.9 |
00008530  20 20 54 61 70 65 4e 75  6d 62 65 72 24 3d a4 5f  |  TapeNumber$=._|
00008540  43 6f 6e 76 65 72 74 53  79 73 74 65 6d 54 6f 53  |ConvertSystemToS|
00008550  74 72 69 6e 67 28 22 54  61 70 65 24 50 72 65 66  |tring("Tape$Pref|
00008560  69 78 22 29 0d 23 c8 1b  20 20 20 e7 20 a9 28 54  |ix").#..   . .(T|
00008570  61 70 65 4e 75 6d 62 65  72 24 29 3e 33 20 8c 0d  |apeNumber$)>3 ..|
00008580  23 d2 22 20 20 20 20 20  20 43 6c 69 70 70 65 64  |#."      Clipped|
00008590  24 3d c0 54 61 70 65 4e  75 6d 62 65 72 24 2c 33  |$=.TapeNumber$,3|
000085a0  29 0d 23 dc 16 20 20 20  20 20 20 21 42 6c 6f 63  |).#..      !Bloc|
000085b0  6b 25 3d 39 30 39 30 0d  23 e6 75 20 20 20 20 20  |k%=9090.#.u     |
000085c0  20 45 72 72 6f 72 24 3d  22 54 61 70 65 24 50 72  | Error$="Tape$Pr|
000085d0  65 66 69 78 20 69 73 20  73 65 74 20 74 6f 20 6c  |efix is set to l|
000085e0  6f 6e 67 65 74 20 74 68  61 6e 20 33 20 63 68 61  |onget than 3 cha|
000085f0  72 61 63 74 65 72 73 2e  20 4f 4b 20 74 6f 20 63  |racters. OK to c|
00008600  6c 69 70 20 74 6f 20 22  2b 43 6c 69 70 70 65 64  |lip to "+Clipped|
00008610  24 2b 22 20 43 61 6e 63  65 6c 20 74 6f 20 61 62  |$+" Cancel to ab|
00008620  6f 72 74 20 70 72 6f 67  72 61 6d 22 0d 23 f0 21  |ort program".#.!|
00008630  20 20 20 20 20 20 24 28  42 6c 6f 63 6b 25 2b 34  |      $(Block%+4|
00008640  29 3d 45 72 72 6f 72 24  20 2b 20 bd 30 0d 23 fa  |)=Error$ + .0.#.|
00008650  42 20 20 20 20 20 20 c8  99 20 22 57 69 6d 70 5f  |B      .. "Wimp_|
00008660  52 65 70 6f 72 74 45 72  72 6f 72 22 2c 42 6c 6f  |ReportError",Blo|
00008670  63 6b 25 2c 25 30 31 31  2c 4d 79 54 61 73 6b 4e  |ck%,%011,MyTaskN|
00008680  61 6d 65 24 20 b8 20 2c  52 65 73 75 6c 74 25 0d  |ame$ . ,Result%.|
00008690  24 04 23 20 20 20 20 20  20 e7 20 52 65 73 75 6c  |$.#      . Resul|
000086a0  74 25 3d 32 20 8c 20 f2  5f 43 6c 6f 73 65 44 6f  |t%=2 . ._CloseDo|
000086b0  77 6e 0d 24 0e 24 20 20  20 20 20 20 54 61 70 65  |wn.$.$      Tape|
000086c0  4e 75 6d 62 65 72 24 3d  43 6c 69 70 70 65 64 24  |Number$=Clipped$|
000086d0  2b 22 20 30 30 22 0d 24  18 08 20 20 20 cc 0d 24  |+" 00".$..   ..$|
000086e0  22 27 20 20 20 20 20 20  54 61 70 65 4e 75 6d 62  |"'      TapeNumb|
000086f0  65 72 24 3d 54 61 70 65  4e 75 6d 62 65 72 24 2b  |er$=TapeNumber$+|
00008700  22 20 30 30 22 0d 24 2c  08 20 20 20 cd 0d 24 36  |" 00".$,.   ..$6|
00008710  05 e1 0d 24 40 05 3a 0d  24 4a 28 dd 20 a4 5f 43  |...$@.:.$J(. ._C|
00008720  6f 6e 76 65 72 74 53 79  73 74 65 6d 54 6f 53 74  |onvertSystemToSt|
00008730  72 69 6e 67 28 56 61 72  69 61 62 6c 65 24 29 0d  |ring(Variable$).|
00008740  24 54 0e 20 20 20 ea 20  4c 6f 6f 70 25 0d 24 5e  |$T.   . Loop%.$^|
00008750  31 20 20 20 e3 20 4c 6f  6f 70 25 3d 31 30 30 20  |1   . Loop%=100 |
00008760  b8 20 31 35 30 20 88 20  34 20 3a 20 42 6c 6f 63  |. 150 . 4 : Bloc|
00008770  6b 25 21 4c 6f 6f 70 25  3d 30 20 3a 20 ed 0d 24  |k%!Loop%=0 : ..$|
00008780  68 35 20 20 20 c8 99 20  22 4f 53 5f 52 65 61 64  |h5   .. "OS_Read|
00008790  56 61 72 56 61 6c 22 2c  56 61 72 69 61 62 6c 65  |VarVal",Variable|
000087a0  24 2c 42 6c 6f 63 6b 25  2b 31 30 30 2c 35 30 2c  |$,Block%+100,50,|
000087b0  30 2c 33 0d 24 72 1d 3d  a4 5f 52 65 61 64 53 74  |0,3.$r.=._ReadSt|
000087c0  72 69 6e 67 28 42 6c 6f  63 6b 25 2b 31 30 30 29  |ring(Block%+100)|
000087d0  0d 24 7c 08 20 20 20 3a  0d 24 86 53 f4 20 2a 2a  |.$|.   :.$.S. **|
000087e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00008820  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 24 90 51 f4  |***********.$.Q.|
00008830  20 53 74 6f 72 65 20 55  73 65 72 20 43 6f 6e 66  | Store User Conf|
00008840  69 67 75 72 61 62 6c 65  20 53 65 74 74 69 6e 67  |igurable Setting|
00008850  73 20 49 6e 20 43 6f 6e  66 69 67 20 46 69 6c 65  |s In Config File|
00008860  20 57 69 74 68 69 6e 20  21 56 69 64 65 6f 38 20  | Within !Video8 |
00008870  41 70 70 6c 69 63 61 74  69 6f 6e 2e 0d 24 9a 53  |Application..$.S|
00008880  f4 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |. **************|
00008890  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000088c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
000088d0  24 a4 15 dd 20 f2 5f 53  74 6f 72 65 55 73 65 72  |$... ._StoreUser|
000088e0  44 61 74 61 0d 24 ae 30  20 20 20 44 61 74 61 46  |Data.$.0   DataF|
000088f0  69 6c 65 25 3d ae 22 3c  56 69 64 65 6f 24 44 69  |ile%=."<Video$Di|
00008900  72 3e 2e 52 65 73 6f 75  72 63 65 73 2e 43 6f 6e  |r>.Resources.Con|
00008910  66 69 67 22 0d 24 b8 1e  20 20 20 d5 20 23 44 61  |fig".$..   . #Da|
00008920  74 61 46 69 6c 65 25 2c  4c 61 74 65 73 74 56 65  |taFile%,LatestVe|
00008930  72 25 0d 24 c2 35 20 20  20 f1 20 23 44 61 74 61  |r%.$.5   . #Data|
00008940  46 69 6c 65 25 2c a4 5f  52 65 61 64 49 63 6f 6e  |File%,._ReadIcon|
00008950  54 65 78 74 28 4f 70 74  69 6f 6e 73 25 2c 4e 6c  |Text(Options%,Nl|
00008960  71 4f 4e 25 2c a3 29 0d  24 cc 36 20 20 20 f1 20  |qON%,.).$.6   . |
00008970  23 44 61 74 61 46 69 6c  65 25 2c a4 5f 52 65 61  |#DataFile%,._Rea|
00008980  64 49 63 6f 6e 54 65 78  74 28 4f 70 74 69 6f 6e  |dIconText(Option|
00008990  73 25 2c 4e 6c 71 4f 46  46 25 2c a3 29 0d 24 d6  |s%,NlqOFF%,.).$.|
000089a0  3a 20 20 20 f1 20 23 44  61 74 61 46 69 6c 65 25  |:   . #DataFile%|
000089b0  2c a4 5f 52 65 61 64 49  63 6f 6e 54 65 78 74 28  |,._ReadIconText(|
000089c0  4f 70 74 69 6f 6e 73 25  2c 46 6f 72 6d 4c 65 6e  |Options%,FormLen|
000089d0  67 74 68 25 2c a3 29 0d  24 e0 37 20 20 20 f1 20  |gth%,.).$.7   . |
000089e0  23 44 61 74 61 46 69 6c  65 25 2c a4 5f 52 65 61  |#DataFile%,._Rea|
000089f0  64 49 63 6f 6e 54 65 78  74 28 4f 70 74 69 6f 6e  |dIconText(Option|
00008a00  73 25 2c 45 6c 69 74 65  4f 4e 25 2c a3 29 0d 24  |s%,EliteON%,.).$|
00008a10  ea 33 20 20 20 f1 20 23  44 61 74 61 46 69 6c 65  |.3   . #DataFile|
00008a20  25 2c a4 5f 52 65 61 64  49 63 6f 6e 54 65 78 74  |%,._ReadIconText|
00008a30  28 4d 61 69 6e 25 2c 46  6f 72 6d 61 74 25 2c a3  |(Main%,Format%,.|
00008a40  29 0d 24 f4 31 20 20 20  f1 20 23 44 61 74 61 46  |).$.1   . #DataF|
00008a50  69 6c 65 25 2c a4 5f 52  65 61 64 45 53 47 53 65  |ile%,._ReadESGSe|
00008a60  6c 65 63 74 65 64 28 4f  70 74 69 6f 6e 73 25 2c  |lected(Options%,|
00008a70  39 29 0d 24 fe 13 20 20  20 d9 20 23 44 61 74 61  |9).$..   . #Data|
00008a80  46 69 6c 65 25 0d 25 08  1f 20 20 20 c8 99 20 22  |File%.%..   .. "|
00008a90  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
00008aa0  2c 2c 2d 31 0d 25 12 05  e1 0d 25 1c 05 3a 0d 25  |,,-1.%....%..:.%|
00008ab0  26 52 f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |&R. ************|
00008ac0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00008b00  0d 25 30 50 f4 20 52 65  61 64 20 55 73 65 72 20  |.%0P. Read User |
00008b10  43 6f 6e 66 69 67 75 72  61 62 6c 65 20 53 65 74  |Configurable Set|
00008b20  74 69 6e 67 73 20 49 6e  20 43 6f 6e 66 69 67 20  |tings In Config |
00008b30  46 69 6c 65 20 57 69 74  68 69 6e 20 21 56 69 64  |File Within !Vid|
00008b40  65 6f 38 20 41 70 70 6c  69 63 61 74 69 6f 6e 2e  |eo8 Application.|
00008b50  0d 25 3a 52 f4 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.%:R. **********|
00008b60  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00008ba0  2a 2a 0d 25 44 14 dd 20  f2 5f 52 65 61 64 55 73  |**.%D.. ._ReadUs|
00008bb0  65 72 44 61 74 61 0d 25  4e 30 20 20 20 44 61 74  |erData.%N0   Dat|
00008bc0  61 46 69 6c 65 25 3d 8e  22 3c 56 69 64 65 6f 24  |aFile%=."<Video$|
00008bd0  44 69 72 3e 2e 52 65 73  6f 75 72 63 65 73 2e 43  |Dir>.Resources.C|
00008be0  6f 6e 66 69 67 22 0d 25  58 18 20 20 20 e7 20 44  |onfig".%X.   . D|
00008bf0  61 74 61 46 69 6c 65 25  3d 30 20 8c 20 e1 0d 25  |ataFile%=0 . ..%|
00008c00  62 17 20 20 20 56 65 72  25 3d 9a 23 44 61 74 61  |b.   Ver%=.#Data|
00008c10  46 69 6c 65 25 0d 25 6c  1a 20 20 20 e8 20 23 44  |File%.%l.   . #D|
00008c20  61 74 61 46 69 6c 65 25  2c 4e 6c 71 4f 4e 24 0d  |ataFile%,NlqON$.|
00008c30  25 76 1b 20 20 20 e8 20  23 44 61 74 61 46 69 6c  |%v.   . #DataFil|
00008c40  65 25 2c 4e 6c 71 4f 46  46 24 0d 25 80 1f 20 20  |e%,NlqOFF$.%..  |
00008c50  20 e8 20 23 44 61 74 61  46 69 6c 65 25 2c 46 6f  | . #DataFile%,Fo|
00008c60  72 6d 4c 65 6e 67 74 68  24 0d 25 8a 1c 20 20 20  |rmLength$.%..   |
00008c70  e8 20 23 44 61 74 61 46  69 6c 65 25 2c 45 6c 69  |. #DataFile%,Eli|
00008c80  74 65 4f 4e 24 0d 25 94  1e 20 20 20 e8 20 23 44  |teON$.%..   . #D|
00008c90  61 74 61 46 69 6c 65 25  2c 49 6e 6c 61 79 54 79  |ataFile%,InlayTy|
00008ca0  70 65 24 0d 25 9e 27 20  20 20 e8 20 23 44 61 74  |pe$.%.'   . #Dat|
00008cb0  61 46 69 6c 65 25 2c 53  65 6c 65 63 74 65 64 50  |aFile%,SelectedP|
00008cc0  72 69 6e 74 65 72 49 63  6f 6e 0d 25 a8 13 20 20  |rinterIcon.%..  |
00008cd0  20 d9 20 23 44 61 74 61  46 69 6c 65 25 0d 25 b2  | . #DataFile%.%.|
00008ce0  2d 20 20 20 e7 20 56 65  72 25 3c 4c 61 74 65 73  |-   . Ver%<Lates|
00008cf0  74 56 65 72 25 20 8c 20  85 20 31 30 30 30 2c 22  |tVer% . . 1000,"|
00008d00  43 6f 6e 66 69 67 45 72  72 22 0d 25 bc 5b 20 20  |ConfigErr".%.[  |
00008d10  20 e7 20 53 65 6c 65 63  74 65 64 50 72 69 6e 74  | . SelectedPrint|
00008d20  65 72 49 63 6f 6e 3d 31  35 20 8c 20 53 65 6c 65  |erIcon=15 . Sele|
00008d30  63 74 65 64 50 72 69 6e  74 65 72 49 63 6f 6e 3d  |ctedPrinterIcon=|
00008d40  35 20 3a 20 f4 20 46 75  64 67 65 20 66 6f 72 20  |5 : . Fudge for |
00008d50  74 65 6d 70 6c 61 74 65  20 63 68 61 6e 67 65 20  |template change |
00008d60  2d 20 53 74 75 0d 25 c6  2d 20 20 20 f2 5f 53 65  |- Stu.%.-   ._Se|
00008d70  74 49 63 6f 6e 54 65 78  74 28 32 30 2c 4f 70 74  |tIconText(20,Opt|
00008d80  69 6f 6e 73 25 2c 46 6f  72 6d 4c 65 6e 67 74 68  |ions%,FormLength|
00008d90  24 29 0d 25 d0 1c 20 20  20 f2 5f 52 65 64 72 61  |$).%..   ._Redra|
00008da0  77 28 4f 70 74 69 6f 6e  73 25 2c 32 30 29 0d 25  |w(Options%,20).%|
00008db0  da 28 20 20 20 f2 5f 53  65 74 49 63 6f 6e 54 65  |.(   ._SetIconTe|
00008dc0  78 74 28 31 32 2c 4f 70  74 69 6f 6e 73 25 2c 4e  |xt(12,Options%,N|
00008dd0  6c 71 4f 4e 24 29 0d 25  e4 1c 20 20 20 f2 5f 52  |lqON$).%..   ._R|
00008de0  65 64 72 61 77 28 4f 70  74 69 6f 6e 73 25 2c 31  |edraw(Options%,1|
00008df0  32 29 0d 25 ee 29 20 20  20 f2 5f 53 65 74 49 63  |2).%.)   ._SetIc|
00008e00  6f 6e 54 65 78 74 28 31  36 2c 4f 70 74 69 6f 6e  |onText(16,Option|
00008e10  73 25 2c 4e 6c 71 4f 46  46 24 29 0d 25 f8 1c 20  |s%,NlqOFF$).%.. |
00008e20  20 20 f2 5f 52 65 64 72  61 77 28 4f 70 74 69 6f  |  ._Redraw(Optio|
00008e30  6e 73 25 2c 31 36 29 0d  26 02 47 20 20 20 f2 5f  |ns%,16).&.G   ._|
00008e40  53 65 74 49 63 6f 6e 54  65 78 74 28 44 72 69 76  |SetIconText(Driv|
00008e50  65 72 4e 61 6d 65 25 2c  4d 61 69 6e 25 2c 50 44  |erName%,Main%,PD|
00008e60  72 69 76 65 72 24 28 53  65 6c 65 63 74 65 64 50  |river$(SelectedP|
00008e70  72 69 6e 74 65 72 49 63  6f 6e 2b 31 29 29 0d 26  |rinterIcon+1)).&|
00008e80  0c 22 20 20 20 f2 5f 52  65 64 72 61 77 28 4d 61  |."   ._Redraw(Ma|
00008e90  69 6e 25 2c 44 72 69 76  65 72 4e 61 6d 65 25 29  |in%,DriverName%)|
00008ea0  0d 26 16 2e 20 20 20 f2  5f 53 65 74 49 63 6f 6e  |.&..   ._SetIcon|
00008eb0  54 65 78 74 28 46 6f 72  6d 61 74 25 2c 4d 61 69  |Text(Format%,Mai|
00008ec0  6e 25 2c 49 6e 6c 61 79  54 79 70 65 24 29 0d 26  |n%,InlayType$).&|
00008ed0  20 1e 20 20 20 f2 5f 52  65 64 72 61 77 28 4d 61  | .   ._Redraw(Ma|
00008ee0  69 6e 25 2c 46 6f 72 6d  61 74 25 29 0d 26 2a 35  |in%,Format%).&*5|
00008ef0  20 20 20 f2 5f 53 65 6c  65 63 74 49 63 6f 6e 28  |   ._SelectIcon(|
00008f00  4f 70 74 69 6f 6e 73 25  2c 30 2c 53 65 6c 65 63  |Options%,0,Selec|
00008f10  74 65 64 50 72 69 6e 74  65 72 49 63 6f 6e 3d 30  |tedPrinterIcon=0|
00008f20  29 0d 26 34 35 20 20 20  f2 5f 53 65 6c 65 63 74  |).&45   ._Select|
00008f30  49 63 6f 6e 28 4f 70 74  69 6f 6e 73 25 2c 31 2c  |Icon(Options%,1,|
00008f40  53 65 6c 65 63 74 65 64  50 72 69 6e 74 65 72 49  |SelectedPrinterI|
00008f50  63 6f 6e 3d 31 29 0d 26  3e 35 20 20 20 f2 5f 53  |con=1).&>5   ._S|
00008f60  65 6c 65 63 74 49 63 6f  6e 28 4f 70 74 69 6f 6e  |electIcon(Option|
00008f70  73 25 2c 35 2c 53 65 6c  65 63 74 65 64 50 72 69  |s%,5,SelectedPri|
00008f80  6e 74 65 72 49 63 6f 6e  3d 35 29 0d 26 48 05 e1  |nterIcon=5).&H..|
00008f90  0d 26 52 05 3a 0d 26 5c  27 dd 20 f2 5f 53 65 6c  |.&R.:.&\'. ._Sel|
00008fa0  65 63 74 49 63 6f 6e 28  57 69 6e 64 6f 77 25 2c  |ectIcon(Window%,|
00008fb0  49 63 6f 6e 25 2c 46 6c  61 67 25 29 0d 26 66 17  |Icon%,Flag%).&f.|
00008fc0  20 20 20 42 6c 6f 63 6b  25 21 30 3d 57 69 6e 64  |   Block%!0=Wind|
00008fd0  6f 77 25 0d 26 70 15 20  20 20 42 6c 6f 63 6b 25  |ow%.&p.   Block%|
00008fe0  21 34 3d 49 63 6f 6e 25  0d 26 7a 1e 20 20 20 42  |!4=Icon%.&z.   B|
00008ff0  6c 6f 63 6b 25 21 38 3d  28 2d 31 2a 46 6c 61 67  |lock%!8=(-1*Flag|
00009000  25 29 3c 3c 32 31 0d 26  84 16 20 20 20 42 6c 6f  |%)<<21.&..   Blo|
00009010  63 6b 25 21 31 32 3d 31  3c 3c 32 31 0d 26 8e 25  |ck%!12=1<<21.&.%|
00009020  20 20 20 c8 99 20 22 57  69 6d 70 5f 53 65 74 49  |   .. "Wimp_SetI|
00009030  63 6f 6e 53 74 61 74 65  22 2c 2c 42 6c 6f 63 6b  |conState",,Block|
00009040  25 0d 26 98 05 e1 0d 26  a2 05 3a 0d 26 ac 2a dd  |%.&....&..:.&.*.|
00009050  20 f2 5f 4e 6f 74 53 65  6c 65 63 74 61 62 6c 65  | ._NotSelectable|
00009060  28 57 69 6e 64 6f 77 25  2c 49 63 6f 6e 25 2c 46  |(Window%,Icon%,F|
00009070  6c 61 67 25 29 0d 26 b6  17 20 20 20 42 6c 6f 63  |lag%).&..   Bloc|
00009080  6b 25 21 30 3d 57 69 6e  64 6f 77 25 0d 26 c0 15  |k%!0=Window%.&..|
00009090  20 20 20 42 6c 6f 63 6b  25 21 34 3d 49 63 6f 6e  |   Block%!4=Icon|
000090a0  25 0d 26 ca 27 20 20 20  f4 20 4d 61 6b 65 20 75  |%.&.'   . Make u|
000090b0  6e 73 65 6c 65 63 74 61  62 6c 65 20 2f 20 53 65  |nselectable / Se|
000090c0  6c 65 63 74 61 62 6c 65  0d 26 d4 1e 20 20 20 42  |lectable.&..   B|
000090d0  6c 6f 63 6b 25 21 38 3d  28 2d 31 2a 46 6c 61 67  |lock%!8=(-1*Flag|
000090e0  25 29 3c 3c 32 32 0d 26  de 16 20 20 20 42 6c 6f  |%)<<22.&..   Blo|
000090f0  63 6b 25 21 31 32 3d 31  3c 3c 32 32 0d 26 e8 25  |ck%!12=1<<22.&.%|
00009100  20 20 20 c8 99 20 22 57  69 6d 70 5f 53 65 74 49  |   .. "Wimp_SetI|
00009110  63 6f 6e 53 74 61 74 65  22 2c 2c 42 6c 6f 63 6b  |conState",,Block|
00009120  25 0d 26 f2 25 20 20 20  f4 20 4d 61 6b 65 20 6e  |%.&.%   . Make n|
00009130  6f 6e 2d 77 72 69 74 61  62 6c 65 20 2f 20 57 72  |on-writable / Wr|
00009140  69 74 61 62 6c 65 0d 26  fc 3a 20 20 20 e7 20 46  |itable.&.:   . F|
00009150  6c 61 67 25 3d b9 20 8c  20 42 6c 6f 63 6b 25 21  |lag%=. . Block%!|
00009160  38 3d 25 30 30 30 30 3c  3c 31 32 20 8b 20 42 6c  |8=%0000<<12 . Bl|
00009170  6f 63 6b 25 21 38 3d 25  31 31 31 31 3c 3c 31 32  |ock%!8=%1111<<12|
00009180  0d 27 06 1a 20 20 20 42  6c 6f 63 6b 25 21 31 32  |.'..   Block%!12|
00009190  3d 25 31 31 31 31 3c 3c  31 32 0d 27 10 25 20 20  |=%1111<<12.'.%  |
000091a0  20 c8 99 20 22 57 69 6d  70 5f 53 65 74 49 63 6f  | .. "Wimp_SetIco|
000091b0  6e 53 74 61 74 65 22 2c  2c 42 6c 6f 63 6b 25 0d  |nState",,Block%.|
000091c0  27 1a 1f 20 20 20 43 61  6e 74 47 6f 54 6f 4c 61  |'..   CantGoToLa|
000091d0  73 74 54 69 74 6c 65 25  3d 46 6c 61 67 25 0d 27  |stTitle%=Flag%.'|
000091e0  24 48 20 20 20 e7 20 46  6c 61 67 25 20 80 20 4d  |$H   . Flag% . M|
000091f0  61 69 6e 57 69 6e 64 6f  77 4f 70 65 6e 25 20 8c  |ainWindowOpen% .|
00009200  20 f2 5f 53 65 74 43 61  72 65 74 50 6f 73 69 74  | ._SetCaretPosit|
00009210  69 6f 6e 28 54 69 74 6c  65 46 69 72 73 74 4c 69  |ion(TitleFirstLi|
00009220  6e 65 25 2c 30 29 0d 27  2e 05 e1 0d 27 38 05 3a  |ne%,0).'....'8.:|
00009230  0d 27 42 5e f4 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.'B^. **********|
00009240  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00009280  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 27  |**************.'|
00009290  4c 5e f4 20 54 68 69 73  20 54 61 6b 65 73 20 41  |L^. This Takes A|
000092a0  20 27 4e 75 6d 65 72 69  63 27 20 53 74 72 69 6e  | 'Numeric' Strin|
000092b0  67 2c 20 42 72 65 61 6b  73 20 69 74 20 44 6f 77  |g, Breaks it Dow|
000092c0  6e 2c 20 41 6e 64 20 53  65 6e 64 73 20 54 68 65  |n, And Sends The|
000092d0  20 56 61 6c 75 65 20 54  6f 20 54 68 65 20 4f 75  | Value To The Ou|
000092e0  74 70 75 74 20 44 65 76  69 63 65 2e 0d 27 56 5e  |tput Device..'V^|
000092f0  f4 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |. **************|
00009300  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00009340  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 27 60 17 dd 20  |**********.'`.. |
00009350  f2 5f 53 65 6e 64 44 61  74 61 28 44 61 74 61 24  |._SendData(Data$|
00009360  29 0d 27 6a 17 20 20 20  ea 20 46 69 6e 69 73 68  |).'j.   . Finish|
00009370  25 2c 43 6f 75 6e 74 25  0d 27 74 22 20 20 20 43  |%,Count%.'t"   C|
00009380  6f 75 6e 74 25 3d 30 20  3a 20 46 69 6e 69 73 68  |ount%=0 : Finish|
00009390  25 3d a9 28 44 61 74 61  24 29 0d 27 7e 47 20 20  |%=.(Data$).'~G  |
000093a0  20 44 61 74 61 24 3d 44  61 74 61 24 2b 22 2c 22  | Data$=Data$+","|
000093b0  20 3a 20 f4 20 54 68 69  73 20 69 73 20 63 68 65  | : . This is che|
000093c0  61 74 69 6e 67 2e 2e 2e  53 65 65 20 57 48 49 4c  |ating...See WHIL|
000093d0  45 20 43 6f 6e 64 69 74  69 6f 6e 21 21 21 21 21  |E Condition!!!!!|
000093e0  21 0d 27 88 08 20 20 20  f5 0d 27 92 11 20 20 20  |!.'..   ..'..   |
000093f0  20 20 20 53 75 62 24 3d  22 22 0d 27 9c 14 20 20  |   Sub$="".'..  |
00009400  20 20 20 20 50 6f 69 6e  74 65 72 25 3d 31 0d 27  |    Pointer%=1.'|
00009410  a6 24 20 20 20 20 20 20  c8 95 20 c1 44 61 74 61  |.$      .. .Data|
00009420  24 2c 50 6f 69 6e 74 65  72 25 2c 31 29 3c 3e 22  |$,Pointer%,1)<>"|
00009430  2c 22 0d 27 b0 29 20 20  20 20 20 20 20 20 20 53  |,".'.)         S|
00009440  75 62 24 3d 53 75 62 24  2b c1 44 61 74 61 24 2c  |ub$=Sub$+.Data$,|
00009450  50 6f 69 6e 74 65 72 25  2c 31 29 0d 27 ba 18 20  |Pointer%,1).'.. |
00009460  20 20 20 20 20 20 20 20  50 6f 69 6e 74 65 72 25  |        Pointer%|
00009470  2b 3d 31 0d 27 c4 0b 20  20 20 20 20 20 ce 0d 27  |+=1.'..      ..'|
00009480  ce 22 20 20 20 20 20 20  44 61 74 61 24 3d c1 44  |."      Data$=.D|
00009490  61 74 61 24 2c 50 6f 69  6e 74 65 72 25 2b 31 29  |ata$,Pointer%+1)|
000094a0  0d 27 d8 17 20 20 20 20  20 20 f1 20 bd 28 bb 28  |.'..      . .(.(|
000094b0  53 75 62 24 29 29 3b 0d  27 e2 21 20 20 20 20 20  |Sub$));.'.!     |
000094c0  20 43 6f 75 6e 74 25 3d  43 6f 75 6e 74 25 2b a9  | Count%=Count%+.|
000094d0  28 53 75 62 24 29 2b 31  0d 27 ec 18 20 20 20 fd  |(Sub$)+1.'..   .|
000094e0  20 43 6f 75 6e 74 25 3e  3d 46 69 6e 69 73 68 25  | Count%>=Finish%|
000094f0  0d 27 f6 05 e1 0d 28 00  05 3a 0d 28 0a 67 2a 2a  |.'....(..:.(.g**|
00009500  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00009560  2a 0d 28 14 65 f4 20 53  65 74 73 20 54 68 65 20  |*.(.e. Sets The |
00009570  53 61 76 65 20 4e 61 6d  65 20 49 6e 20 54 68 65  |Save Name In The|
00009580  20 53 61 76 65 20 49 63  6f 6e 20 54 6f 20 54 68  | Save Icon To Th|
00009590  65 20 46 75 6c 6c 20 50  61 74 68 6e 61 6d 65 20  |e Full Pathname |
000095a0  4f 66 20 54 68 65 20 4c  6f 61 64 65 64 20 46 69  |Of The Loaded Fi|
000095b0  6c 65 2c 20 41 6e 64 20  54 68 65 6e 20 4c 6f 61  |le, And Then Loa|
000095c0  64 73 20 49 74 2e 0d 28  1e 67 2a 2a 2a 2a 2a 2a  |ds It..(.g******|
000095d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00009620  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 28 28  |*************.((|
00009630  24 dd 20 f2 5f 44 6f 41  63 74 75 61 6c 4c 6f 61  |$. ._DoActualLoa|
00009640  64 54 68 69 6e 67 28 46  69 6c 65 4e 61 6d 65 24  |dThing(FileName$|
00009650  29 0d 28 32 27 20 20 20  f2 5f 53 65 74 49 63 6f  |).(2'   ._SetIco|
00009660  6e 54 65 78 74 28 34 2c  53 61 76 65 25 2c 46 69  |nText(4,Save%,Fi|
00009670  6c 65 4e 61 6d 65 24 29  0d 28 3c 1c 20 20 20 f2  |leName$).(<.   .|
00009680  5f 4c 6f 61 64 44 61 74  61 28 46 69 6c 65 4e 61  |_LoadData(FileNa|
00009690  6d 65 24 29 0d 28 46 1a  20 20 20 f2 5f 4f 70 65  |me$).(F.   ._Ope|
000096a0  6e 4d 61 69 6e 57 69 6e  64 6f 77 28 a3 29 0d 28  |nMainWindow(.).(|
000096b0  50 05 e1 0d 28 5a 05 3a  0d 28 64 44 2a 2a 2a 2a  |P...(Z.:.(dD****|
000096c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000096f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 28 6e 42  |************.(nB|
00009700  f4 20 49 6e 69 74 69 61  6c 69 73 65 73 20 55 73  |. Initialises Us|
00009710  65 72 20 53 70 72 69 74  65 20 41 72 65 61 2c 20  |er Sprite Area, |
00009720  61 6e 64 20 4c 6f 61 64  73 20 73 70 72 69 74 65  |and Loads sprite|
00009730  20 66 69 6c 65 20 69 6e  74 6f 20 69 74 2e 0d 28  | file into it..(|
00009740  78 44 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |xD**************|
00009750  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00009780  2a 2a 0d 28 82 1a dd 20  f2 5f 49 6e 69 74 69 61  |**.(... ._Initia|
00009790  6c 69 73 65 5f 53 70 72  69 74 65 73 0d 28 8c 2e  |lise_Sprites.(..|
000097a0  20 20 20 54 65 6d 70 25  3d ad 20 22 3c 56 69 64  |   Temp%=. "<Vid|
000097b0  65 6f 24 44 69 72 3e 2e  52 65 73 6f 75 72 63 65  |eo$Dir>.Resource|
000097c0  73 2e 53 70 72 69 74 65  73 22 0d 28 96 1e 20 20  |s.Sprites".(..  |
000097d0  20 46 69 6c 65 4c 65 6e  67 74 68 25 3d 34 2b 28  | FileLength%=4+(|
000097e0  a2 23 54 65 6d 70 25 29  0d 28 a0 0f 20 20 20 d9  |.#Temp%).(..   .|
000097f0  20 23 54 65 6d 70 25 0d  28 aa 20 20 20 20 de 20  | #Temp%.(.    . |
00009800  53 70 72 69 74 65 41 72  65 61 25 20 46 69 6c 65  |SpriteArea% File|
00009810  4c 65 6e 67 74 68 25 0d  28 b4 20 20 20 20 53 70  |Length%.(.    Sp|
00009820  72 69 74 65 41 72 65 61  25 21 30 3d 46 69 6c 65  |riteArea%!0=File|
00009830  4c 65 6e 67 74 68 25 0d  28 be 16 20 20 20 53 70  |Length%.(..   Sp|
00009840  72 69 74 65 41 72 65 61  25 21 34 3d 30 0d 28 c8  |riteArea%!4=0.(.|
00009850  17 20 20 20 53 70 72 69  74 65 41 72 65 61 25 21  |.   SpriteArea%!|
00009860  38 3d 31 36 0d 28 d2 18  20 20 20 53 70 72 69 74  |8=16.(..   Sprit|
00009870  65 41 72 65 61 25 21 31  32 3d 31 36 0d 28 dc 48  |eArea%!12=16.(.H|
00009880  20 20 20 c8 99 20 22 4f  53 5f 53 70 72 69 74 65  |   .. "OS_Sprite|
00009890  4f 70 22 2c 26 31 30 41  2c 53 70 72 69 74 65 41  |Op",&10A,SpriteA|
000098a0  72 65 61 25 2c 22 3c 56  69 64 65 6f 24 44 69 72  |rea%,"<Video$Dir|
000098b0  3e 2e 52 65 73 6f 75 72  63 65 73 2e 53 70 72 69  |>.Resources.Spri|
000098c0  74 65 73 22 0d 28 e6 05  e1 0d 28 f0 05 3a 0d 28  |tes".(....(..:.(|
000098d0  fa 2f 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |./**************|
000098e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
000098f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 29 04  |*************.).|
00009900  2d f4 20 43 6f 6d 6d 75  6e 69 63 61 74 65 20 77  |-. Communicate w|
00009910  69 74 68 20 52 69 73 63  4f 53 20 50 72 69 6e 74  |ith RiscOS Print|
00009920  65 72 20 44 72 69 76 65  72 2e 0d 29 0e 2f 2a 2a  |er Driver..)./**|
00009930  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00009950  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 29 18 25 dd 20 f2  |*********.).%. .|
00009960  5f 50 72 69 6e 74 47 72  61 70 68 69 63 73 4d 6f  |_PrintGraphicsMo|
00009970  64 65 28 49 6e 6c 61 79  54 79 70 65 24 29 0d 29  |de(InlayType$).)|
00009980  22 34 20 20 20 f4 20 43  68 65 63 6b 20 46 6f 72  |"4   . Check For|
00009990  20 50 72 65 73 65 6e 63  65 20 4f 66 20 50 72 69  | Presence Of Pri|
000099a0  6e 74 65 72 44 72 69 76  65 72 20 4d 6f 64 75 6c  |nterDriver Modul|
000099b0  65 73 0d 29 2c 3c 20 20  20 c8 99 20 22 58 4f 53  |es.),<   .. "XOS|
000099c0  5f 53 57 49 4e 75 6d 62  65 72 46 72 6f 6d 53 74  |_SWINumberFromSt|
000099d0  72 69 6e 67 22 2c 2c 22  50 44 72 69 76 65 72 5f  |ring",,"PDriver_|
000099e0  49 6e 66 6f 22 20 b8 20  3b 46 6c 61 67 25 0d 29  |Info" . ;Flag%.)|
000099f0  36 4a 20 20 20 e7 20 46  6c 61 67 25 20 80 20 31  |6J   . Flag% . 1|
00009a00  20 8c 20 85 20 32 30 30  31 2c 22 4e 6f 20 50 72  | . . 2001,"No Pr|
00009a10  69 6e 74 65 72 20 44 72  69 76 65 72 2c 20 50 6c  |inter Driver, Pl|
00009a20  65 61 73 65 20 4c 6f 61  64 20 61 6e 64 20 54 72  |ease Load and Tr|
00009a30  79 20 41 67 61 69 6e 22  0d 29 40 05 3a 0d 29 4a  |y Again".)@.:.)J|
00009a40  1b 20 20 20 ea 20 50 72  69 6e 74 46 69 6c 65 25  |.   . PrintFile%|
00009a50  2c 4f 6c 64 4a 6f 62 25  0d 29 54 1d 20 20 20 ea  |,OldJob%.)T.   .|
00009a60  20 57 68 69 74 65 25 2c  20 50 61 67 65 54 6f 50  | White%, PageToP|
00009a70  72 69 6e 74 25 0d 29 5e  29 20 20 20 57 68 69 74  |rint%.)^)   Whit|
00009a80  65 25 3d 26 46 46 46 46  46 46 30 30 20 3a 20 45  |e%=&FFFFFF00 : E|
00009a90  25 3d 30 20 3a 20 55 73  61 67 65 25 3d 30 0d 29  |%=0 : Usage%=0.)|
00009aa0  68 1d 20 20 20 50 72 69  6e 74 46 69 6c 65 25 3d  |h.   PrintFile%=|
00009ab0  ae 22 70 72 69 6e 74 65  72 3a 22 0d 29 72 0a 20  |."printer:".)r. |
00009ac0  20 20 ea 20 85 0d 29 7c  4e 20 20 20 ee 20 85 20  |  . ..)|N   . . |
00009ad0  ea 20 3a 20 f7 20 85 20  3a 20 46 25 3d 9e 20 3a  |. : . . : F%=. :|
00009ae0  20 46 24 3d f6 24 20 3a  20 d9 20 23 50 72 69 6e  | F$=.$ : . #Prin|
00009af0  74 46 69 6c 65 25 20 3a  20 e7 20 45 25 3d 30 20  |tFile% : . E%=0 |
00009b00  8c 20 85 20 46 25 2c 46  24 20 8b 20 85 20 45 25  |. . F%,F$ . . E%|
00009b10  2c 46 24 0d 29 86 45 20  20 20 c8 99 20 22 50 44  |,F$.).E   .. "PD|
00009b20  72 69 76 65 72 5f 53 65  6c 65 63 74 4a 6f 62 22  |river_SelectJob"|
00009b30  2c 50 72 69 6e 74 46 69  6c 65 25 2c 22 42 6f 66  |,PrintFile%,"Bof|
00009b40  66 69 6e 20 50 72 69 6e  74 20 4a 6f 62 22 20 b8  |fin Print Job" .|
00009b50  20 4f 6c 64 4a 6f 62 25  0d 29 90 18 20 20 20 c8  | OldJob%.)..   .|
00009b60  99 20 22 48 6f 75 72 67  6c 61 73 73 5f 4f 6e 22  |. "Hourglass_On"|
00009b70  0d 29 9a 0a 20 20 20 ea  20 85 0d 29 a4 84 20 20  |.)..   . ..)..  |
00009b80  20 ee 20 85 20 ea 20 3a  20 f7 20 85 20 3a 20 45  | . . . : . . : E|
00009b90  25 3d 9e 20 3a 20 45 24  3d f6 24 20 3a 20 c8 99  |%=. : E$=.$ : ..|
00009ba0  20 22 48 6f 75 72 67 6c  61 73 73 5f 4f 66 66 22  | "Hourglass_Off"|
00009bb0  20 3a 20 c8 99 20 22 50  44 72 69 76 65 72 5f 41  | : .. "PDriver_A|
00009bc0  62 6f 72 74 4a 6f 62 22  2c 50 72 69 6e 74 46 69  |bortJob",PrintFi|
00009bd0  6c 65 25 20 3a 20 c8 99  20 22 50 44 72 69 76 65  |le% : .. "PDrive|
00009be0  72 5f 53 65 6c 65 63 74  4a 6f 62 22 2c 4f 6c 64  |r_SelectJob",Old|
00009bf0  4a 6f 62 25 20 3a 20 85  20 45 25 2c 45 24 0d 29  |Job% : . E%,E$.)|
00009c00  ae 39 20 20 20 e7 20 49  6e 6c 61 79 54 79 70 65  |.9   . InlayType|
00009c10  24 3d 22 56 69 64 65 6f  5f 38 22 20 8c 20 f2 5f  |$="Video_8" . ._|
00009c20  47 65 74 44 6f 63 75 6d  65 6e 74 53 69 7a 65 5f  |GetDocumentSize_|
00009c30  38 28 42 6f 78 25 29 0d  29 b8 39 20 20 20 e7 20  |8(Box%).).9   . |
00009c40  49 6e 6c 61 79 54 79 70  65 24 3d 22 56 48 53 5f  |InlayType$="VHS_|
00009c50  43 22 20 20 20 8c 20 f2  5f 47 65 74 44 6f 63 75  |C"   . ._GetDocu|
00009c60  6d 65 6e 74 53 69 7a 65  5f 43 28 42 6f 78 25 29  |mentSize_C(Box%)|
00009c70  0d 29 c2 39 20 20 20 e7  20 49 6e 6c 61 79 54 79  |.).9   . InlayTy|
00009c80  70 65 24 3d 22 44 41 54  22 20 20 20 20 20 8c 20  |pe$="DAT"     . |
00009c90  f2 5f 47 65 74 44 6f 63  75 6d 65 6e 74 53 69 7a  |._GetDocumentSiz|
00009ca0  65 5f 44 28 42 6f 78 25  29 0d 29 cc 5c 20 20 20  |e_D(Box%).).\   |
00009cb0  f2 5f 46 69 74 54 6f 50  61 67 65 28 48 65 69 67  |._FitToPage(Heig|
00009cc0  68 74 25 2c 57 69 64 74  68 25 29 20 3a 20 c8 99  |ht%,Width%) : ..|
00009cd0  20 22 50 44 72 69 76 65  72 5f 47 69 76 65 52 65  | "PDriver_GiveRe|
00009ce0  63 74 61 6e 67 6c 65 22  2c 2c 42 6f 78 25 2c 4d  |ctangle",,Box%,M|
00009cf0  61 74 72 69 78 25 2c 4f  72 69 67 69 6e 25 2c 57  |atrix%,Origin%,W|
00009d00  68 69 74 65 25 0d 29 d6  36 20 20 20 c8 99 20 22  |hite%.).6   .. "|
00009d10  50 44 72 69 76 65 72 5f  44 72 61 77 50 61 67 65  |PDriver_DrawPage|
00009d20  22 2c 31 2c 42 6f 78 32  25 2c 30 2c 30 20 b8 20  |",1,Box2%,0,0 . |
00009d30  43 6f 70 69 65 73 4c 65  66 74 25 0d 29 e0 15 20  |CopiesLeft%.).. |
00009d40  20 20 c8 95 20 43 6f 70  69 65 73 4c 65 66 74 25  |  .. CopiesLeft%|
00009d50  0d 29 ea 1c 20 20 20 20  20 20 f2 5f 44 72 61 77  |.)..      ._Draw|
00009d60  49 6e 6c 61 79 28 42 6f  78 32 25 29 0d 29 f4 37  |Inlay(Box2%).).7|
00009d70  20 20 20 20 20 20 c8 99  20 22 50 44 72 69 76 65  |      .. "PDrive|
00009d80  72 5f 47 65 74 52 65 63  74 61 6e 67 6c 65 22 2c  |r_GetRectangle",|
00009d90  2c 42 6f 78 25 20 b8 20  43 6f 70 69 65 73 4c 65  |,Box% . CopiesLe|
00009da0  66 74 25 0d 29 fe 08 20  20 20 ce 0d 2a 08 25 20  |ft%.)..   ..*.% |
00009db0  20 20 c8 99 20 22 50 44  72 69 76 65 72 5f 45 6e  |  .. "PDriver_En|
00009dc0  64 4a 6f 62 22 2c 50 72  69 6e 74 46 69 6c 65 25  |dJob",PrintFile%|
00009dd0  0d 2a 12 0a 20 20 20 f7  20 85 0d 2a 1c 19 20 20  |.*..   . ..*..  |
00009de0  20 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 4f  | .. "Hourglass_O|
00009df0  66 66 22 0d 2a 26 25 20  20 20 c8 99 20 22 50 44  |ff".*&%   .. "PD|
00009e00  72 69 76 65 72 5f 53 65  6c 65 63 74 4a 6f 62 22  |river_SelectJob"|
00009e10  2c 4f 6c 64 4a 6f 62 25  0d 2a 30 0a 20 20 20 f7  |,OldJob%.*0.   .|
00009e20  20 85 0d 2a 3a 14 20 20  20 d9 20 23 50 72 69 6e  | ..*:.   . #Prin|
00009e30  74 46 69 6c 65 25 0d 2a  44 05 e1 0d 2a 4e 05 3a  |tFile%.*D...*N.:|
00009e40  0d 2a 58 1c dd 20 f2 5f  4f 70 65 6e 53 75 62 4d  |.*X.. ._OpenSubM|
00009e50  65 6e 75 28 57 69 6e 64  6f 77 25 29 0d 2a 62 27  |enu(Window%).*b'|
00009e60  20 20 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 50  |   .. "Wimp_GetP|
00009e70  6f 69 6e 74 65 72 49 6e  66 6f 22 2c 2c 42 6c 6f  |ointerInfo",,Blo|
00009e80  63 6b 25 0d 2a 6c 3c 20  20 20 c8 99 20 22 57 69  |ck%.*l<   .. "Wi|
00009e90  6d 70 5f 43 72 65 61 74  65 4d 65 6e 75 22 2c 2c  |mp_CreateMenu",,|
00009ea0  57 69 6e 64 6f 77 25 2c  42 6c 6f 63 6b 25 21 30  |Window%,Block%!0|
00009eb0  2d 36 34 2c 42 6c 6f 63  6b 25 21 34 2b 34 38 0d  |-64,Block%!4+48.|
00009ec0  2a 76 05 e1 0d 2a 80 05  3a 0d 2a 8a 21 dd 20 f2  |*v...*..:.*.!. .|
00009ed0  5f 46 69 74 54 6f 50 61  67 65 28 48 65 69 67 68  |_FitToPage(Heigh|
00009ee0  74 25 2c 57 69 64 74 68  25 29 0d 2a 94 22 20 20  |t%,Width%).*."  |
00009ef0  20 ea 20 4c 65 66 74 25  2c 42 6f 74 74 6f 6d 25  | . Left%,Bottom%|
00009f00  2c 52 69 67 68 74 25 2c  54 6f 70 25 0d 2a 9e 65  |,Right%,Top%.*.e|
00009f10  20 20 20 f4 20 52 65 74  75 72 6e 73 20 76 61 6c  |   . Returns val|
00009f20  75 65 73 20 69 6e 20 4d  69 6c 6c 69 70 6f 69 6e  |ues in Millipoin|
00009f30  74 73 2c 20 48 65 69 67  68 74 25 20 26 20 57 69  |ts, Height% & Wi|
00009f40  64 74 68 25 20 61 72 65  20 69 6e 20 4f 53 20 55  |dth% are in OS U|
00009f50  6e 69 74 73 2e 20 31 20  4f 53 20 55 6e 69 74 20  |nits. 1 OS Unit |
00009f60  3d 20 34 30 30 20 4d 69  6c 6c 69 70 6f 69 6e 74  |= 400 Millipoint|
00009f70  73 0d 2a a8 3b 20 20 20  c8 99 20 22 50 44 72 69  |s.*.;   .. "PDri|
00009f80  76 65 72 5f 50 61 67 65  53 69 7a 65 22 20 b8 20  |ver_PageSize" . |
00009f90  2c 2c 2c 4c 65 66 74 25  2c 42 6f 74 74 6f 6d 25  |,,,Left%,Bottom%|
00009fa0  2c 52 69 67 68 74 25 2c  54 6f 70 25 0d 2a b2 4d  |,Right%,Top%.*.M|
00009fb0  20 20 20 4f 72 69 67 69  6e 58 25 3d 28 28 52 69  |   OriginX%=((Ri|
00009fc0  67 68 74 25 2b 4c 65 66  74 25 29 2d 28 57 69 64  |ght%+Left%)-(Wid|
00009fd0  74 68 25 2a 34 30 30 29  29 2f 32 20 3a 20 4f 72  |th%*400))/2 : Or|
00009fe0  69 67 69 6e 59 25 3d 54  6f 70 25 2d 28 48 65 69  |iginY%=Top%-(Hei|
00009ff0  67 68 74 25 2a 34 30 30  29 0d 2a bc 2e 20 20 20  |ght%*400).*..   |
0000a000  4f 72 69 67 69 6e 25 21  30 3d 4f 72 69 67 69 6e  |Origin%!0=Origin|
0000a010  58 25 20 3a 20 4f 72 69  67 69 6e 25 21 34 3d 4f  |X% : Origin%!4=O|
0000a020  72 69 67 69 6e 59 25 0d  2a c6 05 e1 0d 2a d0 05  |riginY%.*....*..|
0000a030  3a 0d 2a da 2d dd 20 f2  5f 43 65 6e 74 72 65 50  |:.*.-. ._CentreP|
0000a040  72 6f 70 28 54 65 78 74  24 2c 59 25 2c 50 6f 73  |rop(Text$,Y%,Pos|
0000a050  74 66 69 78 24 2c 4c 65  6e 67 74 68 25 29 0d 2a  |tfix$,Length%).*|
0000a060  e4 38 20 20 20 e7 20 50  6f 73 74 66 69 78 24 3d  |.8   . Postfix$=|
0000a070  22 22 20 8c 20 c8 99 20  22 46 6f 6e 74 5f 53 65  |"" . .. "Font_Se|
0000a080  74 46 6f 6e 74 22 2c 42  61 73 65 46 6f 6e 74 48  |tFont",BaseFontH|
0000a090  61 6e 64 6c 65 25 0d 2a  ee 3c 20 20 20 e7 20 50  |andle%.*.<   . P|
0000a0a0  6f 73 74 66 69 78 24 3d  22 42 6f 6c 64 22 20 8c  |ostfix$="Bold" .|
0000a0b0  20 c8 99 20 22 46 6f 6e  74 5f 53 65 74 46 6f 6e  | .. "Font_SetFon|
0000a0c0  74 22 2c 42 6f 6c 64 46  6f 6e 74 48 61 6e 64 6c  |t",BoldFontHandl|
0000a0d0  65 25 0d 2a f8 3d 20 20  20 e7 20 50 6f 73 74 66  |e%.*.=   . Postf|
0000a0e0  69 78 24 3d 22 54 69 74  6c 65 22 20 8c 20 c8 99  |ix$="Title" . ..|
0000a0f0  20 22 46 6f 6e 74 5f 53  65 74 46 6f 6e 74 22 2c  | "Font_SetFont",|
0000a100  45 64 67 65 46 6f 6e 74  48 61 6e 64 6c 65 25 0d  |EdgeFontHandle%.|
0000a110  2b 02 42 20 20 20 c8 99  20 22 46 6f 6e 74 5f 53  |+.B   .. "Font_S|
0000a120  74 72 69 6e 67 42 42 6f  78 22 2c 2c 54 65 78 74  |tringBBox",,Text|
0000a130  24 20 b8 20 2c 2c 2c 53  74 72 69 6e 67 4c 65 6e  |$ . ,,,StringLen|
0000a140  67 74 68 49 6e 4d 69 6c  6c 69 70 6f 69 6e 74 73  |gthInMillipoints|
0000a150  25 0d 2b 0c 3a 20 20 20  e7 20 53 74 72 69 6e 67  |%.+.:   . String|
0000a160  4c 65 6e 67 74 68 49 6e  4d 69 6c 6c 69 70 6f 69  |LengthInMillipoi|
0000a170  6e 74 73 25 3e 28 4c 65  6e 67 74 68 25 2f 32 35  |nts%>(Length%/25|
0000a180  2e 34 29 2a 37 32 30 30  30 20 8c 0d 2b 16 70 20  |.4)*72000 ..+.p |
0000a190  20 20 20 20 20 c8 99 20  22 46 6f 6e 74 5f 53 74  |     .. "Font_St|
0000a1a0  72 69 6e 67 57 69 64 74  68 22 2c 2c 54 65 78 74  |ringWidth",,Text|
0000a1b0  24 2c 28 4c 65 6e 67 74  68 25 2f 32 35 2e 34 29  |$,(Length%/25.4)|
0000a1c0  2a 37 32 30 30 30 2c 31  35 30 30 30 2c 2d 31 2c  |*72000,15000,-1,|
0000a1d0  a9 28 54 65 78 74 24 29  20 b8 20 2c 2c 2c 2c 4e  |.(Text$) . ,,,,N|
0000a1e0  75 6d 62 65 72 4f 66 50  72 69 6e 74 61 62 6c 65  |umberOfPrintable|
0000a1f0  43 68 61 72 61 63 74 65  72 73 25 0d 2b 20 3b 20  |Characters%.+ ; |
0000a200  20 20 20 20 20 54 65 78  74 54 6f 50 72 69 6e 74  |     TextToPrint|
0000a210  24 3d c0 54 65 78 74 24  2c 4e 75 6d 62 65 72 4f  |$=.Text$,NumberO|
0000a220  66 50 72 69 6e 74 61 62  6c 65 43 68 61 72 61 63  |fPrintableCharac|
0000a230  74 65 72 73 25 29 0d 2b  2a 3b 20 20 20 20 20 20  |ters%).+*;      |
0000a240  43 6f 6e 74 69 6e 75 65  25 3d a4 5f 57 61 72 6e  |Continue%=._Warn|
0000a250  41 62 6f 75 74 43 6c 69  70 70 69 6e 67 28 54 65  |AboutClipping(Te|
0000a260  78 74 24 2c 54 65 78 74  54 6f 50 72 69 6e 74 24  |xt$,TextToPrint$|
0000a270  29 0d 2b 34 44 20 20 20  20 20 20 e7 20 43 6f 6e  |).+4D      . Con|
0000a280  74 69 6e 75 65 25 3d a3  20 8c 20 85 20 32 30 30  |tinue%=. . . 200|
0000a290  31 2c 22 41 62 6f 72 74  69 6e 67 20 50 72 69 6e  |1,"Aborting Prin|
0000a2a0  74 6f 75 74 2e 20 4f 4b  20 74 6f 20 43 6f 6e 74  |tout. OK to Cont|
0000a2b0  69 6e 75 65 22 0d 2b 3e  08 20 20 20 cd 0d 2b 48  |inue".+>.   ..+H|
0000a2c0  5b 20 20 20 4c 65 6e 67  74 68 49 6e 4d 4d 25 3d  |[   LengthInMM%=|
0000a2d0  28 53 74 72 69 6e 67 4c  65 6e 67 74 68 49 6e 4d  |(StringLengthInM|
0000a2e0  69 6c 6c 69 70 6f 69 6e  74 73 25 2f 37 32 30 30  |illipoints%/7200|
0000a2f0  30 29 2a 32 35 2e 34 20  3a 20 58 25 3d 28 4c 65  |0)*25.4 : X%=(Le|
0000a300  6e 67 74 68 25 2d 4c 65  6e 67 74 68 49 6e 4d 4d  |ngth%-LengthInMM|
0000a310  25 29 2a 37 2e 31 2f 32  0d 2b 52 28 20 20 20 f2  |%)*7.1/2.+R(   .|
0000a320  5f 46 6f 6e 74 50 61 69  6e 74 28 50 6f 73 74 66  |_FontPaint(Postf|
0000a330  69 78 24 2c 54 65 78 74  24 2c 58 25 2c 59 25 29  |ix$,Text$,X%,Y%)|
0000a340  0d 2b 5c 05 e1 0d 2b 66  05 3a 0d 2b 70 45 2a 2a  |.+\...+f.:.+pE**|
0000a350  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000a380  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
0000a390  2b 7a 43 f4 20 53 65 6c  65 63 74 20 72 65 71 75  |+zC. Select requ|
0000a3a0  69 72 65 64 20 46 6f 6e  74 20 61 6e 64 20 63 6f  |ired Font and co|
0000a3b0  6c 6f 75 72 2c 20 74 68  65 6e 20 70 72 69 6e 74  |lour, then print|
0000a3c0  20 4d 65 73 73 61 67 65  24 20 61 74 20 58 25 2c  | Message$ at X%,|
0000a3d0  59 25 0d 2b 84 45 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |Y%.+.E**********|
0000a3e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000a410  2a 2a 2a 2a 2a 2a 2a 0d  2b 8e 2a dd 20 f2 5f 46  |*******.+.*. ._F|
0000a420  6f 6e 74 50 61 69 6e 74  28 50 6f 73 74 46 69 78  |ontPaint(PostFix|
0000a430  24 2c 4d 65 73 73 61 67  65 24 2c 58 25 2c 59 25  |$,Message$,X%,Y%|
0000a440  29 0d 2b 98 14 20 20 20  ea 20 46 6f 6e 74 48 61  |).+..   . FontHa|
0000a450  6e 64 6c 65 25 0d 2b a2  18 20 20 20 e7 20 4d 65  |ndle%.+..   . Me|
0000a460  73 73 61 67 65 24 3d 22  22 20 8c 20 e1 0d 2b ac  |ssage$="" . ..+.|
0000a470  3b 20 20 20 f4 20 44 6f  6e 74 20 57 61 73 74 65  |;   . Dont Waste|
0000a480  20 54 69 6d 65 20 4d 65  73 73 69 6e 67 20 61 62  | Time Messing ab|
0000a490  6f 75 74 20 69 66 20 6e  6f 74 68 69 6e 67 20 74  |out if nothing t|
0000a4a0  6f 20 70 72 69 6e 74 21  0d 2b b6 38 20 20 20 e7  |o print!.+.8   .|
0000a4b0  20 50 6f 73 74 46 69 78  24 3d 22 22 20 8c 20 c8  | PostFix$="" . .|
0000a4c0  99 20 22 46 6f 6e 74 5f  53 65 74 46 6f 6e 74 22  |. "Font_SetFont"|
0000a4d0  2c 42 61 73 65 46 6f 6e  74 48 61 6e 64 6c 65 25  |,BaseFontHandle%|
0000a4e0  0d 2b c0 3c 20 20 20 e7  20 50 6f 73 74 46 69 78  |.+.<   . PostFix|
0000a4f0  24 3d 22 42 6f 6c 64 22  20 8c 20 c8 99 20 22 46  |$="Bold" . .. "F|
0000a500  6f 6e 74 5f 53 65 74 46  6f 6e 74 22 2c 42 6f 6c  |ont_SetFont",Bol|
0000a510  64 46 6f 6e 74 48 61 6e  64 6c 65 25 0d 2b ca 3d  |dFontHandle%.+.=|
0000a520  20 20 20 e7 20 50 6f 73  74 46 69 78 24 3d 22 54  |   . PostFix$="T|
0000a530  69 74 6c 65 22 20 8c 20  c8 99 20 22 46 6f 6e 74  |itle" . .. "Font|
0000a540  5f 53 65 74 46 6f 6e 74  22 2c 45 64 67 65 46 6f  |_SetFont",EdgeFo|
0000a550  6e 74 48 61 6e 64 6c 65  25 0d 2b d4 3c 20 20 20  |ntHandle%.+.<   |
0000a560  c8 99 20 22 43 6f 6c 6f  75 72 54 72 61 6e 73 5f  |.. "ColourTrans_|
0000a570  53 65 74 46 6f 6e 74 43  6f 6c 6f 75 72 73 22 2c  |SetFontColours",|
0000a580  30 2c 26 46 46 46 46 46  46 30 30 2c 26 30 30 30  |0,&FFFFFF00,&000|
0000a590  30 30 30 30 30 0d 2b de  08 20 20 20 3a 0d 2b e8  |00000.+..   :.+.|
0000a5a0  68 20 20 20 f4 20 44 6f  6e 27 74 20 62 6f 74 68  |h   . Don't both|
0000a5b0  65 72 20 74 72 69 6d 6d  69 6e 67 20 74 68 65 20  |er trimming the |
0000a5c0  75 73 65 72 2d 4e 6f 74  65 20 61 73 20 74 68 69  |user-Note as thi|
0000a5d0  73 20 68 61 73 20 67 6f  74 20 6d 6f 72 65 20 73  |s has got more s|
0000a5e0  70 61 63 65 20 74 6f 20  77 6f 72 6b 20 69 6e 20  |pace to work in |
0000a5f0  74 68 61 6e 20 74 68 65  20 6f 74 68 65 72 20 69  |than the other i|
0000a600  63 6f 6e 73 2e 0d 2b f2  37 20 20 20 e7 20 50 6f  |cons..+.7   . Po|
0000a610  73 74 46 69 78 24 3c 3e  22 42 6f 6c 64 22 20 8c  |stFix$<>"Bold" .|
0000a620  20 54 65 78 74 24 3d a4  5f 54 72 69 6d 54 6f 46  | Text$=._TrimToF|
0000a630  69 74 28 4d 65 73 73 61  67 65 24 29 0d 2b fc 21  |it(Message$).+.!|
0000a640  20 20 20 c8 99 20 50 61  69 6e 74 25 2c 2c 54 65  |   .. Paint%,,Te|
0000a650  78 74 24 2c 26 31 30 2c  58 25 2c 59 25 0d 2c 06  |xt$,&10,X%,Y%.,.|
0000a660  05 e1 0d 2c 10 05 3a 0d  2c 1a 53 f4 20 2a 2a 2a  |...,..:.,.S. ***|
0000a670  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000a6b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 2c 24 53 f4 20  |**********.,$S. |
0000a6c0  50 72 69 6e 74 73 20 74  68 65 20 74 61 70 65 20  |Prints the tape |
0000a6d0  6e 75 6d 62 65 72 20 69  6e 20 61 20 73 6d 61 6c  |number in a smal|
0000a6e0  6c 65 72 20 70 6f 69 6e  74 20 73 69 7a 65 20 61  |ler point size a|
0000a6f0  74 20 61 20 66 69 78 65  64 20 70 6c 61 63 65 20  |t a fixed place |
0000a700  6f 6e 20 74 68 65 20 69  6e 6c 61 79 2e 0d 2c 2e  |on the inlay..,.|
0000a710  53 f4 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |S. *************|
0000a720  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000a760  0d 2c 38 17 dd 20 f2 5f  50 72 69 6e 74 54 61 70  |.,8.. ._PrintTap|
0000a770  65 4e 75 6d 62 65 72 0d  2c 42 1a 20 20 20 ea 20  |eNumber.,B.   . |
0000a780  54 65 78 74 24 2c 46 6f  6e 74 48 61 6e 64 6c 65  |Text$,FontHandle|
0000a790  25 0d 2c 4c 38 20 20 20  c8 99 20 46 69 6e 64 25  |%.,L8   .. Find%|
0000a7a0  2c 2c 42 61 73 65 46 6f  6e 74 24 2c 31 30 2a 31  |,,BaseFont$,10*1|
0000a7b0  36 2c 31 30 2a 31 36 2c  30 2c 30 20 b8 20 46 6f  |6,10*16,0,0 . Fo|
0000a7c0  6e 74 48 61 6e 64 6c 65  25 0d 2c 56 3c 20 20 20  |ntHandle%.,V<   |
0000a7d0  c8 99 20 22 43 6f 6c 6f  75 72 54 72 61 6e 73 5f  |.. "ColourTrans_|
0000a7e0  53 65 74 46 6f 6e 74 43  6f 6c 6f 75 72 73 22 2c  |SetFontColours",|
0000a7f0  30 2c 26 46 46 46 46 46  46 30 30 2c 26 30 30 30  |0,&FFFFFF00,&000|
0000a800  30 30 30 30 30 0d 2c 60  08 20 20 20 3a 0d 2c 6a  |00000.,`.   :.,j|
0000a810  30 20 20 20 54 65 78 74  24 3d a4 5f 52 65 61 64  |0   Text$=._Read|
0000a820  49 63 6f 6e 54 65 78 74  28 4d 61 69 6e 25 2c 54  |IconText(Main%,T|
0000a830  61 70 65 4e 75 6d 62 65  72 25 2c 37 29 0d 2c 74  |apeNumber%,7).,t|
0000a840  44 20 20 20 e7 20 49 6e  6c 61 79 54 79 70 65 24  |D   . InlayType$|
0000a850  3d 22 56 48 53 5f 43 22  20 20 20 8c 20 c8 99 20  |="VHS_C"   . .. |
0000a860  50 61 69 6e 74 25 2c 2c  54 65 78 74 24 2c 26 31  |Paint%,,Text$,&1|
0000a870  30 2c 58 33 25 2d 31 30  30 2c 59 33 25 2b 31 33  |0,X3%-100,Y3%+13|
0000a880  30 0d 2c 7e 43 20 20 20  e7 20 49 6e 6c 61 79 54  |0.,~C   . InlayT|
0000a890  79 70 65 24 3d 22 56 69  64 65 6f 5f 38 22 20 8c  |ype$="Video_8" .|
0000a8a0  20 c8 99 20 50 61 69 6e  74 25 2c 2c 54 65 78 74  | .. Paint%,,Text|
0000a8b0  24 2c 26 31 30 2c 58 33  25 2d 31 30 30 2c 59 33  |$,&10,X3%-100,Y3|
0000a8c0  25 2b 38 32 0d 2c 88 42  20 20 20 e7 20 49 6e 6c  |%+82.,.B   . Inl|
0000a8d0  61 79 54 79 70 65 24 3d  22 44 41 54 22 20 20 20  |ayType$="DAT"   |
0000a8e0  20 20 8c 20 c8 99 20 50  61 69 6e 74 25 2c 2c 54  |  . .. Paint%,,T|
0000a8f0  65 78 74 24 2c 26 31 30  2c 58 33 25 2d 39 35 2c  |ext$,&10,X3%-95,|
0000a900  59 33 25 2b 36 30 0d 2c  92 08 20 20 20 3a 0d 2c  |Y3%+60.,..   :.,|
0000a910  9c 1b 20 20 20 c8 99 20  4c 6f 73 65 25 2c 46 6f  |..   .. Lose%,Fo|
0000a920  6e 74 48 61 6e 64 6c 65  25 0d 2c a6 05 e1 0d 2c  |ntHandle%.,....,|
0000a930  b0 05 3a 0d 2c ba 5f f4  20 2a 2a 2a 2a 2a 2a 2a  |..:.,._. *******|
0000a940  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000a990  2a 2a 0d 2c c4 5f f4 20  43 68 65 63 6b 20 74 68  |**.,._. Check th|
0000a9a0  65 20 70 72 69 6e 74 65  64 20 6c 65 6e 67 74 68  |e printed length|
0000a9b0  20 6f 66 20 74 68 65 20  74 65 78 74 20 61 67 61  | of the text aga|
0000a9c0  69 6e 73 74 20 74 68 65  20 73 69 7a 65 20 69 6e  |inst the size in|
0000a9d0  20 70 69 78 65 6c 73 2c  20 61 6e 64 20 73 68 6f  | pixels, and sho|
0000a9e0  72 74 65 6e 20 69 66 20  72 65 71 75 69 72 65 64  |rten if required|
0000a9f0  2e 0d 2c ce 21 f4 20 55  73 65 73 20 3a 20 46 4e  |..,.!. Uses : FN|
0000aa00  5f 57 61 72 6e 41 62 6f  75 74 43 6c 69 70 70 69  |_WarnAboutClippi|
0000aa10  6e 67 0d 2c d8 5f f4 20  2a 2a 2a 2a 2a 2a 2a 2a  |ng.,._. ********|
0000aa20  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000aa70  2a 0d 2c e2 18 dd 20 a4  5f 54 72 69 6d 54 6f 46  |*.,... ._TrimToF|
0000aa80  69 74 28 54 65 78 74 24  29 0d 2c ec 25 20 20 20  |it(Text$).,.%   |
0000aa90  ea 20 4e 75 6d 62 65 72  4f 66 50 72 69 6e 74 61  |. NumberOfPrinta|
0000aaa0  62 6c 65 43 68 61 72 61  63 74 65 72 73 25 0d 2c  |bleCharacters%.,|
0000aab0  f6 12 20 20 20 43 6f 6e  74 69 6e 75 65 25 3d b9  |..   Continue%=.|
0000aac0  0d 2d 00 3b 20 20 20 e7  20 49 6e 6c 61 79 54 79  |.-.;   . InlayTy|
0000aad0  70 65 24 3d 22 56 69 64  65 6f 5f 38 22 20 8c 20  |pe$="Video_8" . |
0000aae0  4d 61 78 5f 58 5f 53 69  7a 65 25 3d 28 37 34 2f  |Max_X_Size%=(74/|
0000aaf0  32 35 2e 34 29 2a 37 32  30 30 30 0d 2d 0a 3b 20  |25.4)*72000.-.; |
0000ab00  20 20 e7 20 49 6e 6c 61  79 54 79 70 65 24 3d 22  |  . InlayType$="|
0000ab10  56 48 53 5f 43 22 20 20  20 8c 20 4d 61 78 5f 58  |VHS_C"   . Max_X|
0000ab20  5f 53 69 7a 65 25 3d 28  37 33 2f 32 35 2e 34 29  |_Size%=(73/25.4)|
0000ab30  2a 37 32 30 30 30 0d 2d  14 3b 20 20 20 e7 20 49  |*72000.-.;   . I|
0000ab40  6e 6c 61 79 54 79 70 65  24 3d 22 44 41 54 22 20  |nlayType$="DAT" |
0000ab50  20 20 20 20 8c 20 4d 61  78 5f 58 5f 53 69 7a 65  |    . Max_X_Size|
0000ab60  25 3d 28 36 30 2f 32 35  2e 34 29 2a 37 32 30 30  |%=(60/25.4)*7200|
0000ab70  30 0d 2d 1e 64 20 20 20  c8 99 20 22 46 6f 6e 74  |0.-.d   .. "Font|
0000ab80  5f 53 74 72 69 6e 67 57  69 64 74 68 22 2c 2c 54  |_StringWidth",,T|
0000ab90  65 78 74 24 2c 4d 61 78  5f 58 5f 53 69 7a 65 25  |ext$,Max_X_Size%|
0000aba0  2c 31 35 30 30 30 2c 2d  31 2c a9 28 54 65 78 74  |,15000,-1,.(Text|
0000abb0  24 29 20 b8 20 2c 2c 2c  2c 4e 75 6d 62 65 72 4f  |$) . ,,,,NumberO|
0000abc0  66 50 72 69 6e 74 61 62  6c 65 43 68 61 72 61 63  |fPrintableCharac|
0000abd0  74 65 72 73 25 0d 2d 28  38 20 20 20 54 65 78 74  |ters%.-(8   Text|
0000abe0  54 6f 50 72 69 6e 74 24  3d c0 54 65 78 74 24 2c  |ToPrint$=.Text$,|
0000abf0  4e 75 6d 62 65 72 4f 66  50 72 69 6e 74 61 62 6c  |NumberOfPrintabl|
0000ac00  65 43 68 61 72 61 63 74  65 72 73 25 29 0d 2d 32  |eCharacters%).-2|
0000ac10  62 20 20 20 e7 20 4e 75  6d 62 65 72 4f 66 50 72  |b   . NumberOfPr|
0000ac20  69 6e 74 61 62 6c 65 43  68 61 72 61 63 74 65 72  |intableCharacter|
0000ac30  73 25 3c a9 28 54 65 78  74 24 29 20 8c 20 43 6f  |s%<.(Text$) . Co|
0000ac40  6e 74 69 6e 75 65 25 3d  a4 5f 57 61 72 6e 41 62  |ntinue%=._WarnAb|
0000ac50  6f 75 74 43 6c 69 70 70  69 6e 67 28 54 65 78 74  |outClipping(Text|
0000ac60  24 2c 54 65 78 74 54 6f  50 72 69 6e 74 24 29 0d  |$,TextToPrint$).|
0000ac70  2d 3c 29 20 20 20 e7 20  43 6f 6e 74 69 6e 75 65  |-<)   . Continue|
0000ac80  25 3d a3 20 8c 20 85 20  32 30 30 31 2c 22 50 72  |%=. . . 2001,"Pr|
0000ac90  69 6e 74 4b 69 6c 6c 22  0d 2d 46 11 3d 54 65 78  |intKill".-F.=Tex|
0000aca0  74 54 6f 50 72 69 6e 74  24 0d 2d 50 05 3a 0d 2d  |tToPrint$.-P.:.-|
0000acb0  5a 5a f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |ZZ. ************|
0000acc0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000ad00  2a 2a 2a 2a 2a 2a 2a 2a  0d 2d 64 5b f4 20 49 66  |********.-d[. If|
0000ad10  20 43 6c 69 70 70 69 6e  67 20 77 69 6c 6c 20 6f  | Clipping will o|
0000ad20  63 63 6f 75 72 2c 20 74  68 65 6e 20 64 69 73 70  |ccour, then disp|
0000ad30  6c 61 79 20 57 61 72 6e  69 6e 67 20 6d 65 73 73  |lay Warning mess|
0000ad40  61 67 65 20 61 6e 64 20  61 6c 6c 6f 77 20 75 73  |age and allow us|
0000ad50  65 72 20 6f 70 74 69 6f  6e 20 74 6f 20 61 62 6f  |er option to abo|
0000ad60  72 74 2e 0d 2d 6e 10 f4  20 55 73 65 73 3a 20 4e  |rt..-n.. Uses: N|
0000ad70  4f 4e 45 0d 2d 78 5a f4  20 2a 2a 2a 2a 2a 2a 2a  |ONE.-xZ. *******|
0000ad80  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000adc0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 2d 82  |*************.-.|
0000add0  31 dd 20 a4 5f 57 61 72  6e 41 62 6f 75 74 43 6c  |1. ._WarnAboutCl|
0000ade0  69 70 70 69 6e 67 28 49  63 6f 6e 54 65 78 74 24  |ipping(IconText$|
0000adf0  2c 54 65 78 74 54 6f 50  72 69 6e 74 24 29 0d 2d  |,TextToPrint$).-|
0000ae00  8c 0f 20 20 20 ea 20 45  72 72 6f 72 24 0d 2d 96  |..   . Error$.-.|
0000ae10  10 20 20 20 21 42 6c 6f  63 6b 25 3d 30 0d 2d a0  |.   !Block%=0.-.|
0000ae20  72 20 20 20 45 72 72 6f  72 24 3d 22 54 68 69 73  |r   Error$="This|
0000ae30  20 74 65 78 74 20 22 2b  49 63 6f 6e 54 65 78 74  | text "+IconText|
0000ae40  24 2b 22 20 64 6f 65 73  20 6e 6f 74 20 66 69 74  |$+" does not fit|
0000ae50  2e 20 43 6c 69 70 70 69  6e 67 20 74 6f 20 22 2b  |. Clipping to "+|
0000ae60  54 65 78 74 54 6f 50 72  69 6e 74 24 2b 22 20 4f  |TextToPrint$+" O|
0000ae70  4b 20 74 6f 20 63 6f 6e  74 69 6e 75 65 2c 20 43  |K to continue, C|
0000ae80  41 4e 43 45 4c 20 74 6f  20 61 62 6f 72 74 22 0d  |ANCEL to abort".|
0000ae90  2d aa 1e 20 20 20 24 28  42 6c 6f 63 6b 25 2b 34  |-..   $(Block%+4|
0000aea0  29 3d 45 72 72 6f 72 24  20 2b 20 bd 30 0d 2d b4  |)=Error$ + .0.-.|
0000aeb0  41 20 20 20 c8 99 20 22  57 69 6d 70 5f 52 65 70  |A   .. "Wimp_Rep|
0000aec0  6f 72 74 45 72 72 6f 72  22 2c 42 6c 6f 63 6b 25  |ortError",Block%|
0000aed0  2c 25 31 30 30 31 31 2c  4d 79 54 61 73 6b 4e 61  |,%10011,MyTaskNa|
0000aee0  6d 65 24 20 b8 20 2c 52  65 73 75 6c 74 25 0d 2d  |me$ . ,Result%.-|
0000aef0  be 2e 20 20 20 e7 20 52  65 73 75 6c 74 25 3d 32  |..   . Result%=2|
0000af00  20 8c 20 43 6f 6e 74 69  6e 75 65 25 3d a3 20 8b  | . Continue%=. .|
0000af10  20 43 6f 6e 74 69 6e 75  65 25 3d b9 0d 2d c8 34  | Continue%=..-.4|
0000af20  20 20 20 c8 99 20 22 57  69 6d 70 5f 52 65 70 6f  |   .. "Wimp_Repo|
0000af30  72 74 45 72 72 6f 72 22  2c 42 6c 6f 63 6b 25 2c  |rtError",Block%,|
0000af40  31 3c 3c 36 2c 4d 79 54  61 73 6b 4e 61 6d 65 24  |1<<6,MyTaskName$|
0000af50  0d 2d d2 0e 3d 43 6f 6e  74 69 6e 75 65 25 0d 2d  |.-..=Continue%.-|
0000af60  dc 05 3a 0d 2d e6 42 f4  20 2a 2a 2a 2a 2a 2a 2a  |..:.-.B. *******|
0000af70  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000afa0  2a 2a 2a 2a 2a 0d 2d f0  42 f4 20 47 69 76 65 20  |*****.-.B. Give |
0000afb0  68 65 6c 70 20 74 6f 20  74 68 65 20 69 6e 74 65  |help to the inte|
0000afc0  72 61 63 74 69 76 65 20  68 65 6c 70 20 62 79 20  |ractive help by |
0000afd0  73 65 6e 64 69 6e 67 20  61 20 6d 65 73 73 61 67  |sending a messag|
0000afe0  65 20 74 6f 20 69 74 0d  2d fa 42 f4 20 2a 2a 2a  |e to it.-.B. ***|
0000aff0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000b020  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 2e 04 2f dd 20 f2  |*********.../. .|
0000b030  5f 47 69 76 65 48 65 6c  70 28 57 69 6e 64 6f 77  |_GiveHelp(Window|
0000b040  25 2c 49 63 6f 6e 25 2c  4d 6f 75 73 65 58 25 2c  |%,Icon%,MouseX%,|
0000b050  4d 6f 75 73 65 59 25 29  0d 2e 0e 30 20 20 20 e7  |MouseY%)...0   .|
0000b060  20 57 69 6e 64 6f 77 25  3d 2d 32 20 80 20 49 63  | Window%=-2 . Ic|
0000b070  6f 6e 25 3d 49 63 6f 6e  42 61 72 49 63 6f 6e 48  |on%=IconBarIconH|
0000b080  61 6e 64 6c 65 25 20 8c  0d 2e 18 a5 20 20 20 20  |andle% .....    |
0000b090  20 20 4d 65 73 73 61 67  65 24 3d 22 56 69 64 65  |  Message$="Vide|
0000b0a0  6f 20 4c 61 62 65 6c 20  50 72 69 6e 74 65 72 7c  |o Label Printer||
0000b0b0  4d 55 74 69 6c 69 74 79  20 74 6f 20 70 72 69 6e  |MUtility to prin|
0000b0c0  74 20 6f 75 74 20 63 61  73 73 65 74 74 65 20 69  |t out cassette i|
0000b0d0  6e 6c 61 79 20 73 6c 65  65 76 65 73 20 66 6f 72  |nlay sleeves for|
0000b0e0  20 56 69 64 65 6f 20 63  61 6d 65 72 61 20 63 61  | Video camera ca|
0000b0f0  73 73 65 74 74 65 73 2c  20 28 56 69 64 65 6f 20  |ssettes, (Video |
0000b100  38 20 6f 72 20 56 48 53  5f 43 20 46 6f 72 6d 61  |8 or VHS_C Forma|
0000b110  74 20 6f 6e 6c 79 29 20  61 6e 64 20 44 41 54 20  |t only) and DAT |
0000b120  61 75 64 69 6f 20 74 61  70 65 73 2e 22 0d 2e 22  |audio tapes.".."|
0000b130  12 20 20 20 20 20 20 e7  20 4e 65 77 25 20 8c 0d  |.      . New% ..|
0000b140  2e 2c 67 20 20 20 20 20  20 20 20 20 4d 65 73 73  |.,g         Mess|
0000b150  61 67 65 24 2b 3d 22 7c  3c 53 45 4c 45 43 54 3e  |age$+="|<SELECT>|
0000b160  20 74 6f 20 73 74 61 72  74 20 77 69 74 68 20 62  | to start with b|
0000b170  6c 61 6e 6b 20 73 63 72  65 65 6e 7c 4d 7c 3c 41  |lank screen|M|<A|
0000b180  44 4a 55 53 54 3e 20 74  6f 20 73 74 61 72 74 20  |DJUST> to start |
0000b190  77 69 74 68 20 6f 6e 2d  73 63 72 65 65 6e 20 68  |with on-screen h|
0000b1a0  69 6e 74 73 2e 22 0d 2e  36 0b 20 20 20 20 20 20  |ints."..6.      |
0000b1b0  cc 0d 2e 40 45 20 20 20  20 20 20 20 20 20 4d 65  |...@E         Me|
0000b1c0  73 73 61 67 65 24 2b 3d  22 7c 3c 53 45 4c 45 43  |ssage$+="|<SELEC|
0000b1d0  54 3e 20 6f 72 20 7c 3c  41 44 4a 55 53 54 3e 20  |T> or |<ADJUST> |
0000b1e0  74 6f 20 73 68 6f 77 20  63 75 72 72 65 6e 74 20  |to show current |
0000b1f0  49 6e 6c 61 79 22 0d 2e  4a 0b 20 20 20 20 20 20  |Inlay"..J.      |
0000b200  cd 0d 2e 54 1e 20 20 20  20 20 20 f2 5f 53 65 6e  |...T.      ._Sen|
0000b210  64 48 65 6c 70 28 4d 65  73 73 61 67 65 24 29 0d  |dHelp(Message$).|
0000b220  2e 5e 08 20 20 20 cd 0d  2e 68 18 20 20 20 e7 20  |.^.   ...h.   . |
0000b230  57 69 6e 64 6f 77 25 3d  4d 61 69 6e 25 20 8c 0d  |Window%=Main% ..|
0000b240  2e 72 1e 20 20 20 54 72  61 63 6b 25 3d 32 34 2d  |.r.   Track%=24-|
0000b250  28 49 63 6f 6e 25 20 81  20 32 29 2b 31 0d 2e 7c  |(Icon% . 2)+1..||
0000b260  11 20 20 20 c8 8e 20 49  63 6f 6e 25 20 ca 0d 2e  |.   .. Icon% ...|
0000b270  86 0f 20 20 20 20 20 20  c9 20 2d 31 33 0d 2e 90  |..      . -13...|
0000b280  a1 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
0000b290  20 f2 5f 53 65 6e 64 48  65 6c 70 28 22 54 68 69  | ._SendHelp("Thi|
0000b2a0  73 20 69 73 20 74 68 65  20 41 72 63 68 69 6d 65  |s is the Archime|
0000b2b0  64 65 73 20 56 69 64 65  6f 20 63 61 73 73 65 74  |des Video casset|
0000b2c0  74 65 20 4c 61 62 65 6c  20 50 72 69 6e 74 65 72  |te Label Printer|
0000b2d0  2e 7c 4d 44 65 73 69 67  6e 65 64 20 61 6e 64 20  |.|MDesigned and |
0000b2e0  63 6f 64 65 64 20 62 79  20 4d 61 72 6b 20 42 72  |coded by Mark Br|
0000b2f0  69 67 68 74 2e 7c 4d 59  6f 75 20 61 72 65 20 75  |ight.|MYou are u|
0000b300  73 69 6e 67 20 76 65 72  73 69 6f 6e 20 22 2b 56  |sing version "+V|
0000b310  65 72 73 69 6f 6e 24 2b  22 2e 7c 4d 22 29 0d 2e  |ersion$+".|M")..|
0000b320  9a 13 20 20 20 20 20 20  c9 20 50 72 69 6e 74 46  |..      . PrintF|
0000b330  25 0d 2e a4 a2 20 20 20  20 20 20 20 20 20 20 20  |%....           |
0000b340  20 20 20 20 20 f2 5f 53  65 6e 64 48 65 6c 70 28  |     ._SendHelp(|
0000b350  22 43 6c 69 63 6b 20 61  6e 79 20 6d 6f 75 73 65  |"Click any mouse|
0000b360  20 62 75 74 74 6f 6e 20  74 6f 20 73 65 6e 64 20  | button to send |
0000b370  74 68 65 20 63 6f 6e 74  65 6e 74 73 20 6f 66 20  |the contents of |
0000b380  74 68 65 20 77 69 6e 64  6f 77 20 74 6f 20 74 68  |the window to th|
0000b390  65 20 70 72 69 6e 74 65  72 2e 7c 4d 50 72 65 73  |e printer.|MPres|
0000b3a0  73 69 6e 67 20 74 68 65  20 7c 3c 50 52 49 4e 54  |sing the |<PRINT|
0000b3b0  3e 20 4b 65 79 20 70 65  72 66 6f 72 6d 73 20 74  |> Key performs t|
0000b3c0  68 65 20 73 61 6d 65 20  66 75 6e 63 74 69 6f 6e  |he same function|
0000b3d0  2e 22 29 0d 2e ae 51 20  20 20 20 20 20 c9 20 30  |.")...Q      . 0|
0000b3e0  2c 32 2c 34 2c 36 2c 38  2c 31 30 2c 31 32 2c 31  |,2,4,6,8,10,12,1|
0000b3f0  34 2c 31 36 2c 31 38 2c  32 30 2c 32 32 2c 32 34  |4,16,18,20,22,24|
0000b400  2c 32 36 2c 32 38 2c 33  30 2c 33 32 2c 33 34 2c  |,26,28,30,32,34,|
0000b410  33 36 2c 33 38 2c 34 30  2c 34 32 2c 34 34 2c 34  |36,38,40,42,44,4|
0000b420  36 2c 34 38 0d 2e b8 20  20 20 20 20 20 20 20 20  |6,48...         |
0000b430  20 20 20 20 20 20 20 20  e7 20 49 63 6f 6e 25 3d  |        . Icon%=|
0000b440  30 30 20 8c 0d 2e c2 48  20 20 20 20 20 20 20 20  |00 ....H        |
0000b450  20 20 20 20 20 20 20 20  20 20 20 55 70 24 3d 22  |           Up$="|
0000b460  7c 3c 43 55 52 53 4f 52  20 55 50 3e 20 74 6f 20  ||<CURSOR UP> to |
0000b470  6d 6f 76 65 20 74 6f 20  49 6e 64 65 78 20 66 6f  |move to Index fo|
0000b480  72 20 69 74 65 6d 20 31  2e 7c 4d 22 0d 2e cc 15  |r item 1.|M"....|
0000b490  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000b4a0  cc 0d 2e d6 56 20 20 20  20 20 20 20 20 20 20 20  |....V           |
0000b4b0  20 20 20 20 20 20 20 20  55 70 24 3d 22 7c 3c 43  |        Up$="|<C|
0000b4c0  55 52 53 4f 52 20 55 50  3e 20 74 6f 20 6d 6f 76  |URSOR UP> to mov|
0000b4d0  65 20 74 6f 20 49 6e 64  65 78 20 66 6f 72 20 69  |e to Index for i|
0000b4e0  74 65 6d 20 22 2b c3 28  54 72 61 63 6b 25 2b 31  |tem "+.(Track%+1|
0000b4f0  29 2b 22 2e 7c 4d 22 0d  2e e0 15 20 20 20 20 20  |)+".|M"....     |
0000b500  20 20 20 20 20 20 20 20  20 20 20 cd 0d 2e ea 2d  |           ....-|
0000b510  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000b520  e7 20 49 63 6f 6e 25 3d  42 74 6d 53 65 74 49 6e  |. Icon%=BtmSetIn|
0000b530  64 65 78 45 6e 64 25 20  8c 0d 2e f4 4d 20 20 20  |dexEnd% ....M   |
0000b540  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000b550  44 6f 77 6e 24 3d 22 7c  3c 43 55 52 53 4f 52 20  |Down$="|<CURSOR |
0000b560  44 4f 57 4e 3e 20 74 6f  20 6d 6f 76 65 20 74 6f  |DOWN> to move to|
0000b570  20 49 6e 64 65 78 20 66  6f 72 20 69 74 65 6d 20  | Index for item |
0000b580  32 35 2e 7c 4d 22 0d 2e  fe 15 20 20 20 20 20 20  |25.|M"....      |
0000b590  20 20 20 20 20 20 20 20  20 20 cc 0d 2f 08 5a 20  |          ../.Z |
0000b5a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000b5b0  20 20 44 6f 77 6e 24 3d  22 7c 3c 43 55 52 53 4f  |  Down$="|<CURSO|
0000b5c0  52 20 44 4f 57 4e 3e 20  74 6f 20 6d 6f 76 65 20  |R DOWN> to move |
0000b5d0  74 6f 20 49 6e 64 65 78  20 66 6f 72 20 69 74 65  |to Index for ite|
0000b5e0  6d 20 22 2b c3 28 54 72  61 63 6b 25 2d 31 29 2b  |m "+.(Track%-1)+|
0000b5f0  22 2e 7c 4d 22 0d 2f 12  15 20 20 20 20 20 20 20  |".|M"./..       |
0000b600  20 20 20 20 20 20 20 20  20 cd 0d 2f 1c 4c 20 20  |         ../.L  |
0000b610  20 20 20 20 20 20 20 20  20 20 20 20 20 20 54 61  |              Ta|
0000b620  62 24 3d 22 7c 3c 54 41  42 3e 20 74 6f 20 6d 6f  |b$="|<TAB> to mo|
0000b630  76 65 20 74 6f 20 54 69  74 6c 65 20 66 6f 72 20  |ve to Title for |
0000b640  49 74 65 6d 20 22 2b c3  28 54 72 61 63 6b 25 29  |Item "+.(Track%)|
0000b650  2b 22 2e 7c 4d 22 0d 2f  26 61 20 20 20 20 20 20  |+".|M"./&a      |
0000b660  20 20 20 20 20 20 20 20  20 20 f2 5f 53 65 6e 64  |          ._Send|
0000b670  48 65 6c 70 28 22 45 6e  74 65 72 20 74 68 65 20  |Help("Enter the |
0000b680  49 6e 64 65 78 20 66 6f  72 20 69 74 65 6d 20 6e  |Index for item n|
0000b690  75 6d 62 65 72 20 22 2b  c3 28 54 72 61 63 6b 25  |umber "+.(Track%|
0000b6a0  29 2b 22 2e 7c 4d 22 2b  55 70 24 2b 44 6f 77 6e  |)+".|M"+Up$+Down|
0000b6b0  24 2b 54 61 62 24 29 0d  2f 30 51 20 20 20 20 20  |$+Tab$)./0Q     |
0000b6c0  20 c9 20 31 2c 33 2c 35  2c 37 2c 39 2c 31 31 2c  | . 1,3,5,7,9,11,|
0000b6d0  31 33 2c 31 35 2c 31 37  2c 31 39 2c 32 31 2c 32  |13,15,17,19,21,2|
0000b6e0  33 2c 32 35 2c 32 37 2c  32 39 2c 33 31 2c 33 33  |3,25,27,29,31,33|
0000b6f0  2c 33 35 2c 33 37 2c 33  39 2c 34 31 2c 34 33 2c  |,35,37,39,41,43,|
0000b700  34 35 2c 34 37 2c 34 39  0d 2f 3a 20 20 20 20 20  |45,47,49./:     |
0000b710  20 20 20 20 20 20 20 20  20 20 20 20 e7 20 49 63  |            . Ic|
0000b720  6f 6e 25 3d 30 31 20 8c  0d 2f 44 48 20 20 20 20  |on%=01 ../DH    |
0000b730  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 55  |               U|
0000b740  70 24 3d 22 7c 3c 43 55  52 53 4f 52 20 55 50 3e  |p$="|<CURSOR UP>|
0000b750  20 74 6f 20 6d 6f 76 65  20 74 6f 20 54 69 74 6c  | to move to Titl|
0000b760  65 20 66 6f 72 20 69 74  65 6d 20 31 2e 7c 4d 22  |e for item 1.|M"|
0000b770  0d 2f 4e 15 20 20 20 20  20 20 20 20 20 20 20 20  |./N.            |
0000b780  20 20 20 20 cc 0d 2f 58  56 20 20 20 20 20 20 20  |    ../XV       |
0000b790  20 20 20 20 20 20 20 20  20 20 20 20 55 70 24 3d  |            Up$=|
0000b7a0  22 7c 3c 43 55 52 53 4f  52 20 55 50 3e 20 74 6f  |"|<CURSOR UP> to|
0000b7b0  20 6d 6f 76 65 20 74 6f  20 54 69 74 6c 65 20 66  | move to Title f|
0000b7c0  6f 72 20 69 74 65 6d 20  22 2b c3 28 54 72 61 63  |or item "+.(Trac|
0000b7d0  6b 25 2b 31 29 2b 22 2e  7c 4d 22 0d 2f 62 15 20  |k%+1)+".|M"./b. |
0000b7e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 cd  |               .|
0000b7f0  0d 2f 6c 20 20 20 20 20  20 20 20 20 20 20 20 20  |./l             |
0000b800  20 20 20 20 e7 20 49 63  6f 6e 25 3d 34 39 20 8c  |    . Icon%=49 .|
0000b810  0d 2f 76 4d 20 20 20 20  20 20 20 20 20 20 20 20  |./vM            |
0000b820  20 20 20 20 20 20 20 44  6f 77 6e 24 3d 22 7c 3c  |       Down$="|<|
0000b830  43 55 52 53 4f 52 20 44  4f 57 4e 3e 20 74 6f 20  |CURSOR DOWN> to |
0000b840  6d 6f 76 65 20 74 6f 20  54 69 74 6c 65 20 66 6f  |move to Title fo|
0000b850  72 20 69 74 65 6d 20 32  35 2e 7c 4d 22 0d 2f 80  |r item 25.|M"./.|
0000b860  15 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
0000b870  20 cc 0d 2f 8a 5a 20 20  20 20 20 20 20 20 20 20  | ../.Z          |
0000b880  20 20 20 20 20 20 20 20  20 44 6f 77 6e 24 3d 22  |         Down$="|
0000b890  7c 3c 43 55 52 53 4f 52  20 44 4f 57 4e 3e 20 74  ||<CURSOR DOWN> t|
0000b8a0  6f 20 6d 6f 76 65 20 74  6f 20 54 69 74 6c 65 20  |o move to Title |
0000b8b0  66 6f 72 20 69 74 65 6d  20 22 2b c3 28 54 72 61  |for item "+.(Tra|
0000b8c0  63 6b 25 2d 31 29 2b 22  2e 7c 4d 22 0d 2f 94 15  |ck%-1)+".|M"./..|
0000b8d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000b8e0  cd 0d 2f 9e 4c 20 20 20  20 20 20 20 20 20 20 20  |../.L           |
0000b8f0  20 20 20 20 20 54 61 62  24 3d 22 7c 3c 54 41 42  |     Tab$="|<TAB|
0000b900  3e 20 74 6f 20 6d 6f 76  65 20 74 6f 20 49 6e 64  |> to move to Ind|
0000b910  65 78 20 66 6f 72 20 69  74 65 6d 20 22 2b c3 28  |ex for item "+.(|
0000b920  54 72 61 63 6b 25 29 2b  22 2e 7c 4d 22 0d 2f a8  |Track%)+".|M"./.|
0000b930  61 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |a               |
0000b940  20 f2 5f 53 65 6e 64 48  65 6c 70 28 22 45 6e 74  | ._SendHelp("Ent|
0000b950  65 72 20 74 68 65 20 54  69 74 6c 65 20 6f 66 20  |er the Title of |
0000b960  74 72 61 63 6b 20 6e 75  6d 62 65 72 20 22 2b c3  |track number "+.|
0000b970  28 54 72 61 63 6b 25 29  2b 22 2e 7c 4d 22 2b 55  |(Track%)+".|M"+U|
0000b980  70 24 2b 44 6f 77 6e 24  2b 54 61 62 24 29 0d 2f  |p$+Down$+Tab$)./|
0000b990  b2 14 20 20 20 20 20 20  c9 20 35 31 2c 35 32 2c  |..      . 51,52,|
0000b9a0  35 33 0d 2f bc 52 20 20  20 20 20 20 20 20 20 20  |53./.R          |
0000b9b0  20 20 20 20 20 20 55 70  24 20 20 3d 22 7c 3c 43  |      Up$  ="|<C|
0000b9c0  55 52 53 4f 52 20 55 50  3e 20 74 6f 20 6d 6f 76  |URSOR UP> to mov|
0000b9d0  65 20 74 6f 20 70 72 65  76 69 6f 75 73 20 6c 69  |e to previous li|
0000b9e0  6e 65 20 6f 66 20 74 61  70 65 20 74 69 74 6c 65  |ne of tape title|
0000b9f0  2e 7c 4d 22 0d 2f c6 50  20 20 20 20 20 20 20 20  |.|M"./.P        |
0000ba00  20 20 20 20 20 20 20 20  44 6f 77 6e 24 3d 22 7c  |        Down$="||
0000ba10  3c 43 55 52 53 4f 52 20  44 4f 57 4e 3e 20 74 6f  |<CURSOR DOWN> to|
0000ba20  20 6d 6f 76 65 20 74 6f  20 6e 65 78 74 20 6c 69  | move to next li|
0000ba30  6e 65 20 6f 66 20 74 61  70 65 20 74 69 74 6c 65  |ne of tape title|
0000ba40  2e 7c 4d 22 0d 2f d0 5e  20 20 20 20 20 20 20 20  |.|M"./.^        |
0000ba50  20 20 20 20 20 20 20 20  e7 20 49 63 6f 6e 25 3d  |        . Icon%=|
0000ba60  35 33 20 8c 20 44 6f 77  6e 24 3d 22 7c 3c 43 55  |53 . Down$="|<CU|
0000ba70  52 53 4f 52 20 44 4f 57  4e 3e 20 74 6f 20 6d 6f  |RSOR DOWN> to mo|
0000ba80  76 65 20 74 6f 20 66 69  72 73 74 20 6c 69 6e 65  |ve to first line|
0000ba90  20 6f 66 20 74 61 70 65  20 74 69 74 6c 65 2e 7c  | of tape title.||
0000baa0  4d 22 0d 2f da 5a 20 20  20 20 20 20 20 20 20 20  |M"./.Z          |
0000bab0  20 20 20 20 20 20 e7 20  49 63 6f 6e 25 3d 35 31  |      . Icon%=51|
0000bac0  20 8c 20 55 70 24 3d 22  7c 3c 43 55 52 53 4f 52  | . Up$="|<CURSOR|
0000bad0  20 55 50 3e 20 74 6f 20  6d 6f 76 65 20 74 6f 20  | UP> to move to |
0000bae0  74 68 69 72 64 20 6c 69  6e 65 20 6f 66 20 74 61  |third line of ta|
0000baf0  70 65 20 74 69 74 6c 65  2e 7c 4d 22 0d 2f e4 4a  |pe title.|M"./.J|
0000bb00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000bb10  f2 5f 53 65 6e 64 48 65  6c 70 28 22 45 6e 74 65  |._SendHelp("Ente|
0000bb20  72 20 74 68 65 20 74 69  74 6c 65 20 6f 66 20 74  |r the title of t|
0000bb30  68 65 20 74 61 70 65 2e  7c 4d 22 2b 55 70 24 2b  |he tape.|M"+Up$+|
0000bb40  44 6f 77 6e 24 29 0d 2f  ee 17 20 20 20 20 20 20  |Down$)./..      |
0000bb50  c9 20 54 61 70 65 4e 75  6d 62 65 72 25 0d 2f f8  |. TapeNumber%./.|
0000bb60  4d 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |M               |
0000bb70  20 f2 5f 53 65 6e 64 48  65 6c 70 28 22 54 68 69  | ._SendHelp("Thi|
0000bb80  73 20 69 73 20 74 68 65  20 49 6e 64 65 78 20 6e  |s is the Index n|
0000bb90  75 6d 62 65 72 20 66 6f  72 20 74 68 69 73 20 63  |umber for this c|
0000bba0  61 73 73 65 74 74 65 21  22 29 0d 30 02 17 20 20  |assette!").0..  |
0000bbb0  20 20 20 20 c9 20 44 72  69 76 65 72 4e 61 6d 65  |    . DriverName|
0000bbc0  25 0d 30 0c 5a 20 20 20  20 20 20 20 20 20 20 20  |%.0.Z           |
0000bbd0  20 20 20 20 20 f2 5f 53  65 6e 64 48 65 6c 70 28  |     ._SendHelp(|
0000bbe0  22 54 68 69 73 20 69 73  20 74 68 65 20 43 75 72  |"This is the Cur|
0000bbf0  72 65 6e 74 20 49 6e 73  74 61 6c 6c 65 64 20 50  |rent Installed P|
0000bc00  72 69 6e 74 65 72 20 2d  20 53 65 65 20 4f 70 74  |rinter - See Opt|
0000bc10  69 6f 6e 73 20 4d 65 6e  75 22 29 0d 30 16 15 20  |ions Menu").0.. |
0000bc20  20 20 20 20 20 c9 20 55  73 65 72 4e 6f 74 65 25  |     . UserNote%|
0000bc30  0d 30 20 bc 20 20 20 20  20 20 20 20 20 20 20 20  |.0 .            |
0000bc40  20 20 20 20 f2 5f 53 65  6e 64 48 65 6c 70 28 22  |    ._SendHelp("|
0000bc50  45 6e 74 65 72 20 61 6e  79 20 6e 6f 74 65 73 20  |Enter any notes |
0000bc60  79 6f 75 20 77 69 73 68  20 68 65 72 65 2c 20 65  |you wish here, e|
0000bc70  67 20 56 69 64 65 6f 38  20 2f 20 56 69 64 65 6f  |g Video8 / Video|
0000bc80  48 49 38 20 2f 20 56 48  53 5f 43 20 66 6f 72 6d  |HI8 / VHS_C form|
0000bc90  61 74 2c 20 64 61 74 65  73 20 45 74 63 7c 4d 49  |at, dates Etc|MI|
0000bca0  66 20 74 68 69 73 20 69  73 20 6c 65 66 74 20 62  |f this is left b|
0000bcb0  6c 61 6e 6b 20 61 20 73  74 61 6e 64 61 72 64 20  |lank a standard |
0000bcc0  63 6f 70 79 77 72 69 74  65 20 6d 65 73 73 61 67  |copywrite messag|
0000bcd0  65 20 77 69 6c 6c 20 62  65 20 70 75 74 20 69 6e  |e will be put in|
0000bce0  20 69 74 73 20 70 6c 61  63 65 22 29 0d 30 2a 13  | its place").0*.|
0000bcf0  20 20 20 20 20 20 c9 20  46 6f 72 6d 61 74 25 0d  |      . Format%.|
0000bd00  30 34 85 20 20 20 20 20  20 20 20 20 20 20 20 20  |04.             |
0000bd10  20 20 20 f2 5f 53 65 6e  64 48 65 6c 70 28 22 44  |   ._SendHelp("D|
0000bd20  69 73 70 6c 61 79 20 77  68 69 63 68 20 70 72 69  |isplay which pri|
0000bd30  6e 74 20 66 6f 72 6d 61  74 20 79 6f 75 20 68 61  |nt format you ha|
0000bd40  76 65 20 63 75 72 72 65  6e 74 6c 79 20 73 65 6c  |ve currently sel|
0000bd50  65 63 74 65 64 2e 20 4e  6f 74 65 3a 20 54 68 69  |ected. Note: Thi|
0000bd60  73 20 69 73 20 73 61 76  65 64 20 77 69 74 68 20  |s is saved with |
0000bd70  79 6f 75 72 20 63 6f 6e  66 69 67 75 72 61 74 69  |your configurati|
0000bd80  6f 6e 22 29 0d 30 3e 0b  20 20 20 20 20 20 7f 0d  |on").0>.      ..|
0000bd90  30 48 a2 20 20 20 20 20  20 20 20 20 20 20 20 20  |0H.             |
0000bda0  20 20 20 f2 5f 53 65 6e  64 48 65 6c 70 28 22 4d  |   ._SendHelp("M|
0000bdb0  69 73 63 2e 20 48 65 6c  70 20 3a 7c 4d 7c 3c 66  |isc. Help :|M|<f|
0000bdc0  31 30 3e 20 2d 20 53 77  61 70 20 63 61 73 65 20  |10> - Swap case |
0000bdd0  20 20 7c 3c 66 31 31 3e  20 2d 20 44 65 6c 65 74  |  |<f11> - Delet|
0000bde0  65 20 74 6f 20 65 6e 64  20 6f 66 20 6c 69 6e 65  |e to end of line|
0000bdf0  7c 4d 7c 3c 53 68 69 66  74 3e 7c 3c 66 39 3e 20  ||M|<Shift>|<f9> |
0000be00  2d 20 57 69 70 65 20 61  6c 6c 20 66 69 65 6c 64  |- Wipe all field|
0000be10  73 2e 20 20 20 7c 3c 48  6f 6d 65 3e 20 2d 20 47  |s.   |<Home> - G|
0000be20  6f 20 74 6f 20 49 6e 64  65 78 20 23 31 7c 4d 22  |o to Index #1|M"|
0000be30  29 0d 30 52 04 0d 30 5c  08 20 20 20 cb 0d 30 66  |).0R..0\.   ..0f|
0000be40  08 20 20 20 cd 0d 30 70  1b 20 20 20 e7 20 57 69  |.   ..0p.   . Wi|
0000be50  6e 64 6f 77 25 3d 4f 70  74 69 6f 6e 73 25 20 8c  |ndow%=Options% .|
0000be60  0d 30 7a 14 20 20 20 20  20 20 c8 8e 20 49 63 6f  |.0z.      .. Ico|
0000be70  6e 25 20 ca 0d 30 84 3c  20 20 20 20 20 20 20 20  |n% ..0.<        |
0000be80  20 c9 20 30 31 20 3a 20  f2 5f 53 65 6e 64 48 65  | . 01 : ._SendHe|
0000be90  6c 70 28 22 53 65 6c 65  63 74 20 44 72 61 66 74  |lp("Select Draft|
0000bea0  20 70 72 69 6e 74 69 6e  67 20 6d 6f 64 65 22 29  | printing mode")|
0000beb0  0d 30 8e 3a 20 20 20 20  20 20 20 20 20 c9 20 30  |.0.:         . 0|
0000bec0  30 20 3a 20 f2 5f 53 65  6e 64 48 65 6c 70 28 22  |0 : ._SendHelp("|
0000bed0  53 65 6c 65 63 74 20 4e  4c 51 20 70 72 69 6e 74  |Select NLQ print|
0000bee0  69 6e 67 20 6d 6f 64 65  22 29 0d 30 98 4c 20 20  |ing mode").0.L  |
0000bef0  20 20 20 20 20 20 20 c9  20 30 35 20 3a 20 f2 5f  |       . 05 : ._|
0000bf00  53 65 6e 64 48 65 6c 70  28 22 53 65 6c 65 63 74  |SendHelp("Select|
0000bf10  20 52 69 73 63 4f 53 20  70 72 69 6e 74 65 72 20  | RiscOS printer |
0000bf20  64 72 69 76 65 72 20 70  72 69 6e 74 69 6e 67 20  |driver printing |
0000bf30  6d 6f 64 65 22 29 0d 30  a2 6c 20 20 20 20 20 20  |mode").0.l      |
0000bf40  20 20 20 c9 20 31 32 20  3a 20 f2 5f 53 65 6e 64  |   . 12 : ._Send|
0000bf50  48 65 6c 70 28 22 45 6e  74 65 72 20 79 6f 75 72  |Help("Enter your|
0000bf60  20 70 72 69 6e 74 65 72  20 63 6f 64 65 20 66 6f  | printer code fo|
0000bf70  72 20 4e 4c 51 20 4f 4e  20 69 66 20 69 74 20 69  |r NLQ ON if it i|
0000bf80  73 20 64 69 66 66 65 72  65 6e 74 20 66 72 6f 6d  |s different from|
0000bf90  20 74 68 65 20 63 6f 64  65 20 73 68 6f 77 6e 2e  | the code shown.|
0000bfa0  22 29 0d 30 ac 6d 20 20  20 20 20 20 20 20 20 c9  |").0.m         .|
0000bfb0  20 31 36 20 3a 20 f2 5f  53 65 6e 64 48 65 6c 70  | 16 : ._SendHelp|
0000bfc0  28 22 45 6e 74 65 72 20  79 6f 75 72 20 70 72 69  |("Enter your pri|
0000bfd0  6e 74 65 72 20 63 6f 64  65 20 66 6f 72 20 4e 4c  |nter code for NL|
0000bfe0  51 20 4f 46 46 20 69 66  20 69 74 20 69 73 20 64  |Q OFF if it is d|
0000bff0  69 66 66 65 72 65 6e 74  20 66 72 6f 6d 20 74 68  |ifferent from th|
0000c000  65 20 63 6f 64 65 20 73  68 6f 77 6e 2e 22 29 0d  |e code shown.").|
0000c010  30 b6 6f 20 20 20 20 20  20 20 20 20 c9 20 33 34  |0.o         . 34|
0000c020  20 3a 20 f2 5f 53 65 6e  64 48 65 6c 70 28 22 45  | : ._SendHelp("E|
0000c030  6e 74 65 72 20 79 6f 75  72 20 70 72 69 6e 74 65  |nter your printe|
0000c040  72 20 63 6f 64 65 20 66  6f 72 20 31 32 20 43 50  |r code for 12 CP|
0000c050  49 20 4f 4e 20 69 66 20  69 74 20 69 73 20 64 69  |I ON if it is di|
0000c060  66 66 65 72 65 6e 74 20  66 72 6f 6d 20 74 68 65  |fferent from the|
0000c070  20 63 6f 64 65 20 73 68  6f 77 6e 2e 22 29 0d 30  | code shown.").0|
0000c080  c0 89 20 20 20 20 20 20  20 20 20 c9 20 32 30 20  |..         . 20 |
0000c090  3a 20 f2 5f 53 65 6e 64  48 65 6c 70 28 22 45 6e  |: ._SendHelp("En|
0000c0a0  74 65 72 20 68 6f 77 20  6d 61 6e 79 20 6c 69 6e  |ter how many lin|
0000c0b0  65 73 20 79 6f 75 20 77  61 6e 74 20 74 68 65 20  |es you want the |
0000c0c0  70 61 70 65 72 20 74 6f  20 66 65 65 64 20 61 66  |paper to feed af|
0000c0d0  74 65 72 20 63 68 61 72  61 63 74 65 72 20 6d 6f  |ter character mo|
0000c0e0  64 65 20 70 72 69 6e 74  69 6e 67 20 74 6f 20 63  |de printing to c|
0000c0f0  6c 65 61 72 20 74 68 65  20 74 65 61 72 20 6f 66  |lear the tear of|
0000c100  66 20 62 61 72 22 29 0d  30 ca 5b 20 20 20 20 20  |f bar").0.[     |
0000c110  20 20 20 20 c9 20 32 38  20 3a 20 f2 5f 53 65 6e  |    . 28 : ._Sen|
0000c120  64 48 65 6c 70 28 22 53  61 76 65 20 61 6c 6c 20  |dHelp("Save all |
0000c130  74 68 65 20 61 62 6f 76  65 20 70 72 65 66 65 72  |the above prefer|
0000c140  65 6e 63 65 73 20 74 6f  20 74 68 65 20 63 6f 6e  |ences to the con|
0000c150  66 69 67 75 72 61 74 69  6f 6e 20 66 69 6c 65 2e  |figuration file.|
0000c160  22 29 0d 30 d4 0b 20 20  20 20 20 20 cb 0d 30 de  |").0..      ..0.|
0000c170  08 20 20 20 cd 0d 30 e8  05 e1 0d 30 f2 05 3a 0d  |.   ..0....0..:.|
0000c180  30 fc 3a f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |0.:. ***********|
0000c190  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c1b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 31 06 3a f4 20 53  |*********.1.:. S|
0000c1c0  65 6e 64 20 74 68 65 20  68 65 6c 70 2d 67 69 76  |end the help-giv|
0000c1d0  69 6e 67 20 6d 65 73 73  61 67 65 20 74 6f 20 74  |ing message to t|
0000c1e0  68 65 20 68 65 6c 70 20  61 70 70 6c 69 63 61 74  |he help applicat|
0000c1f0  69 6f 6e 0d 31 10 3a f4  20 2a 2a 2a 2a 2a 2a 2a  |ion.1.:. *******|
0000c200  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c220  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 31 1a  |*************.1.|
0000c230  1a dd 20 f2 5f 53 65 6e  64 48 65 6c 70 28 4d 65  |.. ._SendHelp(Me|
0000c240  73 73 61 67 65 24 29 0d  31 24 19 20 20 20 42 6c  |ssage$).1$.   Bl|
0000c250  6f 63 6b 25 21 31 32 3d  42 6c 6f 63 6b 25 21 38  |ock%!12=Block%!8|
0000c260  0d 31 2e 1d 20 20 20 42  6c 6f 63 6b 25 21 31 36  |.1..   Block%!16|
0000c270  3d 6d 73 67 5f 68 65 6c  70 41 43 4b 25 0d 31 38  |=msg_helpACK%.18|
0000c280  24 20 20 20 21 42 6c 6f  63 6b 25 3d 28 a9 28 4d  |$   !Block%=(.(M|
0000c290  65 73 73 61 67 65 24 29  2b 32 35 29 80 20 ac 20  |essage$)+25). . |
0000c2a0  33 0d 31 42 1f 20 20 20  24 28 42 6c 6f 63 6b 25  |3.1B.   $(Block%|
0000c2b0  2b 32 30 29 3d 4d 65 73  73 61 67 65 24 2b bd 30  |+20)=Message$+.0|
0000c2c0  0d 31 4c 39 20 20 20 c8  99 20 22 57 69 6d 70 5f  |.1L9   .. "Wimp_|
0000c2d0  53 65 6e 64 4d 65 73 73  61 67 65 22 2c 75 73 72  |SendMessage",usr|
0000c2e0  5f 6d 65 73 73 61 67 65  25 2c 42 6c 6f 63 6b 25  |_message%,Block%|
0000c2f0  2c 42 6c 6f 63 6b 25 21  34 0d 31 56 05 e1 0d 31  |,Block%!4.1V...1|
0000c300  60 05 3a 0d 31 6a 33 f4  20 2a 2a 2a 2a 2a 2a 2a  |`.:.1j3. *******|
0000c310  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c330  2a 2a 2a 2a 2a 2a 0d 31  74 33 f4 20 53 77 61 70  |******.1t3. Swap|
0000c340  73 20 74 68 65 20 63 61  73 65 20 6f 66 20 6f 66  |s the case of of|
0000c350  20 74 68 65 20 73 70 65  63 69 66 69 65 64 20 63  | the specified c|
0000c360  68 61 72 61 63 74 65 72  2e 0d 31 7e 33 f4 20 2a  |haracter..1~3. *|
0000c370  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c390  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 31 88 26  |************.1.&|
0000c3a0  dd 20 f2 5f 53 77 61 70  43 61 73 65 28 57 69 6e  |. ._SwapCase(Win|
0000c3b0  64 6f 77 25 2c 49 63 6f  6e 25 2c 49 6e 64 65 78  |dow%,Icon%,Index|
0000c3c0  25 29 0d 31 92 32 20 20  20 e7 20 49 6e 64 65 78  |%).1.2   . Index|
0000c3d0  25 3c a9 28 a4 5f 52 65  61 64 49 63 6f 6e 54 65  |%<.(._ReadIconTe|
0000c3e0  78 74 28 4d 61 69 6e 25  2c 49 63 6f 6e 25 2c a3  |xt(Main%,Icon%,.|
0000c3f0  29 29 20 8c 0d 31 9c 31  20 20 20 20 20 20 49 63  |)) ..1.1      Ic|
0000c400  6f 6e 54 65 78 74 24 3d  a4 5f 52 65 61 64 49 63  |onText$=._ReadIc|
0000c410  6f 6e 54 65 78 74 28 4d  61 69 6e 25 2c 49 63 6f  |onText(Main%,Ico|
0000c420  6e 25 2c a3 29 0d 31 a6  2c 20 20 20 20 20 20 43  |n%,.).1.,      C|
0000c430  25 3d 97 28 c1 49 63 6f  6e 54 65 78 74 24 2c 49  |%=.(.IconText$,I|
0000c440  6e 64 65 78 25 2b 31 2c  31 29 29 20 80 20 26 44  |ndex%+1,1)) . &D|
0000c450  46 0d 31 b0 1f 20 20 20  20 20 20 e7 20 43 25 3e  |F.1..      . C%>|
0000c460  3d 26 34 31 20 80 20 43  25 3c 3d 26 35 41 20 8c  |=&41 . C%<=&5A .|
0000c470  0d 31 ba 32 20 20 20 20  20 20 20 20 20 43 24 3d  |.1.2         C$=|
0000c480  bd 28 97 28 c1 49 63 6f  6e 54 65 78 74 24 2c 49  |.(.(.IconText$,I|
0000c490  6e 64 65 78 25 2b 31 2c  31 29 29 20 82 20 26 32  |ndex%+1,1)) . &2|
0000c4a0  30 29 0d 31 c4 26 20 20  20 20 20 20 20 20 20 c1  |0).1.&         .|
0000c4b0  49 63 6f 6e 54 65 78 74  24 2c 49 6e 64 65 78 25  |IconText$,Index%|
0000c4c0  2b 31 2c 31 29 3d 43 24  0d 31 ce 33 20 20 20 20  |+1,1)=C$.1.3    |
0000c4d0  20 20 20 20 20 f2 5f 53  65 74 49 63 6f 6e 54 65  |     ._SetIconTe|
0000c4e0  78 74 28 49 63 6f 6e 25  2c 57 69 6e 64 6f 77 25  |xt(Icon%,Window%|
0000c4f0  2c 49 63 6f 6e 54 65 78  74 24 29 0d 31 d8 22 20  |,IconText$).1." |
0000c500  20 20 20 20 20 20 20 20  f2 5f 52 65 64 72 61 77  |        ._Redraw|
0000c510  28 4d 61 69 6e 25 2c 49  63 6f 6e 25 29 0d 31 e2  |(Main%,Icon%).1.|
0000c520  0b 20 20 20 20 20 20 cd  0d 31 ec 2c 20 20 20 20  |.      ..1.,    |
0000c530  20 20 f2 5f 53 65 74 43  61 72 65 74 50 6f 73 69  |  ._SetCaretPosi|
0000c540  74 69 6f 6e 28 49 63 6f  6e 25 2c 49 6e 64 65 78  |tion(Icon%,Index|
0000c550  25 2b 31 29 0d 31 f6 08  20 20 20 cd 0d 32 00 05  |%+1).1..   ..2..|
0000c560  e1 0d 32 0a 05 3a 0d 32  14 4c f4 20 2a 2a 2a 2a  |..2..:.2.L. ****|
0000c570  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c5b0  2a 2a 0d 32 1e 4c f4 20  53 65 74 73 20 74 68 65  |**.2.L. Sets the|
0000c5c0  20 63 61 73 65 20 6f 66  20 61 6c 6c 20 74 68 65  | case of all the|
0000c5d0  20 77 72 69 74 61 62 6c  65 20 69 63 6f 6e 73 20  | writable icons |
0000c5e0  74 6f 20 65 6e 73 75 72  65 20 61 20 63 6f 6e 73  |to ensure a cons|
0000c5f0  69 73 74 61 6e 74 20 66  6f 72 6d 61 74 2e 0d 32  |istant format..2|
0000c600  28 4c f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |(L. ************|
0000c610  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c640  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 32 32 16 dd 20  |**********.22.. |
0000c650  f2 5f 46 6f 72 6d 61 74  49 63 6f 6e 54 65 78 74  |._FormatIconText|
0000c660  0d 32 3c 0e 20 20 20 ea  20 4c 6f 6f 70 25 0d 32  |.2<.   . Loop%.2|
0000c670  46 35 20 20 20 e3 20 4c  6f 6f 70 25 3d 54 6f 70  |F5   . Loop%=Top|
0000c680  53 65 74 49 6e 64 65 78  53 74 61 72 74 25 20 b8  |SetIndexStart% .|
0000c690  20 42 74 6d 53 65 74 49  74 65 6d 45 6e 64 25 20  | BtmSetItemEnd% |
0000c6a0  88 20 32 0d 32 50 35 20  20 20 20 20 20 f2 5f 53  |. 2.2P5      ._S|
0000c6b0  65 74 49 63 6f 6e 54 65  78 74 28 4c 6f 6f 70 25  |etIconText(Loop%|
0000c6c0  2b 31 2c 4d 61 69 6e 25  2c a4 5f 43 45 57 28 4c  |+1,Main%,._CEW(L|
0000c6d0  6f 6f 70 25 2b 31 29 29  0d 32 5a 21 20 20 20 20  |oop%+1)).2Z!    |
0000c6e0  20 20 f2 5f 52 65 64 72  61 77 28 4d 61 69 6e 25  |  ._Redraw(Main%|
0000c6f0  2c 4c 6f 6f 70 25 2b 31  29 0d 32 64 08 20 20 20  |,Loop%+1).2d.   |
0000c700  ed 0d 32 6e 2f 20 20 20  e3 20 4c 6f 6f 70 25 3d  |..2n/   . Loop%=|
0000c710  54 69 74 6c 65 46 69 72  73 74 4c 69 6e 65 25 20  |TitleFirstLine% |
0000c720  b8 20 54 69 74 6c 65 4c  61 73 74 4c 69 6e 65 25  |. TitleLastLine%|
0000c730  0d 32 78 36 20 20 20 20  20 20 f2 5f 53 65 74 49  |.2x6      ._SetI|
0000c740  63 6f 6e 54 65 78 74 28  4c 6f 6f 70 25 2c 4d 61  |conText(Loop%,Ma|
0000c750  69 6e 25 2c a4 5f 49 63  6f 6e 5f 46 54 55 28 4c  |in%,._Icon_FTU(L|
0000c760  6f 6f 70 25 29 29 0d 32  82 1f 20 20 20 20 20 20  |oop%)).2..      |
0000c770  f2 5f 52 65 64 72 61 77  28 4d 61 69 6e 25 2c 4c  |._Redraw(Main%,L|
0000c780  6f 6f 70 25 29 0d 32 8c  08 20 20 20 ed 0d 32 96  |oop%).2..   ..2.|
0000c790  4e 20 20 20 f4 20 55 73  65 72 20 6e 6f 74 65 20  |N   . User note |
0000c7a0  74 65 78 74 20 69 73 20  66 72 65 65 20 66 6f 72  |text is free for|
0000c7b0  6d 61 74 2c 20 49 2e 45  2e 20 49 20 64 6f 20 6e  |mat, I.E. I do n|
0000c7c0  6f 74 20 69 6d 70 6f 73  65 20 61 6e 79 20 72 75  |ot impose any ru|
0000c7d0  6c 65 73 20 61 74 20 61  6c 6c 21 0d 32 a0 05 e1  |les at all!.2...|
0000c7e0  0d 32 aa 05 3a 0d 32 b4  37 f4 20 2a 2a 2a 2a 2a  |.2..:.2.7. *****|
0000c7f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c810  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 32 be 37  |************.2.7|
0000c820  f4 20 46 75 6e 63 74 69  6f 6e 20 74 6f 20 43 61  |. Function to Ca|
0000c830  70 69 74 61 6c 69 73 65  20 45 61 63 68 20 57 6f  |pitalise Each Wo|
0000c840  72 64 20 69 6e 20 61 20  67 69 76 65 6e 20 49 63  |rd in a given Ic|
0000c850  6f 6e 2e 0d 32 c8 37 f4  20 2a 2a 2a 2a 2a 2a 2a  |on..2.7. *******|
0000c860  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000c880  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 32 d2 12 dd 20  |**********.2... |
0000c890  a4 5f 43 45 57 28 49 63  6f 6e 25 29 0d 32 dc 24  |._CEW(Icon%).2.$|
0000c8a0  20 20 20 ea 20 49 63 6f  6e 54 65 78 74 24 2c 20  |   . IconText$, |
0000c8b0  49 6e 64 65 78 25 2c 20  45 6e 64 25 2c 20 43 25  |Index%, End%, C%|
0000c8c0  0d 32 e6 2e 20 20 20 49  63 6f 6e 54 65 78 74 24  |.2..   IconText$|
0000c8d0  3d a4 5f 52 65 61 64 49  63 6f 6e 54 65 78 74 28  |=._ReadIconText(|
0000c8e0  4d 61 69 6e 25 2c 49 63  6f 6e 25 2c a3 29 0d 32  |Main%,Icon%,.).2|
0000c8f0  f0 29 20 20 20 f4 20 49  66 20 69 63 6f 6e 20 69  |.)   . If icon i|
0000c900  73 20 65 6d 70 74 79 2c  20 61 62 61 6e 64 6f 6e  |s empty, abandon|
0000c910  20 66 6f 72 6d 61 74 0d  32 fa 22 20 20 20 e7 20  | format.2."   . |
0000c920  49 63 6f 6e 54 65 78 74  24 3d 22 22 20 8c 20 3d  |IconText$="" . =|
0000c930  49 63 6f 6e 54 65 78 74  24 0d 33 04 23 20 20 20  |IconText$.3.#   |
0000c940  49 6e 64 65 78 25 3d 31  20 3a 20 45 6e 64 25 3d  |Index%=1 : End%=|
0000c950  a9 28 49 63 6f 6e 54 65  78 74 24 29 0d 33 0e 1a  |.(IconText$).3..|
0000c960  20 20 20 f4 20 47 65 74  20 31 73 74 20 63 68 61  |   . Get 1st cha|
0000c970  72 61 63 74 65 72 0d 33  18 16 20 20 20 c8 95 20  |racter.3..   .. |
0000c980  49 6e 64 65 78 25 3c 3d  45 6e 64 25 0d 33 22 37  |Index%<=End%.3"7|
0000c990  20 20 20 20 20 20 c1 49  63 6f 6e 54 65 78 74 24  |      .IconText$|
0000c9a0  2c 49 6e 64 65 78 25 2c  31 29 3d a4 5f 43 68 61  |,Index%,1)=._Cha|
0000c9b0  72 5f 46 54 55 28 49 63  6f 6e 25 2c 49 6e 64 65  |r_FTU(Icon%,Inde|
0000c9c0  78 25 29 0d 33 2c 13 20  20 20 20 20 20 49 6e 64  |x%).3,.      Ind|
0000c9d0  65 78 25 2b 3d 31 0d 33  36 21 20 20 20 20 20 20  |ex%+=1.36!      |
0000c9e0  43 24 3d c1 49 63 6f 6e  54 65 78 74 24 2c 49 6e  |C$=.IconText$,In|
0000c9f0  64 65 78 25 2c 31 29 0d  33 40 35 20 20 20 20 20  |dex%,1).3@5     |
0000ca00  20 f4 20 4c 6f 6f 70 20  75 6e 74 69 6c 20 65 6e  | . Loop until en|
0000ca10  64 20 6f 66 20 77 6f 72  64 20 28 6f 72 20 65 6e  |d of word (or en|
0000ca20  64 20 6f 66 20 73 74 72  69 6e 67 29 0d 33 4a 23  |d of string).3J#|
0000ca30  20 20 20 20 20 20 c8 95  20 43 24 3c 3e 22 20 22  |      .. C$<>" "|
0000ca40  20 80 20 49 6e 64 65 78  25 3c 3d 45 6e 64 25 0d  | . Index%<=End%.|
0000ca50  33 54 3a 20 20 20 20 20  20 20 20 20 c1 49 63 6f  |3T:         .Ico|
0000ca60  6e 54 65 78 74 24 2c 49  6e 64 65 78 25 2c 31 29  |nText$,Index%,1)|
0000ca70  3d a4 5f 43 68 61 72 5f  46 54 4c 28 49 63 6f 6e  |=._Char_FTL(Icon|
0000ca80  25 2c 49 6e 64 65 78 25  29 0d 33 5e 16 20 20 20  |%,Index%).3^.   |
0000ca90  20 20 20 20 20 20 49 6e  64 65 78 25 2b 3d 31 0d  |      Index%+=1.|
0000caa0  33 68 24 20 20 20 20 20  20 20 20 20 43 24 3d c1  |3h$         C$=.|
0000cab0  49 63 6f 6e 54 65 78 74  24 2c 49 6e 64 65 78 25  |IconText$,Index%|
0000cac0  2c 31 29 0d 33 72 0b 20  20 20 20 20 20 ce 0d 33  |,1).3r.      ..3|
0000cad0  7c 39 20 20 20 20 20 20  f4 20 4c 6f 6f 70 20 75  ||9      . Loop u|
0000cae0  6e 74 69 6c 20 6e 65 78  74 20 77 6f 72 64 20 66  |ntil next word f|
0000caf0  6f 75 6e 64 20 28 4f 72  20 65 6e 64 20 6f 66 20  |ound (Or end of |
0000cb00  73 74 72 69 6e 67 29 0d  33 86 22 20 20 20 20 20  |string).3."     |
0000cb10  20 c8 95 20 43 24 3d 22  20 22 20 80 20 49 6e 64  | .. C$=" " . Ind|
0000cb20  65 78 25 3c 3d 45 6e 64  25 0d 33 90 16 20 20 20  |ex%<=End%.3..   |
0000cb30  20 20 20 20 20 20 49 6e  64 65 78 25 2b 3d 31 0d  |      Index%+=1.|
0000cb40  33 9a 24 20 20 20 20 20  20 20 20 20 43 24 3d c1  |3.$         C$=.|
0000cb50  49 63 6f 6e 54 65 78 74  24 2c 49 6e 64 65 78 25  |IconText$,Index%|
0000cb60  2c 31 29 0d 33 a4 0b 20  20 20 20 20 20 ce 0d 33  |,1).3..      ..3|
0000cb70  ae 16 20 20 20 20 20 20  f1 49 6e 64 65 78 25 2c  |..      .Index%,|
0000cb80  45 6e 64 25 0d 33 b8 08  20 20 20 ce 0d 33 c2 0e  |End%.3..   ..3..|
0000cb90  3d 49 63 6f 6e 54 65 78  74 24 0d 33 cc 05 3a 0d  |=IconText$.3..:.|
0000cba0  33 d6 3f f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |3.?. ***********|
0000cbb0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000cbd0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 33  |**************.3|
0000cbe0  e0 3f f4 20 46 75 6e 63  74 69 6f 6e 20 74 6f 20  |.?. Function to |
0000cbf0  46 6f 72 63 65 20 61 6c  6c 20 74 65 78 74 20 69  |Force all text i|
0000cc00  6e 20 61 20 67 69 76 65  6e 20 69 63 6f 6e 20 74  |n a given icon t|
0000cc10  6f 20 55 50 50 45 52 20  43 41 53 45 2e 0d 33 ea  |o UPPER CASE..3.|
0000cc20  3f f4 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |?. *************|
0000cc30  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000cc50  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 33 f4 17  |************.3..|
0000cc60  dd 20 a4 5f 49 63 6f 6e  5f 46 54 55 28 49 63 6f  |. ._Icon_FTU(Ico|
0000cc70  6e 25 29 0d 33 fe 12 20  20 20 ea 20 49 63 6f 6e  |n%).3..   . Icon|
0000cc80  54 65 78 74 24 0d 34 08  2e 20 20 20 49 63 6f 6e  |Text$.4..   Icon|
0000cc90  54 65 78 74 24 3d a4 5f  52 65 61 64 49 63 6f 6e  |Text$=._ReadIcon|
0000cca0  54 65 78 74 28 4d 61 69  6e 25 2c 49 63 6f 6e 25  |Text(Main%,Icon%|
0000ccb0  2c a3 29 0d 34 12 23 20  20 20 49 6e 64 65 78 25  |,.).4.#   Index%|
0000ccc0  3d 31 20 3a 20 45 6e 64  25 3d a9 28 49 63 6f 6e  |=1 : End%=.(Icon|
0000ccd0  54 65 78 74 24 29 0d 34  1c 16 20 20 20 c8 95 20  |Text$).4..   .. |
0000cce0  49 6e 64 65 78 25 3c 3d  45 6e 64 25 0d 34 26 37  |Index%<=End%.4&7|
0000ccf0  20 20 20 20 20 20 c1 49  63 6f 6e 54 65 78 74 24  |      .IconText$|
0000cd00  2c 49 6e 64 65 78 25 2c  31 29 3d a4 5f 43 68 61  |,Index%,1)=._Cha|
0000cd10  72 5f 46 54 55 28 49 63  6f 6e 25 2c 49 6e 64 65  |r_FTU(Icon%,Inde|
0000cd20  78 25 29 0d 34 30 13 20  20 20 20 20 20 49 6e 64  |x%).40.      Ind|
0000cd30  65 78 25 2b 3d 31 0d 34  3a 21 20 20 20 20 20 20  |ex%+=1.4:!      |
0000cd40  43 24 3d c1 49 63 6f 6e  54 65 78 74 24 2c 49 6e  |C$=.IconText$,In|
0000cd50  64 65 78 25 2c 31 29 0d  34 44 08 20 20 20 ce 0d  |dex%,1).4D.   ..|
0000cd60  34 4e 0e 3d 49 63 6f 6e  54 65 78 74 24 0d 34 58  |4N.=IconText$.4X|
0000cd70  05 3a 0d 34 62 3f f4 20  2a 2a 2a 2a 2a 2a 2a 2a  |.:.4b?. ********|
0000cd80  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000cdb0  2a 0d 34 6c 3f f4 20 46  75 6e 63 74 69 6f 6e 20  |*.4l?. Function |
0000cdc0  74 6f 20 46 6f 72 63 65  20 61 6c 6c 20 74 65 78  |to Force all tex|
0000cdd0  74 20 69 6e 20 61 20 67  69 76 65 6e 20 69 63 6f  |t in a given ico|
0000cde0  6e 20 74 6f 20 4c 4f 57  45 52 20 43 41 53 45 2e  |n to LOWER CASE.|
0000cdf0  0d 34 76 3f f4 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.4v?. **********|
0000ce00  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000ce20  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
0000ce30  34 80 17 dd 20 a4 5f 49  63 6f 6e 5f 46 54 4c 28  |4... ._Icon_FTL(|
0000ce40  49 63 6f 6e 25 29 0d 34  8a 12 20 20 20 ea 20 49  |Icon%).4..   . I|
0000ce50  63 6f 6e 54 65 78 74 24  0d 34 94 2e 20 20 20 49  |conText$.4..   I|
0000ce60  63 6f 6e 54 65 78 74 24  3d a4 5f 52 65 61 64 49  |conText$=._ReadI|
0000ce70  63 6f 6e 54 65 78 74 28  4d 61 69 6e 25 2c 49 63  |conText(Main%,Ic|
0000ce80  6f 6e 25 2c a3 29 0d 34  9e 23 20 20 20 49 6e 64  |on%,.).4.#   Ind|
0000ce90  65 78 25 3d 31 20 3a 20  45 6e 64 25 3d a9 28 49  |ex%=1 : End%=.(I|
0000cea0  63 6f 6e 54 65 78 74 24  29 0d 34 a8 16 20 20 20  |conText$).4..   |
0000ceb0  c8 95 20 49 6e 64 65 78  25 3c 3d 45 6e 64 25 0d  |.. Index%<=End%.|
0000cec0  34 b2 37 20 20 20 20 20  20 c1 49 63 6f 6e 54 65  |4.7      .IconTe|
0000ced0  78 74 24 2c 49 6e 64 65  78 25 2c 31 29 3d a4 5f  |xt$,Index%,1)=._|
0000cee0  43 68 61 72 5f 46 54 4c  28 49 63 6f 6e 25 2c 49  |Char_FTL(Icon%,I|
0000cef0  6e 64 65 78 25 29 0d 34  bc 13 20 20 20 20 20 20  |ndex%).4..      |
0000cf00  49 6e 64 65 78 25 2b 3d  31 0d 34 c6 21 20 20 20  |Index%+=1.4.!   |
0000cf10  20 20 20 43 24 3d c1 49  63 6f 6e 54 65 78 74 24  |   C$=.IconText$|
0000cf20  2c 49 6e 64 65 78 25 2c  31 29 0d 34 d0 08 20 20  |,Index%,1).4..  |
0000cf30  20 ce 0d 34 da 05 3a 0d  34 e4 38 f4 20 2a 2a 2a  | ..4..:.4.8. ***|
0000cf40  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000cf60  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
0000cf70  34 ee 38 f4 20 46 75 6e  63 74 69 6f 6e 20 74 6f  |4.8. Function to|
0000cf80  20 46 6f 72 63 65 20 61  20 67 69 76 65 6e 20 63  | Force a given c|
0000cf90  68 61 72 61 63 74 65 72  20 74 6f 20 55 50 50 45  |haracter to UPPE|
0000cfa0  52 20 43 41 53 45 2e 0d  34 f8 38 f4 20 2a 2a 2a  |R CASE..4.8. ***|
0000cfb0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000cfd0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
0000cfe0  35 02 1e dd 20 a4 5f 43  68 61 72 5f 46 54 55 28  |5... ._Char_FTU(|
0000cff0  49 63 6f 6e 25 2c 49 6e  64 65 78 25 29 0d 35 0c  |Icon%,Index%).5.|
0000d000  0e 20 20 20 ea 20 54 65  6d 70 24 0d 35 16 21 20  |.   . Temp$.5.! |
0000d010  20 20 54 65 6d 70 24 3d  c1 49 63 6f 6e 54 65 78  |  Temp$=.IconTex|
0000d020  74 24 2c 49 6e 64 65 78  25 2c 31 29 0d 35 20 3a  |t$,Index%,1).5 :|
0000d030  20 20 20 e7 20 54 65 6d  70 24 3e 3d 22 61 22 20  |   . Temp$>="a" |
0000d040  80 20 54 65 6d 70 24 3c  3d 22 7a 22 20 8c 20 54  |. Temp$<="z" . T|
0000d050  65 6d 70 24 3d bd 28 97  28 54 65 6d 70 24 29 20  |emp$=.(.(Temp$) |
0000d060  80 20 26 44 46 29 0d 35  2a 0a 3d 54 65 6d 70 24  |. &DF).5*.=Temp$|
0000d070  0d 35 34 05 3a 0d 35 3e  38 f4 20 2a 2a 2a 2a 2a  |.54.:.5>8. *****|
0000d080  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000d0a0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 35 48  |*************.5H|
0000d0b0  38 f4 20 46 75 6e 63 74  69 6f 6e 20 74 6f 20 46  |8. Function to F|
0000d0c0  6f 72 63 65 20 61 20 67  69 76 65 6e 20 63 68 61  |orce a given cha|
0000d0d0  72 61 63 74 65 72 20 74  6f 20 4c 4f 57 45 52 20  |racter to LOWER |
0000d0e0  43 41 53 45 2e 0d 35 52  38 f4 20 2a 2a 2a 2a 2a  |CASE..5R8. *****|
0000d0f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000d110  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 35 5c  |*************.5\|
0000d120  1e dd 20 a4 5f 43 68 61  72 5f 46 54 4c 28 49 63  |.. ._Char_FTL(Ic|
0000d130  6f 6e 25 2c 49 6e 64 65  78 25 29 0d 35 66 0e 20  |on%,Index%).5f. |
0000d140  20 20 ea 20 54 65 6d 70  24 0d 35 70 21 20 20 20  |  . Temp$.5p!   |
0000d150  54 65 6d 70 24 3d c1 49  63 6f 6e 54 65 78 74 24  |Temp$=.IconText$|
0000d160  2c 49 6e 64 65 78 25 2c  31 29 0d 35 7a 3a 20 20  |,Index%,1).5z:  |
0000d170  20 e7 20 54 65 6d 70 24  3e 3d 22 41 22 20 80 20  | . Temp$>="A" . |
0000d180  54 65 6d 70 24 3c 3d 22  5a 22 20 8c 20 54 65 6d  |Temp$<="Z" . Tem|
0000d190  70 24 3d bd 28 97 28 54  65 6d 70 24 29 20 84 20  |p$=.(.(Temp$) . |
0000d1a0  26 32 30 29 0d 35 84 0a  3d 54 65 6d 70 24 0d 35  |&20).5..=Temp$.5|
0000d1b0  8e 05 3a 0d 35 98 5a f4  20 2a 2a 2a 2a 2a 2a 2a  |..:.5.Z. *******|
0000d1c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000d200  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 35 a2  |*************.5.|
0000d210  5a f4 20 53 65 74 20 75  70 20 76 61 72 69 61 62  |Z. Set up variab|
0000d220  6c 65 20 66 6f 72 20 70  72 69 6e 74 20 72 6f 75  |le for print rou|
0000d230  74 69 6e 65 20 74 6f 20  67 69 76 65 20 63 6f 72  |tine to give cor|
0000d240  72 65 63 74 20 73 69 7a  65 73 20 26 20 66 6f 72  |rect sizes & for|
0000d250  6d 61 74 20 66 6f 72 20  56 69 64 65 6f 5f 38 20  |mat for Video_8 |
0000d260  69 6e 6c 61 79 73 2e 0d  35 ac 5a f4 20 2a 2a 2a  |inlays..5.Z. ***|
0000d270  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000d2c0  2a 0d 35 b6 1f dd 20 f2  5f 47 65 74 44 6f 63 75  |*.5... ._GetDocu|
0000d2d0  6d 65 6e 74 53 69 7a 65  5f 38 28 42 6f 78 25 29  |mentSize_8(Box%)|
0000d2e0  0d 35 c0 12 20 20 20 50  72 69 6e 74 54 6f 70 25  |.5..   PrintTop%|
0000d2f0  3d a3 0d 35 ca 32 20 20  20 e3 20 4c 25 3d 54 6f  |=..5.2   . L%=To|
0000d300  70 53 65 74 49 6e 64 65  78 53 74 61 72 74 25 20  |pSetIndexStart% |
0000d310  b8 20 54 6f 70 53 65 74  49 74 65 6d 45 6e 64 25  |. TopSetItemEnd%|
0000d320  20 88 20 32 0d 35 d4 5b  20 20 20 20 20 20 e7 20  | . 2.5.[      . |
0000d330  a4 5f 52 65 61 64 49 63  6f 6e 54 65 78 74 28 4d  |._ReadIconText(M|
0000d340  61 69 6e 25 2c 4c 25 2c  a3 29 3c 3e 22 22 20 84  |ain%,L%,.)<>"" .|
0000d350  20 a4 5f 52 65 61 64 49  63 6f 6e 54 65 78 74 28  | ._ReadIconText(|
0000d360  4d 61 69 6e 25 2c 4c 25  2b 31 2c a3 29 3c 3e 22  |Main%,L%+1,.)<>"|
0000d370  22 20 8c 20 50 72 69 6e  74 54 6f 70 25 3d b9 0d  |" . PrintTop%=..|
0000d380  35 de 08 20 20 20 ed 0d  35 e8 2f 20 20 20 e7 20  |5..   ..5./   . |
0000d390  50 72 69 6e 74 54 6f 70  25 20 8c 20 48 65 69 67  |PrintTop% . Heig|
0000d3a0  68 74 25 3d 31 31 30 35  20 8b 20 48 65 69 67 68  |ht%=1105 . Heigh|
0000d3b0  74 25 3d 36 37 30 0d 35  f2 23 20 20 20 57 69 64  |t%=670.5.#   Wid|
0000d3c0  74 68 25 3d 36 37 35 20  3a 20 f4 20 37 2e 31 20  |th%=675 : . 7.1 |
0000d3d0  55 4e 49 54 53 3d 31 4d  4d 0d 35 fc 26 20 20 20  |UNITS=1MM.5.&   |
0000d3e0  58 31 25 3d 30 20 20 3a  20 20 58 32 25 3d 31 33  |X1%=0  :  X2%=13|
0000d3f0  35 20 20 3a 20 58 33 25  3d 57 69 64 74 68 25 0d  |5  : X3%=Width%.|
0000d400  36 06 3d 20 20 20 f4 20  59 31 25 3d 30 20 20 3a  |6.=   . Y1%=0  :|
0000d410  20 20 59 32 25 3d 31 31  34 20 20 3a 20 59 33 25  |  Y2%=114  : Y3%|
0000d420  3d 32 32 37 20 3a 20 59  34 25 3d 36 37 30 20 3a  |=227 : Y4%=670 :|
0000d430  20 59 35 25 3d 48 65 69  67 68 74 25 0d 36 10 47  | Y5%=Height%.6.G|
0000d440  20 20 20 59 31 25 3d 48  65 69 67 68 74 25 20 20  |   Y1%=Height%  |
0000d450  3a 20 20 59 32 25 3d 59  31 25 2d 31 31 34 20 20  |:  Y2%=Y1%-114  |
0000d460  3a 20 59 33 25 3d 59 31  25 2d 32 32 37 20 3a 20  |: Y3%=Y1%-227 : |
0000d470  59 34 25 3d 59 31 25 2d  36 37 30 20 3a 20 59 35  |Y4%=Y1%-670 : Y5|
0000d480  25 3d 30 0d 36 1a 22 20  20 20 42 6f 78 25 21 30  |%=0.6."   Box%!0|
0000d490  3d 30 20 20 20 20 20 20  20 20 20 3a 20 42 6f 78  |=0         : Box|
0000d4a0  25 21 34 3d 30 0d 36 24  65 20 20 20 42 6f 78 25  |%!4=0.6$e   Box%|
0000d4b0  21 38 3d 57 69 64 74 68  25 2b 32 30 20 3a 20 42  |!8=Width%+20 : B|
0000d4c0  6f 78 25 21 31 32 3d 48  65 69 67 68 74 25 2b 32  |ox%!12=Height%+2|
0000d4d0  30 20 3a 20 f4 20 54 6f  20 41 6c 6c 6f 77 20 46  |0 : . To Allow F|
0000d4e0  6f 72 20 52 6f 75 6e 64  69 6e 67 20 45 72 72 6f  |or Rounding Erro|
0000d4f0  72 73 20 49 6e 20 43 6f  6e 76 65 72 73 69 6f 6e  |rs In Conversion|
0000d500  20 52 6f 75 74 69 6e 65  73 2e 0d 36 2e 2c 20 20  | Routines..6.,  |
0000d510  20 f4 20 53 65 74 20 75  70 20 76 61 72 69 61 62  | . Set up variab|
0000d520  6c 65 20 66 6f 72 20 69  6e 6c 61 79 20 70 72 69  |le for inlay pri|
0000d530  6e 74 69 6e 67 2e 0d 36  38 64 20 20 20 46 6f 6e  |nting..68d   Fon|
0000d540  74 31 58 25 3d 31 33 2a  31 36 20 3a 20 46 6f 6e  |t1X%=13*16 : Fon|
0000d550  74 31 59 25 3d 31 32 2a  31 36 20 3a 20 46 6f 6e  |t1Y%=12*16 : Fon|
0000d560  74 32 58 25 3d 31 32 2a  31 36 20 3a 20 46 6f 6e  |t2X%=12*16 : Fon|
0000d570  74 32 59 25 3d 31 32 2a  31 36 20 3a 20 46 6f 6e  |t2Y%=12*16 : Fon|
0000d580  74 33 58 25 3d 31 33 2a  31 36 20 3a 20 46 6f 6e  |t3X%=13*16 : Fon|
0000d590  74 33 59 25 3d 31 33 2a  31 36 0d 36 42 20 20 20  |t3Y%=13*16.6B   |
0000d5a0  20 55 73 65 72 4e 6f 74  65 5f 59 5f 4f 66 66 73  | UserNote_Y_Offs|
0000d5b0  65 74 25 3d 59 32 25 2b  33 35 0d 36 4c 67 20 20  |et%=Y2%+35.6Lg  |
0000d5c0  20 54 69 74 6c 65 31 5f  59 5f 4f 66 66 73 65 74  | Title1_Y_Offset|
0000d5d0  25 3d 59 33 25 2b 38 32  20 3a 20 54 69 74 6c 65  |%=Y3%+82 : Title|
0000d5e0  32 5f 59 5f 4f 66 66 73  65 74 25 3d 59 33 25 2b  |2_Y_Offset%=Y3%+|
0000d5f0  34 37 20 3a 20 54 69 74  6c 65 33 5f 59 5f 4f 66  |47 : Title3_Y_Of|
0000d600  66 73 65 74 25 3d 59 33  25 2b 31 32 20 3a 20 54  |fset%=Y3%+12 : T|
0000d610  69 74 6c 65 5f 58 5f 4f  66 66 73 65 74 25 3d 38  |itle_X_Offset%=8|
0000d620  30 0d 36 56 5d 20 20 20  49 6e 64 65 78 5f 58 5f  |0.6V]   Index_X_|
0000d630  4f 66 66 73 65 74 25 3d  58 31 25 2b 32 30 20 3a  |Offset%=X1%+20 :|
0000d640  20 49 74 65 6d 5f 58 5f  4f 66 66 73 65 74 25 3d  | Item_X_Offset%=|
0000d650  58 32 25 2b 31 30 20 3a  20 54 65 78 74 5f 44 72  |X2%+10 : Text_Dr|
0000d660  6f 70 5f 42 74 6d 25 3d  32 35 20 3a 20 54 65 78  |op_Btm%=25 : Tex|
0000d670  74 5f 44 72 6f 70 5f 54  6f 70 25 3d 33 30 0d 36  |t_Drop_Top%=30.6|
0000d680  60 3e 20 20 20 43 6f 70  79 72 69 67 68 74 5f 54  |`>   Copyright_T|
0000d690  65 78 74 24 3d 22 56 69  64 65 6f 5f 38 20 49 6e  |ext$="Video_8 In|
0000d6a0  64 65 78 20 50 72 69 6e  74 65 72 20 a9 20 4d 2e  |dex Printer . M.|
0000d6b0  42 72 69 67 68 74 20 31  39 39 32 22 0d 36 6a 05  |Bright 1992".6j.|
0000d6c0  e1 0d 36 74 05 3a 0d 36  7e 58 f4 20 2a 2a 2a 2a  |..6t.:.6~X. ****|
0000d6d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000d710  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 36  |**************.6|
0000d720  88 58 f4 20 53 65 74 20  75 70 20 76 61 72 69 61  |.X. Set up varia|
0000d730  62 6c 65 20 66 6f 72 20  70 72 69 6e 74 20 72 6f  |ble for print ro|
0000d740  75 74 69 6e 65 20 74 6f  20 67 69 76 65 20 63 6f  |utine to give co|
0000d750  72 72 65 63 74 20 73 69  7a 65 73 20 26 20 66 6f  |rrect sizes & fo|
0000d760  72 6d 61 74 20 66 6f 72  20 56 48 53 5f 43 20 69  |rmat for VHS_C i|
0000d770  6e 6c 61 79 73 2e 0d 36  92 58 f4 20 2a 2a 2a 2a  |nlays..6.X. ****|
0000d780  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000d7c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 36  |**************.6|
0000d7d0  9c 1f dd 20 f2 5f 47 65  74 44 6f 63 75 6d 65 6e  |... ._GetDocumen|
0000d7e0  74 53 69 7a 65 5f 43 28  42 6f 78 25 29 0d 36 a6  |tSize_C(Box%).6.|
0000d7f0  12 20 20 20 50 72 69 6e  74 54 6f 70 25 3d a3 0d  |.   PrintTop%=..|
0000d800  36 b0 32 20 20 20 e3 20  4c 25 3d 54 6f 70 53 65  |6.2   . L%=TopSe|
0000d810  74 49 6e 64 65 78 53 74  61 72 74 25 20 b8 20 54  |tIndexStart% . T|
0000d820  6f 70 53 65 74 49 74 65  6d 45 6e 64 25 20 88 20  |opSetItemEnd% . |
0000d830  32 0d 36 ba 5b 20 20 20  20 20 20 e7 20 a4 5f 52  |2.6.[      . ._R|
0000d840  65 61 64 49 63 6f 6e 54  65 78 74 28 4d 61 69 6e  |eadIconText(Main|
0000d850  25 2c 4c 25 2c a3 29 3c  3e 22 22 20 84 20 a4 5f  |%,L%,.)<>"" . ._|
0000d860  52 65 61 64 49 63 6f 6e  54 65 78 74 28 4d 61 69  |ReadIconText(Mai|
0000d870  6e 25 2c 4c 25 2b 31 2c  a3 29 3c 3e 22 22 20 8c  |n%,L%+1,.)<>"" .|
0000d880  20 50 72 69 6e 74 54 6f  70 25 3d b9 0d 36 c4 08  | PrintTop%=..6..|
0000d890  20 20 20 ed 0d 36 ce 2f  20 20 20 e7 20 50 72 69  |   ..6./   . Pri|
0000d8a0  6e 74 54 6f 70 25 20 8c  20 48 65 69 67 68 74 25  |ntTop% . Height%|
0000d8b0  3d 31 31 32 30 20 8b 20  48 65 69 67 68 74 25 3d  |=1120 . Height%=|
0000d8c0  37 30 30 0d 36 d8 23 20  20 20 57 69 64 74 68 25  |700.6.#   Width%|
0000d8d0  3d 36 35 33 20 3a 20 f4  20 37 2e 31 20 55 4e 49  |=653 : . 7.1 UNI|
0000d8e0  54 53 3d 31 4d 4d 0d 36  e2 26 20 20 20 58 31 25  |TS=1MM.6.&   X1%|
0000d8f0  3d 30 20 20 3a 20 20 58  32 25 3d 31 32 30 20 20  |=0  :  X2%=120  |
0000d900  3a 20 58 33 25 3d 57 69  64 74 68 25 0d 36 ec 3d  |: X3%=Width%.6.=|
0000d910  20 20 20 f4 20 59 31 25  3d 30 20 20 3a 20 20 59  |   . Y1%=0  :  Y|
0000d920  32 25 3d 31 31 30 20 20  3a 20 59 33 25 3d 32 38  |2%=110  : Y3%=28|
0000d930  30 20 3a 20 59 34 25 3d  37 30 30 20 3a 20 59 35  |0 : Y4%=700 : Y5|
0000d940  25 3d 48 65 69 67 68 74  25 0d 36 f6 4b 20 20 20  |%=Height%.6.K   |
0000d950  59 31 25 3d 48 65 69 67  68 74 25 20 20 3a 20 20  |Y1%=Height%  :  |
0000d960  59 32 25 3d 48 65 69 67  68 74 25 2d 31 31 30 20  |Y2%=Height%-110 |
0000d970  20 3a 20 59 33 25 3d 59  31 25 2d 32 38 30 20 3a  | : Y3%=Y1%-280 :|
0000d980  20 59 34 25 3d 59 31 25  2d 37 30 30 20 3a 20 59  | Y4%=Y1%-700 : Y|
0000d990  35 25 3d 30 0d 37 00 22  20 20 20 42 6f 78 25 21  |5%=0.7."   Box%!|
0000d9a0  30 3d 30 20 20 20 20 20  20 20 20 20 3a 20 42 6f  |0=0         : Bo|
0000d9b0  78 25 21 34 3d 30 0d 37  0a 65 20 20 20 42 6f 78  |x%!4=0.7.e   Box|
0000d9c0  25 21 38 3d 57 69 64 74  68 25 2b 32 30 20 3a 20  |%!8=Width%+20 : |
0000d9d0  42 6f 78 25 21 31 32 3d  48 65 69 67 68 74 25 2b  |Box%!12=Height%+|
0000d9e0  32 30 20 3a 20 f4 20 54  6f 20 41 6c 6c 6f 77 20  |20 : . To Allow |
0000d9f0  46 6f 72 20 52 6f 75 6e  64 69 6e 67 20 45 72 72  |For Rounding Err|
0000da00  6f 72 73 20 49 6e 20 43  6f 6e 76 65 72 73 69 6f  |ors In Conversio|
0000da10  6e 20 52 6f 75 74 69 6e  65 73 2e 0d 37 14 2c 20  |n Routines..7., |
0000da20  20 20 f4 20 53 65 74 20  75 70 20 76 61 72 69 61  |  . Set up varia|
0000da30  62 6c 65 20 66 6f 72 20  69 6e 6c 61 79 20 70 72  |ble for inlay pr|
0000da40  69 6e 74 69 6e 67 2e 0d  37 1e 64 20 20 20 46 6f  |inting..7.d   Fo|
0000da50  6e 74 31 58 25 3d 31 33  2a 31 36 20 3a 20 46 6f  |nt1X%=13*16 : Fo|
0000da60  6e 74 31 59 25 3d 31 33  2a 31 36 20 3a 20 46 6f  |nt1Y%=13*16 : Fo|
0000da70  6e 74 32 58 25 3d 31 33  2a 31 36 20 3a 20 46 6f  |nt2X%=13*16 : Fo|
0000da80  6e 74 32 59 25 3d 31 32  2a 31 36 20 3a 20 46 6f  |nt2Y%=12*16 : Fo|
0000da90  6e 74 33 58 25 3d 31 32  2a 31 36 20 3a 20 46 6f  |nt3X%=12*16 : Fo|
0000daa0  6e 74 33 59 25 3d 31 32  2a 31 36 0d 37 28 20 20  |nt3Y%=12*16.7(  |
0000dab0  20 20 55 73 65 72 4e 6f  74 65 5f 59 5f 4f 66 66  |  UserNote_Y_Off|
0000dac0  73 65 74 25 3d 59 32 25  2b 33 35 0d 37 32 68 20  |set%=Y2%+35.72h |
0000dad0  20 20 54 69 74 6c 65 31  5f 59 5f 4f 66 66 73 65  |  Title1_Y_Offse|
0000dae0  74 25 3d 59 33 25 2b 31  33 30 20 3a 20 54 69 74  |t%=Y3%+130 : Tit|
0000daf0  6c 65 32 5f 59 5f 4f 66  66 73 65 74 25 3d 59 33  |le2_Y_Offset%=Y3|
0000db00  25 2b 37 35 20 3a 20 54  69 74 6c 65 33 5f 59 5f  |%+75 : Title3_Y_|
0000db10  4f 66 66 73 65 74 25 3d  59 33 25 2b 32 30 20 3a  |Offset%=Y3%+20 :|
0000db20  20 54 69 74 6c 65 5f 58  5f 4f 66 66 73 65 74 25  | Title_X_Offset%|
0000db30  3d 38 30 0d 37 3c 5d 20  20 20 49 6e 64 65 78 5f  |=80.7<]   Index_|
0000db40  58 5f 4f 66 66 73 65 74  25 3d 58 31 25 2b 31 30  |X_Offset%=X1%+10|
0000db50  20 3a 20 49 74 65 6d 5f  58 5f 4f 66 66 73 65 74  | : Item_X_Offset|
0000db60  25 3d 58 32 25 2b 31 30  20 3a 20 54 65 78 74 5f  |%=X2%+10 : Text_|
0000db70  44 72 6f 70 5f 42 74 6d  25 3d 32 35 20 3a 20 54  |Drop_Btm%=25 : T|
0000db80  65 78 74 5f 44 72 6f 70  5f 54 6f 70 25 3d 32 38  |ext_Drop_Top%=28|
0000db90  0d 37 46 3c 20 20 20 43  6f 70 79 72 69 67 68 74  |.7F<   Copyright|
0000dba0  5f 54 65 78 74 24 3d 22  56 48 53 2d 43 20 49 6e  |_Text$="VHS-C In|
0000dbb0  64 65 78 20 50 72 69 6e  74 65 72 20 a9 20 4d 2e  |dex Printer . M.|
0000dbc0  42 72 69 67 68 74 20 31  39 39 32 22 0d 37 50 05  |Bright 1992".7P.|
0000dbd0  e1 0d 37 5a 05 3a 0d 37  64 56 f4 20 2a 2a 2a 2a  |..7Z.:.7dV. ****|
0000dbe0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000dc20  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 37 6e 56  |************.7nV|
0000dc30  f4 20 53 65 74 20 75 70  20 76 61 72 69 61 62 6c  |. Set up variabl|
0000dc40  65 20 66 6f 72 20 70 72  69 6e 74 20 72 6f 75 74  |e for print rout|
0000dc50  69 6e 65 20 74 6f 20 67  69 76 65 20 63 6f 72 72  |ine to give corr|
0000dc60  65 63 74 20 73 69 7a 65  73 20 26 20 66 6f 72 6d  |ect sizes & form|
0000dc70  61 74 20 66 6f 72 20 44  41 54 20 69 6e 6c 61 79  |at for DAT inlay|
0000dc80  73 2e 0d 37 78 56 f4 20  2a 2a 2a 2a 2a 2a 2a 2a  |s..7xV. ********|
0000dc90  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000dcd0  2a 2a 2a 2a 2a 2a 2a 2a  0d 37 82 1f dd 20 f2 5f  |********.7... ._|
0000dce0  47 65 74 44 6f 63 75 6d  65 6e 74 53 69 7a 65 5f  |GetDocumentSize_|
0000dcf0  44 28 42 6f 78 25 29 0d  37 8c 12 20 20 20 50 72  |D(Box%).7..   Pr|
0000dd00  69 6e 74 54 6f 70 25 3d  a3 0d 37 96 32 20 20 20  |intTop%=..7.2   |
0000dd10  e3 20 4c 25 3d 54 6f 70  53 65 74 49 6e 64 65 78  |. L%=TopSetIndex|
0000dd20  53 74 61 72 74 25 20 b8  20 54 6f 70 53 65 74 49  |Start% . TopSetI|
0000dd30  74 65 6d 45 6e 64 25 20  88 20 32 0d 37 a0 5b 20  |temEnd% . 2.7.[ |
0000dd40  20 20 20 20 20 e7 20 a4  5f 52 65 61 64 49 63 6f  |     . ._ReadIco|
0000dd50  6e 54 65 78 74 28 4d 61  69 6e 25 2c 4c 25 2c a3  |nText(Main%,L%,.|
0000dd60  29 3c 3e 22 22 20 84 20  a4 5f 52 65 61 64 49 63  |)<>"" . ._ReadIc|
0000dd70  6f 6e 54 65 78 74 28 4d  61 69 6e 25 2c 4c 25 2b  |onText(Main%,L%+|
0000dd80  31 2c a3 29 3c 3e 22 22  20 8c 20 50 72 69 6e 74  |1,.)<>"" . Print|
0000dd90  54 6f 70 25 3d b9 0d 37  aa 08 20 20 20 ed 0d 37  |Top%=..7..   ..7|
0000dda0  b4 35 20 20 20 e7 20 50  72 69 6e 74 54 6f 70 25  |.5   . PrintTop%|
0000ddb0  20 8c 20 48 65 69 67 68  74 25 3d 37 2e 31 2a 31  | . Height%=7.1*1|
0000ddc0  33 30 20 8b 20 48 65 69  67 68 74 25 3d 37 2e 31  |30 . Height%=7.1|
0000ddd0  2a 37 37 0d 37 be 26 20  20 20 57 69 64 74 68 25  |*77.7.&   Width%|
0000dde0  3d 37 2e 31 2a 37 33 20  3a 20 f4 20 37 2e 31 20  |=7.1*73 : . 7.1 |
0000ddf0  55 4e 49 54 53 3d 31 4d  4d 0d 37 c8 29 20 20 20  |UNITS=1MM.7.)   |
0000de00  58 31 25 3d 30 20 20 3a  20 20 58 32 25 3d 37 2e  |X1%=0  :  X2%=7.|
0000de10  31 2a 31 32 20 20 3a 20  58 33 25 3d 57 69 64 74  |1*12  : X3%=Widt|
0000de20  68 25 0d 37 d2 51 20 20  20 59 31 25 3d 48 65 69  |h%.7.Q   Y1%=Hei|
0000de30  67 68 74 25 20 20 3a 20  20 59 32 25 3d 59 31 25  |ght%  :  Y2%=Y1%|
0000de40  2d 37 2e 31 2a 39 2e 35  20 20 3a 20 59 33 25 3d  |-7.1*9.5  : Y3%=|
0000de50  59 31 25 2d 37 2e 31 2a  32 32 20 3a 20 59 34 25  |Y1%-7.1*22 : Y4%|
0000de60  3d 59 31 25 2d 37 2e 31  2a 37 36 20 3a 20 59 35  |=Y1%-7.1*76 : Y5|
0000de70  25 3d 30 0d 37 dc 22 20  20 20 42 6f 78 25 21 30  |%=0.7."   Box%!0|
0000de80  3d 30 20 20 20 20 20 20  20 20 20 3a 20 42 6f 78  |=0         : Box|
0000de90  25 21 34 3d 30 0d 37 e6  65 20 20 20 42 6f 78 25  |%!4=0.7.e   Box%|
0000dea0  21 38 3d 57 69 64 74 68  25 2b 32 30 20 3a 20 42  |!8=Width%+20 : B|
0000deb0  6f 78 25 21 31 32 3d 48  65 69 67 68 74 25 2b 32  |ox%!12=Height%+2|
0000dec0  30 20 3a 20 f4 20 54 6f  20 41 6c 6c 6f 77 20 46  |0 : . To Allow F|
0000ded0  6f 72 20 52 6f 75 6e 64  69 6e 67 20 45 72 72 6f  |or Rounding Erro|
0000dee0  72 73 20 49 6e 20 43 6f  6e 76 65 72 73 69 6f 6e  |rs In Conversion|
0000def0  20 52 6f 75 74 69 6e 65  73 2e 0d 37 f0 2c 20 20  | Routines..7.,  |
0000df00  20 f4 20 53 65 74 20 75  70 20 76 61 72 69 61 62  | . Set up variab|
0000df10  6c 65 20 66 6f 72 20 69  6e 6c 61 79 20 70 72 69  |le for inlay pri|
0000df20  6e 74 69 6e 67 2e 0d 37  fa 64 20 20 20 46 6f 6e  |nting..7.d   Fon|
0000df30  74 31 58 25 3d 31 30 2a  31 36 20 3a 20 46 6f 6e  |t1X%=10*16 : Fon|
0000df40  74 31 59 25 3d 31 30 2a  31 36 20 3a 20 46 6f 6e  |t1Y%=10*16 : Fon|
0000df50  74 32 58 25 3d 31 31 2a  31 36 20 3a 20 46 6f 6e  |t2X%=11*16 : Fon|
0000df60  74 32 59 25 3d 31 31 2a  31 36 20 3a 20 46 6f 6e  |t2Y%=11*16 : Fon|
0000df70  74 33 58 25 3d 31 33 2a  31 36 20 3a 20 46 6f 6e  |t3X%=13*16 : Fon|
0000df80  74 33 59 25 3d 31 32 2a  31 36 0d 38 04 20 20 20  |t3Y%=12*16.8.   |
0000df90  20 55 73 65 72 4e 6f 74  65 5f 59 5f 4f 66 66 73  | UserNote_Y_Offs|
0000dfa0  65 74 25 3d 59 32 25 2b  32 35 0d 38 0e 4d 20 20  |et%=Y2%+25.8.M  |
0000dfb0  20 54 69 74 6c 65 31 5f  59 5f 4f 66 66 73 65 74  | Title1_Y_Offset|
0000dfc0  25 3d 59 33 25 2b 35 30  20 3a 20 54 69 74 6c 65  |%=Y3%+50 : Title|
0000dfd0  32 5f 59 5f 4f 66 66 73  65 74 25 3d 59 33 25 2b  |2_Y_Offset%=Y3%+|
0000dfe0  32 30 20 3a 20 54 69 74  6c 65 5f 58 5f 4f 66 66  |20 : Title_X_Off|
0000dff0  73 65 74 25 3d 38 30 0d  38 18 5b 20 20 20 49 6e  |set%=80.8.[   In|
0000e000  64 65 78 5f 58 5f 4f 66  66 73 65 74 25 3d 58 31  |dex_X_Offset%=X1|
0000e010  25 2b 34 20 3a 20 49 74  65 6d 5f 58 5f 4f 66 66  |%+4 : Item_X_Off|
0000e020  73 65 74 25 3d 58 32 25  2b 34 20 3a 20 54 65 78  |set%=X2%+4 : Tex|
0000e030  74 5f 44 72 6f 70 5f 42  74 6d 25 3d 32 33 20 3a  |t_Drop_Btm%=23 :|
0000e040  20 54 65 78 74 5f 44 72  6f 70 5f 54 6f 70 25 3d  | Text_Drop_Top%=|
0000e050  32 33 0d 38 22 3a 20 20  20 43 6f 70 79 72 69 67  |23.8":   Copyrig|
0000e060  68 74 5f 54 65 78 74 24  3d 22 44 41 54 20 49 6e  |ht_Text$="DAT In|
0000e070  6c 61 79 20 50 72 69 6e  74 65 72 20 a9 20 4d 2e  |lay Printer . M.|
0000e080  42 72 69 67 68 74 20 31  39 39 32 22 0d 38 2c 05  |Bright 1992".8,.|
0000e090  e1 0d 38 36 05 3a 0d 38  40 76 f4 20 2a 2a 2a 2a  |..86.:.8@v. ****|
0000e0a0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000e100  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 38 4a 76  |************.8Jv|
0000e110  f4 20 27 44 72 61 77 27  20 74 68 65 20 69 6e 6c  |. 'Draw' the inl|
0000e120  61 79 2c 20 75 73 69 6e  67 20 70 72 65 76 69 6f  |ay, using previo|
0000e130  75 73 6c 79 20 64 65 66  69 6e 65 64 20 76 61 72  |usly defined var|
0000e140  69 61 62 6c 65 73 2e 20  41 6c 6c 20 6f 75 74 70  |iables. All outp|
0000e150  75 74 20 68 61 73 20 62  65 65 6e 20 73 77 69 74  |ut has been swit|
0000e160  63 68 65 64 20 74 6f 20  74 68 65 20 70 72 69 6e  |ched to the prin|
0000e170  74 65 72 20 61 74 20 74  68 69 73 20 73 74 61 67  |ter at this stag|
0000e180  65 2e 0d 38 54 3e f4 20  74 68 69 73 20 72 6f 75  |e..8T>. this rou|
0000e190  74 69 6e 65 20 69 73 20  74 68 65 20 68 65 61 72  |tine is the hear|
0000e1a0  74 20 6f 66 20 74 68 65  20 52 69 73 63 2d 4f 53  |t of the Risc-OS|
0000e1b0  20 70 72 69 6e 74 65 72  20 6f 75 74 70 75 74 2e  | printer output.|
0000e1c0  0d 38 5e 76 f4 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.8^v. **********|
0000e1d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000e230  2a 2a 2a 2a 2a 2a 0d 38  68 24 dd 20 f2 5f 44 72  |******.8h$. ._Dr|
0000e240  61 77 49 6e 6c 61 79 28  43 6f 5f 6f 72 64 69 6e  |awInlay(Co_ordin|
0000e250  61 74 65 42 6c 6f 63 6b  25 29 0d 38 72 40 20 20  |ateBlock%).8r@  |
0000e260  20 c8 99 20 46 69 6e 64  25 2c 2c 42 61 73 65 46  | .. Find%,,BaseF|
0000e270  6f 6e 74 24 2c 46 6f 6e  74 31 58 25 2c 46 6f 6e  |ont$,Font1X%,Fon|
0000e280  74 31 59 25 2c 30 2c 30  20 b8 20 42 61 73 65 46  |t1Y%,0,0 . BaseF|
0000e290  6f 6e 74 48 61 6e 64 6c  65 25 0d 38 7c 40 20 20  |ontHandle%.8|@  |
0000e2a0  20 c8 99 20 46 69 6e 64  25 2c 2c 42 6f 6c 64 46  | .. Find%,,BoldF|
0000e2b0  6f 6e 74 24 2c 46 6f 6e  74 32 58 25 2c 46 6f 6e  |ont$,Font2X%,Fon|
0000e2c0  74 32 59 25 2c 30 2c 30  20 b8 20 42 6f 6c 64 46  |t2Y%,0,0 . BoldF|
0000e2d0  6f 6e 74 48 61 6e 64 6c  65 25 0d 38 86 40 20 20  |ontHandle%.8.@  |
0000e2e0  20 c8 99 20 46 69 6e 64  25 2c 2c 45 64 67 65 46  | .. Find%,,EdgeF|
0000e2f0  6f 6e 74 24 2c 46 6f 6e  74 33 58 25 2c 46 6f 6e  |ont$,Font3X%,Fon|
0000e300  74 33 59 25 2c 30 2c 30  20 b8 20 45 64 67 65 46  |t3Y%,0,0 . EdgeF|
0000e310  6f 6e 74 48 61 6e 64 6c  65 25 0d 38 90 05 3a 0d  |ontHandle%.8..:.|
0000e320  38 9a 30 20 20 20 e7 20  a4 5f 52 65 61 64 49 63  |8.0   . ._ReadIc|
0000e330  6f 6e 54 65 78 74 28 4d  61 69 6e 25 2c 55 73 65  |onText(Main%,Use|
0000e340  72 4e 6f 74 65 25 2c a3  29 3c 3e 22 22 20 8c 0d  |rNote%,.)<>"" ..|
0000e350  38 a4 31 20 20 20 20 20  20 54 65 78 74 24 3d a4  |8.1      Text$=.|
0000e360  5f 52 65 61 64 49 63 6f  6e 54 65 78 74 28 4d 61  |_ReadIconText(Ma|
0000e370  69 6e 25 2c 55 73 65 72  4e 6f 74 65 25 2c a3 29  |in%,UserNote%,.)|
0000e380  0d 38 ae 08 20 20 20 cc  0d 38 b8 1f 20 20 20 20  |.8..   ..8..    |
0000e390  20 20 54 65 78 74 24 3d  43 6f 70 79 72 69 67 68  |  Text$=Copyrigh|
0000e3a0  74 5f 54 65 78 74 24 0d  38 c2 08 20 20 20 cd 0d  |t_Text$.8..   ..|
0000e3b0  38 cc 3f 20 20 20 f2 5f  43 65 6e 74 72 65 50 72  |8.?   ._CentrePr|
0000e3c0  6f 70 28 54 65 78 74 24  2c 55 73 65 72 4e 6f 74  |op(Text$,UserNot|
0000e3d0  65 5f 59 5f 4f 66 66 73  65 74 25 2c 22 42 6f 6c  |e_Y_Offset%,"Bol|
0000e3e0  64 22 2c 57 69 64 74 68  25 2f 37 2e 31 29 0d 38  |d",Width%/7.1).8|
0000e3f0  d6 05 3a 0d 38 e0 65 20  20 20 f2 5f 43 65 6e 74  |..:.8.e   ._Cent|
0000e400  72 65 50 72 6f 70 28 a4  5f 52 65 61 64 49 63 6f  |reProp(._ReadIco|
0000e410  6e 54 65 78 74 28 4d 61  69 6e 25 2c 54 69 74 6c  |nText(Main%,Titl|
0000e420  65 46 69 72 73 74 4c 69  6e 65 25 2c a3 29 2c 54  |eFirstLine%,.),T|
0000e430  69 74 6c 65 31 5f 59 5f  4f 66 66 73 65 74 25 2c  |itle1_Y_Offset%,|
0000e440  22 54 69 74 6c 65 22 2c  54 69 74 6c 65 5f 58 5f  |"Title",Title_X_|
0000e450  4f 66 66 73 65 74 25 29  0d 38 ea 18 20 20 20 f2  |Offset%).8..   .|
0000e460  5f 50 72 69 6e 74 54 61  70 65 4e 75 6d 62 65 72  |_PrintTapeNumber|
0000e470  0d 38 f4 67 20 20 20 f2  5f 43 65 6e 74 72 65 50  |.8.g   ._CentreP|
0000e480  72 6f 70 28 a4 5f 52 65  61 64 49 63 6f 6e 54 65  |rop(._ReadIconTe|
0000e490  78 74 28 4d 61 69 6e 25  2c 54 69 74 6c 65 46 69  |xt(Main%,TitleFi|
0000e4a0  72 73 74 4c 69 6e 65 25  2b 31 2c a3 29 2c 54 69  |rstLine%+1,.),Ti|
0000e4b0  74 6c 65 32 5f 59 5f 4f  66 66 73 65 74 25 2c 22  |tle2_Y_Offset%,"|
0000e4c0  54 69 74 6c 65 22 2c 54  69 74 6c 65 5f 58 5f 4f  |Title",Title_X_O|
0000e4d0  66 66 73 65 74 25 29 0d  38 fe 1c 20 20 20 e7 20  |ffset%).8..   . |
0000e4e0  49 6e 6c 61 79 54 79 70  65 24 3c 3e 22 44 41 54  |InlayType$<>"DAT|
0000e4f0  22 20 8c 0d 39 08 6a 20  20 20 20 20 20 f2 5f 43  |" ..9.j      ._C|
0000e500  65 6e 74 72 65 50 72 6f  70 28 a4 5f 52 65 61 64  |entreProp(._Read|
0000e510  49 63 6f 6e 54 65 78 74  28 4d 61 69 6e 25 2c 54  |IconText(Main%,T|
0000e520  69 74 6c 65 46 69 72 73  74 4c 69 6e 65 25 2b 32  |itleFirstLine%+2|
0000e530  2c a3 29 2c 54 69 74 6c  65 33 5f 59 5f 4f 66 66  |,.),Title3_Y_Off|
0000e540  73 65 74 25 2c 22 54 69  74 6c 65 22 2c 54 69 74  |set%,"Title",Tit|
0000e550  6c 65 5f 58 5f 4f 66 66  73 65 74 25 29 0d 39 12  |le_X_Offset%).9.|
0000e560  08 20 20 20 cd 0d 39 1c  05 3a 0d 39 26 1f 20 20  |.   ..9..:.9&.  |
0000e570  20 53 65 70 61 72 61 74  69 6f 6e 25 3d 28 59 33  | Separation%=(Y3|
0000e580  25 2d 59 34 25 29 2f 31  33 0d 39 30 25 20 20 20  |%-Y4%)/13.90%   |
0000e590  53 70 61 63 65 53 74 61  72 74 59 25 3d 59 34 25  |SpaceStartY%=Y4%|
0000e5a0  20 2b 20 53 65 70 61 72  61 74 69 6f 6e 25 0d 39  | + Separation%.9|
0000e5b0  3a 1e 20 20 20 49 63 6f  6e 25 3d 42 74 6d 53 65  |:.   Icon%=BtmSe|
0000e5c0  74 49 6e 64 65 78 53 74  61 72 74 25 0d 39 44 2f  |tIndexStart%.9D/|
0000e5d0  20 20 20 c8 99 20 22 43  6f 6c 6f 75 72 54 72 61  |   .. "ColourTra|
0000e5e0  6e 73 5f 53 65 74 47 43  4f 4c 22 2c 26 43 30 43  |ns_SetGCOL",&C0C|
0000e5f0  30 43 30 30 30 2c 2c 2c  30 2c 30 0d 39 4e 1d 20  |0C000,,,0,0.9N. |
0000e600  20 20 c8 95 20 53 70 61  63 65 53 74 61 72 74 59  |  .. SpaceStartY|
0000e610  25 20 3c 3d 20 59 33 25  0d 39 58 4a 20 20 20 20  |% <= Y3%.9XJ    |
0000e620  20 20 e7 20 53 70 61 63  65 53 74 61 72 74 59 25  |  . SpaceStartY%|
0000e630  20 3c 20 59 33 25 2d 31  30 20 8c 20 ec 20 58 31  | < Y3%-10 . . X1|
0000e640  25 2c 53 70 61 63 65 53  74 61 72 74 59 25 20 3a  |%,SpaceStartY% :|
0000e650  df 20 58 33 25 2c 53 70  61 63 65 53 74 61 72 74  |. X3%,SpaceStart|
0000e660  59 25 0d 39 62 2d 20 20  20 20 20 20 54 65 78 74  |Y%.9b-      Text|
0000e670  24 3d a4 5f 52 65 61 64  49 63 6f 6e 54 65 78 74  |$=._ReadIconText|
0000e680  28 4d 61 69 6e 25 2c 49  63 6f 6e 25 2c a3 29 0d  |(Main%,Icon%,.).|
0000e690  39 6c 4b 20 20 20 20 20  20 f2 5f 46 6f 6e 74 50  |9lK      ._FontP|
0000e6a0  61 69 6e 74 28 22 22 2c  54 65 78 74 24 2c 49 6e  |aint("",Text$,In|
0000e6b0  64 65 78 5f 58 5f 4f 66  66 73 65 74 25 2c 53 70  |dex_X_Offset%,Sp|
0000e6c0  61 63 65 53 74 61 72 74  59 25 2d 54 65 78 74 5f  |aceStartY%-Text_|
0000e6d0  44 72 6f 70 5f 42 74 6d  25 29 0d 39 76 2f 20 20  |Drop_Btm%).9v/  |
0000e6e0  20 20 20 20 54 65 78 74  24 3d a4 5f 52 65 61 64  |    Text$=._Read|
0000e6f0  49 63 6f 6e 54 65 78 74  28 4d 61 69 6e 25 2c 49  |IconText(Main%,I|
0000e700  63 6f 6e 25 2b 31 2c a3  29 0d 39 80 4a 20 20 20  |con%+1,.).9.J   |
0000e710  20 20 20 f2 5f 46 6f 6e  74 50 61 69 6e 74 28 22  |   ._FontPaint("|
0000e720  22 2c 54 65 78 74 24 2c  49 74 65 6d 5f 58 5f 4f  |",Text$,Item_X_O|
0000e730  66 66 73 65 74 25 2c 53  70 61 63 65 53 74 61 72  |ffset%,SpaceStar|
0000e740  74 59 25 2d 54 65 78 74  5f 44 72 6f 70 5f 42 74  |tY%-Text_Drop_Bt|
0000e750  6d 25 29 0d 39 8a 23 20  20 20 20 20 20 53 70 61  |m%).9.#      Spa|
0000e760  63 65 53 74 61 72 74 59  25 2b 3d 53 65 70 61 72  |ceStartY%+=Separ|
0000e770  61 74 69 6f 6e 25 0d 39  94 12 20 20 20 20 20 20  |ation%.9..      |
0000e780  49 63 6f 6e 25 2b 3d 32  0d 39 9e 08 20 20 20 ce  |Icon%+=2.9..   .|
0000e790  0d 39 a8 05 3a 0d 39 b2  14 20 20 20 e7 20 50 72  |.9..:.9..   . Pr|
0000e7a0  69 6e 74 54 6f 70 25 20  8c 0d 39 bc 21 20 20 20  |intTop% ..9.!   |
0000e7b0  20 20 20 53 65 70 61 72  61 74 69 6f 6e 3d 28 59  |   Separation=(Y|
0000e7c0  34 25 2d 59 35 25 29 2f  31 32 0d 39 c6 26 20 20  |4%-Y5%)/12.9.&  |
0000e7d0  20 20 20 20 53 70 61 63  65 53 74 61 72 74 59 3d  |    SpaceStartY=|
0000e7e0  59 35 25 20 2b 20 53 65  70 61 72 61 74 69 6f 6e  |Y5% + Separation|
0000e7f0  0d 39 d0 21 20 20 20 20  20 20 49 63 6f 6e 25 3d  |.9.!      Icon%=|
0000e800  54 6f 70 53 65 74 49 6e  64 65 78 53 74 61 72 74  |TopSetIndexStart|
0000e810  25 0d 39 da 32 20 20 20  20 20 20 c8 99 20 22 43  |%.9.2      .. "C|
0000e820  6f 6c 6f 75 72 54 72 61  6e 73 5f 53 65 74 47 43  |olourTrans_SetGC|
0000e830  4f 4c 22 2c 26 43 30 43  30 43 30 30 30 2c 2c 2c  |OL",&C0C0C000,,,|
0000e840  30 2c 30 0d 39 e4 1f 20  20 20 20 20 20 c8 95 20  |0,0.9..      .. |
0000e850  53 70 61 63 65 53 74 61  72 74 59 20 3c 3d 20 59  |SpaceStartY <= Y|
0000e860  34 25 0d 39 ee 4a 20 20  20 20 20 20 20 20 20 e7  |4%.9.J         .|
0000e870  20 53 70 61 63 65 53 74  61 72 74 59 20 3c 20 59  | SpaceStartY < Y|
0000e880  34 25 2d 31 30 20 8c 20  ec 20 58 31 25 2c 53 70  |4%-10 . . X1%,Sp|
0000e890  61 63 65 53 74 61 72 74  59 20 3a df 20 58 33 25  |aceStartY :. X3%|
0000e8a0  2c 53 70 61 63 65 53 74  61 72 74 59 0d 39 f8 30  |,SpaceStartY.9.0|
0000e8b0  20 20 20 20 20 20 20 20  20 54 65 78 74 24 3d a4  |         Text$=.|
0000e8c0  5f 52 65 61 64 49 63 6f  6e 54 65 78 74 28 4d 61  |_ReadIconText(Ma|
0000e8d0  69 6e 25 2c 49 63 6f 6e  25 2c a3 29 0d 3a 02 4d  |in%,Icon%,.).:.M|
0000e8e0  20 20 20 20 20 20 20 20  20 f2 5f 46 6f 6e 74 50  |         ._FontP|
0000e8f0  61 69 6e 74 28 22 22 2c  54 65 78 74 24 2c 49 6e  |aint("",Text$,In|
0000e900  64 65 78 5f 58 5f 4f 66  66 73 65 74 25 2c 53 70  |dex_X_Offset%,Sp|
0000e910  61 63 65 53 74 61 72 74  59 2d 54 65 78 74 5f 44  |aceStartY-Text_D|
0000e920  72 6f 70 5f 54 6f 70 25  29 0d 3a 0c 32 20 20 20  |rop_Top%).:.2   |
0000e930  20 20 20 20 20 20 54 65  78 74 24 3d a4 5f 52 65  |      Text$=._Re|
0000e940  61 64 49 63 6f 6e 54 65  78 74 28 4d 61 69 6e 25  |adIconText(Main%|
0000e950  2c 49 63 6f 6e 25 2b 31  2c a3 29 0d 3a 16 4c 20  |,Icon%+1,.).:.L |
0000e960  20 20 20 20 20 20 20 20  f2 5f 46 6f 6e 74 50 61  |        ._FontPa|
0000e970  69 6e 74 28 22 22 2c 54  65 78 74 24 2c 49 74 65  |int("",Text$,Ite|
0000e980  6d 5f 58 5f 4f 66 66 73  65 74 25 2c 53 70 61 63  |m_X_Offset%,Spac|
0000e990  65 53 74 61 72 74 59 2d  54 65 78 74 5f 44 72 6f  |eStartY-Text_Dro|
0000e9a0  70 5f 54 6f 70 25 29 0d  3a 20 24 20 20 20 20 20  |p_Top%).: $     |
0000e9b0  20 20 20 20 53 70 61 63  65 53 74 61 72 74 59 2b  |    SpaceStartY+|
0000e9c0  3d 53 65 70 61 72 61 74  69 6f 6e 0d 3a 2a 15 20  |=Separation.:*. |
0000e9d0  20 20 20 20 20 20 20 20  49 63 6f 6e 25 2b 3d 32  |        Icon%+=2|
0000e9e0  0d 3a 34 0b 20 20 20 20  20 20 ce 0d 3a 3e 08 20  |.:4.      ..:>. |
0000e9f0  20 20 cd 0d 3a 48 05 3a  0d 3a 52 2f 20 20 20 c8  |  ..:H.:.:R/   .|
0000ea00  99 20 22 43 6f 6c 6f 75  72 54 72 61 6e 73 5f 53  |. "ColourTrans_S|
0000ea10  65 74 47 43 4f 4c 22 2c  26 30 30 30 30 30 30 30  |etGCOL",&0000000|
0000ea20  30 2c 2c 2c 30 2c 30 0d  3a 5c 19 20 20 20 c8 93  |0,,,0,0.:\.   ..|
0000ea30  20 58 31 25 2c 59 35 25  2c 58 33 25 2c 59 31 25  | X1%,Y5%,X3%,Y1%|
0000ea40  0d 3a 66 1d 20 20 20 c8  93 20 58 31 25 2c 59 33  |.:f.   .. X1%,Y3|
0000ea50  25 2c 58 33 25 2c 59 32  25 2d 59 33 25 0d 3a 70  |%,X3%,Y2%-Y3%.:p|
0000ea60  1c 20 20 20 ec 20 58 31  25 2c 59 34 25 20 3a 20  |.   . X1%,Y4% : |
0000ea70  df 20 58 33 25 2c 59 34  25 0d 3a 7a 1c 20 20 20  |. X3%,Y4%.:z.   |
0000ea80  ec 20 58 32 25 2c 59 33  25 20 3a 20 df 20 58 32  |. X2%,Y3% : . X2|
0000ea90  25 2c 59 35 25 0d 3a 84  05 3a 0d 3a 8e 1f 20 20  |%,Y5%.:..:.:..  |
0000eaa0  20 c8 99 20 4c 6f 73 65  25 2c 42 61 73 65 46 6f  | .. Lose%,BaseFo|
0000eab0  6e 74 48 61 6e 64 6c 65  25 0d 3a 98 1f 20 20 20  |ntHandle%.:..   |
0000eac0  c8 99 20 4c 6f 73 65 25  2c 42 6f 6c 64 46 6f 6e  |.. Lose%,BoldFon|
0000ead0  74 48 61 6e 64 6c 65 25  0d 3a a2 1f 20 20 20 c8  |tHandle%.:..   .|
0000eae0  99 20 4c 6f 73 65 25 2c  45 64 67 65 46 6f 6e 74  |. Lose%,EdgeFont|
0000eaf0  48 61 6e 64 6c 65 25 0d  3a ac 05 e1 0d 3a b6 05  |Handle%.:....:..|
0000eb00  3a 0d 3a c0 3e f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |:.:.>. *********|
0000eb10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000eb30  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0d  |***************.|
0000eb40  3a ca 3e f4 20 53 65 6e  64 73 20 74 68 65 20 69  |:.>. Sends the i|
0000eb50  6e 6c 61 79 20 64 61 74  61 20 74 6f 20 74 68 65  |nlay data to the|
0000eb60  20 70 72 69 6e 74 65 72  20 69 6e 20 4e 4f 4e 20  | printer in NON |
0000eb70  52 69 73 63 2d 4f 53 20  6d 6f 64 65 2e 0d 3a d4  |Risc-OS mode..:.|
0000eb80  3e f4 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |>. *************|
0000eb90  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000ebb0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 3a de 1e dd  |***********.:...|
0000ebc0  20 f2 5f 44 6f 50 72 69  6e 74 69 6e 67 28 49 6e  | ._DoPrinting(In|
0000ebd0  6c 61 79 54 79 70 65 24  29 0d 3a e8 26 20 20 20  |layType$).:.&   |
0000ebe0  f2 5f 53 65 74 50 72 69  6e 74 56 61 72 69 61 62  |._SetPrintVariab|
0000ebf0  6c 65 73 28 49 6e 6c 61  79 54 79 70 65 24 29 0d  |les(InlayType$).|
0000ec00  3a f2 1e 20 20 20 f2 5f  53 65 6e 64 44 61 74 61  |:..   ._SendData|
0000ec10  28 50 72 69 6e 74 50 69  74 63 68 24 29 0d 3a fc  |(PrintPitch$).:.|
0000ec20  08 20 20 20 3a 0d 3b 06  38 20 20 20 f1 20 4c 6f  |.   :.;.8   . Lo|
0000ec30  6e 67 4d 69 6e 75 73 24  20 3a 20 e7 20 49 6e 6c  |ngMinus$ : . Inl|
0000ec40  61 79 54 79 70 65 24 3c  3e 22 44 41 54 22 20 8c  |ayType$<>"DAT" .|
0000ec50  20 f1 20 42 6c 61 6e 6b  4c 69 6e 65 24 0d 3b 10  | . BlankLine$.;.|
0000ec60  2f 20 20 20 e7 20 a4 5f  52 65 61 64 49 63 6f 6e  |/   . ._ReadIcon|
0000ec70  54 65 78 74 28 4d 61 69  6e 25 2c 55 73 65 72 4e  |Text(Main%,UserN|
0000ec80  6f 74 65 25 2c a3 29 3d  22 22 20 8c 0d 3b 1a 16  |ote%,.)="" ..;..|
0000ec90  20 20 20 20 20 20 f1 20  43 6f 70 79 72 69 67 68  |      . Copyrigh|
0000eca0  74 24 0d 3b 24 08 20 20  20 cc 0d 3b 2e 4b 20 20  |t$.;$.   ..;.K  |
0000ecb0  20 20 20 20 f1 20 22 7c  22 3b a4 5f 43 65 6e 74  |    . "|";._Cent|
0000ecc0  72 65 28 a4 5f 52 65 61  64 49 63 6f 6e 54 65 78  |re(._ReadIconTex|
0000ecd0  74 28 4d 61 69 6e 25 2c  55 73 65 72 4e 6f 74 65  |t(Main%,UserNote|
0000ece0  25 2c a3 29 2c 4c 69 6e  65 4c 65 6e 67 74 68 25  |%,.),LineLength%|
0000ecf0  29 3b 22 7c 22 0d 3b 38  08 20 20 20 cd 0d 3b 42  |);"|".;8.   ..;B|
0000ed00  13 20 20 20 f1 20 4c 6f  6e 67 45 71 75 61 6c 24  |.   . LongEqual$|
0000ed10  0d 3b 4c 1f 20 20 20 f2  5f 50 72 69 6e 74 54 69  |.;L.   ._PrintTi|
0000ed20  74 6c 65 28 49 6e 6c 61  79 54 79 70 65 24 29 0d  |tle(InlayType$).|
0000ed30  3b 56 38 20 20 20 f1 20  4c 6f 6e 67 45 71 75 61  |;V8   . LongEqua|
0000ed40  6c 24 20 3a 20 e7 20 49  6e 6c 61 79 54 79 70 65  |l$ : . InlayType|
0000ed50  24 3c 3e 22 44 41 54 22  20 8c 20 f1 20 42 6c 61  |$<>"DAT" . . Bla|
0000ed60  6e 6b 4c 69 6e 65 24 0d  3b 60 34 20 20 20 e3 20  |nkLine$.;`4   . |
0000ed70  4c 25 3d 42 74 6d 53 65  74 49 6e 64 65 78 45 6e  |L%=BtmSetIndexEn|
0000ed80  64 25 20 b8 20 42 74 6d  53 65 74 49 6e 64 65 78  |d% . BtmSetIndex|
0000ed90  53 74 61 72 74 25 20 88  20 2d 32 0d 3b 6a 67 20  |Start% . -2.;jg |
0000eda0  20 20 20 20 20 f1 20 22  7c 22 3b c2 c4 37 2c 22  |     . "|";..7,"|
0000edb0  20 22 2b a4 5f 52 65 61  64 49 63 6f 6e 54 65 78  | "+._ReadIconTex|
0000edc0  74 28 4d 61 69 6e 25 2c  4c 25 2c a3 29 29 2c 37  |t(Main%,L%,.)),7|
0000edd0  29 3b 53 70 61 63 65 72  24 3b a4 5f 52 65 61 64  |);Spacer$;._Read|
0000ede0  49 63 6f 6e 54 65 78 74  28 4d 61 69 6e 25 2c 4c  |IconText(Main%,L|
0000edf0  25 2b 31 2c 54 69 74 6c  65 4c 65 6e 25 29 3b 22  |%+1,TitleLen%);"|
0000ee00  7c 22 0d 3b 74 08 20 20  20 ed 0d 3b 7e 29 20 20  ||".;t.   ..;~)  |
0000ee10  20 e7 20 49 6e 6c 61 79  54 79 70 65 24 3c 3e 22  | . InlayType$<>"|
0000ee20  44 41 54 22 20 8c 20 f1  20 4c 6f 6e 67 4d 69 6e  |DAT" . . LongMin|
0000ee30  75 73 24 0d 3b 88 08 20  20 20 3a 0d 3b 92 12 20  |us$.;..   :.;.. |
0000ee40  20 20 50 72 69 6e 74 54  6f 70 25 3d a3 0d 3b 9c  |  PrintTop%=..;.|
0000ee50  34 20 20 20 e3 20 4c 25  3d 54 6f 70 53 65 74 49  |4   . L%=TopSetI|
0000ee60  6e 64 65 78 45 6e 64 25  20 b8 20 54 6f 70 53 65  |ndexEnd% . TopSe|
0000ee70  74 49 6e 64 65 78 53 74  61 72 74 25 20 88 20 2d  |tIndexStart% . -|
0000ee80  32 0d 3b a6 5b 20 20 20  20 20 20 e7 20 a4 5f 52  |2.;.[      . ._R|
0000ee90  65 61 64 49 63 6f 6e 54  65 78 74 28 4d 61 69 6e  |eadIconText(Main|
0000eea0  25 2c 4c 25 2c a3 29 3c  3e 22 22 20 84 20 a4 5f  |%,L%,.)<>"" . ._|
0000eeb0  52 65 61 64 49 63 6f 6e  54 65 78 74 28 4d 61 69  |ReadIconText(Mai|
0000eec0  6e 25 2c 4c 25 2b 31 2c  a3 29 3c 3e 22 22 20 8c  |n%,L%+1,.)<>"" .|
0000eed0  20 50 72 69 6e 74 54 6f  70 25 3d b9 0d 3b b0 08  | PrintTop%=..;..|
0000eee0  20 20 20 ed 0d 3b ba 08  20 20 20 3a 0d 3b c4 14  |   ..;..   :.;..|
0000eef0  20 20 20 e7 20 50 72 69  6e 74 54 6f 70 25 20 8c  |   . PrintTop% .|
0000ef00  0d 3b ce 2c 20 20 20 20  20 20 e7 20 49 6e 6c 61  |.;.,      . Inla|
0000ef10  79 54 79 70 65 24 3c 3e  22 44 41 54 22 20 8c 20  |yType$<>"DAT" . |
0000ef20  f1 20 42 6c 61 6e 6b 4c  69 6e 65 24 0d 3b d8 37  |. BlankLine$.;.7|
0000ef30  20 20 20 20 20 20 e3 20  4c 25 3d 54 6f 70 53 65  |      . L%=TopSe|
0000ef40  74 49 6e 64 65 78 45 6e  64 25 20 b8 20 54 6f 70  |tIndexEnd% . Top|
0000ef50  53 65 74 49 6e 64 65 78  53 74 61 72 74 25 20 88  |SetIndexStart% .|
0000ef60  20 2d 32 0d 3b e2 6a 20  20 20 20 20 20 20 20 20  | -2.;.j         |
0000ef70  f1 20 22 7c 22 3b c2 c4  37 2c 22 20 22 2b a4 5f  |. "|";..7," "+._|
0000ef80  52 65 61 64 49 63 6f 6e  54 65 78 74 28 4d 61 69  |ReadIconText(Mai|
0000ef90  6e 25 2c 4c 25 2c a3 29  29 2c 37 29 3b 53 70 61  |n%,L%,.)),7);Spa|
0000efa0  63 65 72 24 3b a4 5f 52  65 61 64 49 63 6f 6e 54  |cer$;._ReadIconT|
0000efb0  65 78 74 28 4d 61 69 6e  25 2c 4c 25 2b 31 2c 54  |ext(Main%,L%+1,T|
0000efc0  69 74 6c 65 4c 65 6e 25  29 3b 22 7c 22 0d 3b ec  |itleLen%);"|".;.|
0000efd0  0b 20 20 20 20 20 20 ed  0d 3b f6 2f 20 20 20 20  |.      ..;./    |
0000efe0  20 20 e7 20 49 6e 6c 61  79 54 79 70 65 24 3d 22  |  . InlayType$="|
0000eff0  56 69 64 65 6f 5f 38 22  20 8c 20 f1 20 42 6c 61  |Video_8" . . Bla|
0000f000  6e 6b 4c 69 6e 65 24 0d  3c 00 16 20 20 20 20 20  |nkLine$.<..     |
0000f010  20 f1 20 4c 6f 6e 67 4d  69 6e 75 73 24 0d 3c 0a  | . LongMinus$.<.|
0000f020  08 20 20 20 cd 0d 3c 14  05 e1 0d 3c 1e 05 3a 0d  |.   ..<....<..:.|
0000f030  3c 28 6e f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |<(n. ***********|
0000f040  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000f090  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 3c 32  |*************.<2|
0000f0a0  6e f4 20 53 65 74 20 67  6c 6f 62 61 6c 20 70 72  |n. Set global pr|
0000f0b0  69 6e 74 20 76 61 72 69  61 62 6c 65 20 74 6f 20  |int variable to |
0000f0c0  65 6e 61 62 6c 65 20 74  68 65 20 6e 6f 6e 20 52  |enable the non R|
0000f0d0  69 73 63 2d 4f 53 20 70  72 69 6e 74 65 72 20 72  |isc-OS printer r|
0000f0e0  6f 75 79 74 69 6e 65 20  74 6f 20 67 65 6e 65 72  |ouytine to gener|
0000f0f0  61 74 65 20 33 20 64 69  66 66 65 72 6e 74 20 6c  |ate 3 differnt l|
0000f100  61 62 65 6c 20 74 79 70  65 73 2e 0d 3c 3c 6e f4  |abel types..<<n.|
0000f110  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
0000f120  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000f170  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 3c 46 25 dd 20 f2  |*********.<F%. .|
0000f180  5f 53 65 74 50 72 69 6e  74 56 61 72 69 61 62 6c  |_SetPrintVariabl|
0000f190  65 73 28 49 6e 6c 61 79  54 79 70 65 24 29 0d 3c  |es(InlayType$).<|
0000f1a0  50 16 20 20 20 c8 8e 20  49 6e 6c 61 79 54 79 70  |P.   .. InlayTyp|
0000f1b0  65 24 20 ca 0d 3c 5a 54  20 20 20 20 20 20 c9 20  |e$ ..<ZT      . |
0000f1c0  22 56 69 64 65 6f 5f 38  22 20 3a 20 43 6f 70 79  |"Video_8" : Copy|
0000f1d0  72 69 67 68 74 24 20 3d  22 7c 20 20 56 69 64 65  |right$ ="|  Vide|
0000f1e0  6f 20 38 20 49 6e 6c 61  79 20 50 72 69 6e 74 65  |o 8 Inlay Printe|
0000f1f0  72 20 20 a9 20 4d 2e 53  2e 42 72 69 67 68 74 20  |r  . M.S.Bright |
0000f200  31 39 39 32 20 20 7c 22  0d 3c 64 4c 20 20 20 20  |1992  |".<dL    |
0000f210  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000f220  20 20 20 53 70 61 63 65  72 24 20 20 20 20 3d 22  |   Spacer$    ="|
0000f230  20 3a 20 22 20 3a 20 54  69 74 6c 65 4c 65 6e 25  | : " : TitleLen%|
0000f240  3d 33 34 20 3a 20 4c 69  6e 65 4c 65 6e 67 74 68  |=34 : LineLength|
0000f250  25 3d 34 34 0d 3c 6e 2f  20 20 20 20 20 20 20 20  |%=44.<n/        |
0000f260  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 50  |               P|
0000f270  72 69 6e 74 50 69 74 63  68 24 3d 45 6c 69 74 65  |rintPitch$=Elite|
0000f280  4f 4e 24 0d 3c 78 52 20  20 20 20 20 20 c9 20 22  |ON$.<xR      . "|
0000f290  56 48 53 5f 43 22 20 20  20 3a 20 43 6f 70 79 72  |VHS_C"   : Copyr|
0000f2a0  69 67 68 74 24 20 3d 22  7c 20 20 56 48 53 2d 43  |ight$ ="|  VHS-C|
0000f2b0  20 49 6e 6c 61 79 20 50  72 69 6e 74 65 72 20 20  | Inlay Printer  |
0000f2c0  a9 20 4d 2e 53 2e 42 72  69 67 68 74 20 31 39 39  |. M.S.Bright 199|
0000f2d0  32 20 20 7c 22 0d 3c 82  4a 20 20 20 20 20 20 20  |2  |".<.J       |
0000f2e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000f2f0  53 70 61 63 65 72 24 20  20 20 20 3d 22 3a 22 20  |Spacer$    =":" |
0000f300  3a 20 54 69 74 6c 65 4c  65 6e 25 3d 33 34 20 3a  |: TitleLen%=34 :|
0000f310  20 4c 69 6e 65 4c 65 6e  67 74 68 25 3d 34 32 0d  | LineLength%=42.|
0000f320  3c 8c 2f 20 20 20 20 20  20 20 20 20 20 20 20 20  |<./             |
0000f330  20 20 20 20 20 20 20 20  20 20 50 72 69 6e 74 50  |          PrintP|
0000f340  69 74 63 68 24 3d 45 6c  69 74 65 4f 4e 24 0d 3c  |itch$=EliteON$.<|
0000f350  96 58 20 20 20 20 20 20  c9 20 22 44 41 54 22 20  |.X      . "DAT" |
0000f360  20 20 20 20 3a 20 43 6f  70 79 72 69 67 68 74 24  |    : Copyright$|
0000f370  20 3d 22 7c 20 20 20 20  20 44 41 54 20 49 6e 6c  | ="|     DAT Inl|
0000f380  61 79 20 50 72 69 6e 74  65 72 20 20 20 20 a9 20  |ay Printer    . |
0000f390  4d 2e 53 2e 42 72 69 67  68 74 20 31 39 39 32 20  |M.S.Bright 1992 |
0000f3a0  20 20 20 20 7c 22 0d 3c  a0 4c 20 20 20 20 20 20  |    |".<.L      |
0000f3b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
0000f3c0  20 53 70 61 63 65 72 24  20 20 20 20 3d 22 20 3a  | Spacer$    =" :|
0000f3d0  20 22 20 3a 20 54 69 74  6c 65 4c 65 6e 25 3d 33  | " : TitleLen%=3|
0000f3e0  38 20 3a 20 4c 69 6e 65  4c 65 6e 67 74 68 25 3d  |8 : LineLength%=|
0000f3f0  34 38 0d 3c aa 2d 20 20  20 20 20 20 20 20 20 20  |48.<.-          |
0000f400  20 20 20 20 20 20 20 20  20 20 20 20 20 50 72 69  |             Pri|
0000f410  6e 74 50 69 74 63 68 24  3d 22 31 2c 31 35 22 0d  |ntPitch$="1,15".|
0000f420  3c b4 08 20 20 20 cb 0d  3c be 2c 20 20 20 4c 6f  |<..   ..<.,   Lo|
0000f430  6e 67 4d 69 6e 75 73 24  20 3d 22 7c 22 2b c4 4c  |ngMinus$ ="|"+.L|
0000f440  69 6e 65 4c 65 6e 67 74  68 25 2c 22 2d 22 29 2b  |ineLength%,"-")+|
0000f450  22 7c 22 0d 3c c8 2c 20  20 20 42 6c 61 6e 6b 4c  |"|".<.,   BlankL|
0000f460  69 6e 65 24 20 3d 22 7c  22 2b c4 4c 69 6e 65 4c  |ine$ ="|"+.LineL|
0000f470  65 6e 67 74 68 25 2c 22  20 22 29 2b 22 7c 22 0d  |ength%," ")+"|".|
0000f480  3c d2 2c 20 20 20 4c 6f  6e 67 45 71 75 61 6c 24  |<.,   LongEqual$|
0000f490  20 3d 22 7c 22 2b c4 4c  69 6e 65 4c 65 6e 67 74  | ="|"+.LineLengt|
0000f4a0  68 25 2c 22 3d 22 29 2b  22 7c 22 0d 3c dc 05 e1  |h%,"=")+"|".<...|
0000f4b0  0d 3c e6 05 3a 0d 3c f0  70 f4 20 2a 2a 2a 2a 2a  |.<..:.<.p. *****|
0000f4c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000f520  2a 2a 2a 2a 2a 0d 3c fa  70 f4 20 54 69 73 20 69  |*****.<.p. Tis i|
0000f530  73 20 70 61 72 74 20 6f  66 20 74 68 65 20 4e 4f  |s part of the NO|
0000f540  4e 20 52 69 73 63 2d 4f  53 20 70 72 69 6e 74 20  |N Risc-OS print |
0000f550  72 6f 75 74 69 6e 65 2e  20 49 74 20 70 72 69 6e  |routine. It prin|
0000f560  74 73 20 74 68 65 20 27  63 61 73 73 65 74 74 65  |ts the 'cassette|
0000f570  27 20 74 69 74 6c 65 20  61 72 65 61 20 6f 6e 20  |' title area on |
0000f580  74 68 65 20 73 70 69 6e  65 20 6f 66 20 74 68 65  |the spine of the|
0000f590  20 63 61 73 65 0d 3d 04  5c f4 20 44 75 65 20 74  | case.=.\. Due t|
0000f5a0  6f 20 74 68 65 20 6d 61  6e 79 20 64 69 66 66 65  |o the many diffe|
0000f5b0  72 65 6e 63 65 73 20 69  6e 20 74 68 69 73 20 61  |rences in this a|
0000f5c0  72 65 61 20 6f 66 20 74  68 65 20 6c 61 62 65 6c  |rea of the label|
0000f5d0  20 61 20 73 65 70 61 72  61 74 65 20 72 6f 75 74  | a separate rout|
0000f5e0  69 6e 65 20 77 61 73 20  72 65 71 75 69 72 65 64  |ine was required|
0000f5f0  2e 0d 3d 0e 70 f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..=.p. *********|
0000f600  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000f660  2a 0d 3d 18 1e dd 20 f2  5f 50 72 69 6e 74 54 69  |*.=... ._PrintTi|
0000f670  74 6c 65 28 49 6e 6c 61  79 54 79 70 65 24 29 0d  |tle(InlayType$).|
0000f680  3d 22 1f 20 20 20 e7 20  49 6e 6c 61 79 54 79 70  |=".   . InlayTyp|
0000f690  65 24 3d 22 56 69 64 65  6f 5f 38 22 20 8c 0d 3d  |e$="Video_8" ..=|
0000f6a0  2c 23 20 20 20 20 20 20  f2 5f 53 65 6e 64 44 61  |,#      ._SendDa|
0000f6b0  74 61 28 45 6d 70 68 61  73 69 73 65 64 4f 4e 24  |ta(EmphasisedON$|
0000f6c0  29 0d 3d 36 73 20 20 20  20 20 20 f1 20 22 7c 20  |).=6s      . "| |
0000f6d0  22 3b a4 5f 43 65 6e 74  72 65 28 a4 5f 52 65 61  |";._Centre(._Rea|
0000f6e0  64 49 63 6f 6e 54 65 78  74 28 4d 61 69 6e 25 2c  |dIconText(Main%,|
0000f6f0  54 69 74 6c 65 46 69 72  73 74 4c 69 6e 65 25 2c  |TitleFirstLine%,|
0000f700  a3 29 2c 33 34 29 3b 22  20 20 22 3b a4 5f 52 65  |.),34);"  ";._Re|
0000f710  61 64 49 63 6f 6e 54 65  78 74 28 4d 61 69 6e 25  |adIconText(Main%|
0000f720  2c 54 61 70 65 4e 75 6d  62 65 72 25 2c a3 29 3b  |,TapeNumber%,.);|
0000f730  22 20 7c 22 0d 3d 40 54  20 20 20 20 20 20 f1 20  |" |".=@T      . |
0000f740  22 7c 20 22 3b a4 5f 43  65 6e 74 72 65 28 a4 5f  |"| ";._Centre(._|
0000f750  52 65 61 64 49 63 6f 6e  54 65 78 74 28 4d 61 69  |ReadIconText(Mai|
0000f760  6e 25 2c 54 69 74 6c 65  46 69 72 73 74 4c 69 6e  |n%,TitleFirstLin|
0000f770  65 25 2b 31 2c a3 29 2c  33 34 29 3b 22 20 20 20  |e%+1,.),34);"   |
0000f780  20 20 20 20 20 20 7c 22  0d 3d 4a 51 20 20 20 20  |      |".=JQ    |
0000f790  20 20 f1 20 22 7c 20 22  3b a4 5f 43 65 6e 74 72  |  . "| ";._Centr|
0000f7a0  65 28 a4 5f 52 65 61 64  49 63 6f 6e 54 65 78 74  |e(._ReadIconText|
0000f7b0  28 4d 61 69 6e 25 2c 54  69 74 6c 65 4c 61 73 74  |(Main%,TitleLast|
0000f7c0  4c 69 6e 65 25 2c a3 29  2c 33 34 29 3b 22 20 20  |Line%,.),34);"  |
0000f7d0  20 20 20 20 20 20 20 7c  22 0d 3d 54 24 20 20 20  |       |".=T$   |
0000f7e0  20 20 20 f2 5f 53 65 6e  64 44 61 74 61 28 45 6d  |   ._SendData(Em|
0000f7f0  70 68 61 73 69 73 65 64  4f 46 46 24 29 0d 3d 5e  |phasisedOFF$).=^|
0000f800  08 20 20 20 cd 0d 3d 68  1d 20 20 20 e7 20 49 6e  |.   ..=h.   . In|
0000f810  6c 61 79 54 79 70 65 24  3d 22 56 48 53 5f 43 22  |layType$="VHS_C"|
0000f820  20 8c 0d 3d 72 23 20 20  20 20 20 20 f2 5f 53 65  | ..=r#      ._Se|
0000f830  6e 64 44 61 74 61 28 45  6d 70 68 61 73 69 73 65  |ndData(Emphasise|
0000f840  64 4f 4e 24 29 0d 3d 7c  47 20 20 20 20 20 20 f1  |dON$).=|G      .|
0000f850  20 22 7c 22 3b c2 c4 34  31 2c 22 20 20 22 29 2b  | "|";..41,"  ")+|
0000f860  a4 5f 52 65 61 64 49 63  6f 6e 54 65 78 74 28 4d  |._ReadIconText(M|
0000f870  61 69 6e 25 2c 54 61 70  65 4e 75 6d 62 65 72 25  |ain%,TapeNumber%|
0000f880  2c 37 29 2c 34 31 29 3b  22 20 7c 22 0d 3d 86 48  |,7),41);" |".=.H|
0000f890  20 20 20 20 20 20 f1 20  22 7c 22 3b a4 5f 43 65  |      . "|";._Ce|
0000f8a0  6e 74 72 65 28 a4 5f 52  65 61 64 49 63 6f 6e 54  |ntre(._ReadIconT|
0000f8b0  65 78 74 28 4d 61 69 6e  25 2c 54 69 74 6c 65 46  |ext(Main%,TitleF|
0000f8c0  69 72 73 74 4c 69 6e 65  25 2c a3 29 2c 34 32 29  |irstLine%,.),42)|
0000f8d0  3b 22 7c 22 0d 3d 90 4a  20 20 20 20 20 20 f1 20  |;"|".=.J      . |
0000f8e0  22 7c 22 3b a4 5f 43 65  6e 74 72 65 28 a4 5f 52  |"|";._Centre(._R|
0000f8f0  65 61 64 49 63 6f 6e 54  65 78 74 28 4d 61 69 6e  |eadIconText(Main|
0000f900  25 2c 54 69 74 6c 65 46  69 72 73 74 4c 69 6e 65  |%,TitleFirstLine|
0000f910  25 2b 31 2c a3 29 2c 34  32 29 3b 22 7c 22 0d 3d  |%+1,.),42);"|".=|
0000f920  9a 47 20 20 20 20 20 20  f1 20 22 7c 22 3b a4 5f  |.G      . "|";._|
0000f930  43 65 6e 74 72 65 28 a4  5f 52 65 61 64 49 63 6f  |Centre(._ReadIco|
0000f940  6e 54 65 78 74 28 4d 61  69 6e 25 2c 54 69 74 6c  |nText(Main%,Titl|
0000f950  65 4c 61 73 74 4c 69 6e  65 25 2c a3 29 2c 34 32  |eLastLine%,.),42|
0000f960  29 3b 22 7c 22 0d 3d a4  24 20 20 20 20 20 20 f2  |);"|".=.$      .|
0000f970  5f 53 65 6e 64 44 61 74  61 28 45 6d 70 68 61 73  |_SendData(Emphas|
0000f980  69 73 65 64 4f 46 46 24  29 0d 3d ae 08 20 20 20  |isedOFF$).=..   |
0000f990  cd 0d 3d b8 1b 20 20 20  e7 20 49 6e 6c 61 79 54  |..=..   . InlayT|
0000f9a0  79 70 65 24 3d 22 44 41  54 22 20 8c 0d 3d c2 71  |ype$="DAT" ..=.q|
0000f9b0  20 20 20 20 20 20 f1 20  22 7c 20 22 3b a4 5f 43  |      . "| ";._C|
0000f9c0  65 6e 74 72 65 28 a4 5f  52 65 61 64 49 63 6f 6e  |entre(._ReadIcon|
0000f9d0  54 65 78 74 28 4d 61 69  6e 25 2c 54 69 74 6c 65  |Text(Main%,Title|
0000f9e0  46 69 72 73 74 4c 69 6e  65 25 2c a3 29 2c 34 30  |FirstLine%,.),40|
0000f9f0  29 3b 22 20 22 3b a4 5f  52 65 61 64 49 63 6f 6e  |);" ";._ReadIcon|
0000fa00  54 65 78 74 28 4d 61 69  6e 25 2c 54 61 70 65 4e  |Text(Main%,TapeN|
0000fa10  75 6d 62 65 72 25 2c a3  29 3b 22 7c 22 0d 3d cc  |umber%,.);"|".=.|
0000fa20  52 20 20 20 20 20 20 f1  20 22 7c 20 22 3b a4 5f  |R      . "| ";._|
0000fa30  43 65 6e 74 72 65 28 a4  5f 52 65 61 64 49 63 6f  |Centre(._ReadIco|
0000fa40  6e 54 65 78 74 28 4d 61  69 6e 25 2c 54 69 74 6c  |nText(Main%,Titl|
0000fa50  65 46 69 72 73 74 4c 69  6e 65 25 2b 31 2c a3 29  |eFirstLine%+1,.)|
0000fa60  2c 34 30 29 3b 22 20 20  20 20 20 20 20 7c 22 0d  |,40);"       |".|
0000fa70  3d d6 08 20 20 20 cd 0d  3d e0 05 e1 0d 3d ea 05  |=..   ..=....=..|
0000fa80  3a 0d 3d f4 43 f4 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  |:.=.C. *********|
0000fa90  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000fac0  2a 2a 2a 2a 0d 3d fe 43  f4 20 52 6f 75 74 69 6e  |****.=.C. Routin|
0000fad0  65 20 74 6f 20 61 6d 65  6e 64 20 74 68 65 20 74  |e to amend the t|
0000fae0  69 74 6c 65 20 62 61 72  2c 20 54 68 65 20 74 69  |itle bar, The ti|
0000faf0  74 6c 65 20 4d 55 53 54  20 42 45 20 49 4e 44 49  |tle MUST BE INDI|
0000fb00  52 45 43 54 45 44 2e 0d  3e 08 43 f4 20 2a 2a 2a  |RECTED..>.C. ***|
0000fb10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
0000fb40  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0d 3e 12 2c dd 20  |**********.>.,. |
0000fb50  f2 5f 43 68 61 6e 67 65  57 69 6e 64 6f 77 54 69  |._ChangeWindowTi|
0000fb60  74 6c 65 28 57 69 6e 64  6f 77 25 2c 4e 65 77 54  |tle(Window%,NewT|
0000fb70  69 74 6c 65 24 29 0d 3e  1c 1b 20 20 20 42 6c 6f  |itle$).>..   Blo|
0000fb80  63 6b 25 21 31 30 30 20  3d 20 57 69 6e 64 6f 77  |ck%!100 = Window|
0000fb90  25 0d 3e 26 2a 20 20 20  c8 99 20 22 57 69 6d 70  |%.>&*   .. "Wimp|
0000fba0  5f 47 65 74 57 69 6e 64  6f 77 49 6e 66 6f 22 2c  |_GetWindowInfo",|
0000fbb0  2c 42 6c 6f 63 6b 25 2b  31 30 30 0d 3e 30 1f 20  |,Block%+100.>0. |
0000fbc0  20 20 50 6f 69 6e 74 65  72 25 20 3d 20 21 28 42  |  Pointer% = !(B|
0000fbd0  6c 6f 63 6b 25 2b 31 37  36 29 0d 3e 3a 1c 20 20  |lock%+176).>:.  |
0000fbe0  20 24 50 6f 69 6e 74 65  72 25 20 3d 20 4e 65 77  | $Pointer% = New|
0000fbf0  54 69 74 6c 65 24 0d 3e  44 67 20 20 20 e7 20 4d  |Title$.>Dg   . M|
0000fc00  61 69 6e 57 69 6e 64 6f  77 4f 70 65 6e 25 20 8c  |ainWindowOpen% .|
0000fc10  20 c8 99 20 22 57 69 6d  70 5f 46 6f 72 63 65 52  | .. "Wimp_ForceR|
0000fc20  65 64 72 61 77 22 2c 2d  31 2c 42 6c 6f 63 6b 25  |edraw",-1,Block%|
0000fc30  21 31 30 34 2c 28 42 6c  6f 63 6b 25 21 31 31 36  |!104,(Block%!116|
0000fc40  29 2d 33 36 2c 42 6c 6f  63 6b 25 21 31 31 32 2c  |)-36,Block%!112,|
0000fc50  42 6c 6f 63 6b 25 21 31  31 36 2b 33 36 0d 3e 4e  |Block%!116+36.>N|
0000fc60  05 e1 0d ff                                       |....|
0000fc64