Home » Archimedes archive » Acorn User » AU 1994-04.adf » !StarInfo_StarInfo » Bright/!Cassette/!RunImage
Bright/!Cassette/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1994-04.adf » !StarInfo_StarInfo |
Filename: | Bright/!Cassette/!RunImage |
Read OK: | ✔ |
File size: | C960 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >!RunImage 20REM 30REM A Public Domain Utility By Mark Bright. 40: 50REM TRACE PROC 60REM TRACE TO "ADFS::4.$.!Scrap.ScrapDir.TRACETEXT" 70: 80Version$="1.23 (20-Sep-93)" 90: 100LIBRARY "<Cassette$Dir>.Resources.Library" 110 120DIM Block% 1024*4 :REM General purpose WIMP workspace! 130: 140PROC_Initialise_WIMP_System 150: 160PROC_SetIconText(15,Info%,Version$) 170PROC_SetIconText(4,Save%,"BoffBright") 180: 190ON ERROR PROC_Wimp_Error 200PROC_Initialise_Program_Variables 210: 220PROC_LoadFileIfRequired 230: 240ON ERROR PROC_Wimp_Error 250: 260REM ******************************************************************************************************** 270REM All RISCOS/WIMP Specific Proceedures First, !Cassette Proc'S after.... Makes for a better skeleton prog! 280REM ******************************************************************************************************** 290 300REPEAT 310 SYS "Wimp_Poll",Mask%,Block% TO A% 320 CASE A% OF 330 WHEN 2 : SYS "Wimp_OpenWindow",,Block% : REM allows auto Drag 340 WHEN 3 : SYS "Wimp_CloseWindow",,Block% : REM allows auto Close 350 WHEN 6 : PROC_ButtonPressed 360 WHEN 7 : PROC_DragBoxEnd(FN_ReadIconText(Save%,4,FALSE)) 370 WHEN 8 : PROC_ProcessKey(Block%!24) 380 WHEN 9 : PROC_MenuSelection 390 WHEN 17,18 : PROC_DecodeMessage(Block%!16) 400 ENDCASE 410UNTIL FALSE 420: 430REM ***************************************** 440REM This is the WIMP Error handling routine ! 450REM ***************************************** 460DEF PROC_Wimp_Error 470 LOCAL Error$ 480 SYS "OS_Byte",3,0 490 SYS "Wimp_DragBox",,-1 500 !Block%=ERR 510 Error$ = REPORT$ 520 IF ERR<>2001 THEN Error$ += " (internal error code "+STR$ERL+"). OK To Continue, CANCEL To Abort." 530 $(Block%+4)=Error$ + CHR$0 540 SYS "Wimp_ReportError",Block%,%001 - (2*(ERR<>2001)),MyTaskName$ TO ,Result% 550 IF Result%=2 THEN PROC_CloseDown 560ENDPROC 570: 580REM ************************************ 590REM Mouse 'Click' Whilst Over Menu Item. 600REM ************************************ 610DEF PROC_MenuSelection 620 IF MenuActive% = IconBarMenu% THEN 630 CASE Block%!0 OF 640 WHEN 0 : PROC_OpenSubMenu(Info%) : IconBarMenuActive%=FALSE 650 WHEN 1 : PROC_OpenSubMenu(Options%) : IconBarMenuActive%=FALSE 660 WHEN 2 : PROC_CloseDown : REM <Select> on "quit" causes shutdown 670 ENDCASE 680 ENDIF 690 700 IF MenuActive% = MainWinMenu% THEN 710 CASE Block%!0 OF 720 WHEN 0 : PROC_OpenSubMenu(Info%) : MainWindowMenuActive%=FALSE 730 WHEN 1 : PROC_OpenSubMenu(Save%) : MainWindowMenuActive%=FALSE 740 WHEN 2 : PROC_FormatIconText 750 WHEN 3 : PROC_OpenSubMenu(Options%) : MainWindowMenuActive%=FALSE 760 WHEN 4 : PROC_WipeIconText 770 ENDCASE 780 ENDIF 790 800 SYS "Wimp_GetPointerInfo",,Block% 810 IF (Block%!8 AND 1) THEN 820 IF MenuActive% = IconBarMenu% THEN SYS "Wimp_CreateMenu",,menu% 830 IF MenuActive% = MainWinMenu% THEN SYS "Wimp_CreateMenu",,MainMenu% 840 ENDIF 850ENDPROC 860: 870REM ******************************** 880REM Mouse Button Status Has Changed. 890REM ******************************** 900DEF PROC_ButtonPressed 910LOCAL MouseX%,MouseY%,Button%,Window%,Icon% 920 MouseX%=Block%!00 : REM Block%!00 = Mouse X (Screen Co-ordinates) 930 MouseY%=Block%!04 : REM Block%!04 = Mouse Y (Screen Co-ordinates) 940 Button%=Block%!08 : REM Block%!08 = Buttons 950 Window%=Block%!12 : REM Block%!12 = Window Handle (BackGround = -1, IconBar = -2) 960 Icon% =Block%!16 : REM Block%!16 = Icon Handle ( Work Area BackGround = -1) 970 980 IF Window%=Options% AND Icon%=OptionsOKF% THEN 990 PROC_ButtonPress(Options%, OptionsOKF%, OptionsOKL%, OptionsOKD%) 1000 PROC_StoreUserData 1010 ENDIF 1020 1030 IF Window%=IconBar% AND Icon%=IconBarIconHandle% THEN 1040 CASE Button% OF 1050 WHEN %001 : PROC_OpenMainWindow(FALSE) 1060 WHEN %100 : PROC_OpenMainWindow(TRUE) 1070 WHEN %010 : PROC_SetUpIconBarMenu 1080 ENDCASE 1090 ENDIF 1100 1110 IF Button%<> %010 AND Window%=Main% AND Icon%=PrintF% THEN 1120 PROC_ButtonPress(Main%, PrintF%, PrintL%, PrintD%) 1130 PROC_PrintOut 1140 ENDIF 1150 1160 IF Button%=%010 AND Window%=Main% THEN 1170 Temp$=FN_InventSaveName 1180 PROC_CreateMainWindowMenu(MouseX%,MouseY%,Icon%) 1190 ENDIF 1200 1210 IF Window%=Save% AND Icon%=SaveIcon% THEN PROC_DragSave 1220 IF Window%=Save% AND Icon%=SaveOKF% THEN 1230 PROC_ButtonPress(Save%, SaveOKF%, SaveOKL%, SaveOKD%) 1240 PROC_SaveTo(FN_ReadIconText(Save%,4,FALSE)) 1250 ENDIF 1260 1270 IF Button%<> %010 AND Window%=Options% THEN 1280 CASE Icon% OF 1290 WHEN 0,1,5 : PROC_SetIconText(45,Main%,PDriver$(FN_ReadESGSelected(Options%,9)+1)) 1300 ENDCASE 1310 PROC_Redraw(Main%,45) 1320 ENDIF 1330ENDPROC 1340: 1350REM ************************************************************************************************* 1360REM Determine if a new name is required, if so generate an intelligent name based on cassette number. 1370REM ************************************************************************************************* 1380DEF FN_InventSaveName 1390 Prefix$="Cass_" 1400 Temp$=FN_ReadIconText(Save%,4,FALSE) : Temp2$=Prefix$+FN_ReadIconText(Main%,TapeNumber%,FALSE) 1410 IF RIGHT$(Temp$,10)="BoffBright" OR OldName$<>Temp2$ THEN 1420 NewSaveName$=FN_ConvertSoftToHardSpaces(Temp2$) 1430 IF LEN(Temp$)>LEN(Temp2$) THEN 1440 Pointer%=LEN(Temp$) 1450 WHILE MID$(Temp$,Pointer%,1)<>"." AND Pointer%>0:Pointer%-=1:ENDWHILE 1460 PROC_SetIconText(4,Save%,LEFT$(Temp$,Pointer%)+NewSaveName$) 1470 ELSE 1480 PROC_SetIconText(4,Save%,NewSaveName$) 1490 ENDIF 1500 OldName$=Temp2$ 1510 ENDIF 1520=Temp2$ 1530: 1540REM ******************************************************************************************************* 1550REM Change all occurances of <SPACE> in the tape number to <ALT-SPACE> to stop the filer throwing a wobbly. 1560REM ******************************************************************************************************* 1570DEF FN_ConvertSoftToHardSpaces(Name$) 1580 Pointer%=LEN(Name$) 1590 REPEAT 1600 Char$=MID$(Name$,Pointer%,1) 1610 IF Char$=" " THEN 1620 Char$="�" 1630 MID$(Name$,Pointer%,1)=Char$ 1640 ENDIF 1650 Pointer%-=1 1660 UNTIL Pointer%=1 1670=Name$ 1680: 1690******************************** 1700REM 'Press' a button in a window 1710******************************** 1720DEF PROC_ButtonPress(Window%, Front%, Light%, Dark%) 1730 LOCAL TimeNow% 1740 PROC_SetIconColour(Window%, Light%, 4) 1750 PROC_SetIconColour(Window%, Dark%, 0) 1760 PROC_SetIconColour(Window%, Front%, 14) 1770 TimeNow% = TIME 1780 REPEAT 1790 UNTIL TIME > TimeNow%+25 1800 PROC_SetIconColour(Window%, Light%, 0) 1810 PROC_SetIconColour(Window%, Dark%, 4) 1820 PROC_SetIconColour(Window%, Front%, 1) 1830ENDPROC 1840: 1850******************************************** 1860REM Change the colour of an icon in a window 1870******************************************** 1880DEF PROC_SetIconColour(Window%, Icon%, Colour%) 1890 Block%!0 = Window% 1900 Block%!4 = Icon% 1910 Block%!8 = Colour% << 28 1920 Block%!12 = %1111 << 28 1930 SYS "Wimp_SetIconState",, Block% 1940ENDPROC 1950: 1960REM ******************************************************************* 1970REM When a key is pressed, Check if it concerns me. If not, Pass it on! 1980REM ******************************************************************* 1990DEF PROC_ProcessKey(KeyPressed) 2000 LOCAL Icon%,Index%,Window% 2010 Window%=Block%!0 2020 Icon%=Block%!4 2030 Index%=Block%!20 2040 CASE KeyPressed OF 2050 2060 WHEN &180 : PROC_ButtonPress(Main%, PrintF%, PrintL%, PrintD%) 2070 PROC_PrintOut 2080 REM <Print> 2090 2100 WHEN &18A 2110 REM <Tab> 2120 IF Icon%<38 THEN 2130 PROC_SetCaretPosition(Icon%-((Icon% MOD 2)=0)+((Icon% MOD 2)=1),Index%) 2140 ENDIF 2150 2160 WHEN &0D 2170 REM <Return> 2180 IF Window%=Main% THEN PROC_MoveDownAnEntry 2190 IF Window%=Save% THEN 2200 PROC_ButtonPress(Save%, SaveOKF%, SaveOKL%, SaveOKD%) 2210 PROC_SaveTo(FN_ReadIconText(Save%,4,FALSE)) 2220 ENDIF 2230 2240 WHEN &1E 2250 REM <Home> 2260 PROC_SetCaretPosition((Icon% MOD 2),0) 2270 2280 WHEN &18F 2290 REM <Cursor Up> 2300 IF Window% = Main% THEN PROC_MoveUpAnEntry 2310 2320 WHEN &18E 2330 REM <Cursor Down> 2340 IF Window% = Main% THEN PROC_MoveDownAnEntry 2350 2360 WHEN &199 2370 REM <Shift><f9> 2380 IF Window% = Main% THEN PROC_WipeIconText 2390 2400 WHEN &1CA 2410 REM <f10> 2420 PROC_SwapCase(Main%,Icon%,Index%) 2430 2440 WHEN &1CB 2450 REM <f11> - Delete to end of line 2460 Text$=LEFT$(FN_ReadIconText(Main%,Icon%,FALSE),Index%) 2470 PROC_SetIconText(Icon%,Main%,Text$) 2480 PROC_Redraw(Main%,Icon%) 2490 2500 OTHERWISE SYS "Wimp_ProcessKey",Block%!24 2510 2520 ENDCASE 2530ENDPROC 2540: 2550REM ****************************** 2560REM Set which icon the caret is in 2570REM ****************************** 2580DEF PROC_SetCaretPosition(Icon%,Index%) 2590 IconLength%=LEN(FN_ReadIconText(Main%,Icon%,FALSE)) 2600 IF Index%>IconLength% THEN Index%=IconLength% 2610 SYS "Wimp_SetCaretPosition",Main%,Icon%,,,-1,Index% 2620ENDPROC 2630: 2640REM ******************************* 2650REM Redraw the specifiied icon (v2) 2660REM ******************************* 2670DEF PROC_Redraw(Window%,Icon%) 2680 Block%!0=Window% 2690 Block%!4=Icon% 2700 Block%!8=0 2710 Block%!12=0 2720 SYS "Wimp_SetIconState",,Block% 2730ENDPROC 2740: 2750REM *************************************************************** 2760REM When a message is received, Control is passed to here for decoding 2770REM *************************************************************** 2780DEF PROC_DecodeMessage(Request%) 2790 CASE Request% OF 2800 WHEN 0 : PROC_CloseDown 2810 WHEN 1 : Block%!0=(48+LEN("<Wimp$Scrap> "))AND NOT 3 2820 Block%!12=Block%!8 2830 Block%!16=2 2840 $(Block%+44)="<Wimp$Scrap>" 2850 SaveRef%=Block%!12 2860 SYS "Wimp_SendMessage",17,Block%,Block%!4 2870 WHEN 2 : PROC_HandleMessage_DataSaveAck 2880 WHEN 3 : PROC_FileDroppedOnMe 2890 WHEN 5 : PROC_DataOpen 2900 WHEN 10 : PROC_DeskTopSave 2910 WHEN 14 : PROC_LowPowerWarning 2920 WHEN &502 : PROC_GiveHelp(Block%!32,Block%!36,Block%!20,Block%!24) 2930 WHEN &400C2 : IF FN_ReadString(Block%+28)=MyTaskName$ AND Block%!4<> My_id% THEN 2940 REM Another !Cassette is trying to start up, I am going to bugger off! 2950 PROC_CloseDown 2960 ENDIF 2970 WHEN &400CC : Block%!00 = 48 2980 Block%!12 = Block%!8 2990 Block%!16 = &400CC 3000 $(Block%+28) = "cassete" :REM Sprite name "ic_csvtext" etc. 3010 $(Block%+36) = FN_InventSaveName :REM Name to call iconised icon. 3020 SYS "Wimp_SendMessage",17,Block%,Block%!4 3030 ENDCASE 3040ENDPROC 3050: 3060REM ******************************************************** 3070REM Start Up program as a task with name "Cassette Designer" 3080REM And put icon on the Icon bar 3090REM ******************************************************** 3100DEF PROC_Initialise_WIMP_System 3110 LOCAL WimpVersion$ 3120 3130 MyTaskName$="Cassette Designer" 3140 3150 WimpVersion$=FN_ConvertSystemToString("Cassette$WimpVersion") 3160 3170 IF (WimpVersion$="300") THEN 3180 REM Set up list of messages that I want to receive: 3190 Block%!0=0 : REM Quit 3200 Block%!4=1 : REM DataSave 3210 Block%!8=2 : REM DataSaveAck 3220 Block%!12=3 : REM DataLoad 3230 Block%!16=5 : REM DataOpen 3240 Block%!20=10 : REM DeskTopSave 3250 Block%!24=14 : REM ShutDown (Portable only. Power low warning message) 3260 Block%!28=&502 : REM Interactive help request 3270 Block%!32=&400C2 : REM Task Initialise 3280 Block%!36=&400CC : REM Iconize 3290 Block%!40=0 : REM Terminate 3300 SYS "Wimp_Initialise",300,&4B534154,MyTaskName$,Block% TO Version,My_id% 3310 ELSE 3320 SYS "Wimp_Initialise",200,&4B534154,MyTaskName$ TO Version,My_id% 3330 ENDIF 3340 IconBarIconHandle%=FN_CreateIconBarIcon 3350 PROC_Initialise_Sprites 3360 PROC_Initialise_Templates 3370 Mask%=%1100000110001 : REM Mask Out codes for Gain/Lose Caret, Pointer Enter/Leave Window & Null Event 3380ENDPROC 3390: 3400REM *********************************************************** 3410REM All WIMP Programs should be able to shut themselves down!!! 3420REM *********************************************************** 3430DEF PROC_CloseDown 3440 SYS "Wimp_CloseDown",My_id%,&4B534154 3450 SYS "OS_Exit" 3460ENDPROC 3470: 3480REM **************************************************************** 3490REM Opens up the template file, Fondles it, and then creates Windows 3500REM **************************************************************** 3510DEF PROC_Initialise_Templates 3520 maxws%=&A00 : DIM ws% maxws% : curws%=ws% 3530 SYS"Wimp_OpenTemplate",,"<Cassette$Dir>.Resources.Templates" 3540 SYS"Wimp_LoadTemplate",,Block%,ws%,ws%+maxws%,-1,"info",0 TO ,,curws% 3550 SYS"Wimp_CreateWindow",,Block% TO Info% 3560 SYS"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"save",0 TO ,,curws% 3570 SYS"Wimp_CreateWindow",,Block% TO Save% 3580 SYS"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"Main",0 TO ,,curws% 3590 SYS"Wimp_CreateWindow",,Block% TO Main% 3600 SYS"Wimp_LoadTemplate",,Block%,curws%,ws%+maxws%,-1,"Print_Opt",0 TO ,,curws% 3610 Block%!64 = SpriteArea% 3620 SYS"Wimp_CreateWindow",,Block% TO Options% 3630 SYS"Wimp_CloseTemplate" 3640ENDPROC 3650: 3660REM ******************************************************************* 3670REM This writes over the text in the Icon, and it should not be done!!! 3680REM Only Works With Indirected Text Strings! 3690REM ******************************************************************* 3700DEF PROC_SetIconText(IconHandle%,WindowHandle%,Text$) 3710 LOCAL Pointer% 3720 Block%!100=WindowHandle% 3730 Block%!104=IconHandle% 3740 SYS "Wimp_GetIconState",,Block%+100 3750 IF (Block%!124 AND (1<<8))<>0 THEN 3760 Pointer%=Block%!128 3770 ELSE 3780 Pointer%=Block%+128 3790 ENDIF 3800 $Pointer%=Text$ 3810ENDPROC 3820: 3830REM ************************************** 3840REM The name sort of says it all really!!! 3850REM ************************************** 3860DEF PROC_SetUpIconBarMenu 3870 LOCAL m% 3880 MenuActive% = IconBarMenu% 3890 DIM menu% 28+3*24 3900 $menu%="Cassette" 3910 menu%?12=7 3920 menu%?13=2 3930 menu%?14=7 3940 menu%?15=0 3950 menu%!16=128 3960 menu%!20=40 3970 menu%!24=0 3980 m%=menu%+28 3990 m%!0=&0 4000 m%!4=Info% :REM name from template open. 4010 m%!8=(7<<24) OR %10001 4020 $(m%+12)="Info" 4030 m%=m%+24 4040 m%!0=&0 4050 m%!4=Options% 4060 m%!8=(7<<24) OR %10001 4070 $(m%+12)="Options" 4080 m%=m%+24 4090 m%!0=&80 4100 m%!4=0 4110 m%!8=(7<<24)OR %10001 4120 $(m%+12)="Quit" 4130 SYS"Wimp_CreateMenu",,menu%,Block%!0-64,215 4140ENDPROC 4150: 4160REM ************************************************************* 4170REM This takes a Sprite and makes it into an Icon For the IconBar 4180REM ************************************************************* 4190DEF FN_CreateIconBarIcon 4200 LOCAL Icon% 4210 Block%!0=-1 4220 Block%!4=0 4230 Block%!8=0 4240 Block%!12=68 4250 Block%!16=68 4260 Block%!20=%10000000000010 4270 $(Block%+24)="!Cassette" 4280 SYS "Wimp_CreateIcon",,Block% TO Icon% 4290=Icon% 4300: 4310REM ********************************************* 4320REM Read Info for Window Main, and then open it ! 4330REM ********************************************* 4340DEF PROC_OpenMainWindow(WipeTemplateIconText%) 4350 IF WipeTemplateIconText% AND New% AND NOT StartWithLoad THEN PROC_WipeIconText 4360 !Block%=Main% 4370 SYS "Wimp_GetWindowState",,Block% 4380 SYS "Wimp_OpenWindow",,Block% 4390 New%=FALSE 4400 PROC_SetCaretPosition(0,0) 4410ENDPROC 4420: 4430REM ********************************************************************** 4440REM This reads the text from the writable Icon specified in the parameters 4450REM and if Pad%=TRUE then pads out the result to 32 characters! 4460REM ********************************************************************** 4470DEF FN_ReadIconText(WindowHandle%,IconHandle%,Pad%) 4480 LOCAL Result$ 4490 Block%!100=WindowHandle% 4500 Block%!104=IconHandle% 4510 SYS "Wimp_GetIconState",,Block%+100 4520 IF (Block%!124 AND (1<<8))<>0 THEN 4530 Result$=$(Block%!128) 4540 ELSE 4550 Result$=$(Block%+128) 4560 ENDIF 4570 IF Pad% THEN =LEFT$(Result$+STRING$(32," "),32) 4580=Result$ 4590: 4600REM ***************************************** 4610REM Wipe the text from all the writable icons 4620REM ***************************************** 4630DEF PROC_WipeIconText 4640 IconText$="" 4650 FOR Loop%=0 TO 37 4660 PROC_SetIconText(Loop%,Main%,IconText$) 4670 PROC_Redraw(Main%,Loop%) 4680 NEXT 4690 PROC_SetIconText(TapeNumber%,Main%,TapeNumber$) 4700 PROC_Redraw(Main%,TapeNumber%) 4710ENDPROC 4720: 4730REM ************************************** 4740REM The name sort of says it all really!!! 4750REM ************************************* 4760DEF PROC_CreateMainWindowMenu(X%,Y%,Icon%) 4770 LOCAL m%,Flags%,Pointer%,Sel%,IconFlag%,Item$ 4780 MenuActive% = MainWinMenu% 4790 DIM MainMenu% 29+7*24 4800 $MainMenu%="Main" 4810 MainMenu%?12=7 4820 MainMenu%?13=2 4830 MainMenu%?14=7 4840 MainMenu%?15=0 4850 MainMenu%!16=16*16 4860 MainMenu%!20=40 4870 MainMenu%!24=0 4880 m%=MainMenu%+28 4890 REPEAT 4900 READ Flags%,Pointer%,Sel%,IconFlag%,Item$ 4910 m%!0=Flags% :REM Menu Flags 4920 m%!4=Pointer% :REM Pointer to Sub-Menu (-1 If None) 4930 m%!8=IconFlag% OR (Sel%<<22) OR (7<<24) :REM Menu Icon Flags 4940 $(m%+12)=Item$ :REM Item Name (12 Bytes Max.) 4950 m%=m%+24 4960 UNTIL Flags%=&80 4970 : 4980 RESTORE +0 4990 DATA &00,Info%, 0,%10001,"Info" 5000 DATA &00,Save%, 0,%10001,"Save data" 5010 DATA &00,-1, 0,%10001,"Format text" 5020 DATA &00,Options%,0,%10001,"Options" 5030 DATA &80,-1, 0,%10001,"Wipe all" 5040 : 5050 SYS "Wimp_CreateMenu",,MainMenu%,X%-64,Y% 5060ENDPROC 5070: 5080REM ****************************************************************************** 5090REM Control Comes To Here When The User Has Dragged The Save Icon And Released It. 5100REM ****************************************************************************** 5110DEF PROC_DragBoxEnd(LeafName$) 5120 Pointer%=LENLeafName$ 5130 WHILE Pointer%>0 AND MID$(LeafName$,Pointer%,1)<>"." 5140 Pointer%-=1 5150 ENDWHILE 5160 IF DragASprite_Active% THEN SYS "DragASprite_Stop" 5170 LeafName$=MID$(LeafName$,Pointer%+1) 5180 SYS "Wimp_GetPointerInfo",,Block% 5190 SenderWindow%=Block%!12 5200 SenderIcon%=Block%!16 5210 Block%!20=SenderWindow% 5220 Block%!24=SenderIcon% 5230 Block%!28=Block%!0 5240 Block%!32=Block%!4 5250 Block%!0=44+LENLeafName$ 5260 Block%!0+=4-(Block%!0 MOD 4) 5270 Block%!4=0 5280 Block%!8=0 5290 Block%!12=0 5300 Block%!16=1 : REM Message_DataSave 5310 Block%!36=0 : REM Length of proposed save 5320 Block%!40=&B0F 5330 $(Block%+44)=LeafName$+CHR$0 5340 IF NOT ((SenderWindow%=Save%) OR (SenderWindow%=Main%) OR (SenderWindow%=IconBar% AND SenderIcon%=IconBarIconHandle%)) THEN 5350 SYS "Wimp_SendMessage",17,Block%,SenderWindow%,SenderIcon% 5360 ENDIF 5370ENDPROC 5380: 5390REM ****************************************************** 5400REM A Data Save Acknowlegement Message Has Been Received! 5410REM ****************************************************** 5420DEF PROC_HandleMessage_DataSaveAck 5430 LOCAL PathName$,Pointer% 5440 Pointer%=Block%+44 5450 REPEAT 5460 PathName$+=CHR$?Pointer% 5470 Pointer%+=1 5480 UNTIL ?Pointer%=0 5490 PROC_SaveTo(PathName$) 5500 Block%!0=40+LENPathName$+4 5510 Block%!0+=4-(Block%!0 MOD 4) 5520 Block%!16=3 : REM Message_DataLoad 5530 Block%!36=0 5540 Block%!40=&B0F 5550 $(Block%+44)=PathName$+CHR$(0) 5560 SYS "Wimp_SendMessage",18,Block%,SenderWindow%,SenderIcon% 5570ENDPROC 5580: 5590REM ************************************************ 5600REM A File has been double clicked on, do I want it? 5610REM ************************************************ 5620DEF PROC_DataOpen 5630LOCAL File$ 5640 IF Block%!40=&B0F THEN 5650 File$=FN_ReadString(Block%+44) 5660 Block%!12=Block%!8 5670 Block%!16=4 5680 SYS "Wimp_SendMessage",17,Block%,Block%!4 5690 PROC_DoActualLoadThing(File$) 5700 ENDIF 5710ENDPROC 5720: 5730REM ***************************************************** 5740REM Read a string from a pointer, using a zero-terminator 5750REM ***************************************************** 5760DEF FN_ReadString(Pointer%) 5770 LOCAL String$ 5780 WHILE ?Pointer%<>0 5790 String$+=CHR$?Pointer% 5800 Pointer%+=1 5810 ENDWHILE 5820=String$ 5830: 5840REM ************************************************************************ 5850REM This Bit Does The Actual Saving Of The Data When Requested By The Filer. 5860REM ************************************************************************ 5870DEF PROC_SaveTo(PathName$) 5880 Pointer%=LENPathName$ 5890 WHILE Pointer%>1 AND MID$(PathName$,Pointer%,1)<>"." 5900 Pointer%-=1 5910 ENDWHILE 5920 IF Pointer%=1 THEN ERROR 2001,"To save, drag the icon to a directory viewer." 5930 SYS "Wimp_CreateMenu",,-1 5940 SaveFile%=OPENOUT(PathName$) 5950 REM Open Out A File And Print Out All the information! 5960 FOR Loop%=0 TO 37 5970 PRINT #SaveFile%,FN_ReadIconText(Main%,Loop%,FALSE) 5980 NEXT 5990 PRINT #SaveFile%,FN_ReadIconText(Main%,TapeNumber%,FALSE) 6000 REM Then Close the file again 6010 CLOSE #SaveFile% 6020 OSCLI "SetType "+PathName$+" B0F" 6030 REM Overwrite SaveWindow Text With Full Pathname For Future Saves! 6040 PROC_SetIconText(4,Save%,PathName$) 6050ENDPROC 6060: 6070REM ********************************************************* 6080REM This Handles The Dragging Of THe Outline Of The Save Box. 6090REM ********************************************************* 6100DEF PROC_DragSave 6110 LOCAL flags%,byte% 6120 DragASprite_Active% = FALSE 6130 SYS "XOS_SWINumberFromString",,"DragASprite_&00" TO ;flags% 6140 SYS "OS_Byte",161,28 TO ,,byte% 6150 IF (flags% AND 1)=0 AND (byte% AND 2)=2 THEN DragASprite_Active% = TRUE 6160 !Block%=Save% 6170 SYS "Wimp_GetWindowState",,Block% 6180 OffsetX%=Block%!4-Block%!20 6190 OffsetY%=Block%!16-Block%!24 6200 Block%!0=Save% 6210 Block%!4=0 6220 SYS "Wimp_GetIconState",,Block% 6230 !Block%=Save% 6240 Block%!4=5 6250 Block%!8=Block%!8+OffsetX% 6260 Block%!12=Block%!12+OffsetY% 6270 Block%!16=Block%!16+OffsetX% 6280 Block%!20=Block%!20+OffsetY% 6290 Block%!24=0 6300 Block%!28=0 6310 Block%!32=&7FFFFFFF 6320 Block%!36=&7FFFFFFF 6330 IF DragASprite_Active% THEN 6340 SYS "DragASprite_Start",197,1,"file_b0f",Block%+8,Block%+24 6350 ELSE 6360 SYS "Wimp_DragBox",,Block% 6370 ENDIF 6380ENDPROC 6390: 6400REM ********************************************************** 6410REM When A File Is Dropped Onto My Icon Bar Icon, I Come Here! 6420REM ********************************************************** 6430DEF PROC_FileDroppedOnMe 6440 IF Block%!40 =&B0F THEN 6450 SaveName$=$(Block%+44) 6460 Block%!12=Block%!8 6470 Block%!16=4 6480 SYS "Wimp_SendMessage",17,Block%,Block%!4 6490 PROC_DoActualLoadThing(SaveName$) 6500 ENDIF 6510ENDPROC 6520: 6530REM ******************************************************************************* 6540REM Control Comes Here When A Valid File Type Has Been Dropped Onto My Application. 6550REM ******************************************************************************* 6560DEF PROC_LoadData(FileName$) 6570 LoadFile%=OPENIN(FileName$) 6580 FOR LoadLoop%=0 TO 37 6590 INPUT# LoadFile%,TempText$ 6600 PROC_SetIconText(LoadLoop%,Main%,TempText$) 6610 PROC_Redraw(Main%,LoadLoop%) 6620 NEXT 6630 INPUT# LoadFile%,TempText$ 6640 PROC_SetIconText(TapeNumber%,Main%,TempText$) 6650 PROC_Redraw(Main%,TapeNumber%) 6660 CLOSE #LoadFile% 6670ENDPROC 6680: 6690REM ********************************************************************* 6700REM Reads State Of Icons in Window Stated and Returns The First Selected 6710REM Icon In The Give Exclusive Selection Group. (-1 = None Selected) 6720REM ******************************************************************** 6730DEF FN_ReadESGSelected(WindowHandle%,Esg%) 6740 LOCAL Mask%,Pattern% 6750 Mask% = (1<<21)+(31<<16) : REM Bit 21 and Bits 16-20 6760 Pattern%= (1<<21)+(Esg%<<16) : REM Selected and ESG X 6770 SYS "Wimp_WhichIcon",WindowHandle%,Block%+200,Mask%,Pattern% 6780=Block%!200 6790: 6800: 6810REM *************************************************************************************************** 6820REM ALTHOUGH A LOT OF THE ABOVE CODE IS STILL VERY SPECIFIC TO THIS PROGRAM, IT CAN BE EASILY ADAPTED 6830REM ALL CODE BELOW THIS LINE IS UNLIKELY TO BE OF MUCH USE TO ANY OTHER APPLICATION 6840REM *************************************************************************************************** 6850: 6860: 6870REM ********************************************* 6880REM Swaps the case of of the specified character. 6890REM ********************************************* 6900DEF PROC_SwapCase(Window%,Icon%,Index%) 6910 IF Index%<LEN(FN_ReadIconText(Main%,Icon%,FALSE)) THEN 6920 IconText$=FN_ReadIconText(Main%,Icon%,FALSE) 6930 C%=ASC(MID$(IconText$,Index%+1,1)) AND &DF 6940 IF C%>=&41 AND C%<=&5A THEN 6950 C$=CHR$(ASC(MID$(IconText$,Index%+1,1)) EOR &20) 6960 MID$(IconText$,Index%+1,1)=C$ 6970 PROC_SetIconText(Icon%,Window%,IconText$) 6980 PROC_Redraw(Main%,Icon%) 6990 ENDIF 7000 PROC_SetCaretPosition(Icon%,Index%+1) 7010 ENDIF 7020ENDPROC 7030: 7040REM ************************************************** 7050REM Move Caret Down To The Next Entry, With Wrap-round 7060REM ************************************************** 7070DEF PROC_MoveDownAnEntry 7080 IF Icon%<22 OR (Icon%>23 AND Icon%<26) THEN PROC_SetCaretPosition(Icon%+2,Index%) 7090 IF Icon%=22 OR Icon%=23 THEN PROC_SetCaretPosition(Icon%+6,Index%) 7100 IF Icon%>27 AND Icon%<36 THEN PROC_SetCaretPosition(Icon%+2,Index%) 7110 IF Icon%=36 OR Icon%=37 THEN PROC_SetCaretPosition(Icon%-36,Index%) 7120ENDPROC 7130: 7140REM ******************************************** 7150REM Move Caret Up To Next Entry, With Wrap-round 7160REM ******************************************** 7170DEF PROC_MoveUpAnEntry 7180 IF (Icon%<24 AND Icon%>1) OR (Icon%<38 AND Icon%>29) THEN PROC_SetCaretPosition(Icon%-2,Index%) 7190 IF Icon%=28 OR Icon%=29 THEN PROC_SetCaretPosition(Icon%-6,Index%) 7200 IF Icon%=26 OR Icon%=27 THEN PROC_SetCaretPosition(Icon%-2,Index%) 7210 IF Icon%=00 OR Icon%=01 THEN PROC_SetCaretPosition(Icon%+36,Index%) 7220ENDPROC 7230: 7240REM ********************************************************** 7250REM Printout the contents of the writable icons!!! 7260REM ********************************************************** 7270DEF PROC_PrintOut 7280 CASE FN_ReadESGSelected(Options%,9) OF 7290 WHEN 0 : PROC_PrintTextMode(NlqON$) 7300 WHEN 1 : PROC_PrintTextMode(NlqOFF$) 7310 WHEN 5 : PROC_PrintGraphicsMode 7320 OTHERWISE ERROR 2001, "Please select a printout mode from the options window and try again" 7330 ENDCASE 7340ENDPROC 7350: 7360REM ***************************************************** 7370REM Print out the label in text mode (non Risc OS) 7380REM Parameter is an optional control string (ie NLQ etc.) 7390REM ***************************************************** 7400DEF PROC_PrintTextMode(Prelog$) 7410 LOCAL L% 7420 IF FN_Printer_NotOnLine THEN ENDPROC 7430 SYS "Hourglass_On" 7440 : 7450 SYS "OS_Byte",3,10 :REM SCREEN OFF, PRINTER ON. 7460 PROC_SendData(Prelog$) :REM Set NLQ Mode 7470 VDU 27,15 :REM Condensed print ON 7480 : 7490 PRINT " ";FN_ReadIconText(Main%,24,TRUE);"| ";FN_ReadIconText(Main%,26,FALSE) 7500 PRINT " ";FN_RightJustify(25,31);" | ";FN_RightJustify(27,31) 7510 PRINT LongEqual$ 7520 FOR L%=0 TO 23 STEP 2 7530 PRINT " ";FN_ReadIconText(Main%,L%,TRUE);"| ";FN_ReadIconText(Main%,L%+1,FALSE) 7540 NEXT 7550 PRINT LongEqual$ 7560 PRINT "A: ";FN_ReadIconText(Main%,24,FALSE);" - ";FN_ReadIconText(Main%,25,FALSE);FN_EndOfLineLessFive;FN_ReadIconText(Main%,TapeNumber%,FALSE) 7570 PRINT "B: ";FN_ReadIconText(Main%,26,FALSE);" - ";FN_ReadIconText(Main%,27,FALSE) 7580 PRINT LongEqual$ 7590 FOR L%=28 TO 36 STEP 2 7600 PRINT " ";FN_ReadIconText(Main%,L%,TRUE);"| ";FN_ReadIconText(Main%,L%+1,FALSE) 7610 NEXT 7620 PRINT LongMinus$ 7630 : 7640 FOR L%=0 TO VAL(FormLength$) 7650 PRINT :REM short Form Feed 7660 NEXT 7670 : 7680 SYS "OS_Byte",3,00 :REM SCREEN ON, PRINTER OFF. 7690 SYS "Hourglass_Off" 7700ENDPROC 7710: 7720REM ********************************************************** 7730REM Function to check if printer is on line, 7740REM If printer is not online TRUE is returned, otherwise FALSE 7750REM ********************************************************** 7760DEF FN_Printer_NotOnLine 7770 SYS "Hourglass_On" 7780 REPEAT 7790 PrinterOnLine=TRUE : What%=0 7800 Now%=TIME 7810 Before%=ADVAL(-4) 7820 VDU 2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3 7830 Now%=TIME : REPEAT UNTIL TIME>Now%+100 7840 After%=ADVAL(-4) 7850 IF Before%<>After% THEN 7860 SYS "Hourglass_Off" 7870 PrinterOnLine=FALSE 7880 $Block%="The Printer is not responding, please check that it has paper, it is switched on and is on-line. Try again?"+CHR$(0) 7890 SYS "Wimp_ReportError",Block%,%10011,MyTaskName$ TO ,What% 7900 SYS "Hourglass_On" 7910 ENDIF 7920 UNTIL PrinterOnLine OR (NOT PrinterOnLine AND What%=2) 7930 SYS "Hourglass_Off" 7940 IF What%=2 THEN =TRUE 7950=FALSE 7960: 7970REM ****************************************************************** 7980REM Prints contents of Icon(Icon%) right justified in a field of Chars 7990REM ****************************************************************** 8000DEF FN_RightJustify(Icon%,Char%) 8010 Text$=FN_ReadIconText(Main%,Icon%,FALSE) 8020=STRING$(Char%-LEN(Text$)," ")+Text$ 8030: 8040REM ******************************************************* 8050REM Tabs to the end of the line except for five characters. 8060REM ******************************************************* 8070DEF FN_EndOfLineLessFive 8080Length%=LEN(FN_ReadIconText(Main%,TapeNumber%,FALSE)) 8090IF Length%=5 THEN TotLen%=63 ELSE TotLen%=63 8100Ans$=STRING$(TotLen%-LEN(" A: "+FN_ReadIconText(Main%,24,FALSE)+" - "+FN_ReadIconText(Main%,25,FALSE))," ") 8110=Ans$ 8120: 8130REM ********************************************************************** 8140REM This is purely for program variables and is nothing to do with Risc_OS 8150REM ********************************************************************** 8160DEF PROC_Initialise_Program_Variables 8170 REM Variables to do with RiscOS PDriver InterFace 8180 DIM Box% 16 : DIM Box2% 16 8190 DIM Matrix% 16 8200 ScaleX%=1 : ScaleY%=1 :REM For Future Expansion? 8210 Matrix%!04=0 : Matrix%!00=2^16*ScaleX% 8220 Matrix%!08=0 : Matrix%!12=2^16*ScaleY% 8230 DIM Origin% 8 8240: 8250 DragASprite_Active% = FALSE 8260 IconBarMenu% = 0 8270 MainWinMenu% = 1 8280 TapeNumber% = 53 8290 LongEqual$ = STRING$(68,"=") 8300 LongMinus$ = STRING$(68,"-") 8310 New% = TRUE 8320 NLQ% = TRUE 8330 NlqON$ = "27,120,1" 8340 NlqOFF$ = "27,120,0" 8350 PrintFile$ = "PrintOut" 8360 LatestVer% = 2 : REM Version Number Of Config File. Change If File Is Made Incompatable..... 8370 OldName$ = "" 8380: 8390 REM Give names to some of the icons etc. to make the program more readable 8400 BackGround%= -1 : IconBar%= -2 : PrintF%=49 : PrintL%=47 : PrintD%=48 8410 OptionsOKF%= 28 : OptionsOKL%=26 : OptionsOKD%=27 : SaveIcon%= 0 : SaveOKF%=11 : SaveOKL%=9 : SaveOKD% = 10 8420 TopSetSideONEStart%=00 : TopSetSideONEEnd%=22 : TopSetSideTWOStart%=01 : TopSetSideTWOEnd%=23 8430 BtmSetSideONEStart%=28 : BtmSetSideONEEnd%=36 : BtmSetSideTWOStart%=29 : BtmSetSideTWOEnd%=37 8440 TitleSideONE%=24 : TitleSideTWO%=26 8450 ArtistSideONE%=25 : ArtistSideTWO%=27 8460 NumberOfLines%=56 : Format%=66 8470 DIM PDriver$(6) 8480 PDriver$(0)="Null:" : PDriver$(1)="NLQ Printer" 8490 PDriver$(2)="Draft Printer" : PDriver$(6)="RiscOS Driver" 8500 PROC_ReadUserData 8510: 8520 REM Get SWI Numbers for font calls to speed up bottleneck in code 8530 SYS "OS_SWINumberFromString",,"Font_FindFont" TO Find% 8540 SYS "OS_SWINumberFromString",,"Font_LoseFont" TO Lose% 8550 SYS "OS_SWINumberFromString",,"Font_SetFont" TO Set% 8560 SYS "OS_SWINumberFromString",,"Font_Paint" TO Paint% 8570: 8580 DeskTopSave$="Run "+FN_ConvertSystemToString("Cassette$Dir")+CHR$(&0A) 8590 BaseFont$=FN_ConvertSystemToString("Cassette$BaseFont") 8600 BoldFont$=FN_ConvertSystemToString("Cassette$BoldFont") 8610 TapeNumber$=FN_ConvertSystemToString("Tape$Prefix") 8620 IF LEN(TapeNumber$)>2 THEN 8630 Clipped$=LEFT$(TapeNumber$,2) 8640 !Block%=9090 8650 Error$="Tape$Prefix is set to longer than 2 characters. OK to clip to "+Clipped$+" Cancel to abort program" 8660 $(Block%+4)=Error$ + CHR$0 8670 SYS "Wimp_ReportError",Block%,%011,MyTaskName$ TO ,Result% 8680 IF Result%=2 THEN PROC_CloseDown 8690 TapeNumber$=Clipped$+" 00" 8700 ELSE 8710 TapeNumber$=TapeNumber$+" 00" 8720 ENDIF 8730ENDPROC 8740: 8750REM ************************************************* 8760REM If variable does not exist, return a NULL string. 8770REM ************************************************* 8780DEF FN_ConvertSystemToString(Variable$) 8790 LOCAL Loop%,Flag%,Answer$ 8800 FOR Loop%=100 TO 150 STEP 4 : Block%!Loop%=0 : NEXT 8810 SYS "XOS_ReadVarVal",Variable$,Block%+100,50,0,3 TO ;Flag% 8820 IF (Flag% AND 1) THEN Answer$="" ELSE Answer$=FN_ReadString(Block%+100) 8830=Answer$ 8840: 8850REM ***************************************************************************** 8860REM Store User Configurable Settings In Config File Within !Cassette Application. 8870REM ***************************************************************************** 8880DEF PROC_StoreUserData 8890 DataFile%=OPENOUT"<Cassette$Dir>.Resources.Config" 8900 BPUT #DataFile%,LatestVer% 8910 PRINT #DataFile%,FN_ReadIconText(Options%,12,FALSE) 8920 PRINT #DataFile%,FN_ReadIconText(Options%,16,FALSE) 8930 PRINT #DataFile%,FN_ReadIconText(Options%,20,FALSE) 8940 PRINT #DataFile%,FN_ReadESGSelected(Options%,9) 8950 CLOSE #DataFile% 8960 SYS "Wimp_CreateMenu",,-1 8970ENDPROC 8980: 8990REM **************************************************************************** 9000REM Read User Configurable Settings In Config File Within !Cassette Application. 9010REM **************************************************************************** 9020DEF PROC_ReadUserData 9030 DataFile%=OPENIN"<Cassette$Dir>.Resources.Config" 9040 IF DataFile%=0 THEN ENDPROC 9050 Ver%=BGET#DataFile% 9060 INPUT #DataFile%,NlqON$ 9070 INPUT #DataFile%,NlqOFF$ 9080 INPUT #DataFile%,FormLength$ 9090 INPUT #DataFile%,SelectedPrinterIcon 9100 CLOSE #DataFile% 9110 IF Ver%<LatestVer% THEN ERROR 1000,"Incompatible Configuration File." 9120 IF SelectedPrinterIcon=15 THEN SelectedPrinterIcon=5 : REM Fudge for template change - Stu 9130 PROC_SetIconText(20,Options%,FormLength$) 9140 PROC_Redraw(Options%,20) 9150 PROC_SetIconText(12,Options%,NlqON$) 9160 PROC_Redraw(Options%,12) 9170 PROC_SetIconText(16,Options%,NlqOFF$) 9180 PROC_Redraw(Options%,16) 9190 PROC_SetIconText(45,Main%,PDriver$(SelectedPrinterIcon+1)) 9200 PROC_Redraw(Main%,45) 9210 PROC_SelectIcon(Options%,0,SelectedPrinterIcon=0) 9220 PROC_SelectIcon(Options%,1,SelectedPrinterIcon=1) 9230 PROC_SelectIcon(Options%,5,SelectedPrinterIcon=5) 9240ENDPROC 9250: 9260DEF PROC_SelectIcon(Window%,Icon%,Flag%) 9270 Block%!0=Window% 9280 Block%!4=Icon% 9290 Block%!8=(-1*Flag%)<<21 9300 Block%!12=1<<21 9310 SYS "Wimp_SetIconState",,Block% 9320ENDPROC 9330: 9340REM **************************************************************************************** 9350REM This Takes A 'Numeric' String, Breaks it Down, And Sends The Value To The Output Device. 9360REM **************************************************************************************** 9370DEF PROC_SendData(Data$) 9380 LOCAL Finish%,Count% 9390 Count%=0 : Finish%=LEN(Data$) 9400 Data$=Data$+"," : REM This is cheating...See WHILE Condition!!!!!! 9410 REPEAT 9420 Sub$="" 9430 Pointer%=1 9440 WHILE MID$(Data$,Pointer%,1)<>"," 9450 Sub$=Sub$+MID$(Data$,Pointer%,1) 9460 Pointer%+=1 9470 ENDWHILE 9480 Data$=MID$(Data$,Pointer%+1) 9490 PRINT CHR$(VAL(Sub$)); 9500 Count%=Count%+LEN(Sub$)+1 9510 UNTIL Count%>=Finish% 9520ENDPROC 9530: 9540*************************************************************************************************** 9550REM If The Program Was Started By Double Clicking On A &B0F File Then Load The File And Display It. 9560*************************************************************************************************** 9570DEF PROC_LoadFileIfRequired 9580 SYS "OS_GetEnv" TO Command$ 9590 I%=INSTR(Command$," -Load ") 9600 IF I% THEN 9610 I%+=LEN" -Load " 9620 WHILE MID$(Command$,I%,1)=" ":I%+=1:ENDWHILE 9630 FileName$=MID$(Command$,I%) 9640 FileName$=LEFT$(FileName$,INSTR(FileName$+" "," ")-1) 9650 IF FileName$<>"" THEN StartWithLoad=TRUE : PROC_DoActualLoadThing(FileName$) 9660 ELSE 9670 StartWithLoad=FALSE 9680 ENDIF 9690ENDPROC 9700: 9710*************************************************************************************************** 9720REM Sets The Save Name In The Save Icon To The Full Pathname Of The Loaded File, And Then Loads It. 9730*************************************************************************************************** 9740DEF PROC_DoActualLoadThing(FileName$) 9750 PROC_SetIconText(4,Save%,FileName$) 9760 PROC_LoadData(FileName$) 9770 PROC_OpenMainWindow(FALSE) 9780ENDPROC 9790: 9800**************************************************************** 9810REM Initialises User Sprite Area, and Loads sprite file into it. 9820REM Load sprite file appropriate to current mode via extn. 9830**************************************************************** 9840DEF PROC_Initialise_Sprites 9850 LOCAL yeigfactor%,ext$,fhandle% 9860 : 9870 IF Version>=300 THEN 9880 SYS "OS_ReadModeVariable",-1,5 TO ,,yeigfactor% : REM Read the current mode ratio 9890 ext$ = "2"+STR$(1<<yeigfactor%) : REM Translate ratio into a file name extension 9900 fhandle%=OPENIN("<Cassette$Dir>.Resources.Sprites"+ext$) : REM Attempt to locate a file of that name 9910 IF fhandle%=0 THEN 9920 ext$="" 9930 fhandle%=OPENIN"<Cassette$Dir>.Resources.Sprites" 9940 ENDIF : REM If not present locate default sprites 9950 IF fhandle%=0 THEN ERROR 0,"Unable to locate default sprite file for !Cassette" 9960 FileLength%=4+(EXT#fhandle%) : REM Get the length of the sprites file 9970 CLOSE #fhandle% 9980 ENDIF 9990 ext$="" 10000 : 10010 DIM SpriteArea% FileLength% : REM Create the user sprite area 10020 SpriteArea%!0 = FileLength% : REM and load the sprites into it. 10030 SpriteArea%!4 = 0 10040 SpriteArea%!8 = 16 10050 SpriteArea%!12 = 16 10060 SYS "OS_SpriteOp",&10A,SpriteArea%,"<Cassette$Dir>.Resources.Sprites"+ext$ 10070ENDPROC 10080: 10090******************************************* 10100REM Communicate with RiscOS Printer Driver. 10110******************************************* 10120DEF PROC_PrintGraphicsMode 10130 REM Check For Presence Of PrinterDriver Modules 10140 SYS "XOS_SWINumberFromString",,"PDriver_Info" TO ;Flag% 10150 IF Flag% AND 1 THEN ERROR 2001,"No Printer Driver, Please Load and Try Again" 10160 : 10170 REM If RiscOS 3.x Machine, Modules are always in ROM, but need to be initialised 10180 REM by the !Printers application before printing can begin. 10190 SYS "XPDriver_Info" TO ;Flag% 10200 IF Flag% AND 1 THEN ERROR 2001,"Use !Printers to select your required printer driver and try again" 10210 : 10220 REM Check if the font manager will support Kerning 10230 SYS "XOS_SWINumberFromString",,"Font_ScanString" TO Flag% 10240 IF Flag% AND 1 THEN NewFontManager%=FALSE ELSE NewFontManager%=TRUE 10250: 10260 LOCAL PrintFile%,OldJob% 10270 LOCAL White%, PageToPrint% 10280 White%=&FFFFFF00 : E%=0 : Usage%=0 10290 REM Create storage space for clipped flags during printing. 10300 ClippedArray%=ClippedArray% : IF ClippedArray%=0 THEN DIM ClippedArray% 40 10310 FOR Temp%=0 TO 40 STEP4 : ClippedArray%!Temp%=0 : NEXT 10320 : 10330 REM Open Destination file and set up local error handler that will close it again on error 10340 PrintFile%=OPENOUT"printer:" 10350 LOCAL ERROR 10360 ON ERROR LOCAL : RESTORE ERROR : Err$=In$+"-"+STR$(In%)+" : "+REPORT$+"-"+STR$(ERL) : CLOSE #PrintFile% : ERROR ERL,Err$ 10370: 10380 REM Start up a print job for this file, remembering the handle of any previous print job, then set up local error handler 10390 SYS "PDriver_SelectJob",PrintFile%,"Boffin Print Job" TO OldJob% 10400 SYS "Hourglass_On" 10410 LOCAL ERROR 10420 ON ERROR LOCAL : RESTORE ERROR : In%=ERL : In$=REPORT$ : SYS "Hourglass_Off" : SYS "PDriver_AbortJob",PrintFile% : SYS "PDriver_SelectJob",OldJob% : ERROR In%,In$ 10430: 10440 REM Start print loop 10450 PROC_GetDocumentSize(Box%) 10460 PROC_FitToPage(Height%,Width%) 10470: 10480 REM Set Up To Print Just One Rectangle 10490 SYS "PDriver_GiveRectangle",,Box%,Matrix%,Origin%,White% 10500: 10510 REM Start printing. 10520 SYS "PDriver_DrawPage",1,Box2%,0,0 TO CopiesLeft% 10530 WHILE CopiesLeft% 10540 PROC_Mini_WIMP_Poll 10550 PROC_DrawInlay(Box2%) 10560 SYS "PDriver_GetRectangle",,Box% TO CopiesLeft% 10570 ENDWHILE 10580: 10590 REM Printing Complete, Terminate this print job 10600 SYS "PDriver_EndJob",PrintFile% 10610: 10620 REM Return to the first of our local error handlers 10630 RESTORE ERROR 10640: 10650 REM And Then go back to whatever print job was active (if any) on entry to this PROC. 10660 SYS "Hourglass_Off" 10670 SYS "PDriver_SelectJob",OldJob% 10680: 10690 REM Go back to the callers error handler 10700 RESTORE ERROR 10710: 10720 REM Close the destination file 10730 CLOSE #PrintFile% 10740: 10750ENDPROC 10760: 10770DEF PROC_GetDocumentSize(Box%) 10780 Height%=725 : Width%=725 10790 X1%=0 : X2%=Width%/2 : X3%=Width% 10800 Y1%=0 : Y2%=163 : Y3%=Y2%+92 : Y4%=Height%-70 : Y5%=Height% 10810 Box%!0=0 : Box%!4=0 10820 Box%!8=Width%+20 : Box%!12=Height%+20 : REM To Allow For Rounding Errors In Conversion Routines. 10830ENDPROC 10840: 10850DEF PROC_FitToPage(Height%,Width%) 10860 LOCAL Left%,Bottom%,Right%,Top% 10870 REM Returns values in Millipoints, Height% & Width% are in OS Units. 1 OS Unit = 400 Millipoints 10880 SYS "PDriver_PageSize" TO ,,,Left%,Bottom%,Right%,Top% 10890 OriginX%=((Right%+Left%)-(Width%*400))/2 : OriginY%=Top%-(Height%*400) 10900 Origin%!0=OriginX% : Origin%!4=OriginY% 10910ENDPROC 10920: 10930DEF PROC_DrawInlay(Co_ordinateBlock%) 10940 SYS Find%,,BaseFont$,09*16,12*16,0,0 TO BaseFontHandle% 10950 SYS Find%,,BoldFont$,10*16,13*16,0,0 TO BoldFontHandle% 10960: 10970 PROC_FontPaint("",FN_ReadIconText(Main%,24,FALSE),X1%+10,Y4%+40,24) 10980 PROC_FontPaint("",FN_ReadIconText(Main%,25,FALSE),X1%+10,Y4%+05,25) 10990 PROC_FontPaint("",FN_ReadIconText(Main%,26,FALSE),X2%+10,Y4%+40,26) 11000 PROC_FontPaint("",FN_ReadIconText(Main%,27,FALSE),X2%+10,Y4%+05,27) 11010: 11020 Separation=(Y4%-Y3%)/12 11030 SpaceStartY=Y3% + Separation 11040 Track%=22 11050 SYS "ColourTrans_SetGCOL",&D0D0D000,,,0,0 11060 PROC_Mini_WIMP_Poll 11070 WHILE SpaceStartY <= Y4% 11080 IF SpaceStartY < Y4%-10 THEN MOVE X1%,SpaceStartY :DRAW X3%,SpaceStartY 11090 Text$=FN_ReadIconText(Main%,Track%,FALSE) 11100 PROC_FontPaint("",Text$,X1%+10,SpaceStartY-25,Track%) 11110 Text$=FN_ReadIconText(Main%,Track%+1,FALSE) 11120 PROC_FontPaint("",Text$,X2%+10,SpaceStartY-25,Track%+1) 11130 SpaceStartY+=Separation 11140 Track%-=2 11150 ENDWHILE 11160: 11170 SpineLine1$=FN_ReadIconText(Main%,24,FALSE)+" - "+FN_ReadIconText(Main%,25,FALSE) 11180 SpineLine2$=FN_ReadIconText(Main%,26,FALSE)+" - "+FN_ReadIconText(Main%,27,FALSE) 11190 PROC_FontPaint("Bold",SpineLine1$,X1%+10,Y2%+55,24) 11200 PROC_FontPaint("Bold",SpineLine2$,X1%+10,Y2%+15,26) 11210 PROC_PrintTapeNumber 11220: 11230 Separation=(Y2%-Y1%)/5 11240 SpaceStartY=Y1% + Separation 11250 Track%=36 11260 PROC_Mini_WIMP_Poll 11270 WHILE SpaceStartY <= Y2% 11280 IF SpaceStartY < Y2%-10 MOVE X1%,SpaceStartY :DRAW X3%,SpaceStartY 11290 Text$=FN_ReadIconText(Main%,Track%,FALSE) 11300 PROC_FontPaint("",Text$,X1%+10,SpaceStartY-25,Track%) 11310 Text$=FN_ReadIconText(Main%,Track%+1,FALSE) 11320 PROC_FontPaint("",Text$,X2%+10,SpaceStartY-25,Track%+1) 11330 SpaceStartY+=Separation 11340 Track%-=2 11350 ENDWHILE 11360: 11370 SYS "ColourTrans_SetGCOL",&00000000,,,0,0 11380 RECTANGLE X1%,Y1%,X3%,Y5% 11390 RECTANGLE X1%,Y2%,X3%,Y3%-Y2% 11400 MOVE X2%,Y1% : DRAW X2%,Y2% 11410 MOVE X2%,Y3% : DRAW X2%,Y4% 11420 MOVE X1%,Y4% : DRAW X3%,Y4% 11430: 11440 SYS Lose%,BaseFontHandle% 11450 SYS Lose%,BoldFontHandle% 11460ENDPROC 11470: 11480***************************************************************** 11490REM Select required Font and colour, then print Message$ at X%,Y% 11500***************************************************************** 11510DEF PROC_FontPaint(PostFix$,Message$,X%,Y%,Icon%) 11520 LOCAL FontHandle% 11530 IF Message$="" THEN ENDPROC 11540 REM Dont Waste Time Messing about if nothing to print! 11550 IF PostFix$="" THEN 11560 SYS Set%,BaseFontHandle% 11570 Text$=FN_TrimToFit(Message$,48,Icon%) 11580 ELSE 11590 SYS Set%,BoldFontHandle% 11600 Text$=FN_TrimToFit(Message$,87,Icon%) 11610 ENDIF 11620 SYS "ColourTrans_SetFontColours",0,&FFFFFF00,&00000000 11630 : 11640 SYS Paint%,,Text$,&210,X%,Y% 11650ENDPROC 11660: 11670REM ***************************************************************************** 11680REM Prints the tape number in a smaller point size at a fixed place on the inlay. 11690REM ***************************************************************************** 11700DEF PROC_PrintTapeNumber 11710 LOCAL Text$,FontHandle% 11720 SYS Find%,,BaseFont$,6*16,8*16,0,0 TO FontHandle% 11730 SYS "ColourTrans_SetFontColours",0,&FFFFFF00,&00000000 11740 : 11750 Text$=FN_ReadIconText(Main%,TapeNumber%,TRUE) 11760 SYS Paint%,,Text$,&10,X3%-70,Y2%+75 11770 : 11780 SYS Lose%,FontHandle% 11790ENDPROC 11800: 11810REM ***************************************************************************************** 11820REM Check the printed length of the text against the size in pixels, and shorten if required. 11830REM Uses : FN_WarnAboutClipping 11840REM ***************************************************************************************** 11850DEF FN_TrimToFit(Text$,mm,Icon%) 11860 LOCAL NumberOfPrintableCharacters% 11870 Continue%=TRUE 11880 XLength%=(mm/25.4)*72000 11890 IF NewFontManager% THEN 11900 SYS "Font_ScanString",0,Text$,&100380,XLength%,15000,,,LEN(Text$) TO ,,,,,,,NumberOfPrintableCharacters% 11910 ELSE 11920 SYS "Font_StringWidth",,Text$,XLength%,15000,-1,LEN(Text$) TO ,,,,NumberOfPrintableCharacters% 11930 ENDIF 11940 TextToPrint$=LEFT$(Text$,NumberOfPrintableCharacters%) 11950 IF NumberOfPrintableCharacters%<LEN(Text$) AND ClippedArray%?Icon%=0 THEN 11960 Continue%=FN_WarnAboutClipping(Text$,TextToPrint$) 11970 ClippedArray%?Icon%=1 11980 ENDIF 11990 IF Continue%=FALSE THEN ERROR 2001,"Aborting Printout. OK to Continue" 12000=TextToPrint$ 12010: 12020REM ************************************************************************************ 12030REM If Clipping will occour, then display Warning message and allow user option to abort. 12040REM Uses: NONE 12050REM ************************************************************************************ 12060DEF FN_WarnAboutClipping(IconText$,TextToPrint$) 12070 LOCAL Error$ 12080 !Block%=0 12090 Error$ ="This Text - '"+IconText$+"' Does not fit. Clipping to '"+TextToPrint$+"' OK To Continue, CANCEL To Abort." 12100 $(Block%+4)=Error$ + CHR$0 12110 SYS "Wimp_ReportError",Block%,%10011,MyTaskName$ TO ,Result% 12120 IF Result%=2 THEN Continue%=FALSE ELSE Continue%=TRUE 12130 SYS "Wimp_ReportError",Block%,1<<6,MyTaskName$ 12140=Continue% 12150 12160DEF PROC_OpenSubMenu(Window%) 12170 SYS "Wimp_GetPointerInfo",,Block% 12180 SYS "Wimp_CreateMenu",,Window%,Block%!0-64,Block%!4+48 12190ENDPROC 12200: 12210REM ********************************************************************** 12220REM Sets the case of all the writable icons to ensure a consistant format. 12230REM ********************************************************************** 12240DEF PROC_FormatIconText 12250 LOCAL Loop% 12260 FOR Loop%=TopSetSideONEStart% TO TopSetSideTWOEnd% STEP 2 12270 PROC_SetIconText(Loop%,Main%,FN_CEW(Loop%)) 12280 PROC_SetIconText(Loop%+1,Main%,FN_CEW(Loop%+1)) 12290 PROC_Redraw(Main%,Loop%) 12300 PROC_Redraw(Main%,Loop%+1) 12310 NEXT 12320 FOR Loop%=BtmSetSideONEStart% TO BtmSetSideTWOEnd% STEP 2 12330 PROC_SetIconText(Loop%,Main%,FN_CEW(Loop%)) 12340 PROC_SetIconText(Loop%+1,Main%,FN_CEW(Loop%+1)) 12350 PROC_Redraw(Main%,Loop%) 12360 PROC_Redraw(Main%,Loop%+1) 12370 NEXT 12380 PROC_SetIconText(TitleSideONE%,Main%,FN_Icon_FTU(TitleSideONE%)) 12390 PROC_SetIconText(TitleSideTWO%,Main%,FN_Icon_FTU(TitleSideTWO%)) 12400 PROC_SetIconText(ArtistSideONE%,Main%,FN_Icon_FTU(ArtistSideONE%)) 12410 PROC_SetIconText(ArtistSideTWO%,Main%,FN_Icon_FTU(ArtistSideTWO%)) 12420 FOR Loop%= TitleSideONE% TO ArtistSideTWO% 12430 PROC_Redraw(Main%,Loop%) 12440 NEXT 12450ENDPROC 12460: 12470REM ************************************************* 12480REM Function to Capitalise Each Word in a given Icon. 12490REM ************************************************* 12500DEF FN_CEW(Icon%) 12510 LOCAL IconText$, Index%, End%, C% 12520 IconText$=FN_ReadIconText(Main%,Icon%,FALSE) 12530 REM If icon is empty, abandon format 12540 IF IconText$="" THEN =IconText$ 12550 Index%=1 : End%=LEN(IconText$) 12560 REM Get 1st character 12570 WHILE Index%<=End% 12580 MID$(IconText$,Index%,1)=FN_Char_FTU(Icon%,Index%) 12590 Index%+=1 12600 C$=MID$(IconText$,Index%,1) 12610 REM Loop until end of word (or end of string) 12620 WHILE C$<>" " AND Index%<=End% 12630 MID$(IconText$,Index%,1)=FN_Char_FTL(Icon%,Index%) 12640 Index%+=1 12650 C$=MID$(IconText$,Index%,1) 12660 ENDWHILE 12670 REM Loop until next word found (Or end of string) 12680 WHILE C$=" " AND Index%<=End% 12690 Index%+=1 12700 C$=MID$(IconText$,Index%,1) 12710 ENDWHILE 12720 PRINTIndex%,End% 12730 ENDWHILE 12740=IconText$ 12750: 12760REM ********************************************************* 12770REM Function to Force all text in a given icon to UPPER CASE. 12780REM ********************************************************* 12790DEF FN_Icon_FTU(Icon%) 12800 LOCAL IconText$ 12810 IconText$=FN_ReadIconText(Main%,Icon%,FALSE) 12820 Index%=1 : End%=LEN(IconText$) 12830 WHILE Index%<=End% 12840 MID$(IconText$,Index%,1)=FN_Char_FTU(Icon%,Index%) 12850 Index%+=1 12860 C$=MID$(IconText$,Index%,1) 12870 ENDWHILE 12880=IconText$ 12890: 12900REM ********************************************************* 12910REM Function to Force all text in a given icon to LOWER CASE. 12920REM ********************************************************* 12930DEF FN_Icon_FTL(Icon%) 12940 LOCAL IconText$ 12950 IconText$=FN_ReadIconText(Main%,Icon%,FALSE) 12960 Index%=1 : End%=LEN(IconText$) 12970 WHILE Index%<=End% 12980 MID$(IconText$,Index%,1)=FN_Char_FTL(Icon%,Index%) 12990 Index%+=1 13000 C$=MID$(IconText$,Index%,1) 13010 ENDWHILE 13020: 13030REM ************************************************** 13040REM Function to Force a given character to UPPER CASE. 13050REM ************************************************** 13060DEF FN_Char_FTU(Icon%,Index%) 13070 LOCAL Temp$ 13080 Temp$=MID$(IconText$,Index%,1) 13090 IF Temp$>="a" AND Temp$<="z" THEN Temp$=CHR$(ASC(Temp$) AND &DF) 13100=Temp$ 13110: 13120REM ************************************************** 13130REM Function to Force a given character to LOWER CASE. 13140REM ************************************************** 13150DEF FN_Char_FTL(Icon%,Index%) 13160 LOCAL Temp$ 13170 Temp$=MID$(IconText$,Index%,1) 13180 IF Temp$>="A" AND Temp$<="Z" THEN Temp$=CHR$(ASC(Temp$) OR &20) 13190=Temp$ 13200: 13210REM *************************************************************************************************************************** 13220REM This message is unique to the Portable. It occures when the battery is too low for continued usage. It is a second stage 13230REM warning, the first stage invites the user to shut down the machine safely, but if this is not done then this stage two 13240REM message is sent out. If you are aware of the status of your file then you should prompt the user to save any modified 13250REM or unsaved files in your normal closedown manner. If you cannot do this, or the user does not respond (EG Machine is 13260REM unattended) then the application should save the data into the scrap directory by themselves. 13270REM ************************************************************************************************************************** 13280DEF PROC_LowPowerWarning 13290 LOCAL SaveName$,Pointer%,LeafName$,MyScrapDir$ 13300 MyScrapDir$=FN_ConvertSystemToString("Wimp$ScrapDir") 13310 IF MyScrapDir$="" THEN 13320 MyScrapDir$=FN_ConvertSystemToString("Wimp$Scrap") 13330 IF MyScrapDir$="" THEN ENDPROC 13340 Pointer%=LEN(MyScrapDir$) 13350 WHILE Pointer%>1 AND MID$(MyScrapDir$,Pointer%,1)<>"." 13360 Pointer%-=1 13370 ENDWHILE 13380 IF Pointer%=1 THEN ENDPROC 13390 MyScrapDir$=LEFT$(MyScrapDir$,(Pointer%-1)) 13400 ENDIF 13410 MyScrapDir$=MyScrapDir$+".Cassette" 13420 OSCLI"CDir "+MyScrapDir$ 13430 PROC_SaveTo(MyScrapDir$+"."+FN_InventSaveName) 13440ENDPROC 13450: 13460REM ******************************************************************* 13470REM The filer is saving a desktop !Boot file, add my RUN command to it. 13480REM ******************************************************************* 13490DEF PROC_DeskTopSave 13500 BPUT#(Block%!20),DeskTopSave$ 13510ENDPROC 13520: 13530REM ******************************************************************************* 13540REM Mini-WIMP POLL "routine" to allow printing to be a bit more in the background!. 13550REM ******************************************************************************* 13560DEF PROC_Mini_WIMP_Poll 13570 SYS "PDriver_SelectJob",0 13580 SYS "Hourglass_Off" 13590 SYS "Wimp_Poll",0,Block% TO A% 13600 CASE A% OF 13610 WHEN 2 : SYS "Wimp_OpenWindow",,Block% : REM allows auto Drag 13620 WHEN 3 : SYS "Wimp_CloseWindow",,Block% : REM allows auto Close 13630 WHEN 17,18 : PROC_DecodeMessage(Block%!16) 13640 ENDCASE 13650 SYS "Hourglass_On" 13660 SYS "PDriver_SelectJob",PrintFile% 13670ENDPROC
� >!RunImage � -� A Public Domain Utility By Mark Bright. (: 2� TRACE PROC <4� TRACE TO "ADFS::4.$.!Scrap.ScrapDir.TRACETEXT" F: PVersion$="1.23 (20-Sep-93)" Z: d)ț "<Cassette$Dir>.Resources.Library" n x7� Block% 1024*4 :� General purpose WIMP workspace! �: ��_Initialise_WIMP_System �: �$�_SetIconText(15,Info%,Version$) �'�_SetIconText(4,Save%,"BoffBright") �: �� � �_Wimp_Error �"�_Initialise_Program_Variables �: ��_LoadFileIfRequired �: �� � �_Wimp_Error �: n� ******************************************************************************************************** n� All RISCOS/WIMP Specific Proceedures First, !Cassette Proc'S after.... Makes for a better skeleton prog! n� ******************************************************************************************************** " ,� 6' ș "Wimp_Poll",Mask%,Block% � A% @ Ȏ A% � JC � 2 : ș "Wimp_OpenWindow",,Block% : � allows auto Drag TD � 3 : ș "Wimp_CloseWindow",,Block% : � allows auto Close ^ � 6 : �_ButtonPressed h7 � 7 : �_DragBoxEnd(�_ReadIconText(Save%,4,�)) r' � 8 : �_ProcessKey(Block%!24) | � 9 : �_MenuSelection �. � 17,18 : �_DecodeMessage(Block%!16) � � �� � �: �/� ***************************************** �/� This is the WIMP Error handling routine ! �/� ***************************************** �� �_Wimp_Error � � Error$ � ș "OS_Byte",3,0 � ș "Wimp_DragBox",,-1 � !Block%=� � Error$ = �$ ^ � �<>2001 � Error$ += " (internal error code "+Þ+"). OK To Continue, CANCEL To Abort." $(Block%+4)=Error$ + �0 O ș "Wimp_ReportError",Block%,%001 - (2*(�<>2001)),MyTaskName$ � ,Result% & � Result%=2 � �_CloseDown 0� :: D*� ************************************ N*� Mouse 'Click' Whilst Over Menu Item. X*� ************************************ b� �_MenuSelection l% � MenuActive% = IconBarMenu% � v Ȏ Block%!0 � �> � 0 : �_OpenSubMenu(Info%) : IconBarMenuActive%=� �A � 1 : �_OpenSubMenu(Options%) : IconBarMenuActive%=� �E � 2 : �_CloseDown : � <Select> on "quit" causes shutdown � � � � � �% � MenuActive% = MainWinMenu% � � Ȏ Block%!0 � �A � 0 : �_OpenSubMenu(Info%) : MainWindowMenuActive%=� �A � 1 : �_OpenSubMenu(Save%) : MainWindowMenuActive%=� �# � 2 : �_FormatIconText �D � 3 : �_OpenSubMenu(Options%) : MainWindowMenuActive%=� �! � 4 : �_WipeIconText � � ' ș "Wimp_GetPointerInfo",,Block% * � (Block%!8 � 1) � 4D � MenuActive% = IconBarMenu% � ș "Wimp_CreateMenu",,menu% >H � MenuActive% = MainWinMenu% � ș "Wimp_CreateMenu",,MainMenu% H � R� \: f&� ******************************** p&� Mouse Button Status Has Changed. z&� ******************************** �� �_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(�) .( � %010 : �_SetUpIconBarMenu 8 � B � L V9 � Button%<> %010 � Window%=Main% � Icon%=PrintF% � `9 �_ButtonPress(Main%, PrintF%, PrintL%, PrintD%) j �_PrintOut t � ~ �' � Button%=%010 � Window%=Main% � � Temp$=�_InventSaveName �7 �_CreateMainWindowMenu(MouseX%,MouseY%,Icon%) � � � �6 � Window%=Save% � Icon%=SaveIcon% � �_DragSave �+ � Window%=Save% � Icon%=SaveOKF% � �< �_ButtonPress(Save%, SaveOKF%, SaveOKL%, SaveOKD%) �- �_SaveTo(�_ReadIconText(Save%,4,�)) � � � �, � Button%<> %010 � Window%=Options% � Ȏ Icon% � Y � 0,1,5 : �_SetIconText(45,Main%,PDriver$(�_ReadESGSelected(Options%,9)+1)) � �_Redraw(Main%,45) ( � 2� <: Fg� ************************************************************************************************* Pg� Determine if a new name is required, if so generate an intelligent name based on cassette number. Zg� ************************************************************************************************* d� �_InventSaveName n Prefix$="Cass_" x[ Temp$=�_ReadIconText(Save%,4,�) : Temp2$=Prefix$+�_ReadIconText(Main%,TapeNumber%,�) �5 � �Temp$,10)="BoffBright" � OldName$<>Temp2$ � �8 NewSaveName$=�_ConvertSoftToHardSpaces(Temp2$) � � �(Temp$)>�(Temp2$) � � Pointer%=�(Temp$) �B ȕ �Temp$,Pointer%,1)<>"." � Pointer%>0:Pointer%-=1:� �A �_SetIconText(4,Save%,�Temp$,Pointer%)+NewSaveName$) � � �0 �_SetIconText(4,Save%,NewSaveName$) � � � OldName$=Temp2$ � � �=Temp2$ �: 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$) 6 � @" Char$=�Name$,Pointer%,1) J � Char$=" " � T Char$="�" ^% �Name$,Pointer%,1)=Char$ h � r Pointer%-=1 | � Pointer%=1 � =Name$ �: �$******************************** �"� '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: :0******************************************** D.� Change the colour of an icon in a window N0******************************************** X.� �_SetIconColour(Window%, Icon%, Colour%) b Block%!0 = Window% l Block%!4 = Icon% v Block%!8 = Colour% << 28 � Block%!12 = %1111 << 28 �& ș "Wimp_SetIconState",, Block% �� �: �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> * 4 � &18A > � <Tab> H" � Icon%<38 � RY �_SetCaretPosition(Icon%-((Icon% � 2)=0)+((Icon% � 2)=1),Index%) \ � f p � &0D z � <Return> �9 � Window%=Main% � �_MoveDownAnEntry �' � Window%=Save% � �K �_ButtonPress(Save%, SaveOKF%, SaveOKL%, SaveOKD%) �< �_SaveTo(�_ReadIconText(Save%,4,�)) � � � � � &1E � � <Home> �7 �_SetCaretPosition((Icon% � 2),0) � � � &18F � � <Cursor Up> �9 � Window% = Main% � �_MoveUpAnEntry � &18E � <Cursor Down> $; � Window% = Main% � �_MoveDownAnEntry . 8 � &199 B � <Shift><f9> L8 � Window% = Main% � �_WipeIconText V ` � &1CA j � <f10> t4 �_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 � � � �� �: �$� ****************************** $� Set which icon the caret is in $� ****************************** &� �_SetCaretPosition(Icon%,Index%) 3 IconLength%=�(�_ReadIconText(Main%,Icon%,�)) (0 � Index%>IconLength% � Index%=IconLength% 29 ș "Wimp_SetCaretPosition",Main%,Icon%,,,-1,Index% <� F: P%� ******************************* Z%� Redraw the specifiied icon (v2) d%� ******************************* n� �_Redraw(Window%,Icon%) x Block%!0=Window% � Block%!4=Icon% � Block%!8=0 � Block%!12=0 �% ș "Wimp_SetIconState",,Block% �� �: �E� *************************************************************** �H� When a message is received, Control is passed to here for decoding �E� *************************************************************** �� �_DecodeMessage(Request%) � Ȏ Request% � � � 0 : �_CloseDown �: � 1 : Block%!0=(48+�("<Wimp$Scrap> "))� � 3 * Block%!12=Block%!8 # Block%!16=2 3 $(Block%+44)="<Wimp$Scrap>" "* SaveRef%=Block%!12 ,@ ș "Wimp_SendMessage",17,Block%,Block%!4 60 � 2 : �_HandleMessage_DataSaveAck @& � 3 : �_FileDroppedOnMe J � 5 : �_DataOpen T" � 10 : �_DeskTopSave ^& � 14 : �_LowPowerWarning hH � &502 : �_GiveHelp(Block%!32,Block%!36,Block%!20,Block%!24) rP � &400C2 : � �_ReadString(Block%+28)=MyTaskName$ � Block%!4<> My_id% � |_ � Another !Cassette is trying to start up, I am going to bugger off! �& �_CloseDown � � �# � &400CC : Block%!00 = 48 �, Block%!12 = Block%!8 �* Block%!16 = &400CC �Y $(Block%+28) = "cassete" :� Sprite name "ic_csvtext" etc. �V $(Block%+36) = �_InventSaveName :� Name to call iconised icon. �@ ș "Wimp_SendMessage",17,Block%,Block%!4 � � �� �: �>� ******************************************************** �>� Start Up program as a task with name "Cassette Designer" "� And put icon on the Icon bar >� ******************************************************** � �_Initialise_WIMP_System & � WimpVersion$ 0 :& MyTaskName$="Cassette Designer" D NC WimpVersion$=�_ConvertSystemToString("Cassette$WimpVersion") X b � (WimpVersion$="300") � l; � Set up list of messages that I want to receive: v$ Block%!0=0 : � Quit �( Block%!4=1 : � DataSave �+ Block%!8=2 : � DataSaveAck �( Block%!12=3 : � DataLoad �( Block%!16=5 : � DataOpen �+ Block%!20=10 : � DeskTopSave �V Block%!24=14 : � ShutDown (Portable only. Power low warning message) �8 Block%!28=&502 : � Interactive help request �/ Block%!32=&400C2 : � Task Initialise �' Block%!36=&400CC : � Iconize �) Block%!40=0 : � Terminate �P ș "Wimp_Initialise",300,&4B534154,MyTaskName$,Block% � Version,My_id% � � �I ș "Wimp_Initialise",200,&4B534154,MyTaskName$ � Version,My_id% � - IconBarIconHandle%=�_CreateIconBarIcon �_Initialise_Sprites �_Initialise_Templates *n Mask%=%1100000110001 : � Mask Out codes for Gain/Lose Caret, Pointer Enter/Leave Window & Null Event 4� >: HA� *********************************************************** RA� All WIMP Programs should be able to shut themselves down!!! \A� *********************************************************** f� �_CloseDown p+ ș "Wimp_CloseDown",My_id%,&4B534154 z ș "OS_Exit" �� �: �F� **************************************************************** �F� Opens up the template file, Fondles it, and then creates Windows �F� **************************************************************** �� �_Initialise_Templates �. maxws%=&A00 : � ws% maxws% : curws%=ws% �B ș"Wimp_OpenTemplate",,"<Cassette$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" 8� B: LI� ******************************************************************* VI� This writes over the text in the Icon, and it should not be done!!! `.� Only Works With Indirected Text Strings! jI� ******************************************************************* t4� �_SetIconText(IconHandle%,WindowHandle%,Text$) ~ � Pointer% � Block%!100=WindowHandle% � Block%!104=IconHandle% �) ș "Wimp_GetIconState",,Block%+100 �# � (Block%!124 � (1<<8))<>0 � � Pointer%=Block%!128 � � � Pointer%=Block%+128 � � � $Pointer%=Text$ �� �: �,� ************************************** ,� The name sort of says it all really!!! ,� ************************************** � �_SetUpIconBarMenu � m% (! MenuActive% = IconBarMenu% 2 � menu% 28+3*24 < $menu%="Cassette" F menu%?12=7 P menu%?13=2 Z menu%?14=7 d menu%?15=0 n menu%!16=128 x menu%!20=40 � menu%!24=0 � m%=menu%+28 � m%!0=&0 �0 m%!4=Info% :� name from template open. � m%!8=(7<<24) � %10001 � $(m%+12)="Info" � m%=m%+24 � m%!0=&0 � m%!4=Options% � m%!8=(7<<24) � %10001 � $(m%+12)="Options" � m%=m%+24 � m%!0=&80 m%!4=0 m%!8=(7<<24)� %10001 $(m%+12)="Quit" "1 ș"Wimp_CreateMenu",,menu%,Block%!0-64,215 ,� 6: @C� ************************************************************* JC� This takes a Sprite and makes it into an Icon For the IconBar TC� ************************************************************* ^� �_CreateIconBarIcon h � Icon% r Block%!0=-1 | Block%!4=0 � Block%!8=0 � Block%!12=68 � Block%!16=68 � Block%!20=%10000000000010 � $(Block%+24)="!Cassette" �+ ș "Wimp_CreateIcon",,Block% � Icon% � =Icon% �: �3� ********************************************* �3� Read Info for Window Main, and then open it ! �3� ********************************************* �-� �_OpenMainWindow(WipeTemplateIconText%) �H � WipeTemplateIconText% � New% � � StartWithLoad � �_WipeIconText !Block%=Main% ' ș "Wimp_GetWindowState",,Block% # ș "Wimp_OpenWindow",,Block% & New%=� 0 �_SetCaretPosition(0,0) :� D: NL� ********************************************************************** XL� This reads the text from the writable Icon specified in the parameters bA� and if Pad%=TRUE then pads out the result to 32 characters! lL� ********************************************************************** v4� �_ReadIconText(WindowHandle%,IconHandle%,Pad%) � � Result$ � Block%!100=WindowHandle% � Block%!104=IconHandle% �) ș "Wimp_GetIconState",,Block%+100 �# � (Block%!124 � (1<<8))<>0 � � Result$=$(Block%!128) � � � Result$=$(Block%+128) � � �& � Pad% � =�Result$+�32," "),32) �=Result$ �: �/� ***************************************** /� Wipe the text from all the writable icons /� ***************************************** � �_WipeIconText IconText$="" * � Loop%=0 � 37 4. �_SetIconText(Loop%,Main%,IconText$) > �_Redraw(Main%,Loop%) H � R3 �_SetIconText(TapeNumber%,Main%,TapeNumber$) \" �_Redraw(Main%,TapeNumber%) f� p: z,� ************************************** �,� The name sort of says it all really!!! �+� ************************************* �)� �_CreateMainWindowMenu(X%,Y%,Icon%) �0 � m%,Flags%,Pointer%,Sel%,IconFlag%,Item$ �! MenuActive% = MainWinMenu% � � MainMenu% 29+7*24 � $MainMenu%="Main" � MainMenu%?12=7 � MainMenu%?13=2 � MainMenu%?14=7 � MainMenu%?15=0 � 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 8Y m%!4=Pointer% :� Pointer to Sub-Menu (-1 If None) BF m%!8=IconFlag% � (Sel%<<22) � (7<<24) :� Menu Icon Flags LR $(m%+12)=Item$ :� Item Name (12 Bytes Max.) V m%=m%+24 ` � Flags%=&80 j : t � +0 ~% � &00,Info%, 0,%10001,"Info" �* � &00,Save%, 0,%10001,"Save data" �, � &00,-1, 0,%10001,"Format text" �( � &00,Options%,0,%10001,"Options" �) � &80,-1, 0,%10001,"Wipe all" � : �/ ș "Wimp_CreateMenu",,MainMenu%,X%-64,Y% �� �: �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 � (4 � DragASprite_Active% � ș "DragASprite_Stop" 2' LeafName$=�LeafName$,Pointer%+1) <' ș "Wimp_GetPointerInfo",,Block% F SenderWindow%=Block%!12 P SenderIcon%=Block%!16 Z Block%!20=SenderWindow% d Block%!24=SenderIcon% n Block%!28=Block%!0 x Block%!32=Block%!4 � Block%!0=44+�LeafName$ �! Block%!0+=4-(Block%!0 � 4) � Block%!4=0 � Block%!8=0 � Block%!12=0 �' Block%!16=1 : � Message_DataSave �. Block%!36=0 : � Length of proposed save � Block%!40=&B0F � $(Block%+44)=LeafName$+�0 �x � � ((SenderWindow%=Save%) � (SenderWindow%=Main%) � (SenderWindow%=IconBar% � SenderIcon%=IconBarIconHandle%)) � �C ș "Wimp_SendMessage",17,Block%,SenderWindow%,SenderIcon% � � �� : <� ****************************************************** ;� A Data Save Acknowlegement Message Has Been Received! "<� ****************************************************** ,!� �_HandleMessage_DataSaveAck 6 � PathName$,Pointer% @ Pointer%=Block%+44 J � T PathName$+=�?Pointer% ^ Pointer%+=1 h � ?Pointer%=0 r �_SaveTo(PathName$) | Block%!0=40+�PathName$+4 �! Block%!0+=4-(Block%!0 � 4) �' Block%!16=3 : � Message_DataLoad � Block%!36=0 � Block%!40=&B0F �" $(Block%+44)=PathName$+�(0) �@ ș "Wimp_SendMessage",18,Block%,SenderWindow%,SenderIcon% �� �: �6� ************************************************ �6� A File has been double clicked on, do I want it? �6� ************************************************ �� �_DataOpen �� File$ � Block%!40=&B0F � ' File$=�_ReadString(Block%+44) Block%!12=Block%!8 & Block%!16=4 02 ș "Wimp_SendMessage",17,Block%,Block%!4 :$ �_DoActualLoadThing(File$) D � N� X: b;� ***************************************************** l;� Read a string from a pointer, using a zero-terminator v;� ***************************************************** �� �_ReadString(Pointer%) � � String$ � ȕ ?Pointer%<>0 � String$+=�?Pointer% � Pointer%+=1 � � �=String$ �: �N� ************************************************************************ �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 � L � Pointer%=1 � � 2001,"To save, drag the icon to a directory viewer." * ș "Wimp_CreateMenu",,-1 4 SaveFile%=�(PathName$) >; � Open Out A File And Print Out All the information! H � Loop%=0 � 37 R4 � #SaveFile%,�_ReadIconText(Main%,Loop%,�) \ � f7 � #SaveFile%,�_ReadIconText(Main%,TapeNumber%,�) p" � Then Close the file again z � #SaveFile% �$ � "SetType "+PathName$+" B0F" �G � Overwrite SaveWindow Text With Full Pathname For Future Saves! �' �_SetIconText(4,Save%,PathName$) �� �: �?� ********************************************************* �?� This Handles The Dragging Of THe Outline Of The Save Box. �?� ********************************************************* �� �_DragSave � � flags%,byte% � DragASprite_Active% = � �@ ș "XOS_SWINumberFromString",,"DragASprite_&00" � ;flags% �$ ș "OS_Byte",161,28 � ,,byte% A � (flags% � 1)=0 � (byte% � 2)=2 � DragASprite_Active% = � !Block%=Save% ' ș "Wimp_GetWindowState",,Block% $" OffsetX%=Block%!4-Block%!20 .# OffsetY%=Block%!16-Block%!24 8 Block%!0=Save% B Block%!4=0 L% ș "Wimp_GetIconState",,Block% V !Block%=Save% ` Block%!4=5 j! Block%!8=Block%!8+OffsetX% t# Block%!12=Block%!12+OffsetY% ~# Block%!16=Block%!16+OffsetX% �# Block%!20=Block%!20+OffsetY% � Block%!24=0 � Block%!28=0 � Block%!32=&7FFFFFFF � Block%!36=&7FFFFFFF � � DragASprite_Active% � �D ș "DragASprite_Start",197,1,"file_b0f",Block%+8,Block%+24 � � �# ș "Wimp_DragBox",,Block% � � �� �: @� ********************************************************** @� When A File Is Dropped Onto My Icon Bar Icon, I Come Here! @� ********************************************************** � �_FileDroppedOnMe ( � Block%!40 =&B0F � 2 SaveName$=$(Block%+44) < Block%!12=Block%!8 F Block%!16=4 P2 ș "Wimp_SendMessage",17,Block%,Block%!4 Z( �_DoActualLoadThing(SaveName$) d � n� x: �U� ******************************************************************************* �U� Control Comes Here When A Valid File Type Has Been Dropped Onto My Application. �U� ******************************************************************************* �� �_LoadData(FileName$) � LoadFile%=�(FileName$) � � LoadLoop%=0 � 37 � �# LoadFile%,TempText$ �2 �_SetIconText(LoadLoop%,Main%,TempText$) �# �_Redraw(Main%,LoadLoop%) � � � �# LoadFile%,TempText$ �1 �_SetIconText(TapeNumber%,Main%,TempText$) �" �_Redraw(Main%,TapeNumber%) � #LoadFile% � : "K� ********************************************************************* ,J� Reads State Of Icons in Window Stated and Returns The First Selected 6F� Icon In The Give Exclusive Selection Group. (-1 = None Selected) @J� ******************************************************************** J+� �_ReadESGSelected(WindowHandle%,Esg%) T � Mask%,Pattern% ^A Mask% = (1<<21)+(31<<16) : � Bit 21 and Bits 16-20 h> Pattern%= (1<<21)+(Esg%<<16) : � Selected and ESG X rB ș "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� *************************************************************************************************** �: �: �3� ********************************************* �3� Swaps the case of of the specified character. �3� ********************************************* �&� �_SwapCase(Window%,Icon%,Index%) �2 � Index%<�(�_ReadIconText(Main%,Icon%,�)) � 1 IconText$=�_ReadIconText(Main%,Icon%,�) , C%=�(�IconText$,Index%+1,1)) � &DF � C%>=&41 � C%<=&5A � &2 C$=�(�(�IconText$,Index%+1,1)) � &20) 0& �IconText$,Index%+1,1)=C$ :3 �_SetIconText(Icon%,Window%,IconText$) D" �_Redraw(Main%,Icon%) N � X, �_SetCaretPosition(Icon%,Index%+1) b � l� v: �8� ************************************************** �8� Move Caret Down To The Next Entry, With Wrap-round �8� ************************************************** �� �_MoveDownAnEntry �N � Icon%<22 � (Icon%>23 � Icon%<26) � �_SetCaretPosition(Icon%+2,Index%) �A � Icon%=22 � Icon%=23 � �_SetCaretPosition(Icon%+6,Index%) �A � Icon%>27 � Icon%<36 � �_SetCaretPosition(Icon%+2,Index%) �B � Icon%=36 � Icon%=37 � �_SetCaretPosition(Icon%-36,Index%) �� �: �2� ******************************************** �2� Move Caret Up To Next Entry, With Wrap-round �2� ******************************************** � �_MoveUpAnEntry Z � (Icon%<24 � Icon%>1) � (Icon%<38 � Icon%>29) � �_SetCaretPosition(Icon%-2,Index%) A � Icon%=28 � Icon%=29 � �_SetCaretPosition(Icon%-6,Index%) A � Icon%=26 � Icon%=27 � �_SetCaretPosition(Icon%-2,Index%) *B � Icon%=00 � Icon%=01 � �_SetCaretPosition(Icon%+36,Index%) 4� >: H@� ********************************************************** R4� Printout the contents of the writable icons!!! \@� ********************************************************** f� �_PrintOut p) Ȏ �_ReadESGSelected(Options%,9) � z' � 0 : �_PrintTextMode(NlqON$) �( � 1 : �_PrintTextMode(NlqOFF$) �# � 5 : �_PrintGraphicsMode �Y � 2001, "Please select a printout mode from the options window and try again" � � �� �: �;� ***************************************************** �4� Print out the label in text mode (non Risc OS) �;� Parameter is an optional control string (ie NLQ etc.) �;� ***************************************************** �� �_PrintTextMode(Prelog$) � � L% � � �_Printer_NotOnLine � � ș "Hourglass_On" : < ș "OS_Byte",3,10 :� SCREEN OFF, PRINTER ON. $/ �_SendData(Prelog$) :� Set NLQ Mode .6 � 27,15 :� Condensed print ON 8 : BH � " ";�_ReadIconText(Main%,24,�);"| ";�_ReadIconText(Main%,26,�) L? � " ";�_RightJustify(25,31);" | ";�_RightJustify(27,31) V � LongEqual$ ` � L%=0 � 23 � 2 jM � " ";�_ReadIconText(Main%,L%,�);"| ";�_ReadIconText(Main%,L%+1,�) t � ~ � LongEqual$ �� � "A: ";�_ReadIconText(Main%,24,�);" - ";�_ReadIconText(Main%,25,�);�_EndOfLineLessFive;�_ReadIconText(Main%,TapeNumber%,�) �J � "B: ";�_ReadIconText(Main%,26,�);" - ";�_ReadIconText(Main%,27,�) � � LongEqual$ � � L%=28 � 36 � 2 �M � " ";�_ReadIconText(Main%,L%,�);"| ";�_ReadIconText(Main%,L%+1,�) � � � � LongMinus$ � : � � L%=0 � �(FormLength$) � � :� short Form Feed � � � : < ș "OS_Byte",3,00 :� SCREEN ON, PRINTER OFF. ș "Hourglass_Off" � : (@� ********************************************************** 2.� Function to check if printer is on line, <@� If printer is not online TRUE is returned, otherwise FALSE F@� ********************************************************** P� �_Printer_NotOnLine Z ș "Hourglass_On" d � n# PrinterOnLine=� : What%=0 x Now%=� � Before%=�(-4) �/ � 2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3 �! Now%=� : � � �>Now%+100 � After%=�(-4) � � Before%<>After% � � ș "Hourglass_Off" � PrinterOnLine=� ȇ $Block%="The Printer is not responding, please check that it has paper, it is switched on and is on-line. Try again?"+�(0) �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 6H� ****************************************************************** @!� �_RightJustify(Icon%,Char%) J* Text$=�_ReadIconText(Main%,Icon%,�) T=�Char%-�(Text$)," ")+Text$ ^: h=� ******************************************************* r=� Tabs to the end of the line except for five characters. |=� ******************************************************* �� �_EndOfLineLessFive �2Length%=�(�_ReadIconText(Main%,TapeNumber%,�)) �)� Length%=5 � TotLen%=63 � TotLen%=63 �]Ans$=�TotLen%-�(" A: "+�_ReadIconText(Main%,24,�)+" - "+�_ReadIconText(Main%,25,�))," ") � =Ans$ �: �L� ********************************************************************** �L� This is purely for program variables and is nothing to do with Risc_OS �L� ********************************************************************** �$� �_Initialise_Program_Variables �6 � Variables to do with RiscOS PDriver InterFace � � Box% 16 : � Box2% 16 � � Matrix% 16 7 ScaleX%=1 : ScaleY%=1 :� For Future Expansion? 0 Matrix%!04=0 : Matrix%!00=2^16*ScaleX% 0 Matrix%!08=0 : Matrix%!12=2^16*ScaleY% & � Origin% 8 0: : DragASprite_Active% = � D IconBarMenu% = 0 N MainWinMenu% = 1 X TapeNumber% = 53 b! LongEqual$ = �68,"=") l! LongMinus$ = �68,"-") v New% = � � NLQ% = � �# NlqON$ = "27,120,1" �# NlqOFF$ = "27,120,0" �# PrintFile$ = "PrintOut" �r LatestVer% = 2 : � Version Number Of Config File. Change If File Is Made Incompatable..... � OldName$ = "" �: �O � Give names to some of the icons etc. to make the program more readable �L BackGround%= -1 : IconBar%= -2 : PrintF%=49 : PrintL%=47 : PrintD%=48 �r OptionsOKF%= 28 : OptionsOKL%=26 : OptionsOKD%=27 : SaveIcon%= 0 : SaveOKF%=11 : SaveOKL%=9 : SaveOKD% = 10 �d TopSetSideONEStart%=00 : TopSetSideONEEnd%=22 : TopSetSideTWOStart%=01 : TopSetSideTWOEnd%=23 �d BtmSetSideONEStart%=28 : BtmSetSideONEEnd%=36 : BtmSetSideTWOStart%=29 : BtmSetSideTWOEnd%=37 �* TitleSideONE%=24 : TitleSideTWO%=26 !, ArtistSideONE%=25 : ArtistSideTWO%=27 !% NumberOfLines%=56 : Format%=66 ! � PDriver$(6) ! 6 PDriver$(0)="Null:" : PDriver$(1)="NLQ Printer" !*@ PDriver$(2)="Draft Printer" : PDriver$(6)="RiscOS Driver" !4 �_ReadUserData !>: !HF � Get SWI Numbers for font calls to speed up bottleneck in code !R; ș "OS_SWINumberFromString",,"Font_FindFont" � Find% !\; ș "OS_SWINumberFromString",,"Font_LoseFont" � Lose% !f9 ș "OS_SWINumberFromString",,"Font_SetFont" � Set% !p9 ș "OS_SWINumberFromString",,"Font_Paint" � Paint% !z: !�I DeskTopSave$="Run "+�_ConvertSystemToString("Cassette$Dir")+�(&0A) !�= BaseFont$=�_ConvertSystemToString("Cassette$BaseFont") !�= BoldFont$=�_ConvertSystemToString("Cassette$BoldFont") !�9 TapeNumber$=�_ConvertSystemToString("Tape$Prefix") !� � �(TapeNumber$)>2 � !�" Clipped$=�TapeNumber$,2) !� !Block%=9090 !�u Error$="Tape$Prefix is set to longer than 2 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" " � "� "$: ".7� ************************************************* "87� If variable does not exist, return a NULL string. "B7� ************************************************* "L(� �_ConvertSystemToString(Variable$) "V � Loop%,Flag%,Answer$ "`1 � Loop%=100 � 150 � 4 : Block%!Loop%=0 : � "j? ș "XOS_ReadVarVal",Variable$,Block%+100,50,0,3 � ;Flag% "tD � (Flag% � 1) � Answer$="" � Answer$=�_ReadString(Block%+100) "~=Answer$ "�: "�S� ***************************************************************************** "�S� Store User Configurable Settings In Config File Within !Cassette Application. "�S� ***************************************************************************** "�� �_StoreUserData "�3 DataFile%=�"<Cassette$Dir>.Resources.Config" "� � #DataFile%,LatestVer% "�1 � #DataFile%,�_ReadIconText(Options%,12,�) "�1 � #DataFile%,�_ReadIconText(Options%,16,�) "�1 � #DataFile%,�_ReadIconText(Options%,20,�) "�1 � #DataFile%,�_ReadESGSelected(Options%,9) "� � #DataFile% # ș "Wimp_CreateMenu",,-1 # � #: #R� **************************************************************************** #(R� Read User Configurable Settings In Config File Within !Cassette Application. #2R� **************************************************************************** #<� �_ReadUserData #F3 DataFile%=�"<Cassette$Dir>.Resources.Config" #P � DataFile%=0 � � #Z Ver%=�#DataFile% #d � #DataFile%,NlqON$ #n � #DataFile%,NlqOFF$ #x � #DataFile%,FormLength$ #�' � #DataFile%,SelectedPrinterIcon #� � #DataFile% #�D � Ver%<LatestVer% � � 1000,"Incompatible Configuration File." #�[ � 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) #�> �_SetIconText(45,Main%,PDriver$(SelectedPrinterIcon+1)) #� �_Redraw(Main%,45) #�5 �_SelectIcon(Options%,0,SelectedPrinterIcon=0) $5 �_SelectIcon(Options%,1,SelectedPrinterIcon=1) $5 �_SelectIcon(Options%,5,SelectedPrinterIcon=5) $� $": $,'� �_SelectIcon(Window%,Icon%,Flag%) $6 Block%!0=Window% $@ Block%!4=Icon% $J Block%!8=(-1*Flag%)<<21 $T Block%!12=1<<21 $^% ș "Wimp_SetIconState",,Block% $h� $r: $|^� **************************************************************************************** $�^� This Takes A 'Numeric' String, Breaks it Down, And Sends The Value To The Output Device. $�^� **************************************************************************************** $�� �_SendData(Data$) $� � Finish%,Count% $�" 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% %0� %:: %Dg*************************************************************************************************** %Ne� If The Program Was Started By Double Clicking On A &B0F File Then Load The File And Display It. %Xg*************************************************************************************************** %b� �_LoadFileIfRequired %l ș "OS_GetEnv" � Command$ %v I%=�Command$," -Load ") %� � I% � %� I%+=�" -Load " %�( ȕ �Command$,I%,1)=" ":I%+=1:� %�! FileName$=�Command$,I%) %�5 FileName$=�FileName$,�FileName$+" "," ")-1) %�L � FileName$<>"" � StartWithLoad=� : �_DoActualLoadThing(FileName$) %� � %� StartWithLoad=� %� � %�� %�: %�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$) &' �_SetIconText(4,Save%,FileName$) & �_LoadData(FileName$) &* �_OpenMainWindow(�) &4� &>: &HD**************************************************************** &RB� Initialises User Sprite Area, and Loads sprite file into it. &\<� Load sprite file appropriate to current mode via extn. &fD**************************************************************** &p� �_Initialise_Sprites &z" � yeigfactor%,ext$,fhandle% &� : &� � Version>=300 � &�d ș "OS_ReadModeVariable",-1,5 � ,,yeigfactor% : � Read the current mode ratio &�r ext$ = "2"+�(1<<yeigfactor%) : � Translate ratio into a file name extension &�k fhandle%=�("<Cassette$Dir>.Resources.Sprites"+ext$) : � Attempt to locate a file of that name &� � fhandle%=0 � &� ext$="" &�9 fhandle%=�"<Cassette$Dir>.Resources.Sprites" &�l � : � If not present locate default sprites &�Q � fhandle%=0 � � 0,"Unable to locate default sprite file for !Cassette" &�k FileLength%=4+(�#fhandle%) : � Get the length of the sprites file &� � #fhandle% &� � ' ext$="" ' : 'a � SpriteArea% FileLength% : � Create the user sprite area '$e SpriteArea%!0 = FileLength% : � and load the sprites into it. '. SpriteArea%!4 = 0 '8 SpriteArea%!8 = 16 'B SpriteArea%!12 = 16 'LP ș "OS_SpriteOp",&10A,SpriteArea%,"<Cassette$Dir>.Resources.Sprites"+ext$ 'V� '`: 'j/******************************************* 't-� Communicate with RiscOS Printer Driver. '~/******************************************* '�� �_PrintGraphicsMode '�4 � Check For Presence Of PrinterDriver Modules '�< ș "XOS_SWINumberFromString",,"PDriver_Info" � ;Flag% '�J � Flag% � 1 � � 2001,"No Printer Driver, Please Load and Try Again" '� : '�U � If RiscOS 3.x Machine, Modules are always in ROM, but need to be initialised '�@ � by the !Printers application before printing can begin. '�" ș "XPDriver_Info" � ;Flag% '�` � Flag% � 1 � � 2001,"Use !Printers to select your required printer driver and try again" '� : '�7 � Check if the font manager will support Kerning '�> ș "XOS_SWINumberFromString",,"Font_ScanString" � Flag% ( : � Flag% � 1 � NewFontManager%=� � NewFontManager%=� ( : ( � PrintFile%,OldJob% ( � White%, PageToPrint% (() White%=&FFFFFF00 : E%=0 : Usage%=0 (2@ � Create storage space for clipped flags during printing. (<K ClippedArray%=ClippedArray% : � ClippedArray%=0 � � ClippedArray% 40 (F4 � Temp%=0 � 40 �4 : ClippedArray%!Temp%=0 : � (P : (Z_ � Open Destination file and set up local error handler that will close it again on error (d PrintFile%=�"printer:" (n � � (xU � � � : � � : Err$=In$+"-"+�(In%)+" : "+�$+"-"+�(�) : � #PrintFile% : � �,Err$ (�: (�~ � Start up a print job for this file, remembering the handle of any previous print job, then set up local error handler (�E ș "PDriver_SelectJob",PrintFile%,"Boffin Print Job" � OldJob% (� ș "Hourglass_On" (� � � (�� � � � : � � : In%=� : In$=�$ : ș "Hourglass_Off" : ș "PDriver_AbortJob",PrintFile% : ș "PDriver_SelectJob",OldJob% : � In%,In$ (�: (� � Start print loop (� �_GetDocumentSize(Box%) (�" �_FitToPage(Height%,Width%) (�: (�+ � Set Up To Print Just One Rectangle (�> ș "PDriver_GiveRectangle",,Box%,Matrix%,Origin%,White% ): ) � Start printing. )6 ș "PDriver_DrawPage",1,Box2%,0,0 � CopiesLeft% )" ȕ CopiesLeft% ), �_Mini_WIMP_Poll )6 �_DrawInlay(Box2%) )@7 ș "PDriver_GetRectangle",,Box% � CopiesLeft% )J � )T: )^4 � Printing Complete, Terminate this print job )h% ș "PDriver_EndJob",PrintFile% )r: )|8 � Return to the first of our local error handlers )� � � )�: )�Z � And Then go back to whatever print job was active (if any) on entry to this PROC. )� ș "Hourglass_Off" )�% ș "PDriver_SelectJob",OldJob% )�: )�- � Go back to the callers error handler )� � � )�: )�# � Close the destination file )� � #PrintFile% )�: )�� *: *� �_GetDocumentSize(Box%) *$ Height%=725 : Width%=725 *&+ X1%=0 : X2%=Width%/2 : X3%=Width% *0J Y1%=0 : Y2%=163 : Y3%=Y2%+92 : Y4%=Height%-70 : Y5%=Height% *:" Box%!0=0 : Box%!4=0 *De Box%!8=Width%+20 : Box%!12=Height%+20 : � To Allow For Rounding Errors In Conversion Routines. *N� *X: *b!� �_FitToPage(Height%,Width%) *l" � Left%,Bottom%,Right%,Top% *ve � 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% *�� *�: *�$� �_DrawInlay(Co_ordinateBlock%) *�< ș Find%,,BaseFont$,09*16,12*16,0,0 � BaseFontHandle% *�< ș Find%,,BoldFont$,10*16,13*16,0,0 � BoldFontHandle% *�: *�B �_FontPaint("",�_ReadIconText(Main%,24,�),X1%+10,Y4%+40,24) *�B �_FontPaint("",�_ReadIconText(Main%,25,�),X1%+10,Y4%+05,25) *�B �_FontPaint("",�_ReadIconText(Main%,26,�),X2%+10,Y4%+40,26) *�B �_FontPaint("",�_ReadIconText(Main%,27,�),X2%+10,Y4%+05,27) +: + Separation=(Y4%-Y3%)/12 +# SpaceStartY=Y3% + Separation + Track%=22 +*/ ș "ColourTrans_SetGCOL",&D0D0D000,,,0,0 +4 �_Mini_WIMP_Poll +> ȕ SpaceStartY <= Y4% +HG � SpaceStartY < Y4%-10 � � X1%,SpaceStartY :� X3%,SpaceStartY +R. Text$=�_ReadIconText(Main%,Track%,�) +\< �_FontPaint("",Text$,X1%+10,SpaceStartY-25,Track%) +f0 Text$=�_ReadIconText(Main%,Track%+1,�) +p> �_FontPaint("",Text$,X2%+10,SpaceStartY-25,Track%+1) +z! SpaceStartY+=Separation +� Track%-=2 +� � +�: +�N SpineLine1$=�_ReadIconText(Main%,24,�)+" - "+�_ReadIconText(Main%,25,�) +�N SpineLine2$=�_ReadIconText(Main%,26,�)+" - "+�_ReadIconText(Main%,27,�) +�7 �_FontPaint("Bold",SpineLine1$,X1%+10,Y2%+55,24) +�7 �_FontPaint("Bold",SpineLine2$,X1%+10,Y2%+15,26) +� �_PrintTapeNumber +�: +� Separation=(Y2%-Y1%)/5 +�# SpaceStartY=Y1% + Separation +� Track%=36 +� �_Mini_WIMP_Poll , ȕ SpaceStartY <= Y2% ,E � SpaceStartY < Y2%-10 � X1%,SpaceStartY :� X3%,SpaceStartY ,. Text$=�_ReadIconText(Main%,Track%,�) ,$< �_FontPaint("",Text$,X1%+10,SpaceStartY-25,Track%) ,.0 Text$=�_ReadIconText(Main%,Track%+1,�) ,8> �_FontPaint("",Text$,X2%+10,SpaceStartY-25,Track%+1) ,B! SpaceStartY+=Separation ,L Track%-=2 ,V � ,`: ,j/ ș "ColourTrans_SetGCOL",&00000000,,,0,0 ,t ȓ X1%,Y1%,X3%,Y5% ,~ ȓ X1%,Y2%,X3%,Y3%-Y2% ,� � X2%,Y1% : � X2%,Y2% ,� � X2%,Y3% : � X2%,Y4% ,� � X1%,Y4% : � X3%,Y4% ,�: ,� ș Lose%,BaseFontHandle% ,� ș Lose%,BoldFontHandle% ,�� ,�: ,�E***************************************************************** ,�C� Select required Font and colour, then print Message$ at X%,Y% ,�E***************************************************************** ,�0� �_FontPaint(PostFix$,Message$,X%,Y%,Icon%) - � FontHandle% - � Message$="" � � -; � Dont Waste Time Messing about if nothing to print! - � PostFix$="" � -(! ș Set%,BaseFontHandle% -2. Text$=�_TrimToFit(Message$,48,Icon%) -< � -F! ș Set%,BoldFontHandle% -P. Text$=�_TrimToFit(Message$,87,Icon%) -Z � -d< ș "ColourTrans_SetFontColours",0,&FFFFFF00,&00000000 -n : -x" ș Paint%,,Text$,&210,X%,Y% -�� -�: -�S� ***************************************************************************** -�S� Prints the tape number in a smaller point size at a fixed place on the inlay. -�S� ***************************************************************************** -�� �_PrintTapeNumber -� � Text$,FontHandle% -�6 ș Find%,,BaseFont$,6*16,8*16,0,0 � FontHandle% -�< ș "ColourTrans_SetFontColours",0,&FFFFFF00,&00000000 -� : -�0 Text$=�_ReadIconText(Main%,TapeNumber%,�) -�) ș Paint%,,Text$,&10,X3%-70,Y2%+75 -� : . ș Lose%,FontHandle% .� .: ."_� ***************************************************************************************** .,_� Check the printed length of the text against the size in pixels, and shorten if required. .6!� Uses : FN_WarnAboutClipping .@_� ***************************************************************************************** .J!� �_TrimToFit(Text$,mm,Icon%) .T% � NumberOfPrintableCharacters% .^ Continue%=� .h XLength%=(mm/25.4)*72000 .r � NewFontManager% � .|n ș "Font_ScanString",0,Text$,&100380,XLength%,15000,,,�(Text$) � ,,,,,,,NumberOfPrintableCharacters% .� � .�d ș "Font_StringWidth",,Text$,XLength%,15000,-1,�(Text$) � ,,,,NumberOfPrintableCharacters% .� � .�8 TextToPrint$=�Text$,NumberOfPrintableCharacters%) .�H � NumberOfPrintableCharacters%<�(Text$) � ClippedArray%?Icon%=0 � .�; Continue%=�_WarnAboutClipping(Text$,TextToPrint$) .� ClippedArray%?Icon%=1 .� � .�A � Continue%=� � � 2001,"Aborting Printout. OK to Continue" .�=TextToPrint$ .�: .�Z� ************************************************************************************ .�[� If Clipping will occour, then display Warning message and allow user option to abort. /� Uses: NONE /Z� ************************************************************************************ /1� �_WarnAboutClipping(IconText$,TextToPrint$) /& � Error$ /0 !Block%=0 /:{ Error$ ="This Text - '"+IconText$+"' Does not fit. Clipping to '"+TextToPrint$+"' OK To Continue, CANCEL To Abort." /D $(Block%+4)=Error$ + �0 /NA ș "Wimp_ReportError",Block%,%10011,MyTaskName$ � ,Result% /X. � Result%=2 � Continue%=� � Continue%=� /b4 ș "Wimp_ReportError",Block%,1<<6,MyTaskName$ /l=Continue% /v /�� �_OpenSubMenu(Window%) /�' ș "Wimp_GetPointerInfo",,Block% /�< ș "Wimp_CreateMenu",,Window%,Block%!0-64,Block%!4+48 /�� /�: /�L� ********************************************************************** /�L� Sets the case of all the writable icons to ensure a consistant format. /�L� ********************************************************************** /�� �_FormatIconText /� � Loop% /�: � Loop%=TopSetSideONEStart% � TopSetSideTWOEnd% � 2 /�1 �_SetIconText(Loop%,Main%,�_CEW(Loop%)) /�5 �_SetIconText(Loop%+1,Main%,�_CEW(Loop%+1)) 0 �_Redraw(Main%,Loop%) 0! �_Redraw(Main%,Loop%+1) 0 � 0 : � Loop%=BtmSetSideONEStart% � BtmSetSideTWOEnd% � 2 0*1 �_SetIconText(Loop%,Main%,�_CEW(Loop%)) 045 �_SetIconText(Loop%+1,Main%,�_CEW(Loop%+1)) 0> �_Redraw(Main%,Loop%) 0H! �_Redraw(Main%,Loop%+1) 0R � 0\C �_SetIconText(TitleSideONE%,Main%,�_Icon_FTU(TitleSideONE%)) 0fC �_SetIconText(TitleSideTWO%,Main%,�_Icon_FTU(TitleSideTWO%)) 0pE �_SetIconText(ArtistSideONE%,Main%,�_Icon_FTU(ArtistSideONE%)) 0zE �_SetIconText(ArtistSideTWO%,Main%,�_Icon_FTU(ArtistSideTWO%)) 0�. � Loop%= TitleSideONE% � ArtistSideTWO% 0� �_Redraw(Main%,Loop%) 0� � 0�� 0�: 0�7� ************************************************* 0�7� Function to Capitalise Each Word in a given Icon. 0�7� ************************************************* 0�� �_CEW(Icon%) 0�$ � IconText$, Index%, End%, C% 0�. IconText$=�_ReadIconText(Main%,Icon%,�) 0�) � If icon is empty, abandon format 0�" � IconText$="" � =IconText$ 1# Index%=1 : End%=�(IconText$) 1 � Get 1st character 1 ȕ Index%<=End% 1$7 �IconText$,Index%,1)=�_Char_FTU(Icon%,Index%) 1. Index%+=1 18! C$=�IconText$,Index%,1) 1B5 � Loop until end of word (or end of string) 1L# ȕ C$<>" " � Index%<=End% 1V: �IconText$,Index%,1)=�_Char_FTL(Icon%,Index%) 1` Index%+=1 1j$ C$=�IconText$,Index%,1) 1t � 1~9 � Loop until next word found (Or end of string) 1�" ȕ C$=" " � Index%<=End% 1� Index%+=1 1�$ C$=�IconText$,Index%,1) 1� � 1� �Index%,End% 1� � 1�=IconText$ 1�: 1�?� ********************************************************* 1�?� Function to Force all text in a given icon to UPPER CASE. 1�?� ********************************************************* 1�� �_Icon_FTU(Icon%) 2 � IconText$ 2 . IconText$=�_ReadIconText(Main%,Icon%,�) 2# Index%=1 : End%=�(IconText$) 2 ȕ Index%<=End% 2(7 �IconText$,Index%,1)=�_Char_FTU(Icon%,Index%) 22 Index%+=1 2<! C$=�IconText$,Index%,1) 2F � 2P=IconText$ 2Z: 2d?� ********************************************************* 2n?� Function to Force all text in a given icon to LOWER CASE. 2x?� ********************************************************* 2�� �_Icon_FTL(Icon%) 2� � IconText$ 2�. IconText$=�_ReadIconText(Main%,Icon%,�) 2�# Index%=1 : End%=�(IconText$) 2� ȕ Index%<=End% 2�7 �IconText$,Index%,1)=�_Char_FTL(Icon%,Index%) 2� Index%+=1 2�! C$=�IconText$,Index%,1) 2� � 2�: 2�8� ************************************************** 2�8� Function to Force a given character to UPPER CASE. 2�8� ************************************************** 3� �_Char_FTU(Icon%,Index%) 3 � Temp$ 3! Temp$=�IconText$,Index%,1) 3": � Temp$>="a" � Temp$<="z" � Temp$=�(�(Temp$) � &DF) 3, =Temp$ 36: 3@8� ************************************************** 3J8� Function to Force a given character to LOWER CASE. 3T8� ************************************************** 3^� �_Char_FTL(Icon%,Index%) 3h � Temp$ 3r! Temp$=�IconText$,Index%,1) 3|: � Temp$>="A" � Temp$<="Z" � Temp$=�(�(Temp$) � &20) 3� =Temp$ 3�: 3��� *************************************************************************************************************************** 3�~� This message is unique to the Portable. It occures when the battery is too low for continued usage. It is a second stage 3�|� warning, the first stage invites the user to shut down the machine safely, but if this is not done then this stage two 3�{� message is sent out. If you are aware of the status of your file then you should prompt the user to save any modified 3�z� or unsaved files in your normal closedown manner. If you cannot do this, or the user does not respond (EG Machine is 3�c� unattended) then the application should save the data into the scrap directory by themselves. 3ր� ************************************************************************************************************************** 3�� �_LowPowerWarning 3�1 � SaveName$,Pointer%,LeafName$,MyScrapDir$ 3�; MyScrapDir$=�_ConvertSystemToString("Wimp$ScrapDir") 3� � MyScrapDir$="" � 4; MyScrapDir$=�_ConvertSystemToString("Wimp$Scrap") 4 � MyScrapDir$="" � � 4! Pointer%=�(MyScrapDir$) 4&7 ȕ Pointer%>1 � �MyScrapDir$,Pointer%,1)<>"." 40 Pointer%-=1 4: � 4D � Pointer%=1 � � 4N0 MyScrapDir$=�MyScrapDir$,(Pointer%-1)) 4X � 4b* MyScrapDir$=MyScrapDir$+".Cassette" 4l �"CDir "+MyScrapDir$ 4v1 �_SaveTo(MyScrapDir$+"."+�_InventSaveName) 4�� 4�: 4�I� ******************************************************************* 4�I� The filer is saving a desktop !Boot file, add my RUN command to it. 4�I� ******************************************************************* 4�� �_DeskTopSave 4�! �#(Block%!20),DeskTopSave$ 4�� 4�: 4�U� ******************************************************************************* 4�U� Mini-WIMP POLL "routine" to allow printing to be a bit more in the background!. 4�U� ******************************************************************************* 4�� �_Mini_WIMP_Poll 5 ș "PDriver_SelectJob",0 5 ș "Hourglass_Off" 5# ș "Wimp_Poll",0,Block% � A% 5 Ȏ A% � 5*C � 2 : ș "Wimp_OpenWindow",,Block% : � allows auto Drag 54D � 3 : ș "Wimp_CloseWindow",,Block% : � allows auto Close 5>. � 17,18 : �_DecodeMessage(Block%!16) 5H � 5R ș "Hourglass_On" 5\( ș "PDriver_SelectJob",PrintFile% 5f� �
00000000 0d 00 0a 10 f4 20 3e 21 52 75 6e 49 6d 61 67 65 |..... >!RunImage| 00000010 0d 00 14 05 f4 0d 00 1e 2d f4 20 41 20 50 75 62 |........-. A Pub| 00000020 6c 69 63 20 44 6f 6d 61 69 6e 20 55 74 69 6c 69 |lic Domain Utili| 00000030 74 79 20 42 79 20 4d 61 72 6b 20 42 72 69 67 68 |ty By Mark Brigh| 00000040 74 2e 0d 00 28 05 3a 0d 00 32 10 f4 20 54 52 41 |t...(.:..2.. TRA| 00000050 43 45 20 50 52 4f 43 0d 00 3c 34 f4 20 54 52 41 |CE PROC..<4. TRA| 00000060 43 45 20 54 4f 20 22 41 44 46 53 3a 3a 34 2e 24 |CE TO "ADFS::4.$| 00000070 2e 21 53 63 72 61 70 2e 53 63 72 61 70 44 69 72 |.!Scrap.ScrapDir| 00000080 2e 54 52 41 43 45 54 45 58 54 22 0d 00 46 05 3a |.TRACETEXT"..F.:| 00000090 0d 00 50 1f 56 65 72 73 69 6f 6e 24 3d 22 31 2e |..P.Version$="1.| 000000a0 32 33 20 28 32 30 2d 53 65 70 2d 39 33 29 22 0d |23 (20-Sep-93)".| 000000b0 00 5a 05 3a 0d 00 64 29 c8 9b 20 22 3c 43 61 73 |.Z.:..d).. "<Cas| 000000c0 73 65 74 74 65 24 44 69 72 3e 2e 52 65 73 6f 75 |sette$Dir>.Resou| 000000d0 72 63 65 73 2e 4c 69 62 72 61 72 79 22 0d 00 6e |rces.Library"..n| 000000e0 04 0d 00 78 37 de 20 42 6c 6f 63 6b 25 20 31 30 |...x7. Block% 10| 000000f0 32 34 2a 34 20 20 3a f4 20 47 65 6e 65 72 61 6c |24*4 :. General| 00000100 20 70 75 72 70 6f 73 65 20 57 49 4d 50 20 77 6f | purpose WIMP wo| 00000110 72 6b 73 70 61 63 65 21 0d 00 82 05 3a 0d 00 8c |rkspace!....:...| 00000120 1c f2 5f 49 6e 69 74 69 61 6c 69 73 65 5f 57 49 |.._Initialise_WI| 00000130 4d 50 5f 53 79 73 74 65 6d 0d 00 96 05 3a 0d 00 |MP_System....:..| 00000140 a0 24 f2 5f 53 65 74 49 63 6f 6e 54 65 78 74 28 |.$._SetIconText(| 00000150 31 35 2c 49 6e 66 6f 25 2c 56 65 72 73 69 6f 6e |15,Info%,Version| 00000160 24 29 0d 00 aa 27 f2 5f 53 65 74 49 63 6f 6e 54 |$)...'._SetIconT| 00000170 65 78 74 28 34 2c 53 61 76 65 25 2c 22 42 6f 66 |ext(4,Save%,"Bof| 00000180 66 42 72 69 67 68 74 22 29 0d 00 b4 05 3a 0d 00 |fBright")....:..| 00000190 be 14 ee 20 85 20 f2 5f 57 69 6d 70 5f 45 72 72 |... . ._Wimp_Err| 000001a0 6f 72 0d 00 c8 22 f2 5f 49 6e 69 74 69 61 6c 69 |or..."._Initiali| 000001b0 73 65 5f 50 72 6f 67 72 61 6d 5f 56 61 72 69 61 |se_Program_Varia| 000001c0 62 6c 65 73 0d 00 d2 05 3a 0d 00 dc 18 f2 5f 4c |bles....:....._L| 000001d0 6f 61 64 46 69 6c 65 49 66 52 65 71 75 69 72 65 |oadFileIfRequire| 000001e0 64 0d 00 e6 05 3a 0d 00 f0 14 ee 20 85 20 f2 5f |d....:..... . ._| 000001f0 57 69 6d 70 5f 45 72 72 6f 72 0d 00 fa 05 3a 0d |Wimp_Error....:.| 00000200 01 04 6e f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..n. ***********| 00000210 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000260 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 01 0e |*************...| 00000270 6e f4 20 41 6c 6c 20 52 49 53 43 4f 53 2f 57 49 |n. All RISCOS/WI| 00000280 4d 50 20 53 70 65 63 69 66 69 63 20 50 72 6f 63 |MP Specific Proc| 00000290 65 65 64 75 72 65 73 20 46 69 72 73 74 2c 20 21 |eedures First, !| 000002a0 43 61 73 73 65 74 74 65 20 50 72 6f 63 27 53 20 |Cassette Proc'S | 000002b0 61 66 74 65 72 2e 2e 2e 2e 20 4d 61 6b 65 73 20 |after.... Makes | 000002c0 66 6f 72 20 61 20 62 65 74 74 65 72 20 73 6b 65 |for a better ske| 000002d0 6c 65 74 6f 6e 20 70 72 6f 67 21 0d 01 18 6e f4 |leton prog!...n.| 000002e0 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 000002f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000340 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 01 22 04 0d 01 2c |*********.."...,| 00000350 05 f5 0d 01 36 27 20 20 20 c8 99 20 22 57 69 6d |....6' .. "Wim| 00000360 70 5f 50 6f 6c 6c 22 2c 4d 61 73 6b 25 2c 42 6c |p_Poll",Mask%,Bl| 00000370 6f 63 6b 25 20 b8 20 41 25 0d 01 40 0e 20 20 20 |ock% . A%..@. | 00000380 c8 8e 20 41 25 20 ca 0d 01 4a 43 20 20 20 20 20 |.. A% ...JC | 00000390 20 c9 20 32 20 3a 20 c8 99 20 22 57 69 6d 70 5f | . 2 : .. "Wimp_| 000003a0 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 42 6c 6f |OpenWindow",,Blo| 000003b0 63 6b 25 20 20 20 3a 20 f4 20 61 6c 6c 6f 77 73 |ck% : . allows| 000003c0 20 61 75 74 6f 20 44 72 61 67 0d 01 54 44 20 20 | auto Drag..TD | 000003d0 20 20 20 20 c9 20 33 20 3a 20 c8 99 20 22 57 69 | . 3 : .. "Wi| 000003e0 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 22 2c |mp_CloseWindow",| 000003f0 2c 42 6c 6f 63 6b 25 20 20 3a 20 f4 20 61 6c 6c |,Block% : . all| 00000400 6f 77 73 20 61 75 74 6f 20 43 6c 6f 73 65 0d 01 |ows auto Close..| 00000410 5e 1f 20 20 20 20 20 20 c9 20 36 20 3a 20 f2 5f |^. . 6 : ._| 00000420 42 75 74 74 6f 6e 50 72 65 73 73 65 64 0d 01 68 |ButtonPressed..h| 00000430 37 20 20 20 20 20 20 c9 20 37 20 3a 20 f2 5f 44 |7 . 7 : ._D| 00000440 72 61 67 42 6f 78 45 6e 64 28 a4 5f 52 65 61 64 |ragBoxEnd(._Read| 00000450 49 63 6f 6e 54 65 78 74 28 53 61 76 65 25 2c 34 |IconText(Save%,4| 00000460 2c a3 29 29 0d 01 72 27 20 20 20 20 20 20 c9 20 |,.))..r' . | 00000470 38 20 3a 20 f2 5f 50 72 6f 63 65 73 73 4b 65 79 |8 : ._ProcessKey| 00000480 28 42 6c 6f 63 6b 25 21 32 34 29 0d 01 7c 1f 20 |(Block%!24)..|. | 00000490 20 20 20 20 20 c9 20 39 20 3a 20 f2 5f 4d 65 6e | . 9 : ._Men| 000004a0 75 53 65 6c 65 63 74 69 6f 6e 0d 01 86 2e 20 20 |uSelection.... | 000004b0 20 20 20 20 c9 20 31 37 2c 31 38 20 3a 20 f2 5f | . 17,18 : ._| 000004c0 44 65 63 6f 64 65 4d 65 73 73 61 67 65 28 42 6c |DecodeMessage(Bl| 000004d0 6f 63 6b 25 21 31 36 29 0d 01 90 08 20 20 20 cb |ock%!16).... .| 000004e0 0d 01 9a 07 fd 20 a3 0d 01 a4 05 3a 0d 01 ae 2f |..... .....:.../| 000004f0 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. **************| 00000500 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000510 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 01 b8 2f f4 |***********.../.| 00000520 20 54 68 69 73 20 69 73 20 74 68 65 20 57 49 4d | This is the WIM| 00000530 50 20 45 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 |P Error handling| 00000540 20 72 6f 75 74 69 6e 65 20 21 0d 01 c2 2f f4 20 | routine !.../. | 00000550 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000570 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 01 cc 12 dd 20 f2 |*********..... .| 00000580 5f 57 69 6d 70 5f 45 72 72 6f 72 0d 01 d6 0f 20 |_Wimp_Error.... | 00000590 20 20 ea 20 45 72 72 6f 72 24 0d 01 e0 17 20 20 | . Error$.... | 000005a0 20 c8 99 20 22 4f 53 5f 42 79 74 65 22 2c 33 2c | .. "OS_Byte",3,| 000005b0 30 0d 01 ea 1c 20 20 20 c8 99 20 22 57 69 6d 70 |0.... .. "Wimp| 000005c0 5f 44 72 61 67 42 6f 78 22 2c 2c 2d 31 0d 01 f4 |_DragBox",,-1...| 000005d0 10 20 20 20 21 42 6c 6f 63 6b 25 3d 9f 0d 01 fe |. !Block%=....| 000005e0 12 20 20 20 45 72 72 6f 72 24 20 3d 20 f6 24 0d |. Error$ = .$.| 000005f0 02 08 5e 20 20 20 e7 20 9f 3c 3e 32 30 30 31 20 |..^ . .<>2001 | 00000600 8c 20 45 72 72 6f 72 24 20 2b 3d 20 22 20 28 69 |. Error$ += " (i| 00000610 6e 74 65 72 6e 61 6c 20 65 72 72 6f 72 20 63 6f |nternal error co| 00000620 64 65 20 22 2b c3 9e 2b 22 29 2e 20 4f 4b 20 54 |de "+..+"). OK T| 00000630 6f 20 43 6f 6e 74 69 6e 75 65 2c 20 43 41 4e 43 |o Continue, CANC| 00000640 45 4c 20 54 6f 20 41 62 6f 72 74 2e 22 0d 02 12 |EL To Abort."...| 00000650 1e 20 20 20 24 28 42 6c 6f 63 6b 25 2b 34 29 3d |. $(Block%+4)=| 00000660 45 72 72 6f 72 24 20 2b 20 bd 30 0d 02 1c 4f 20 |Error$ + .0...O | 00000670 20 20 c8 99 20 22 57 69 6d 70 5f 52 65 70 6f 72 | .. "Wimp_Repor| 00000680 74 45 72 72 6f 72 22 2c 42 6c 6f 63 6b 25 2c 25 |tError",Block%,%| 00000690 30 30 31 20 2d 20 28 32 2a 28 9f 3c 3e 32 30 30 |001 - (2*(.<>200| 000006a0 31 29 29 2c 4d 79 54 61 73 6b 4e 61 6d 65 24 20 |1)),MyTaskName$ | 000006b0 b8 20 2c 52 65 73 75 6c 74 25 0d 02 26 20 20 20 |. ,Result%..& | 000006c0 20 e7 20 52 65 73 75 6c 74 25 3d 32 20 8c 20 f2 | . Result%=2 . .| 000006d0 5f 43 6c 6f 73 65 44 6f 77 6e 0d 02 30 05 e1 0d |_CloseDown..0...| 000006e0 02 3a 05 3a 0d 02 44 2a f4 20 2a 2a 2a 2a 2a 2a |.:.:..D*. ******| 000006f0 2a 2a 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 0d 02 |**************..| 00000710 4e 2a f4 20 4d 6f 75 73 65 20 27 43 6c 69 63 6b |N*. Mouse 'Click| 00000720 27 20 57 68 69 6c 73 74 20 4f 76 65 72 20 4d 65 |' Whilst Over Me| 00000730 6e 75 20 49 74 65 6d 2e 0d 02 58 2a f4 20 2a 2a |nu Item...X*. **| 00000740 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000760 2a 2a 0d 02 62 15 dd 20 f2 5f 4d 65 6e 75 53 65 |**..b.. ._MenuSe| 00000770 6c 65 63 74 69 6f 6e 0d 02 6c 25 20 20 20 e7 20 |lection..l% . | 00000780 4d 65 6e 75 41 63 74 69 76 65 25 20 3d 20 49 63 |MenuActive% = Ic| 00000790 6f 6e 42 61 72 4d 65 6e 75 25 20 8c 0d 02 76 17 |onBarMenu% ...v.| 000007a0 20 20 20 20 20 20 c8 8e 20 42 6c 6f 63 6b 25 21 | .. Block%!| 000007b0 30 20 ca 0d 02 80 3e 20 20 20 20 20 20 20 20 20 |0 ....> | 000007c0 c9 20 30 20 3a 20 f2 5f 4f 70 65 6e 53 75 62 4d |. 0 : ._OpenSubM| 000007d0 65 6e 75 28 49 6e 66 6f 25 29 20 3a 20 49 63 6f |enu(Info%) : Ico| 000007e0 6e 42 61 72 4d 65 6e 75 41 63 74 69 76 65 25 3d |nBarMenuActive%=| 000007f0 a3 0d 02 8a 41 20 20 20 20 20 20 20 20 20 c9 20 |....A . | 00000800 31 20 3a 20 f2 5f 4f 70 65 6e 53 75 62 4d 65 6e |1 : ._OpenSubMen| 00000810 75 28 4f 70 74 69 6f 6e 73 25 29 20 3a 20 49 63 |u(Options%) : Ic| 00000820 6f 6e 42 61 72 4d 65 6e 75 41 63 74 69 76 65 25 |onBarMenuActive%| 00000830 3d a3 0d 02 94 45 20 20 20 20 20 20 20 20 20 c9 |=....E .| 00000840 20 32 20 3a 20 f2 5f 43 6c 6f 73 65 44 6f 77 6e | 2 : ._CloseDown| 00000850 20 3a 20 f4 20 3c 53 65 6c 65 63 74 3e 20 6f 6e | : . <Select> on| 00000860 20 22 71 75 69 74 22 20 63 61 75 73 65 73 20 73 | "quit" causes s| 00000870 68 75 74 64 6f 77 6e 0d 02 9e 0b 20 20 20 20 20 |hutdown.... | 00000880 20 cb 0d 02 a8 08 20 20 20 cd 0d 02 b2 04 0d 02 | ..... .......| 00000890 bc 25 20 20 20 e7 20 4d 65 6e 75 41 63 74 69 76 |.% . MenuActiv| 000008a0 65 25 20 3d 20 4d 61 69 6e 57 69 6e 4d 65 6e 75 |e% = MainWinMenu| 000008b0 25 20 8c 0d 02 c6 17 20 20 20 20 20 20 c8 8e 20 |% ..... .. | 000008c0 42 6c 6f 63 6b 25 21 30 20 ca 0d 02 d0 41 20 20 |Block%!0 ....A | 000008d0 20 20 20 20 20 20 20 c9 20 30 20 3a 20 f2 5f 4f | . 0 : ._O| 000008e0 70 65 6e 53 75 62 4d 65 6e 75 28 49 6e 66 6f 25 |penSubMenu(Info%| 000008f0 29 20 3a 20 4d 61 69 6e 57 69 6e 64 6f 77 4d 65 |) : MainWindowMe| 00000900 6e 75 41 63 74 69 76 65 25 3d a3 0d 02 da 41 20 |nuActive%=....A | 00000910 20 20 20 20 20 20 20 20 c9 20 31 20 3a 20 f2 5f | . 1 : ._| 00000920 4f 70 65 6e 53 75 62 4d 65 6e 75 28 53 61 76 65 |OpenSubMenu(Save| 00000930 25 29 20 3a 20 4d 61 69 6e 57 69 6e 64 6f 77 4d |%) : MainWindowM| 00000940 65 6e 75 41 63 74 69 76 65 25 3d a3 0d 02 e4 23 |enuActive%=....#| 00000950 20 20 20 20 20 20 20 20 20 c9 20 32 20 3a 20 f2 | . 2 : .| 00000960 5f 46 6f 72 6d 61 74 49 63 6f 6e 54 65 78 74 0d |_FormatIconText.| 00000970 02 ee 44 20 20 20 20 20 20 20 20 20 c9 20 33 20 |..D . 3 | 00000980 3a 20 f2 5f 4f 70 65 6e 53 75 62 4d 65 6e 75 28 |: ._OpenSubMenu(| 00000990 4f 70 74 69 6f 6e 73 25 29 20 3a 20 4d 61 69 6e |Options%) : Main| 000009a0 57 69 6e 64 6f 77 4d 65 6e 75 41 63 74 69 76 65 |WindowMenuActive| 000009b0 25 3d a3 0d 02 f8 21 20 20 20 20 20 20 20 20 20 |%=....! | 000009c0 c9 20 34 20 3a 20 f2 5f 57 69 70 65 49 63 6f 6e |. 4 : ._WipeIcon| 000009d0 54 65 78 74 0d 03 02 0b 20 20 20 20 20 20 cb 0d |Text.... ..| 000009e0 03 0c 08 20 20 20 cd 0d 03 16 04 0d 03 20 27 20 |... ....... ' | 000009f0 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 50 6f | .. "Wimp_GetPo| 00000a00 69 6e 74 65 72 49 6e 66 6f 22 2c 2c 42 6c 6f 63 |interInfo",,Bloc| 00000a10 6b 25 0d 03 2a 19 20 20 20 e7 20 28 42 6c 6f 63 |k%..*. . (Bloc| 00000a20 6b 25 21 38 20 80 20 31 29 20 8c 0d 03 34 44 20 |k%!8 . 1) ...4D | 00000a30 20 20 20 20 20 e7 20 4d 65 6e 75 41 63 74 69 76 | . MenuActiv| 00000a40 65 25 20 3d 20 49 63 6f 6e 42 61 72 4d 65 6e 75 |e% = IconBarMenu| 00000a50 25 20 8c 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 |% . .. "Wimp_Cre| 00000a60 61 74 65 4d 65 6e 75 22 2c 2c 6d 65 6e 75 25 0d |ateMenu",,menu%.| 00000a70 03 3e 48 20 20 20 20 20 20 e7 20 4d 65 6e 75 41 |.>H . MenuA| 00000a80 63 74 69 76 65 25 20 3d 20 4d 61 69 6e 57 69 6e |ctive% = MainWin| 00000a90 4d 65 6e 75 25 20 8c 20 c8 99 20 22 57 69 6d 70 |Menu% . .. "Wimp| 00000aa0 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c 4d 61 |_CreateMenu",,Ma| 00000ab0 69 6e 4d 65 6e 75 25 0d 03 48 08 20 20 20 cd 0d |inMenu%..H. ..| 00000ac0 03 52 05 e1 0d 03 5c 05 3a 0d 03 66 26 f4 20 2a |.R....\.:..f&. *| 00000ad0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000ae0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00000af0 03 70 26 f4 20 4d 6f 75 73 65 20 42 75 74 74 6f |.p&. Mouse Butto| 00000b00 6e 20 53 74 61 74 75 73 20 48 61 73 20 43 68 61 |n Status Has Cha| 00000b10 6e 67 65 64 2e 0d 03 7a 26 f4 20 2a 2a 2a 2a 2a |nged...z&. *****| 00000b20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000b30 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 03 84 15 dd |***********.....| 00000b40 20 f2 5f 42 75 74 74 6f 6e 50 72 65 73 73 65 64 | ._ButtonPressed| 00000b50 0d 03 8e 2b ea 20 4d 6f 75 73 65 58 25 2c 4d 6f |...+. MouseX%,Mo| 00000b60 75 73 65 59 25 2c 42 75 74 74 6f 6e 25 2c 57 69 |useY%,Button%,Wi| 00000b70 6e 64 6f 77 25 2c 49 63 6f 6e 25 0d 03 98 46 20 |ndow%,Icon%...F | 00000b80 20 20 4d 6f 75 73 65 58 25 3d 42 6c 6f 63 6b 25 | MouseX%=Block%| 00000b90 21 30 30 20 3a 20 f4 20 42 6c 6f 63 6b 25 21 30 |!00 : . Block%!0| 00000ba0 30 20 3d 20 4d 6f 75 73 65 20 58 20 28 53 63 72 |0 = Mouse X (Scr| 00000bb0 65 65 6e 20 43 6f 2d 6f 72 64 69 6e 61 74 65 73 |een Co-ordinates| 00000bc0 29 0d 03 a2 46 20 20 20 4d 6f 75 73 65 59 25 3d |)...F MouseY%=| 00000bd0 42 6c 6f 63 6b 25 21 30 34 20 3a 20 f4 20 42 6c |Block%!04 : . Bl| 00000be0 6f 63 6b 25 21 30 34 20 3d 20 4d 6f 75 73 65 20 |ock%!04 = Mouse | 00000bf0 59 20 28 53 63 72 65 65 6e 20 43 6f 2d 6f 72 64 |Y (Screen Co-ord| 00000c00 69 6e 61 74 65 73 29 0d 03 ac 30 20 20 20 42 75 |inates)...0 Bu| 00000c10 74 74 6f 6e 25 3d 42 6c 6f 63 6b 25 21 30 38 20 |tton%=Block%!08 | 00000c20 3a 20 f4 20 42 6c 6f 63 6b 25 21 30 38 20 3d 20 |: . Block%!08 = | 00000c30 42 75 74 74 6f 6e 73 0d 03 b6 56 20 20 20 57 69 |Buttons...V Wi| 00000c40 6e 64 6f 77 25 3d 42 6c 6f 63 6b 25 21 31 32 20 |ndow%=Block%!12 | 00000c50 3a 20 f4 20 42 6c 6f 63 6b 25 21 31 32 20 3d 20 |: . Block%!12 = | 00000c60 57 69 6e 64 6f 77 20 48 61 6e 64 6c 65 20 28 42 |Window Handle (B| 00000c70 61 63 6b 47 72 6f 75 6e 64 20 3d 20 2d 31 2c 20 |ackGround = -1, | 00000c80 49 63 6f 6e 42 61 72 20 3d 20 2d 32 29 0d 03 c0 |IconBar = -2)...| 00000c90 51 20 20 20 49 63 6f 6e 25 20 20 3d 42 6c 6f 63 |Q Icon% =Bloc| 00000ca0 6b 25 21 31 36 20 3a 20 f4 20 42 6c 6f 63 6b 25 |k%!16 : . Block%| 00000cb0 21 31 36 20 3d 20 49 63 6f 6e 20 48 61 6e 64 6c |!16 = Icon Handl| 00000cc0 65 20 28 20 57 6f 72 6b 20 41 72 65 61 20 42 61 |e ( Work Area Ba| 00000cd0 63 6b 47 72 6f 75 6e 64 20 3d 20 2d 31 29 0d 03 |ckGround = -1)..| 00000ce0 ca 04 0d 03 d4 2f 20 20 20 e7 20 57 69 6e 64 6f |...../ . Windo| 00000cf0 77 25 3d 4f 70 74 69 6f 6e 73 25 20 80 20 49 63 |w%=Options% . Ic| 00000d00 6f 6e 25 3d 4f 70 74 69 6f 6e 73 4f 4b 46 25 20 |on%=OptionsOKF% | 00000d10 8c 0d 03 de 48 20 20 20 20 20 20 f2 5f 42 75 74 |....H ._But| 00000d20 74 6f 6e 50 72 65 73 73 28 4f 70 74 69 6f 6e 73 |tonPress(Options| 00000d30 25 2c 20 4f 70 74 69 6f 6e 73 4f 4b 46 25 2c 20 |%, OptionsOKF%, | 00000d40 4f 70 74 69 6f 6e 73 4f 4b 4c 25 2c 20 4f 70 74 |OptionsOKL%, Opt| 00000d50 69 6f 6e 73 4f 4b 44 25 29 0d 03 e8 19 20 20 20 |ionsOKD%).... | 00000d60 20 20 20 f2 5f 53 74 6f 72 65 55 73 65 72 44 61 | ._StoreUserDa| 00000d70 74 61 0d 03 f2 08 20 20 20 cd 0d 03 fc 04 0d 04 |ta.... .......| 00000d80 06 36 20 20 20 e7 20 57 69 6e 64 6f 77 25 3d 49 |.6 . Window%=I| 00000d90 63 6f 6e 42 61 72 25 20 80 20 49 63 6f 6e 25 3d |conBar% . Icon%=| 00000da0 49 63 6f 6e 42 61 72 49 63 6f 6e 48 61 6e 64 6c |IconBarIconHandl| 00000db0 65 25 20 8c 0d 04 10 16 20 20 20 20 20 20 c8 8e |e% ..... ..| 00000dc0 20 42 75 74 74 6f 6e 25 20 ca 0d 04 1a 29 20 20 | Button% ....) | 00000dd0 20 20 20 20 20 20 20 c9 20 25 30 30 31 20 3a 20 | . %001 : | 00000de0 f2 5f 4f 70 65 6e 4d 61 69 6e 57 69 6e 64 6f 77 |._OpenMainWindow| 00000df0 28 a3 29 0d 04 24 29 20 20 20 20 20 20 20 20 20 |(.)..$) | 00000e00 c9 20 25 31 30 30 20 3a 20 f2 5f 4f 70 65 6e 4d |. %100 : ._OpenM| 00000e10 61 69 6e 57 69 6e 64 6f 77 28 b9 29 0d 04 2e 28 |ainWindow(.)...(| 00000e20 20 20 20 20 20 20 20 20 20 c9 20 25 30 31 30 20 | . %010 | 00000e30 3a 20 f2 5f 53 65 74 55 70 49 63 6f 6e 42 61 72 |: ._SetUpIconBar| 00000e40 4d 65 6e 75 0d 04 38 0b 20 20 20 20 20 20 cb 0d |Menu..8. ..| 00000e50 04 42 08 20 20 20 cd 0d 04 4c 04 0d 04 56 39 20 |.B. ...L...V9 | 00000e60 20 20 e7 20 42 75 74 74 6f 6e 25 3c 3e 20 25 30 | . Button%<> %0| 00000e70 31 30 20 80 20 57 69 6e 64 6f 77 25 3d 4d 61 69 |10 . Window%=Mai| 00000e80 6e 25 20 80 20 49 63 6f 6e 25 3d 50 72 69 6e 74 |n% . Icon%=Print| 00000e90 46 25 20 8c 0d 04 60 39 20 20 20 20 20 20 f2 5f |F% ...`9 ._| 00000ea0 42 75 74 74 6f 6e 50 72 65 73 73 28 4d 61 69 6e |ButtonPress(Main| 00000eb0 25 2c 20 50 72 69 6e 74 46 25 2c 20 50 72 69 6e |%, PrintF%, Prin| 00000ec0 74 4c 25 2c 20 50 72 69 6e 74 44 25 29 0d 04 6a |tL%, PrintD%)..j| 00000ed0 14 20 20 20 20 20 20 f2 5f 50 72 69 6e 74 4f 75 |. ._PrintOu| 00000ee0 74 0d 04 74 08 20 20 20 cd 0d 04 7e 04 0d 04 88 |t..t. ...~....| 00000ef0 27 20 20 20 e7 20 42 75 74 74 6f 6e 25 3d 25 30 |' . Button%=%0| 00000f00 31 30 20 80 20 57 69 6e 64 6f 77 25 3d 4d 61 69 |10 . Window%=Mai| 00000f10 6e 25 20 8c 0d 04 92 20 20 20 20 20 20 20 54 65 |n% .... Te| 00000f20 6d 70 24 3d a4 5f 49 6e 76 65 6e 74 53 61 76 65 |mp$=._InventSave| 00000f30 4e 61 6d 65 0d 04 9c 37 20 20 20 20 20 20 f2 5f |Name...7 ._| 00000f40 43 72 65 61 74 65 4d 61 69 6e 57 69 6e 64 6f 77 |CreateMainWindow| 00000f50 4d 65 6e 75 28 4d 6f 75 73 65 58 25 2c 4d 6f 75 |Menu(MouseX%,Mou| 00000f60 73 65 59 25 2c 49 63 6f 6e 25 29 0d 04 a6 08 20 |seY%,Icon%).... | 00000f70 20 20 cd 0d 04 b0 04 0d 04 ba 36 20 20 20 e7 20 | ........6 . | 00000f80 57 69 6e 64 6f 77 25 3d 53 61 76 65 25 20 80 20 |Window%=Save% . | 00000f90 49 63 6f 6e 25 3d 53 61 76 65 49 63 6f 6e 25 20 |Icon%=SaveIcon% | 00000fa0 20 8c 20 f2 5f 44 72 61 67 53 61 76 65 0d 04 c4 | . ._DragSave...| 00000fb0 2b 20 20 20 e7 20 57 69 6e 64 6f 77 25 3d 53 61 |+ . Window%=Sa| 00000fc0 76 65 25 20 80 20 49 63 6f 6e 25 3d 53 61 76 65 |ve% . Icon%=Save| 00000fd0 4f 4b 46 25 20 20 20 8c 0d 04 ce 3c 20 20 20 20 |OKF% ....< | 00000fe0 20 20 f2 5f 42 75 74 74 6f 6e 50 72 65 73 73 28 | ._ButtonPress(| 00000ff0 53 61 76 65 25 2c 20 53 61 76 65 4f 4b 46 25 2c |Save%, SaveOKF%,| 00001000 20 53 61 76 65 4f 4b 4c 25 2c 20 53 61 76 65 4f | SaveOKL%, SaveO| 00001010 4b 44 25 29 0d 04 d8 2d 20 20 20 20 20 20 f2 5f |KD%)...- ._| 00001020 53 61 76 65 54 6f 28 a4 5f 52 65 61 64 49 63 6f |SaveTo(._ReadIco| 00001030 6e 54 65 78 74 28 53 61 76 65 25 2c 34 2c a3 29 |nText(Save%,4,.)| 00001040 29 0d 04 e2 08 20 20 20 cd 0d 04 ec 04 0d 04 f6 |).... ........| 00001050 2c 20 20 20 e7 20 42 75 74 74 6f 6e 25 3c 3e 20 |, . Button%<> | 00001060 25 30 31 30 20 80 20 57 69 6e 64 6f 77 25 3d 4f |%010 . Window%=O| 00001070 70 74 69 6f 6e 73 25 20 8c 0d 05 00 14 20 20 20 |ptions% ..... | 00001080 20 20 20 c8 8e 20 49 63 6f 6e 25 20 ca 0d 05 0a | .. Icon% ....| 00001090 59 20 20 20 20 20 20 20 20 20 c9 20 20 30 2c 31 |Y . 0,1| 000010a0 2c 35 20 3a 20 f2 5f 53 65 74 49 63 6f 6e 54 65 |,5 : ._SetIconTe| 000010b0 78 74 28 34 35 2c 4d 61 69 6e 25 2c 50 44 72 69 |xt(45,Main%,PDri| 000010c0 76 65 72 24 28 a4 5f 52 65 61 64 45 53 47 53 65 |ver$(._ReadESGSe| 000010d0 6c 65 63 74 65 64 28 4f 70 74 69 6f 6e 73 25 2c |lected(Options%,| 000010e0 39 29 2b 31 29 29 0d 05 14 0b 20 20 20 20 20 20 |9)+1)).... | 000010f0 cb 0d 05 1e 1c 20 20 20 20 20 20 f2 5f 52 65 64 |..... ._Red| 00001100 72 61 77 28 4d 61 69 6e 25 2c 34 35 29 0d 05 28 |raw(Main%,45)..(| 00001110 08 20 20 20 cd 0d 05 32 05 e1 0d 05 3c 05 3a 0d |. ...2....<.:.| 00001120 05 46 67 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.Fg. ***********| 00001130 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00001180 2a 2a 2a 2a 2a 2a 0d 05 50 67 f4 20 44 65 74 65 |******..Pg. Dete| 00001190 72 6d 69 6e 65 20 69 66 20 61 20 6e 65 77 20 6e |rmine if a new n| 000011a0 61 6d 65 20 69 73 20 72 65 71 75 69 72 65 64 2c |ame is required,| 000011b0 20 69 66 20 73 6f 20 67 65 6e 65 72 61 74 65 20 | if so generate | 000011c0 61 6e 20 69 6e 74 65 6c 6c 69 67 65 6e 74 20 6e |an intelligent n| 000011d0 61 6d 65 20 62 61 73 65 64 20 6f 6e 20 63 61 73 |ame based on cas| 000011e0 73 65 74 74 65 20 6e 75 6d 62 65 72 2e 0d 05 5a |sette number...Z| 000011f0 67 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |g. *************| 00001200 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00001250 2a 2a 2a 2a 0d 05 64 16 dd 20 a4 5f 49 6e 76 65 |****..d.. ._Inve| 00001260 6e 74 53 61 76 65 4e 61 6d 65 0d 05 6e 16 20 20 |ntSaveName..n. | 00001270 20 50 72 65 66 69 78 24 3d 22 43 61 73 73 5f 22 | Prefix$="Cass_"| 00001280 0d 05 78 5b 20 20 20 54 65 6d 70 24 3d a4 5f 52 |..x[ Temp$=._R| 00001290 65 61 64 49 63 6f 6e 54 65 78 74 28 53 61 76 65 |eadIconText(Save| 000012a0 25 2c 34 2c a3 29 20 3a 20 54 65 6d 70 32 24 3d |%,4,.) : Temp2$=| 000012b0 50 72 65 66 69 78 24 2b a4 5f 52 65 61 64 49 63 |Prefix$+._ReadIc| 000012c0 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c 54 61 70 |onText(Main%,Tap| 000012d0 65 4e 75 6d 62 65 72 25 2c a3 29 0d 05 82 35 20 |eNumber%,.)...5 | 000012e0 20 20 e7 20 c2 54 65 6d 70 24 2c 31 30 29 3d 22 | . .Temp$,10)="| 000012f0 42 6f 66 66 42 72 69 67 68 74 22 20 84 20 4f 6c |BoffBright" . Ol| 00001300 64 4e 61 6d 65 24 3c 3e 54 65 6d 70 32 24 20 8c |dName$<>Temp2$ .| 00001310 0d 05 8c 38 20 20 20 20 20 20 4e 65 77 53 61 76 |...8 NewSav| 00001320 65 4e 61 6d 65 24 3d a4 5f 43 6f 6e 76 65 72 74 |eName$=._Convert| 00001330 53 6f 66 74 54 6f 48 61 72 64 53 70 61 63 65 73 |SoftToHardSpaces| 00001340 28 54 65 6d 70 32 24 29 0d 05 96 20 20 20 20 20 |(Temp2$)... | 00001350 20 20 e7 20 a9 28 54 65 6d 70 24 29 3e a9 28 54 | . .(Temp$)>.(T| 00001360 65 6d 70 32 24 29 20 8c 0d 05 a0 1e 20 20 20 20 |emp2$) ..... | 00001370 20 20 20 20 20 50 6f 69 6e 74 65 72 25 3d a9 28 | Pointer%=.(| 00001380 54 65 6d 70 24 29 0d 05 aa 42 20 20 20 20 20 20 |Temp$)...B | 00001390 20 20 20 c8 95 20 c1 54 65 6d 70 24 2c 50 6f 69 | .. .Temp$,Poi| 000013a0 6e 74 65 72 25 2c 31 29 3c 3e 22 2e 22 20 80 20 |nter%,1)<>"." . | 000013b0 50 6f 69 6e 74 65 72 25 3e 30 3a 50 6f 69 6e 74 |Pointer%>0:Point| 000013c0 65 72 25 2d 3d 31 3a ce 0d 05 b4 41 20 20 20 20 |er%-=1:....A | 000013d0 20 20 20 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 | ._SetIconTe| 000013e0 78 74 28 34 2c 53 61 76 65 25 2c c0 54 65 6d 70 |xt(4,Save%,.Temp| 000013f0 24 2c 50 6f 69 6e 74 65 72 25 29 2b 4e 65 77 53 |$,Pointer%)+NewS| 00001400 61 76 65 4e 61 6d 65 24 29 0d 05 be 0b 20 20 20 |aveName$).... | 00001410 20 20 20 cc 0d 05 c8 30 20 20 20 20 20 20 20 20 | ....0 | 00001420 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 74 28 34 | ._SetIconText(4| 00001430 2c 53 61 76 65 25 2c 4e 65 77 53 61 76 65 4e 61 |,Save%,NewSaveNa| 00001440 6d 65 24 29 0d 05 d2 0b 20 20 20 20 20 20 cd 0d |me$).... ..| 00001450 05 dc 19 20 20 20 20 20 20 4f 6c 64 4e 61 6d 65 |... OldName| 00001460 24 3d 54 65 6d 70 32 24 0d 05 e6 08 20 20 20 cd |$=Temp2$.... .| 00001470 0d 05 f0 0b 3d 54 65 6d 70 32 24 0d 05 fa 05 3a |....=Temp2$....:| 00001480 0d 06 04 6d f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |...m. **********| 00001490 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000014e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 06 0e |*************...| 000014f0 6d f4 20 43 68 61 6e 67 65 20 61 6c 6c 20 6f 63 |m. Change all oc| 00001500 63 75 72 61 6e 63 65 73 20 6f 66 20 3c 53 50 41 |curances of <SPA| 00001510 43 45 3e 20 69 6e 20 74 68 65 20 74 61 70 65 20 |CE> in the tape | 00001520 6e 75 6d 62 65 72 20 74 6f 20 3c 41 4c 54 2d 53 |number to <ALT-S| 00001530 50 41 43 45 3e 20 74 6f 20 73 74 6f 70 20 74 68 |PACE> to stop th| 00001540 65 20 66 69 6c 65 72 20 74 68 72 6f 77 69 6e 67 |e filer throwing| 00001550 20 61 20 77 6f 62 62 6c 79 2e 0d 06 18 6d f4 20 | a wobbly....m. | 00001560 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000015c0 2a 2a 2a 2a 2a 2a 2a 0d 06 22 26 dd 20 a4 5f 43 |*******.."&. ._C| 000015d0 6f 6e 76 65 72 74 53 6f 66 74 54 6f 48 61 72 64 |onvertSoftToHard| 000015e0 53 70 61 63 65 73 28 4e 61 6d 65 24 29 0d 06 2c |Spaces(Name$)..,| 000015f0 18 20 20 20 50 6f 69 6e 74 65 72 25 3d a9 28 4e |. Pointer%=.(N| 00001600 61 6d 65 24 29 0d 06 36 08 20 20 20 f5 0d 06 40 |ame$)..6. ...@| 00001610 22 20 20 20 20 20 20 43 68 61 72 24 3d c1 4e 61 |" Char$=.Na| 00001620 6d 65 24 2c 50 6f 69 6e 74 65 72 25 2c 31 29 0d |me$,Pointer%,1).| 00001630 06 4a 17 20 20 20 20 20 20 e7 20 43 68 61 72 24 |.J. . Char$| 00001640 3d 22 20 22 20 8c 0d 06 54 16 20 20 20 20 20 20 |=" " ...T. | 00001650 20 20 20 43 68 61 72 24 3d 22 a0 22 0d 06 5e 25 | Char$="."..^%| 00001660 20 20 20 20 20 20 20 20 20 c1 4e 61 6d 65 24 2c | .Name$,| 00001670 50 6f 69 6e 74 65 72 25 2c 31 29 3d 43 68 61 72 |Pointer%,1)=Char| 00001680 24 0d 06 68 0b 20 20 20 20 20 20 cd 0d 06 72 15 |$..h. ...r.| 00001690 20 20 20 20 20 20 50 6f 69 6e 74 65 72 25 2d 3d | Pointer%-=| 000016a0 31 0d 06 7c 13 20 20 20 fd 20 50 6f 69 6e 74 65 |1..|. . Pointe| 000016b0 72 25 3d 31 0d 06 86 0a 3d 4e 61 6d 65 24 0d 06 |r%=1....=Name$..| 000016c0 90 05 3a 0d 06 9a 24 2a 2a 2a 2a 2a 2a 2a 2a 2a |..:...$*********| 000016d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 000016e0 2a 2a 2a 2a 2a 2a 2a 0d 06 a4 22 f4 20 27 50 72 |*******...". 'Pr| 000016f0 65 73 73 27 20 61 20 62 75 74 74 6f 6e 20 69 6e |ess' a button in| 00001700 20 61 20 77 69 6e 64 6f 77 0d 06 ae 24 2a 2a 2a | a window...$***| 00001710 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00001720 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 06 b8 |*************...| 00001730 33 dd 20 f2 5f 42 75 74 74 6f 6e 50 72 65 73 73 |3. ._ButtonPress| 00001740 28 57 69 6e 64 6f 77 25 2c 20 46 72 6f 6e 74 25 |(Window%, Front%| 00001750 2c 20 4c 69 67 68 74 25 2c 20 44 61 72 6b 25 29 |, Light%, Dark%)| 00001760 0d 06 c2 11 20 20 20 ea 20 54 69 6d 65 4e 6f 77 |.... . TimeNow| 00001770 25 0d 06 cc 2a 20 20 20 f2 5f 53 65 74 49 63 6f |%...* ._SetIco| 00001780 6e 43 6f 6c 6f 75 72 28 57 69 6e 64 6f 77 25 2c |nColour(Window%,| 00001790 20 4c 69 67 68 74 25 2c 20 34 29 0d 06 d6 29 20 | Light%, 4)...) | 000017a0 20 20 f2 5f 53 65 74 49 63 6f 6e 43 6f 6c 6f 75 | ._SetIconColou| 000017b0 72 28 57 69 6e 64 6f 77 25 2c 20 44 61 72 6b 25 |r(Window%, Dark%| 000017c0 2c 20 30 29 0d 06 e0 2b 20 20 20 f2 5f 53 65 74 |, 0)...+ ._Set| 000017d0 49 63 6f 6e 43 6f 6c 6f 75 72 28 57 69 6e 64 6f |IconColour(Windo| 000017e0 77 25 2c 20 46 72 6f 6e 74 25 2c 20 31 34 29 0d |w%, Front%, 14).| 000017f0 06 ea 13 20 20 20 54 69 6d 65 4e 6f 77 25 20 3d |... TimeNow% =| 00001800 20 91 0d 06 f4 08 20 20 20 f5 0d 06 fe 18 20 20 | ..... ..... | 00001810 20 fd 20 91 20 3e 20 54 69 6d 65 4e 6f 77 25 2b | . . > TimeNow%+| 00001820 32 35 0d 07 08 2a 20 20 20 f2 5f 53 65 74 49 63 |25...* ._SetIc| 00001830 6f 6e 43 6f 6c 6f 75 72 28 57 69 6e 64 6f 77 25 |onColour(Window%| 00001840 2c 20 4c 69 67 68 74 25 2c 20 30 29 0d 07 12 29 |, Light%, 0)...)| 00001850 20 20 20 f2 5f 53 65 74 49 63 6f 6e 43 6f 6c 6f | ._SetIconColo| 00001860 75 72 28 57 69 6e 64 6f 77 25 2c 20 44 61 72 6b |ur(Window%, Dark| 00001870 25 2c 20 34 29 0d 07 1c 2a 20 20 20 f2 5f 53 65 |%, 4)...* ._Se| 00001880 74 49 63 6f 6e 43 6f 6c 6f 75 72 28 57 69 6e 64 |tIconColour(Wind| 00001890 6f 77 25 2c 20 46 72 6f 6e 74 25 2c 20 31 29 0d |ow%, Front%, 1).| 000018a0 07 26 05 e1 0d 07 30 05 3a 0d 07 3a 30 2a 2a 2a |.&....0.:..:0***| 000018b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000018d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 07 44 2e f4 20 43 |*********..D.. C| 000018e0 68 61 6e 67 65 20 74 68 65 20 63 6f 6c 6f 75 72 |hange the colour| 000018f0 20 6f 66 20 61 6e 20 69 63 6f 6e 20 69 6e 20 61 | of an icon in a| 00001900 20 77 69 6e 64 6f 77 0d 07 4e 30 2a 2a 2a 2a 2a | window..N0*****| 00001910 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00001930 2a 2a 2a 2a 2a 2a 2a 0d 07 58 2e dd 20 f2 5f 53 |*******..X.. ._S| 00001940 65 74 49 63 6f 6e 43 6f 6c 6f 75 72 28 57 69 6e |etIconColour(Win| 00001950 64 6f 77 25 2c 20 49 63 6f 6e 25 2c 20 43 6f 6c |dow%, Icon%, Col| 00001960 6f 75 72 25 29 0d 07 62 1a 20 20 20 42 6c 6f 63 |our%)..b. Bloc| 00001970 6b 25 21 30 20 20 3d 20 57 69 6e 64 6f 77 25 0d |k%!0 = Window%.| 00001980 07 6c 18 20 20 20 42 6c 6f 63 6b 25 21 34 20 20 |.l. Block%!4 | 00001990 3d 20 49 63 6f 6e 25 0d 07 76 20 20 20 20 42 6c |= Icon%..v Bl| 000019a0 6f 63 6b 25 21 38 20 20 3d 20 43 6f 6c 6f 75 72 |ock%!8 = Colour| 000019b0 25 20 3c 3c 20 32 38 0d 07 80 1e 20 20 20 42 6c |% << 28.... Bl| 000019c0 6f 63 6b 25 21 31 32 20 3d 20 25 31 31 31 31 20 |ock%!12 = %1111 | 000019d0 3c 3c 20 32 38 0d 07 8a 26 20 20 20 c8 99 20 22 |<< 28...& .. "| 000019e0 57 69 6d 70 5f 53 65 74 49 63 6f 6e 53 74 61 74 |Wimp_SetIconStat| 000019f0 65 22 2c 2c 20 42 6c 6f 63 6b 25 0d 07 94 05 e1 |e",, Block%.....| 00001a00 0d 07 9e 05 3a 0d 07 a8 49 f4 20 2a 2a 2a 2a 2a |....:...I. *****| 00001a10 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00001a40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 07 |**************..| 00001a50 b2 49 f4 20 57 68 65 6e 20 61 20 6b 65 79 20 69 |.I. When a key i| 00001a60 73 20 70 72 65 73 73 65 64 2c 20 43 68 65 63 6b |s pressed, Check| 00001a70 20 69 66 20 69 74 20 63 6f 6e 63 65 72 6e 73 20 | if it concerns | 00001a80 6d 65 2e 20 49 66 20 6e 6f 74 2c 20 50 61 73 73 |me. If not, Pass| 00001a90 20 69 74 20 6f 6e 21 0d 07 bc 49 f4 20 2a 2a 2a | it on!...I. ***| 00001aa0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00001ae0 0d 07 c6 1e dd 20 f2 5f 50 72 6f 63 65 73 73 4b |..... ._ProcessK| 00001af0 65 79 28 4b 65 79 50 72 65 73 73 65 64 29 0d 07 |ey(KeyPressed)..| 00001b00 d0 1d 20 20 20 ea 20 49 63 6f 6e 25 2c 49 6e 64 |.. . Icon%,Ind| 00001b10 65 78 25 2c 57 69 6e 64 6f 77 25 0d 07 da 17 20 |ex%,Window%.... | 00001b20 20 20 57 69 6e 64 6f 77 25 3d 42 6c 6f 63 6b 25 | Window%=Block%| 00001b30 21 30 0d 07 e4 15 20 20 20 49 63 6f 6e 25 3d 42 |!0.... Icon%=B| 00001b40 6c 6f 63 6b 25 21 34 0d 07 ee 17 20 20 20 49 6e |lock%!4.... In| 00001b50 64 65 78 25 3d 42 6c 6f 63 6b 25 21 32 30 0d 07 |dex%=Block%!20..| 00001b60 f8 16 20 20 20 c8 8e 20 4b 65 79 50 72 65 73 73 |.. .. KeyPress| 00001b70 65 64 20 ca 0d 08 02 04 0d 08 0c 42 20 20 20 20 |ed ........B | 00001b80 20 20 c9 20 26 31 38 30 20 3a 20 f2 5f 42 75 74 | . &180 : ._But| 00001b90 74 6f 6e 50 72 65 73 73 28 4d 61 69 6e 25 2c 20 |tonPress(Main%, | 00001ba0 50 72 69 6e 74 46 25 2c 20 50 72 69 6e 74 4c 25 |PrintF%, PrintL%| 00001bb0 2c 20 50 72 69 6e 74 44 25 29 0d 08 16 20 20 20 |, PrintD%)... | 00001bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001bd0 f2 5f 50 72 69 6e 74 4f 75 74 0d 08 20 13 20 20 |._PrintOut.. . | 00001be0 20 20 20 20 f4 20 3c 50 72 69 6e 74 3e 0d 08 2a | . <Print>..*| 00001bf0 04 0d 08 34 10 20 20 20 20 20 20 c9 20 26 31 38 |...4. . &18| 00001c00 41 0d 08 3e 11 20 20 20 20 20 20 f4 20 3c 54 61 |A..>. . <Ta| 00001c10 62 3e 0d 08 48 22 20 20 20 20 20 20 20 20 20 20 |b>..H" | 00001c20 20 20 20 20 20 20 20 20 e7 20 49 63 6f 6e 25 3c | . Icon%<| 00001c30 33 38 20 8c 0d 08 52 59 20 20 20 20 20 20 20 20 |38 ...RY | 00001c40 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 5f 53 | ._S| 00001c50 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 28 |etCaretPosition(| 00001c60 49 63 6f 6e 25 2d 28 28 49 63 6f 6e 25 20 83 20 |Icon%-((Icon% . | 00001c70 32 29 3d 30 29 2b 28 28 49 63 6f 6e 25 20 83 20 |2)=0)+((Icon% . | 00001c80 32 29 3d 31 29 2c 49 6e 64 65 78 25 29 0d 08 5c |2)=1),Index%)..\| 00001c90 17 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00001ca0 20 20 20 cd 0d 08 66 04 0d 08 70 0f 20 20 20 20 | ...f...p. | 00001cb0 20 20 c9 20 26 30 44 0d 08 7a 14 20 20 20 20 20 | . &0D..z. | 00001cc0 20 f4 20 3c 52 65 74 75 72 6e 3e 0d 08 84 39 20 | . <Return>...9 | 00001cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001ce0 20 e7 20 57 69 6e 64 6f 77 25 3d 4d 61 69 6e 25 | . Window%=Main%| 00001cf0 20 8c 20 f2 5f 4d 6f 76 65 44 6f 77 6e 41 6e 45 | . ._MoveDownAnE| 00001d00 6e 74 72 79 0d 08 8e 27 20 20 20 20 20 20 20 20 |ntry...' | 00001d10 20 20 20 20 20 20 20 20 20 20 e7 20 57 69 6e 64 | . Wind| 00001d20 6f 77 25 3d 53 61 76 65 25 20 8c 0d 08 98 4b 20 |ow%=Save% ....K | 00001d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001d40 20 20 20 20 f2 5f 42 75 74 74 6f 6e 50 72 65 73 | ._ButtonPres| 00001d50 73 28 53 61 76 65 25 2c 20 53 61 76 65 4f 4b 46 |s(Save%, SaveOKF| 00001d60 25 2c 20 53 61 76 65 4f 4b 4c 25 2c 20 53 61 76 |%, SaveOKL%, Sav| 00001d70 65 4f 4b 44 25 29 0d 08 a2 3c 20 20 20 20 20 20 |eOKD%)...< | 00001d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 | .| 00001d90 5f 53 61 76 65 54 6f 28 a4 5f 52 65 61 64 49 63 |_SaveTo(._ReadIc| 00001da0 6f 6e 54 65 78 74 28 53 61 76 65 25 2c 34 2c a3 |onText(Save%,4,.| 00001db0 29 29 0d 08 ac 17 20 20 20 20 20 20 20 20 20 20 |)).... | 00001dc0 20 20 20 20 20 20 20 20 cd 0d 08 b6 04 0d 08 c0 | ........| 00001dd0 0f 20 20 20 20 20 20 c9 20 26 31 45 0d 08 ca 12 |. . &1E....| 00001de0 20 20 20 20 20 20 f4 20 3c 48 6f 6d 65 3e 0d 08 | . <Home>..| 00001df0 d4 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.7 | 00001e00 20 20 20 20 f2 5f 53 65 74 43 61 72 65 74 50 6f | ._SetCaretPo| 00001e10 73 69 74 69 6f 6e 28 28 49 63 6f 6e 25 20 83 20 |sition((Icon% . | 00001e20 32 29 2c 30 29 0d 08 de 04 0d 08 e8 10 20 20 20 |2),0)........ | 00001e30 20 20 20 c9 20 26 31 38 46 0d 08 f2 17 20 20 20 | . &18F.... | 00001e40 20 20 20 f4 20 3c 43 75 72 73 6f 72 20 55 70 3e | . <Cursor Up>| 00001e50 0d 08 fc 39 20 20 20 20 20 20 20 20 20 20 20 20 |...9 | 00001e60 20 20 20 20 20 20 e7 20 57 69 6e 64 6f 77 25 20 | . Window% | 00001e70 3d 20 4d 61 69 6e 25 20 8c 20 f2 5f 4d 6f 76 65 |= Main% . ._Move| 00001e80 55 70 41 6e 45 6e 74 72 79 0d 09 06 04 0d 09 10 |UpAnEntry.......| 00001e90 10 20 20 20 20 20 20 c9 20 26 31 38 45 0d 09 1a |. . &18E...| 00001ea0 19 20 20 20 20 20 20 f4 20 3c 43 75 72 73 6f 72 |. . <Cursor| 00001eb0 20 44 6f 77 6e 3e 0d 09 24 3b 20 20 20 20 20 20 | Down>..$; | 00001ec0 20 20 20 20 20 20 20 20 20 20 20 20 e7 20 57 69 | . Wi| 00001ed0 6e 64 6f 77 25 20 3d 20 4d 61 69 6e 25 20 8c 20 |ndow% = Main% . | 00001ee0 f2 5f 4d 6f 76 65 44 6f 77 6e 41 6e 45 6e 74 72 |._MoveDownAnEntr| 00001ef0 79 0d 09 2e 04 0d 09 38 10 20 20 20 20 20 20 c9 |y......8. .| 00001f00 20 26 31 39 39 0d 09 42 17 20 20 20 20 20 20 f4 | &199..B. .| 00001f10 20 3c 53 68 69 66 74 3e 3c 66 39 3e 0d 09 4c 38 | <Shift><f9>..L8| 00001f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001f30 20 20 e7 20 57 69 6e 64 6f 77 25 20 3d 20 4d 61 | . Window% = Ma| 00001f40 69 6e 25 20 8c 20 f2 5f 57 69 70 65 49 63 6f 6e |in% . ._WipeIcon| 00001f50 54 65 78 74 0d 09 56 04 0d 09 60 10 20 20 20 20 |Text..V...`. | 00001f60 20 20 c9 20 26 31 43 41 0d 09 6a 11 20 20 20 20 | . &1CA..j. | 00001f70 20 20 f4 20 3c 66 31 30 3e 0d 09 74 34 20 20 20 | . <f10>..t4 | 00001f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 | .| 00001f90 5f 53 77 61 70 43 61 73 65 28 4d 61 69 6e 25 2c |_SwapCase(Main%,| 00001fa0 49 63 6f 6e 25 2c 49 6e 64 65 78 25 29 0d 09 7e |Icon%,Index%)..~| 00001fb0 04 0d 09 88 10 20 20 20 20 20 20 c9 20 26 31 43 |..... . &1C| 00001fc0 42 0d 09 92 29 20 20 20 20 20 20 f4 20 3c 66 31 |B...) . <f1| 00001fd0 31 3e 20 2d 20 44 65 6c 65 74 65 20 74 6f 20 65 |1> - Delete to e| 00001fe0 6e 64 20 6f 66 20 6c 69 6e 65 0d 09 9c 42 20 20 |nd of line...B | 00001ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002000 54 65 78 74 24 3d c0 a4 5f 52 65 61 64 49 63 6f |Text$=.._ReadIco| 00002010 6e 54 65 78 74 28 4d 61 69 6e 25 2c 49 63 6f 6e |nText(Main%,Icon| 00002020 25 2c a3 29 2c 49 6e 64 65 78 25 29 0d 09 a6 36 |%,.),Index%)...6| 00002030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002040 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 74 28 | ._SetIconText(| 00002050 49 63 6f 6e 25 2c 4d 61 69 6e 25 2c 54 65 78 74 |Icon%,Main%,Text| 00002060 24 29 0d 09 b0 2b 20 20 20 20 20 20 20 20 20 20 |$)...+ | 00002070 20 20 20 20 20 20 20 20 f2 5f 52 65 64 72 61 77 | ._Redraw| 00002080 28 4d 61 69 6e 25 2c 49 63 6f 6e 25 29 0d 09 ba |(Main%,Icon%)...| 00002090 04 0d 09 c4 2a 20 20 20 20 20 20 7f 20 c8 99 20 |....* . .. | 000020a0 22 57 69 6d 70 5f 50 72 6f 63 65 73 73 4b 65 79 |"Wimp_ProcessKey| 000020b0 22 2c 42 6c 6f 63 6b 25 21 32 34 0d 09 ce 04 0d |",Block%!24.....| 000020c0 09 d8 08 20 20 20 cb 0d 09 e2 05 e1 0d 09 ec 05 |... ..........| 000020d0 3a 0d 09 f6 24 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |:...$. *********| 000020e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 000020f0 2a 2a 2a 2a 2a 0d 0a 00 24 f4 20 53 65 74 20 77 |*****...$. Set w| 00002100 68 69 63 68 20 69 63 6f 6e 20 74 68 65 20 63 61 |hich icon the ca| 00002110 72 65 74 20 69 73 20 69 6e 0d 0a 0a 24 f4 20 2a |ret is in...$. *| 00002120 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00002130 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 14 |*************...| 00002140 26 dd 20 f2 5f 53 65 74 43 61 72 65 74 50 6f 73 |&. ._SetCaretPos| 00002150 69 74 69 6f 6e 28 49 63 6f 6e 25 2c 49 6e 64 65 |ition(Icon%,Inde| 00002160 78 25 29 0d 0a 1e 33 20 20 20 49 63 6f 6e 4c 65 |x%)...3 IconLe| 00002170 6e 67 74 68 25 3d a9 28 a4 5f 52 65 61 64 49 63 |ngth%=.(._ReadIc| 00002180 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c 49 63 6f |onText(Main%,Ico| 00002190 6e 25 2c a3 29 29 0d 0a 28 30 20 20 20 e7 20 49 |n%,.))..(0 . I| 000021a0 6e 64 65 78 25 3e 49 63 6f 6e 4c 65 6e 67 74 68 |ndex%>IconLength| 000021b0 25 20 8c 20 49 6e 64 65 78 25 3d 49 63 6f 6e 4c |% . Index%=IconL| 000021c0 65 6e 67 74 68 25 0d 0a 32 39 20 20 20 c8 99 20 |ength%..29 .. | 000021d0 22 57 69 6d 70 5f 53 65 74 43 61 72 65 74 50 6f |"Wimp_SetCaretPo| 000021e0 73 69 74 69 6f 6e 22 2c 4d 61 69 6e 25 2c 49 63 |sition",Main%,Ic| 000021f0 6f 6e 25 2c 2c 2c 2d 31 2c 49 6e 64 65 78 25 0d |on%,,,-1,Index%.| 00002200 0a 3c 05 e1 0d 0a 46 05 3a 0d 0a 50 25 f4 20 2a |.<....F.:..P%. *| 00002210 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00002220 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a |**************..| 00002230 5a 25 f4 20 52 65 64 72 61 77 20 74 68 65 20 73 |Z%. Redraw the s| 00002240 70 65 63 69 66 69 69 65 64 20 69 63 6f 6e 20 28 |pecifiied icon (| 00002250 76 32 29 0d 0a 64 25 f4 20 2a 2a 2a 2a 2a 2a 2a |v2)..d%. *******| 00002260 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00002270 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 6e 1d dd 20 f2 5f |********..n.. ._| 00002280 52 65 64 72 61 77 28 57 69 6e 64 6f 77 25 2c 49 |Redraw(Window%,I| 00002290 63 6f 6e 25 29 0d 0a 78 17 20 20 20 42 6c 6f 63 |con%)..x. Bloc| 000022a0 6b 25 21 30 3d 57 69 6e 64 6f 77 25 0d 0a 82 15 |k%!0=Window%....| 000022b0 20 20 20 42 6c 6f 63 6b 25 21 34 3d 49 63 6f 6e | Block%!4=Icon| 000022c0 25 0d 0a 8c 11 20 20 20 42 6c 6f 63 6b 25 21 38 |%.... Block%!8| 000022d0 3d 30 0d 0a 96 12 20 20 20 42 6c 6f 63 6b 25 21 |=0.... Block%!| 000022e0 31 32 3d 30 0d 0a a0 25 20 20 20 c8 99 20 22 57 |12=0...% .. "W| 000022f0 69 6d 70 5f 53 65 74 49 63 6f 6e 53 74 61 74 65 |imp_SetIconState| 00002300 22 2c 2c 42 6c 6f 63 6b 25 0d 0a aa 05 e1 0d 0a |",,Block%.......| 00002310 b4 05 3a 0d 0a be 45 f4 20 2a 2a 2a 2a 2a 2a 2a |..:...E. *******| 00002320 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00002350 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a c8 48 f4 20 57 68 |********...H. Wh| 00002360 65 6e 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 |en a message is | 00002370 72 65 63 65 69 76 65 64 2c 20 43 6f 6e 74 72 6f |received, Contro| 00002380 6c 20 69 73 20 70 61 73 73 65 64 20 74 6f 20 68 |l is passed to h| 00002390 65 72 65 20 66 6f 72 20 64 65 63 6f 64 69 6e 67 |ere for decoding| 000023a0 0d 0a d2 45 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |...E. **********| 000023b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000023e0 2a 2a 2a 2a 2a 0d 0a dc 1f dd 20 f2 5f 44 65 63 |*****..... ._Dec| 000023f0 6f 64 65 4d 65 73 73 61 67 65 28 52 65 71 75 65 |odeMessage(Reque| 00002400 73 74 25 29 0d 0a e6 14 20 20 20 c8 8e 20 52 65 |st%).... .. Re| 00002410 71 75 65 73 74 25 20 ca 0d 0a f0 20 20 20 20 20 |quest% .... | 00002420 20 20 c9 20 30 20 20 20 20 20 20 3a 20 f2 5f 43 | . 0 : ._C| 00002430 6c 6f 73 65 44 6f 77 6e 0d 0a fa 3a 20 20 20 20 |loseDown...: | 00002440 20 20 c9 20 31 20 20 20 20 20 20 3a 20 42 6c 6f | . 1 : Blo| 00002450 63 6b 25 21 30 3d 28 34 38 2b a9 28 22 3c 57 69 |ck%!0=(48+.("<Wi| 00002460 6d 70 24 53 63 72 61 70 3e 20 22 29 29 80 20 ac |mp$Scrap> ")). .| 00002470 20 33 0d 0b 04 2a 20 20 20 20 20 20 20 20 20 20 | 3...* | 00002480 20 20 20 20 20 20 20 20 20 20 42 6c 6f 63 6b 25 | Block%| 00002490 21 31 32 3d 42 6c 6f 63 6b 25 21 38 0d 0b 0e 23 |!12=Block%!8...#| 000024a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000024b0 20 20 20 20 42 6c 6f 63 6b 25 21 31 36 3d 32 0d | Block%!16=2.| 000024c0 0b 18 33 20 20 20 20 20 20 20 20 20 20 20 20 20 |..3 | 000024d0 20 20 20 20 20 20 20 24 28 42 6c 6f 63 6b 25 2b | $(Block%+| 000024e0 34 34 29 3d 22 3c 57 69 6d 70 24 53 63 72 61 70 |44)="<Wimp$Scrap| 000024f0 3e 22 0d 0b 22 2a 20 20 20 20 20 20 20 20 20 20 |>".."* | 00002500 20 20 20 20 20 20 20 20 20 20 53 61 76 65 52 65 | SaveRe| 00002510 66 25 3d 42 6c 6f 63 6b 25 21 31 32 0d 0b 2c 40 |f%=Block%!12..,@| 00002520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002530 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 53 65 6e | .. "Wimp_Sen| 00002540 64 4d 65 73 73 61 67 65 22 2c 31 37 2c 42 6c 6f |dMessage",17,Blo| 00002550 63 6b 25 2c 42 6c 6f 63 6b 25 21 34 0d 0b 36 30 |ck%,Block%!4..60| 00002560 20 20 20 20 20 20 c9 20 32 20 20 20 20 20 20 3a | . 2 :| 00002570 20 f2 5f 48 61 6e 64 6c 65 4d 65 73 73 61 67 65 | ._HandleMessage| 00002580 5f 44 61 74 61 53 61 76 65 41 63 6b 0d 0b 40 26 |_DataSaveAck..@&| 00002590 20 20 20 20 20 20 c9 20 33 20 20 20 20 20 20 3a | . 3 :| 000025a0 20 f2 5f 46 69 6c 65 44 72 6f 70 70 65 64 4f 6e | ._FileDroppedOn| 000025b0 4d 65 0d 0b 4a 1f 20 20 20 20 20 20 c9 20 35 20 |Me..J. . 5 | 000025c0 20 20 20 20 20 3a 20 f2 5f 44 61 74 61 4f 70 65 | : ._DataOpe| 000025d0 6e 0d 0b 54 22 20 20 20 20 20 20 c9 20 31 30 20 |n..T" . 10 | 000025e0 20 20 20 20 3a 20 f2 5f 44 65 73 6b 54 6f 70 53 | : ._DeskTopS| 000025f0 61 76 65 0d 0b 5e 26 20 20 20 20 20 20 c9 20 31 |ave..^& . 1| 00002600 34 20 20 20 20 20 3a 20 f2 5f 4c 6f 77 50 6f 77 |4 : ._LowPow| 00002610 65 72 57 61 72 6e 69 6e 67 0d 0b 68 48 20 20 20 |erWarning..hH | 00002620 20 20 20 c9 20 26 35 30 32 20 20 20 3a 20 f2 5f | . &502 : ._| 00002630 47 69 76 65 48 65 6c 70 28 42 6c 6f 63 6b 25 21 |GiveHelp(Block%!| 00002640 33 32 2c 42 6c 6f 63 6b 25 21 33 36 2c 42 6c 6f |32,Block%!36,Blo| 00002650 63 6b 25 21 32 30 2c 42 6c 6f 63 6b 25 21 32 34 |ck%!20,Block%!24| 00002660 29 0d 0b 72 50 20 20 20 20 20 20 c9 20 26 34 30 |)..rP . &40| 00002670 30 43 32 20 3a 20 e7 20 a4 5f 52 65 61 64 53 74 |0C2 : . ._ReadSt| 00002680 72 69 6e 67 28 42 6c 6f 63 6b 25 2b 32 38 29 3d |ring(Block%+28)=| 00002690 4d 79 54 61 73 6b 4e 61 6d 65 24 20 80 20 42 6c |MyTaskName$ . Bl| 000026a0 6f 63 6b 25 21 34 3c 3e 20 4d 79 5f 69 64 25 20 |ock%!4<> My_id% | 000026b0 8c 0d 0b 7c 5f 20 20 20 20 20 20 20 20 20 20 20 |...|_ | 000026c0 20 20 20 20 20 20 20 20 20 20 20 20 f4 20 41 6e | . An| 000026d0 6f 74 68 65 72 20 21 43 61 73 73 65 74 74 65 20 |other !Cassette | 000026e0 69 73 20 74 72 79 69 6e 67 20 74 6f 20 73 74 61 |is trying to sta| 000026f0 72 74 20 75 70 2c 20 49 20 61 6d 20 67 6f 69 6e |rt up, I am goin| 00002700 67 20 74 6f 20 62 75 67 67 65 72 20 6f 66 66 21 |g to bugger off!| 00002710 0d 0b 86 26 20 20 20 20 20 20 20 20 20 20 20 20 |...& | 00002720 20 20 20 20 20 20 20 20 20 20 20 f2 5f 43 6c 6f | ._Clo| 00002730 73 65 44 6f 77 6e 0d 0b 90 19 20 20 20 20 20 20 |seDown.... | 00002740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cd 0d | ..| 00002750 0b 9a 23 20 20 20 20 20 20 c9 20 26 34 30 30 43 |..# . &400C| 00002760 43 20 3a 20 42 6c 6f 63 6b 25 21 30 30 20 3d 20 |C : Block%!00 = | 00002770 34 38 0d 0b a4 2c 20 20 20 20 20 20 20 20 20 20 |48..., | 00002780 20 20 20 20 20 20 20 20 20 20 42 6c 6f 63 6b 25 | Block%| 00002790 21 31 32 20 3d 20 42 6c 6f 63 6b 25 21 38 0d 0b |!12 = Block%!8..| 000027a0 ae 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.* | 000027b0 20 20 20 20 20 20 42 6c 6f 63 6b 25 21 31 36 20 | Block%!16 | 000027c0 3d 20 26 34 30 30 43 43 0d 0b b8 59 20 20 20 20 |= &400CC...Y | 000027d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000027e0 24 28 42 6c 6f 63 6b 25 2b 32 38 29 20 3d 20 22 |$(Block%+28) = "| 000027f0 63 61 73 73 65 74 65 22 20 20 20 20 20 20 20 20 |cassete" | 00002800 20 3a f4 20 53 70 72 69 74 65 20 6e 61 6d 65 20 | :. Sprite name | 00002810 22 69 63 5f 63 73 76 74 65 78 74 22 20 65 74 63 |"ic_csvtext" etc| 00002820 2e 0d 0b c2 56 20 20 20 20 20 20 20 20 20 20 20 |....V | 00002830 20 20 20 20 20 20 20 20 20 24 28 42 6c 6f 63 6b | $(Block| 00002840 25 2b 33 36 29 20 3d 20 a4 5f 49 6e 76 65 6e 74 |%+36) = ._Invent| 00002850 53 61 76 65 4e 61 6d 65 20 3a f4 20 4e 61 6d 65 |SaveName :. Name| 00002860 20 74 6f 20 63 61 6c 6c 20 69 63 6f 6e 69 73 65 | to call iconise| 00002870 64 20 69 63 6f 6e 2e 0d 0b cc 40 20 20 20 20 20 |d icon....@ | 00002880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c8 | .| 00002890 99 20 22 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 |. "Wimp_SendMess| 000028a0 61 67 65 22 2c 31 37 2c 42 6c 6f 63 6b 25 2c 42 |age",17,Block%,B| 000028b0 6c 6f 63 6b 25 21 34 0d 0b d6 08 20 20 20 cb 0d |lock%!4.... ..| 000028c0 0b e0 05 e1 0d 0b ea 05 3a 0d 0b f4 3e f4 20 2a |........:...>. *| 000028d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00002900 2a 2a 2a 2a 2a 2a 2a 0d 0b fe 3e f4 20 53 74 61 |*******...>. Sta| 00002910 72 74 20 55 70 20 70 72 6f 67 72 61 6d 20 61 73 |rt Up program as| 00002920 20 61 20 74 61 73 6b 20 77 69 74 68 20 6e 61 6d | a task with nam| 00002930 65 20 22 43 61 73 73 65 74 74 65 20 44 65 73 69 |e "Cassette Desi| 00002940 67 6e 65 72 22 0d 0c 08 22 f4 20 41 6e 64 20 70 |gner"...". And p| 00002950 75 74 20 69 63 6f 6e 20 6f 6e 20 74 68 65 20 49 |ut icon on the I| 00002960 63 6f 6e 20 62 61 72 0d 0c 12 3e f4 20 2a 2a 2a |con bar...>. ***| 00002970 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000029a0 2a 2a 2a 2a 2a 0d 0c 1c 1e dd 20 f2 5f 49 6e 69 |*****..... ._Ini| 000029b0 74 69 61 6c 69 73 65 5f 57 49 4d 50 5f 53 79 73 |tialise_WIMP_Sys| 000029c0 74 65 6d 0d 0c 26 15 20 20 20 ea 20 57 69 6d 70 |tem..&. . Wimp| 000029d0 56 65 72 73 69 6f 6e 24 0d 0c 30 05 20 0d 0c 3a |Version$..0. ..:| 000029e0 26 20 20 20 4d 79 54 61 73 6b 4e 61 6d 65 24 3d |& MyTaskName$=| 000029f0 22 43 61 73 73 65 74 74 65 20 44 65 73 69 67 6e |"Cassette Design| 00002a00 65 72 22 0d 0c 44 05 20 0d 0c 4e 43 20 20 20 57 |er"..D. ..NC W| 00002a10 69 6d 70 56 65 72 73 69 6f 6e 24 3d a4 5f 43 6f |impVersion$=._Co| 00002a20 6e 76 65 72 74 53 79 73 74 65 6d 54 6f 53 74 72 |nvertSystemToStr| 00002a30 69 6e 67 28 22 43 61 73 73 65 74 74 65 24 57 69 |ing("Cassette$Wi| 00002a40 6d 70 56 65 72 73 69 6f 6e 22 29 0d 0c 58 04 0d |mpVersion")..X..| 00002a50 0c 62 1f 20 20 20 e7 20 28 57 69 6d 70 56 65 72 |.b. . (WimpVer| 00002a60 73 69 6f 6e 24 3d 22 33 30 30 22 29 20 8c 0d 0c |sion$="300") ...| 00002a70 6c 3b 20 20 20 20 20 20 f4 20 53 65 74 20 75 70 |l; . Set up| 00002a80 20 6c 69 73 74 20 6f 66 20 6d 65 73 73 61 67 65 | list of message| 00002a90 73 20 74 68 61 74 20 49 20 77 61 6e 74 20 74 6f |s that I want to| 00002aa0 20 72 65 63 65 69 76 65 3a 0d 0c 76 24 20 20 20 | receive:..v$ | 00002ab0 20 20 20 42 6c 6f 63 6b 25 21 30 3d 30 20 20 20 | Block%!0=0 | 00002ac0 20 20 20 20 20 3a 20 f4 20 51 75 69 74 0d 0c 80 | : . Quit...| 00002ad0 28 20 20 20 20 20 20 42 6c 6f 63 6b 25 21 34 3d |( Block%!4=| 00002ae0 31 20 20 20 20 20 20 20 20 3a 20 f4 20 44 61 74 |1 : . Dat| 00002af0 61 53 61 76 65 0d 0c 8a 2b 20 20 20 20 20 20 42 |aSave...+ B| 00002b00 6c 6f 63 6b 25 21 38 3d 32 20 20 20 20 20 20 20 |lock%!8=2 | 00002b10 20 3a 20 f4 20 44 61 74 61 53 61 76 65 41 63 6b | : . DataSaveAck| 00002b20 0d 0c 94 28 20 20 20 20 20 20 42 6c 6f 63 6b 25 |...( Block%| 00002b30 21 31 32 3d 33 20 20 20 20 20 20 20 3a 20 f4 20 |!12=3 : . | 00002b40 44 61 74 61 4c 6f 61 64 0d 0c 9e 28 20 20 20 20 |DataLoad...( | 00002b50 20 20 42 6c 6f 63 6b 25 21 31 36 3d 35 20 20 20 | Block%!16=5 | 00002b60 20 20 20 20 3a 20 f4 20 44 61 74 61 4f 70 65 6e | : . DataOpen| 00002b70 0d 0c a8 2b 20 20 20 20 20 20 42 6c 6f 63 6b 25 |...+ Block%| 00002b80 21 32 30 3d 31 30 20 20 20 20 20 20 3a 20 f4 20 |!20=10 : . | 00002b90 44 65 73 6b 54 6f 70 53 61 76 65 0d 0c b2 56 20 |DeskTopSave...V | 00002ba0 20 20 20 20 20 42 6c 6f 63 6b 25 21 32 34 3d 31 | Block%!24=1| 00002bb0 34 20 20 20 20 20 20 3a 20 f4 20 53 68 75 74 44 |4 : . ShutD| 00002bc0 6f 77 6e 20 20 20 20 28 50 6f 72 74 61 62 6c 65 |own (Portable| 00002bd0 20 6f 6e 6c 79 2e 20 50 6f 77 65 72 20 6c 6f 77 | only. Power low| 00002be0 20 77 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 | warning message| 00002bf0 29 0d 0c bc 38 20 20 20 20 20 20 42 6c 6f 63 6b |)...8 Block| 00002c00 25 21 32 38 3d 26 35 30 32 20 20 20 20 3a 20 f4 |%!28=&502 : .| 00002c10 20 49 6e 74 65 72 61 63 74 69 76 65 20 68 65 6c | Interactive hel| 00002c20 70 20 72 65 71 75 65 73 74 0d 0c c6 2f 20 20 20 |p request.../ | 00002c30 20 20 20 42 6c 6f 63 6b 25 21 33 32 3d 26 34 30 | Block%!32=&40| 00002c40 30 43 32 20 20 3a 20 f4 20 54 61 73 6b 20 49 6e |0C2 : . Task In| 00002c50 69 74 69 61 6c 69 73 65 0d 0c d0 27 20 20 20 20 |itialise...' | 00002c60 20 20 42 6c 6f 63 6b 25 21 33 36 3d 26 34 30 30 | Block%!36=&400| 00002c70 43 43 20 20 3a 20 f4 20 49 63 6f 6e 69 7a 65 0d |CC : . Iconize.| 00002c80 0c da 29 20 20 20 20 20 20 42 6c 6f 63 6b 25 21 |..) Block%!| 00002c90 34 30 3d 30 20 20 20 20 20 20 20 3a 20 f4 20 54 |40=0 : . T| 00002ca0 65 72 6d 69 6e 61 74 65 0d 0c e4 50 20 20 20 20 |erminate...P | 00002cb0 20 20 c8 99 20 22 57 69 6d 70 5f 49 6e 69 74 69 | .. "Wimp_Initi| 00002cc0 61 6c 69 73 65 22 2c 33 30 30 2c 26 34 42 35 33 |alise",300,&4B53| 00002cd0 34 31 35 34 2c 4d 79 54 61 73 6b 4e 61 6d 65 24 |4154,MyTaskName$| 00002ce0 2c 42 6c 6f 63 6b 25 20 b8 20 56 65 72 73 69 6f |,Block% . Versio| 00002cf0 6e 2c 4d 79 5f 69 64 25 0d 0c ee 08 20 20 20 cc |n,My_id%.... .| 00002d00 0d 0c f8 49 20 20 20 20 20 20 c8 99 20 22 57 69 |...I .. "Wi| 00002d10 6d 70 5f 49 6e 69 74 69 61 6c 69 73 65 22 2c 32 |mp_Initialise",2| 00002d20 30 30 2c 26 34 42 35 33 34 31 35 34 2c 4d 79 54 |00,&4B534154,MyT| 00002d30 61 73 6b 4e 61 6d 65 24 20 b8 20 56 65 72 73 69 |askName$ . Versi| 00002d40 6f 6e 2c 4d 79 5f 69 64 25 0d 0d 02 08 20 20 20 |on,My_id%.... | 00002d50 cd 0d 0d 0c 2d 20 20 20 49 63 6f 6e 42 61 72 49 |....- IconBarI| 00002d60 63 6f 6e 48 61 6e 64 6c 65 25 3d a4 5f 43 72 65 |conHandle%=._Cre| 00002d70 61 74 65 49 63 6f 6e 42 61 72 49 63 6f 6e 0d 0d |ateIconBarIcon..| 00002d80 16 1b 20 20 20 f2 5f 49 6e 69 74 69 61 6c 69 73 |.. ._Initialis| 00002d90 65 5f 53 70 72 69 74 65 73 0d 0d 20 1d 20 20 20 |e_Sprites.. . | 00002da0 f2 5f 49 6e 69 74 69 61 6c 69 73 65 5f 54 65 6d |._Initialise_Tem| 00002db0 70 6c 61 74 65 73 0d 0d 2a 6e 20 20 20 4d 61 73 |plates..*n Mas| 00002dc0 6b 25 3d 25 31 31 30 30 30 30 30 31 31 30 30 30 |k%=%110000011000| 00002dd0 31 20 20 20 20 3a 20 f4 20 4d 61 73 6b 20 4f 75 |1 : . Mask Ou| 00002de0 74 20 63 6f 64 65 73 20 66 6f 72 20 47 61 69 6e |t codes for Gain| 00002df0 2f 4c 6f 73 65 20 43 61 72 65 74 2c 20 50 6f 69 |/Lose Caret, Poi| 00002e00 6e 74 65 72 20 45 6e 74 65 72 2f 4c 65 61 76 65 |nter Enter/Leave| 00002e10 20 57 69 6e 64 6f 77 20 26 20 4e 75 6c 6c 20 45 | Window & Null E| 00002e20 76 65 6e 74 0d 0d 34 05 e1 0d 0d 3e 05 3a 0d 0d |vent..4....>.:..| 00002e30 48 41 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |HA. ************| 00002e40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00002e60 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00002e70 0d 52 41 f4 20 41 6c 6c 20 57 49 4d 50 20 50 72 |.RA. All WIMP Pr| 00002e80 6f 67 72 61 6d 73 20 73 68 6f 75 6c 64 20 62 65 |ograms should be| 00002e90 20 61 62 6c 65 20 74 6f 20 73 68 75 74 20 74 68 | able to shut th| 00002ea0 65 6d 73 65 6c 76 65 73 20 64 6f 77 6e 21 21 21 |emselves down!!!| 00002eb0 0d 0d 5c 41 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..\A. **********| 00002ec0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00002ef0 2a 0d 0d 66 11 dd 20 f2 5f 43 6c 6f 73 65 44 6f |*..f.. ._CloseDo| 00002f00 77 6e 0d 0d 70 2b 20 20 20 c8 99 20 22 57 69 6d |wn..p+ .. "Wim| 00002f10 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 2c 4d 79 5f |p_CloseDown",My_| 00002f20 69 64 25 2c 26 34 42 35 33 34 31 35 34 0d 0d 7a |id%,&4B534154..z| 00002f30 13 20 20 20 c8 99 20 22 4f 53 5f 45 78 69 74 22 |. .. "OS_Exit"| 00002f40 0d 0d 84 05 e1 0d 0d 8e 05 3a 0d 0d 98 46 f4 20 |.........:...F. | 00002f50 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00002f90 0d 0d a2 46 f4 20 4f 70 65 6e 73 20 75 70 20 74 |...F. Opens up t| 00002fa0 68 65 20 74 65 6d 70 6c 61 74 65 20 66 69 6c 65 |he template file| 00002fb0 2c 20 46 6f 6e 64 6c 65 73 20 69 74 2c 20 61 6e |, Fondles it, an| 00002fc0 64 20 74 68 65 6e 20 63 72 65 61 74 65 73 20 57 |d then creates W| 00002fd0 69 6e 64 6f 77 73 0d 0d ac 46 f4 20 2a 2a 2a 2a |indows...F. ****| 00002fe0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00003010 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0d b6 1c |************....| 00003020 dd 20 f2 5f 49 6e 69 74 69 61 6c 69 73 65 5f 54 |. ._Initialise_T| 00003030 65 6d 70 6c 61 74 65 73 0d 0d c0 2e 20 20 20 6d |emplates.... m| 00003040 61 78 77 73 25 3d 26 41 30 30 20 3a 20 de 20 77 |axws%=&A00 : . w| 00003050 73 25 20 6d 61 78 77 73 25 20 3a 20 63 75 72 77 |s% maxws% : curw| 00003060 73 25 3d 77 73 25 0d 0d ca 42 20 20 20 c8 99 22 |s%=ws%...B .."| 00003070 57 69 6d 70 5f 4f 70 65 6e 54 65 6d 70 6c 61 74 |Wimp_OpenTemplat| 00003080 65 22 2c 2c 22 3c 43 61 73 73 65 74 74 65 24 44 |e",,"<Cassette$D| 00003090 69 72 3e 2e 52 65 73 6f 75 72 63 65 73 2e 54 65 |ir>.Resources.Te| 000030a0 6d 70 6c 61 74 65 73 22 0d 0d d4 4a 20 20 20 c8 |mplates"...J .| 000030b0 99 22 57 69 6d 70 5f 4c 6f 61 64 54 65 6d 70 6c |."Wimp_LoadTempl| 000030c0 61 74 65 22 2c 2c 42 6c 6f 63 6b 25 2c 77 73 25 |ate",,Block%,ws%| 000030d0 2c 77 73 25 2b 6d 61 78 77 73 25 2c 2d 31 2c 22 |,ws%+maxws%,-1,"| 000030e0 69 6e 66 6f 22 2c 30 20 b8 20 2c 2c 63 75 72 77 |info",0 . ,,curw| 000030f0 73 25 0d 0d de 2c 20 20 20 c8 99 22 57 69 6d 70 |s%..., .."Wimp| 00003100 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 22 2c 2c |_CreateWindow",,| 00003110 42 6c 6f 63 6b 25 20 b8 20 49 6e 66 6f 25 0d 0d |Block% . Info%..| 00003120 e8 4d 20 20 20 c8 99 22 57 69 6d 70 5f 4c 6f 61 |.M .."Wimp_Loa| 00003130 64 54 65 6d 70 6c 61 74 65 22 2c 2c 42 6c 6f 63 |dTemplate",,Bloc| 00003140 6b 25 2c 63 75 72 77 73 25 2c 77 73 25 2b 6d 61 |k%,curws%,ws%+ma| 00003150 78 77 73 25 2c 2d 31 2c 22 73 61 76 65 22 2c 30 |xws%,-1,"save",0| 00003160 20 b8 20 2c 2c 63 75 72 77 73 25 0d 0d f2 2c 20 | . ,,curws%..., | 00003170 20 20 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 | .."Wimp_Create| 00003180 57 69 6e 64 6f 77 22 2c 2c 42 6c 6f 63 6b 25 20 |Window",,Block% | 00003190 b8 20 53 61 76 65 25 0d 0d fc 4d 20 20 20 c8 99 |. Save%...M ..| 000031a0 22 57 69 6d 70 5f 4c 6f 61 64 54 65 6d 70 6c 61 |"Wimp_LoadTempla| 000031b0 74 65 22 2c 2c 42 6c 6f 63 6b 25 2c 63 75 72 77 |te",,Block%,curw| 000031c0 73 25 2c 77 73 25 2b 6d 61 78 77 73 25 2c 2d 31 |s%,ws%+maxws%,-1| 000031d0 2c 22 4d 61 69 6e 22 2c 30 20 b8 20 2c 2c 63 75 |,"Main",0 . ,,cu| 000031e0 72 77 73 25 0d 0e 06 2c 20 20 20 c8 99 22 57 69 |rws%..., .."Wi| 000031f0 6d 70 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 22 |mp_CreateWindow"| 00003200 2c 2c 42 6c 6f 63 6b 25 20 b8 20 4d 61 69 6e 25 |,,Block% . Main%| 00003210 0d 0e 10 52 20 20 20 c8 99 22 57 69 6d 70 5f 4c |...R .."Wimp_L| 00003220 6f 61 64 54 65 6d 70 6c 61 74 65 22 2c 2c 42 6c |oadTemplate",,Bl| 00003230 6f 63 6b 25 2c 63 75 72 77 73 25 2c 77 73 25 2b |ock%,curws%,ws%+| 00003240 6d 61 78 77 73 25 2c 2d 31 2c 22 50 72 69 6e 74 |maxws%,-1,"Print| 00003250 5f 4f 70 74 22 2c 30 20 b8 20 2c 2c 63 75 72 77 |_Opt",0 . ,,curw| 00003260 73 25 0d 0e 1a 1e 20 20 20 42 6c 6f 63 6b 25 21 |s%.... Block%!| 00003270 36 34 20 3d 20 53 70 72 69 74 65 41 72 65 61 25 |64 = SpriteArea%| 00003280 0d 0e 24 2f 20 20 20 c8 99 22 57 69 6d 70 5f 43 |..$/ .."Wimp_C| 00003290 72 65 61 74 65 57 69 6e 64 6f 77 22 2c 2c 42 6c |reateWindow",,Bl| 000032a0 6f 63 6b 25 20 b8 20 4f 70 74 69 6f 6e 73 25 0d |ock% . Options%.| 000032b0 0e 2e 1d 20 20 20 c8 99 22 57 69 6d 70 5f 43 6c |... .."Wimp_Cl| 000032c0 6f 73 65 54 65 6d 70 6c 61 74 65 22 0d 0e 38 05 |oseTemplate"..8.| 000032d0 e1 0d 0e 42 05 3a 0d 0e 4c 49 f4 20 2a 2a 2a 2a |...B.:..LI. ****| 000032e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00003310 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00003320 0e 56 49 f4 20 54 68 69 73 20 77 72 69 74 65 73 |.VI. This writes| 00003330 20 6f 76 65 72 20 74 68 65 20 74 65 78 74 20 69 | over the text i| 00003340 6e 20 74 68 65 20 49 63 6f 6e 2c 20 61 6e 64 20 |n the Icon, and | 00003350 69 74 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 |it should not be| 00003360 20 64 6f 6e 65 21 21 21 0d 0e 60 2e f4 20 4f 6e | done!!!..`.. On| 00003370 6c 79 20 57 6f 72 6b 73 20 57 69 74 68 20 49 6e |ly Works With In| 00003380 64 69 72 65 63 74 65 64 20 54 65 78 74 20 53 74 |directed Text St| 00003390 72 69 6e 67 73 21 0d 0e 6a 49 f4 20 2a 2a 2a 2a |rings!..jI. ****| 000033a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000033d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 000033e0 0e 74 34 dd 20 f2 5f 53 65 74 49 63 6f 6e 54 65 |.t4. ._SetIconTe| 000033f0 78 74 28 49 63 6f 6e 48 61 6e 64 6c 65 25 2c 57 |xt(IconHandle%,W| 00003400 69 6e 64 6f 77 48 61 6e 64 6c 65 25 2c 54 65 78 |indowHandle%,Tex| 00003410 74 24 29 0d 0e 7e 11 20 20 20 ea 20 50 6f 69 6e |t$)..~. . Poin| 00003420 74 65 72 25 0d 0e 88 1f 20 20 20 42 6c 6f 63 6b |ter%.... Block| 00003430 25 21 31 30 30 3d 57 69 6e 64 6f 77 48 61 6e 64 |%!100=WindowHand| 00003440 6c 65 25 0d 0e 92 1d 20 20 20 42 6c 6f 63 6b 25 |le%.... Block%| 00003450 21 31 30 34 3d 49 63 6f 6e 48 61 6e 64 6c 65 25 |!104=IconHandle%| 00003460 0d 0e 9c 29 20 20 20 c8 99 20 22 57 69 6d 70 5f |...) .. "Wimp_| 00003470 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 42 |GetIconState",,B| 00003480 6c 6f 63 6b 25 2b 31 30 30 0d 0e a6 23 20 20 20 |lock%+100...# | 00003490 e7 20 28 42 6c 6f 63 6b 25 21 31 32 34 20 80 20 |. (Block%!124 . | 000034a0 28 31 3c 3c 38 29 29 3c 3e 30 20 8c 0d 0e b0 1d |(1<<8))<>0 .....| 000034b0 20 20 20 20 20 20 50 6f 69 6e 74 65 72 25 3d 42 | Pointer%=B| 000034c0 6c 6f 63 6b 25 21 31 32 38 0d 0e ba 08 20 20 20 |lock%!128.... | 000034d0 cc 0d 0e c4 1d 20 20 20 20 20 20 50 6f 69 6e 74 |..... Point| 000034e0 65 72 25 3d 42 6c 6f 63 6b 25 2b 31 32 38 0d 0e |er%=Block%+128..| 000034f0 ce 08 20 20 20 cd 0d 0e d8 16 20 20 20 24 50 6f |.. ..... $Po| 00003500 69 6e 74 65 72 25 3d 54 65 78 74 24 0d 0e e2 05 |inter%=Text$....| 00003510 e1 0d 0e ec 05 3a 0d 0e f6 2c f4 20 2a 2a 2a 2a |.....:...,. ****| 00003520 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00003540 2a 2a 0d 0f 00 2c f4 20 54 68 65 20 6e 61 6d 65 |**...,. The name| 00003550 20 73 6f 72 74 20 6f 66 20 73 61 79 73 20 69 74 | sort of says it| 00003560 20 61 6c 6c 20 72 65 61 6c 6c 79 21 21 21 0d 0f | all really!!!..| 00003570 0a 2c f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.,. ************| 00003580 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00003590 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0f 14 18 dd 20 |**********..... | 000035a0 f2 5f 53 65 74 55 70 49 63 6f 6e 42 61 72 4d 65 |._SetUpIconBarMe| 000035b0 6e 75 0d 0f 1e 0b 20 20 20 ea 20 6d 25 0d 0f 28 |nu.... . m%..(| 000035c0 21 20 20 20 4d 65 6e 75 41 63 74 69 76 65 25 20 |! MenuActive% | 000035d0 3d 20 49 63 6f 6e 42 61 72 4d 65 6e 75 25 0d 0f |= IconBarMenu%..| 000035e0 32 16 20 20 20 de 20 6d 65 6e 75 25 20 32 38 2b |2. . menu% 28+| 000035f0 33 2a 32 34 0d 0f 3c 18 20 20 20 24 6d 65 6e 75 |3*24..<. $menu| 00003600 25 3d 22 43 61 73 73 65 74 74 65 22 0d 0f 46 11 |%="Cassette"..F.| 00003610 20 20 20 6d 65 6e 75 25 3f 31 32 3d 37 0d 0f 50 | menu%?12=7..P| 00003620 11 20 20 20 6d 65 6e 75 25 3f 31 33 3d 32 0d 0f |. menu%?13=2..| 00003630 5a 11 20 20 20 6d 65 6e 75 25 3f 31 34 3d 37 0d |Z. menu%?14=7.| 00003640 0f 64 11 20 20 20 6d 65 6e 75 25 3f 31 35 3d 30 |.d. menu%?15=0| 00003650 0d 0f 6e 13 20 20 20 6d 65 6e 75 25 21 31 36 3d |..n. menu%!16=| 00003660 31 32 38 0d 0f 78 12 20 20 20 6d 65 6e 75 25 21 |128..x. menu%!| 00003670 32 30 3d 34 30 0d 0f 82 11 20 20 20 6d 65 6e 75 |20=40.... menu| 00003680 25 21 32 34 3d 30 0d 0f 8c 12 20 20 20 6d 25 3d |%!24=0.... m%=| 00003690 6d 65 6e 75 25 2b 32 38 0d 0f 96 0e 20 20 20 6d |menu%+28.... m| 000036a0 25 21 30 3d 26 30 0d 0f a0 30 20 20 20 6d 25 21 |%!0=&0...0 m%!| 000036b0 34 3d 49 6e 66 6f 25 20 20 20 20 3a f4 20 6e 61 |4=Info% :. na| 000036c0 6d 65 20 66 72 6f 6d 20 74 65 6d 70 6c 61 74 65 |me from template| 000036d0 20 6f 70 65 6e 2e 0d 0f aa 1c 20 20 20 6d 25 21 | open..... m%!| 000036e0 38 3d 28 37 3c 3c 32 34 29 20 84 20 25 31 30 30 |8=(7<<24) . %100| 000036f0 30 31 0d 0f b4 16 20 20 20 24 28 6d 25 2b 31 32 |01.... $(m%+12| 00003700 29 3d 22 49 6e 66 6f 22 0d 0f be 0f 20 20 20 6d |)="Info".... m| 00003710 25 3d 6d 25 2b 32 34 0d 0f c8 0e 20 20 20 6d 25 |%=m%+24.... m%| 00003720 21 30 3d 26 30 0d 0f d2 14 20 20 20 6d 25 21 34 |!0=&0.... m%!4| 00003730 3d 4f 70 74 69 6f 6e 73 25 0d 0f dc 1c 20 20 20 |=Options%.... | 00003740 6d 25 21 38 3d 28 37 3c 3c 32 34 29 20 84 20 25 |m%!8=(7<<24) . %| 00003750 31 30 30 30 31 0d 0f e6 19 20 20 20 24 28 6d 25 |10001.... $(m%| 00003760 2b 31 32 29 3d 22 4f 70 74 69 6f 6e 73 22 0d 0f |+12)="Options"..| 00003770 f0 0f 20 20 20 6d 25 3d 6d 25 2b 32 34 0d 0f fa |.. m%=m%+24...| 00003780 0f 20 20 20 6d 25 21 30 3d 26 38 30 0d 10 04 0d |. m%!0=&80....| 00003790 20 20 20 6d 25 21 34 3d 30 0d 10 0e 1b 20 20 20 | m%!4=0.... | 000037a0 6d 25 21 38 3d 28 37 3c 3c 32 34 29 84 20 25 31 |m%!8=(7<<24). %1| 000037b0 30 30 30 31 0d 10 18 16 20 20 20 24 28 6d 25 2b |0001.... $(m%+| 000037c0 31 32 29 3d 22 51 75 69 74 22 0d 10 22 31 20 20 |12)="Quit".."1 | 000037d0 20 c8 99 22 57 69 6d 70 5f 43 72 65 61 74 65 4d | .."Wimp_CreateM| 000037e0 65 6e 75 22 2c 2c 6d 65 6e 75 25 2c 42 6c 6f 63 |enu",,menu%,Bloc| 000037f0 6b 25 21 30 2d 36 34 2c 32 31 35 0d 10 2c 05 e1 |k%!0-64,215..,..| 00003800 0d 10 36 05 3a 0d 10 40 43 f4 20 2a 2a 2a 2a 2a |..6.:..@C. *****| 00003810 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00003840 2a 2a 2a 2a 2a 2a 2a 2a 0d 10 4a 43 f4 20 54 68 |********..JC. Th| 00003850 69 73 20 74 61 6b 65 73 20 61 20 53 70 72 69 74 |is takes a Sprit| 00003860 65 20 61 6e 64 20 6d 61 6b 65 73 20 69 74 20 69 |e and makes it i| 00003870 6e 74 6f 20 61 6e 20 49 63 6f 6e 20 46 6f 72 20 |nto an Icon For | 00003880 74 68 65 20 49 63 6f 6e 42 61 72 0d 10 54 43 f4 |the IconBar..TC.| 00003890 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 000038a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000038c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 10 |**************..| 000038d0 5e 19 dd 20 a4 5f 43 72 65 61 74 65 49 63 6f 6e |^.. ._CreateIcon| 000038e0 42 61 72 49 63 6f 6e 0d 10 68 0e 20 20 20 ea 20 |BarIcon..h. . | 000038f0 49 63 6f 6e 25 0d 10 72 12 20 20 20 42 6c 6f 63 |Icon%..r. Bloc| 00003900 6b 25 21 30 3d 2d 31 0d 10 7c 11 20 20 20 42 6c |k%!0=-1..|. Bl| 00003910 6f 63 6b 25 21 34 3d 30 0d 10 86 11 20 20 20 42 |ock%!4=0.... B| 00003920 6c 6f 63 6b 25 21 38 3d 30 0d 10 90 13 20 20 20 |lock%!8=0.... | 00003930 42 6c 6f 63 6b 25 21 31 32 3d 36 38 0d 10 9a 13 |Block%!12=68....| 00003940 20 20 20 42 6c 6f 63 6b 25 21 31 36 3d 36 38 0d | Block%!16=68.| 00003950 10 a4 20 20 20 20 42 6c 6f 63 6b 25 21 32 30 3d |.. Block%!20=| 00003960 25 31 30 30 30 30 30 30 30 30 30 30 30 31 30 0d |%10000000000010.| 00003970 10 ae 1f 20 20 20 24 28 42 6c 6f 63 6b 25 2b 32 |... $(Block%+2| 00003980 34 29 3d 22 21 43 61 73 73 65 74 74 65 22 0d 10 |4)="!Cassette"..| 00003990 b8 2b 20 20 20 c8 99 20 22 57 69 6d 70 5f 43 72 |.+ .. "Wimp_Cr| 000039a0 65 61 74 65 49 63 6f 6e 22 2c 2c 42 6c 6f 63 6b |eateIcon",,Block| 000039b0 25 20 b8 20 49 63 6f 6e 25 0d 10 c2 0a 3d 49 63 |% . Icon%....=Ic| 000039c0 6f 6e 25 0d 10 cc 05 3a 0d 10 d6 33 f4 20 2a 2a |on%....:...3. **| 000039d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000039f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 10 e0 33 f4 |***********...3.| 00003a00 20 52 65 61 64 20 49 6e 66 6f 20 66 6f 72 20 57 | Read Info for W| 00003a10 69 6e 64 6f 77 20 4d 61 69 6e 2c 20 61 6e 64 20 |indow Main, and | 00003a20 74 68 65 6e 20 6f 70 65 6e 20 69 74 20 21 0d 10 |then open it !..| 00003a30 ea 33 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.3. ************| 00003a40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00003a60 2a 0d 10 f4 2d dd 20 f2 5f 4f 70 65 6e 4d 61 69 |*...-. ._OpenMai| 00003a70 6e 57 69 6e 64 6f 77 28 57 69 70 65 54 65 6d 70 |nWindow(WipeTemp| 00003a80 6c 61 74 65 49 63 6f 6e 54 65 78 74 25 29 0d 10 |lateIconText%)..| 00003a90 fe 48 20 20 20 e7 20 57 69 70 65 54 65 6d 70 6c |.H . WipeTempl| 00003aa0 61 74 65 49 63 6f 6e 54 65 78 74 25 20 80 20 4e |ateIconText% . N| 00003ab0 65 77 25 20 80 20 ac 20 53 74 61 72 74 57 69 74 |ew% . . StartWit| 00003ac0 68 4c 6f 61 64 20 8c 20 f2 5f 57 69 70 65 49 63 |hLoad . ._WipeIc| 00003ad0 6f 6e 54 65 78 74 0d 11 08 14 20 20 20 21 42 6c |onText.... !Bl| 00003ae0 6f 63 6b 25 3d 4d 61 69 6e 25 0d 11 12 27 20 20 |ock%=Main%...' | 00003af0 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e | .. "Wimp_GetWin| 00003b00 64 6f 77 53 74 61 74 65 22 2c 2c 42 6c 6f 63 6b |dowState",,Block| 00003b10 25 0d 11 1c 23 20 20 20 c8 99 20 22 57 69 6d 70 |%...# .. "Wimp| 00003b20 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 42 6c |_OpenWindow",,Bl| 00003b30 6f 63 6b 25 0d 11 26 0d 20 20 20 4e 65 77 25 3d |ock%..&. New%=| 00003b40 a3 0d 11 30 1e 20 20 20 f2 5f 53 65 74 43 61 72 |...0. ._SetCar| 00003b50 65 74 50 6f 73 69 74 69 6f 6e 28 30 2c 30 29 0d |etPosition(0,0).| 00003b60 11 3a 05 e1 0d 11 44 05 3a 0d 11 4e 4c f4 20 2a |.:....D.:..NL. *| 00003b70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00003bb0 2a 2a 2a 2a 2a 0d 11 58 4c f4 20 54 68 69 73 20 |*****..XL. This | 00003bc0 72 65 61 64 73 20 74 68 65 20 74 65 78 74 20 66 |reads the text f| 00003bd0 72 6f 6d 20 74 68 65 20 77 72 69 74 61 62 6c 65 |rom the writable| 00003be0 20 49 63 6f 6e 20 73 70 65 63 69 66 69 65 64 20 | Icon specified | 00003bf0 69 6e 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 |in the parameter| 00003c00 73 0d 11 62 41 f4 20 61 6e 64 20 69 66 20 50 61 |s..bA. and if Pa| 00003c10 64 25 3d 54 52 55 45 20 74 68 65 6e 20 70 61 64 |d%=TRUE then pad| 00003c20 73 20 6f 75 74 20 74 68 65 20 72 65 73 75 6c 74 |s out the result| 00003c30 20 74 6f 20 33 32 20 63 68 61 72 61 63 74 65 72 | to 32 character| 00003c40 73 21 0d 11 6c 4c f4 20 2a 2a 2a 2a 2a 2a 2a 2a |s!..lL. ********| 00003c50 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00003c80 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 11 |**************..| 00003c90 76 34 dd 20 a4 5f 52 65 61 64 49 63 6f 6e 54 65 |v4. ._ReadIconTe| 00003ca0 78 74 28 57 69 6e 64 6f 77 48 61 6e 64 6c 65 25 |xt(WindowHandle%| 00003cb0 2c 49 63 6f 6e 48 61 6e 64 6c 65 25 2c 50 61 64 |,IconHandle%,Pad| 00003cc0 25 29 0d 11 80 10 20 20 20 ea 20 52 65 73 75 6c |%).... . Resul| 00003cd0 74 24 0d 11 8a 1f 20 20 20 42 6c 6f 63 6b 25 21 |t$.... Block%!| 00003ce0 31 30 30 3d 57 69 6e 64 6f 77 48 61 6e 64 6c 65 |100=WindowHandle| 00003cf0 25 0d 11 94 1d 20 20 20 42 6c 6f 63 6b 25 21 31 |%.... Block%!1| 00003d00 30 34 3d 49 63 6f 6e 48 61 6e 64 6c 65 25 0d 11 |04=IconHandle%..| 00003d10 9e 29 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 |.) .. "Wimp_Ge| 00003d20 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 42 6c 6f |tIconState",,Blo| 00003d30 63 6b 25 2b 31 30 30 0d 11 a8 23 20 20 20 e7 20 |ck%+100...# . | 00003d40 28 42 6c 6f 63 6b 25 21 31 32 34 20 80 20 28 31 |(Block%!124 . (1| 00003d50 3c 3c 38 29 29 3c 3e 30 20 8c 0d 11 b2 1f 20 20 |<<8))<>0 ..... | 00003d60 20 20 20 20 52 65 73 75 6c 74 24 3d 24 28 42 6c | Result$=$(Bl| 00003d70 6f 63 6b 25 21 31 32 38 29 0d 11 bc 08 20 20 20 |ock%!128).... | 00003d80 cc 0d 11 c6 1f 20 20 20 20 20 20 52 65 73 75 6c |..... Resul| 00003d90 74 24 3d 24 28 42 6c 6f 63 6b 25 2b 31 32 38 29 |t$=$(Block%+128)| 00003da0 0d 11 d0 08 20 20 20 cd 0d 11 da 26 20 20 20 e7 |.... ....& .| 00003db0 20 50 61 64 25 20 8c 20 3d c0 52 65 73 75 6c 74 | Pad% . =.Result| 00003dc0 24 2b c4 33 32 2c 22 20 22 29 2c 33 32 29 0d 11 |$+.32," "),32)..| 00003dd0 e4 0c 3d 52 65 73 75 6c 74 24 0d 11 ee 05 3a 0d |..=Result$....:.| 00003de0 11 f8 2f f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |../. ***********| 00003df0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00003e00 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 12 |**************..| 00003e10 02 2f f4 20 57 69 70 65 20 74 68 65 20 74 65 78 |./. Wipe the tex| 00003e20 74 20 66 72 6f 6d 20 61 6c 6c 20 74 68 65 20 77 |t from all the w| 00003e30 72 69 74 61 62 6c 65 20 69 63 6f 6e 73 0d 12 0c |ritable icons...| 00003e40 2f f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |/. *************| 00003e50 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00003e60 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 12 16 14 |************....| 00003e70 dd 20 f2 5f 57 69 70 65 49 63 6f 6e 54 65 78 74 |. ._WipeIconText| 00003e80 0d 12 20 13 20 20 20 49 63 6f 6e 54 65 78 74 24 |.. . IconText$| 00003e90 3d 22 22 0d 12 2a 15 20 20 20 e3 20 4c 6f 6f 70 |=""..*. . Loop| 00003ea0 25 3d 30 20 b8 20 33 37 0d 12 34 2e 20 20 20 20 |%=0 . 37..4. | 00003eb0 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 74 28 | ._SetIconText(| 00003ec0 4c 6f 6f 70 25 2c 4d 61 69 6e 25 2c 49 63 6f 6e |Loop%,Main%,Icon| 00003ed0 54 65 78 74 24 29 0d 12 3e 1f 20 20 20 20 20 20 |Text$)..>. | 00003ee0 f2 5f 52 65 64 72 61 77 28 4d 61 69 6e 25 2c 4c |._Redraw(Main%,L| 00003ef0 6f 6f 70 25 29 0d 12 48 08 20 20 20 ed 0d 12 52 |oop%)..H. ...R| 00003f00 33 20 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 |3 ._SetIconTex| 00003f10 74 28 54 61 70 65 4e 75 6d 62 65 72 25 2c 4d 61 |t(TapeNumber%,Ma| 00003f20 69 6e 25 2c 54 61 70 65 4e 75 6d 62 65 72 24 29 |in%,TapeNumber$)| 00003f30 0d 12 5c 22 20 20 20 f2 5f 52 65 64 72 61 77 28 |..\" ._Redraw(| 00003f40 4d 61 69 6e 25 2c 54 61 70 65 4e 75 6d 62 65 72 |Main%,TapeNumber| 00003f50 25 29 0d 12 66 05 e1 0d 12 70 05 3a 0d 12 7a 2c |%)..f....p.:..z,| 00003f60 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. **************| 00003f70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00003f80 2a 2a 2a 2a 2a 2a 2a 2a 0d 12 84 2c f4 20 54 68 |********...,. Th| 00003f90 65 20 6e 61 6d 65 20 73 6f 72 74 20 6f 66 20 73 |e name sort of s| 00003fa0 61 79 73 20 69 74 20 61 6c 6c 20 72 65 61 6c 6c |ays it all reall| 00003fb0 79 21 21 21 0d 12 8e 2b f4 20 2a 2a 2a 2a 2a 2a |y!!!...+. ******| 00003fc0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00003fd0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00003fe0 12 98 29 dd 20 f2 5f 43 72 65 61 74 65 4d 61 69 |..). ._CreateMai| 00003ff0 6e 57 69 6e 64 6f 77 4d 65 6e 75 28 58 25 2c 59 |nWindowMenu(X%,Y| 00004000 25 2c 49 63 6f 6e 25 29 0d 12 a2 30 20 20 20 ea |%,Icon%)...0 .| 00004010 20 6d 25 2c 46 6c 61 67 73 25 2c 50 6f 69 6e 74 | m%,Flags%,Point| 00004020 65 72 25 2c 53 65 6c 25 2c 49 63 6f 6e 46 6c 61 |er%,Sel%,IconFla| 00004030 67 25 2c 49 74 65 6d 24 0d 12 ac 21 20 20 20 4d |g%,Item$...! M| 00004040 65 6e 75 41 63 74 69 76 65 25 20 3d 20 4d 61 69 |enuActive% = Mai| 00004050 6e 57 69 6e 4d 65 6e 75 25 0d 12 b6 1a 20 20 20 |nWinMenu%.... | 00004060 de 20 4d 61 69 6e 4d 65 6e 75 25 20 32 39 2b 37 |. MainMenu% 29+7| 00004070 2a 32 34 0d 12 c0 18 20 20 20 24 4d 61 69 6e 4d |*24.... $MainM| 00004080 65 6e 75 25 3d 22 4d 61 69 6e 22 0d 12 ca 15 20 |enu%="Main".... | 00004090 20 20 4d 61 69 6e 4d 65 6e 75 25 3f 31 32 3d 37 | MainMenu%?12=7| 000040a0 0d 12 d4 15 20 20 20 4d 61 69 6e 4d 65 6e 75 25 |.... MainMenu%| 000040b0 3f 31 33 3d 32 0d 12 de 15 20 20 20 4d 61 69 6e |?13=2.... Main| 000040c0 4d 65 6e 75 25 3f 31 34 3d 37 0d 12 e8 15 20 20 |Menu%?14=7.... | 000040d0 20 4d 61 69 6e 4d 65 6e 75 25 3f 31 35 3d 30 0d | MainMenu%?15=0.| 000040e0 12 f2 19 20 20 20 4d 61 69 6e 4d 65 6e 75 25 21 |... MainMenu%!| 000040f0 31 36 3d 31 36 2a 31 36 0d 12 fc 16 20 20 20 4d |16=16*16.... M| 00004100 61 69 6e 4d 65 6e 75 25 21 32 30 3d 34 30 0d 13 |ainMenu%!20=40..| 00004110 06 15 20 20 20 4d 61 69 6e 4d 65 6e 75 25 21 32 |.. MainMenu%!2| 00004120 34 3d 30 0d 13 10 16 20 20 20 6d 25 3d 4d 61 69 |4=0.... m%=Mai| 00004130 6e 4d 65 6e 75 25 2b 32 38 0d 13 1a 08 20 20 20 |nMenu%+28.... | 00004140 f5 0d 13 24 30 20 20 20 20 20 20 f3 20 46 6c 61 |...$0 . Fla| 00004150 67 73 25 2c 50 6f 69 6e 74 65 72 25 2c 53 65 6c |gs%,Pointer%,Sel| 00004160 25 2c 49 63 6f 6e 46 6c 61 67 25 2c 49 74 65 6d |%,IconFlag%,Item| 00004170 24 0d 13 2e 43 20 20 20 20 20 20 6d 25 21 30 3d |$...C m%!0=| 00004180 46 6c 61 67 73 25 20 20 20 20 20 20 20 20 20 20 |Flags% | 00004190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000041a0 20 20 20 20 20 20 20 3a f4 20 4d 65 6e 75 20 46 | :. Menu F| 000041b0 6c 61 67 73 0d 13 38 59 20 20 20 20 20 20 6d 25 |lags..8Y m%| 000041c0 21 34 3d 50 6f 69 6e 74 65 72 25 20 20 20 20 20 |!4=Pointer% | 000041d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000041e0 20 20 20 20 20 20 20 20 20 20 3a f4 20 50 6f 69 | :. Poi| 000041f0 6e 74 65 72 20 74 6f 20 53 75 62 2d 4d 65 6e 75 |nter to Sub-Menu| 00004200 20 28 2d 31 20 49 66 20 4e 6f 6e 65 29 0d 13 42 | (-1 If None)..B| 00004210 46 20 20 20 20 20 20 6d 25 21 38 3d 49 63 6f 6e |F m%!8=Icon| 00004220 46 6c 61 67 25 20 84 20 28 53 65 6c 25 3c 3c 32 |Flag% . (Sel%<<2| 00004230 32 29 20 84 20 28 37 3c 3c 32 34 29 20 20 20 20 |2) . (7<<24) | 00004240 20 3a f4 20 4d 65 6e 75 20 49 63 6f 6e 20 46 6c | :. Menu Icon Fl| 00004250 61 67 73 0d 13 4c 52 20 20 20 20 20 20 24 28 6d |ags..LR $(m| 00004260 25 2b 31 32 29 3d 49 74 65 6d 24 20 20 20 20 20 |%+12)=Item$ | 00004270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004280 20 20 20 20 20 20 20 20 20 3a f4 20 49 74 65 6d | :. Item| 00004290 20 4e 61 6d 65 20 28 31 32 20 42 79 74 65 73 20 | Name (12 Bytes | 000042a0 4d 61 78 2e 29 0d 13 56 12 20 20 20 20 20 20 6d |Max.)..V. m| 000042b0 25 3d 6d 25 2b 32 34 0d 13 60 13 20 20 20 fd 20 |%=m%+24..`. . | 000042c0 46 6c 61 67 73 25 3d 26 38 30 0d 13 6a 08 20 20 |Flags%=&80..j. | 000042d0 20 3a 0d 13 74 0b 20 20 20 f7 20 2b 30 0d 13 7e | :..t. . +0..~| 000042e0 25 20 20 20 dc 20 26 30 30 2c 49 6e 66 6f 25 2c |% . &00,Info%,| 000042f0 20 20 20 30 2c 25 31 30 30 30 31 2c 22 49 6e 66 | 0,%10001,"Inf| 00004300 6f 22 0d 13 88 2a 20 20 20 dc 20 26 30 30 2c 53 |o"...* . &00,S| 00004310 61 76 65 25 2c 20 20 20 30 2c 25 31 30 30 30 31 |ave%, 0,%10001| 00004320 2c 22 53 61 76 65 20 64 61 74 61 22 0d 13 92 2c |,"Save data"...,| 00004330 20 20 20 dc 20 26 30 30 2c 2d 31 2c 20 20 20 20 | . &00,-1, | 00004340 20 20 30 2c 25 31 30 30 30 31 2c 22 46 6f 72 6d | 0,%10001,"Form| 00004350 61 74 20 74 65 78 74 22 0d 13 9c 28 20 20 20 dc |at text"...( .| 00004360 20 26 30 30 2c 4f 70 74 69 6f 6e 73 25 2c 30 2c | &00,Options%,0,| 00004370 25 31 30 30 30 31 2c 22 4f 70 74 69 6f 6e 73 22 |%10001,"Options"| 00004380 0d 13 a6 29 20 20 20 dc 20 26 38 30 2c 2d 31 2c |...) . &80,-1,| 00004390 20 20 20 20 20 20 30 2c 25 31 30 30 30 31 2c 22 | 0,%10001,"| 000043a0 57 69 70 65 20 61 6c 6c 22 0d 13 b0 08 20 20 20 |Wipe all".... | 000043b0 3a 0d 13 ba 2f 20 20 20 c8 99 20 22 57 69 6d 70 |:.../ .. "Wimp| 000043c0 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c 4d 61 |_CreateMenu",,Ma| 000043d0 69 6e 4d 65 6e 75 25 2c 58 25 2d 36 34 2c 59 25 |inMenu%,X%-64,Y%| 000043e0 0d 13 c4 05 e1 0d 13 ce 05 3a 0d 13 d8 54 f4 20 |.........:...T. | 000043f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00004430 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 13 |**************..| 00004440 e2 54 f4 20 43 6f 6e 74 72 6f 6c 20 43 6f 6d 65 |.T. Control Come| 00004450 73 20 54 6f 20 48 65 72 65 20 57 68 65 6e 20 54 |s To Here When T| 00004460 68 65 20 55 73 65 72 20 48 61 73 20 44 72 61 67 |he User Has Drag| 00004470 67 65 64 20 54 68 65 20 53 61 76 65 20 49 63 6f |ged The Save Ico| 00004480 6e 20 41 6e 64 20 52 65 6c 65 61 73 65 64 20 49 |n And Released I| 00004490 74 2e 0d 13 ec 54 f4 20 2a 2a 2a 2a 2a 2a 2a 2a |t....T. ********| 000044a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000044e0 2a 2a 2a 2a 2a 2a 0d 13 f6 1d dd 20 f2 5f 44 72 |******..... ._Dr| 000044f0 61 67 42 6f 78 45 6e 64 28 4c 65 61 66 4e 61 6d |agBoxEnd(LeafNam| 00004500 65 24 29 0d 14 00 1a 20 20 20 50 6f 69 6e 74 65 |e$).... Pointe| 00004510 72 25 3d a9 4c 65 61 66 4e 61 6d 65 24 0d 14 0a |r%=.LeafName$...| 00004520 32 20 20 20 c8 95 20 50 6f 69 6e 74 65 72 25 3e |2 .. Pointer%>| 00004530 30 20 80 20 c1 4c 65 61 66 4e 61 6d 65 24 2c 50 |0 . .LeafName$,P| 00004540 6f 69 6e 74 65 72 25 2c 31 29 3c 3e 22 2e 22 0d |ointer%,1)<>".".| 00004550 14 14 15 20 20 20 20 20 20 50 6f 69 6e 74 65 72 |... Pointer| 00004560 25 2d 3d 31 0d 14 1e 08 20 20 20 ce 0d 14 28 34 |%-=1.... ...(4| 00004570 20 20 20 e7 20 44 72 61 67 41 53 70 72 69 74 65 | . DragASprite| 00004580 5f 41 63 74 69 76 65 25 20 8c 20 c8 99 20 22 44 |_Active% . .. "D| 00004590 72 61 67 41 53 70 72 69 74 65 5f 53 74 6f 70 22 |ragASprite_Stop"| 000045a0 0d 14 32 27 20 20 20 4c 65 61 66 4e 61 6d 65 24 |..2' LeafName$| 000045b0 3d c1 4c 65 61 66 4e 61 6d 65 24 2c 50 6f 69 6e |=.LeafName$,Poin| 000045c0 74 65 72 25 2b 31 29 0d 14 3c 27 20 20 20 c8 99 |ter%+1)..<' ..| 000045d0 20 22 57 69 6d 70 5f 47 65 74 50 6f 69 6e 74 65 | "Wimp_GetPointe| 000045e0 72 49 6e 66 6f 22 2c 2c 42 6c 6f 63 6b 25 0d 14 |rInfo",,Block%..| 000045f0 46 1e 20 20 20 53 65 6e 64 65 72 57 69 6e 64 6f |F. SenderWindo| 00004600 77 25 3d 42 6c 6f 63 6b 25 21 31 32 0d 14 50 1c |w%=Block%!12..P.| 00004610 20 20 20 53 65 6e 64 65 72 49 63 6f 6e 25 3d 42 | SenderIcon%=B| 00004620 6c 6f 63 6b 25 21 31 36 0d 14 5a 1e 20 20 20 42 |lock%!16..Z. B| 00004630 6c 6f 63 6b 25 21 32 30 3d 53 65 6e 64 65 72 57 |lock%!20=SenderW| 00004640 69 6e 64 6f 77 25 0d 14 64 1c 20 20 20 42 6c 6f |indow%..d. Blo| 00004650 63 6b 25 21 32 34 3d 53 65 6e 64 65 72 49 63 6f |ck%!24=SenderIco| 00004660 6e 25 0d 14 6e 19 20 20 20 42 6c 6f 63 6b 25 21 |n%..n. Block%!| 00004670 32 38 3d 42 6c 6f 63 6b 25 21 30 0d 14 78 19 20 |28=Block%!0..x. | 00004680 20 20 42 6c 6f 63 6b 25 21 33 32 3d 42 6c 6f 63 | Block%!32=Bloc| 00004690 6b 25 21 34 0d 14 82 1d 20 20 20 42 6c 6f 63 6b |k%!4.... Block| 000046a0 25 21 30 3d 34 34 2b a9 4c 65 61 66 4e 61 6d 65 |%!0=44+.LeafName| 000046b0 24 0d 14 8c 21 20 20 20 42 6c 6f 63 6b 25 21 30 |$...! Block%!0| 000046c0 2b 3d 34 2d 28 42 6c 6f 63 6b 25 21 30 20 83 20 |+=4-(Block%!0 . | 000046d0 34 29 0d 14 96 11 20 20 20 42 6c 6f 63 6b 25 21 |4).... Block%!| 000046e0 34 3d 30 0d 14 a0 11 20 20 20 42 6c 6f 63 6b 25 |4=0.... Block%| 000046f0 21 38 3d 30 0d 14 aa 12 20 20 20 42 6c 6f 63 6b |!8=0.... Block| 00004700 25 21 31 32 3d 30 0d 14 b4 27 20 20 20 42 6c 6f |%!12=0...' Blo| 00004710 63 6b 25 21 31 36 3d 31 20 3a 20 f4 20 4d 65 73 |ck%!16=1 : . Mes| 00004720 73 61 67 65 5f 44 61 74 61 53 61 76 65 0d 14 be |sage_DataSave...| 00004730 2e 20 20 20 42 6c 6f 63 6b 25 21 33 36 3d 30 20 |. Block%!36=0 | 00004740 3a 20 f4 20 4c 65 6e 67 74 68 20 6f 66 20 70 72 |: . Length of pr| 00004750 6f 70 6f 73 65 64 20 73 61 76 65 0d 14 c8 15 20 |oposed save.... | 00004760 20 20 42 6c 6f 63 6b 25 21 34 30 3d 26 42 30 46 | Block%!40=&B0F| 00004770 0d 14 d2 20 20 20 20 24 28 42 6c 6f 63 6b 25 2b |... $(Block%+| 00004780 34 34 29 3d 4c 65 61 66 4e 61 6d 65 24 2b bd 30 |44)=LeafName$+.0| 00004790 0d 14 dc 78 20 20 20 e7 20 ac 20 28 28 53 65 6e |...x . . ((Sen| 000047a0 64 65 72 57 69 6e 64 6f 77 25 3d 53 61 76 65 25 |derWindow%=Save%| 000047b0 29 20 84 20 28 53 65 6e 64 65 72 57 69 6e 64 6f |) . (SenderWindo| 000047c0 77 25 3d 4d 61 69 6e 25 29 20 84 20 28 53 65 6e |w%=Main%) . (Sen| 000047d0 64 65 72 57 69 6e 64 6f 77 25 3d 49 63 6f 6e 42 |derWindow%=IconB| 000047e0 61 72 25 20 80 20 53 65 6e 64 65 72 49 63 6f 6e |ar% . SenderIcon| 000047f0 25 3d 49 63 6f 6e 42 61 72 49 63 6f 6e 48 61 6e |%=IconBarIconHan| 00004800 64 6c 65 25 29 29 20 8c 0d 14 e6 43 20 20 20 20 |dle%)) ....C | 00004810 20 20 c8 99 20 22 57 69 6d 70 5f 53 65 6e 64 4d | .. "Wimp_SendM| 00004820 65 73 73 61 67 65 22 2c 31 37 2c 42 6c 6f 63 6b |essage",17,Block| 00004830 25 2c 53 65 6e 64 65 72 57 69 6e 64 6f 77 25 2c |%,SenderWindow%,| 00004840 53 65 6e 64 65 72 49 63 6f 6e 25 0d 14 f0 08 20 |SenderIcon%.... | 00004850 20 20 cd 0d 14 fa 05 e1 0d 15 04 05 3a 0d 15 0e | ..........:...| 00004860 3c f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |<. *************| 00004870 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00004890 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 15 18 3b f4 20 41 |*********...;. A| 000048a0 20 44 61 74 61 20 53 61 76 65 20 41 63 6b 6e 6f | Data Save Ackno| 000048b0 77 6c 65 67 65 6d 65 6e 74 20 4d 65 73 73 61 67 |wlegement Messag| 000048c0 65 20 48 61 73 20 42 65 65 6e 20 52 65 63 65 69 |e Has Been Recei| 000048d0 76 65 64 21 0d 15 22 3c f4 20 2a 2a 2a 2a 2a 2a |ved!.."<. ******| 000048e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00004910 0d 15 2c 21 dd 20 f2 5f 48 61 6e 64 6c 65 4d 65 |..,!. ._HandleMe| 00004920 73 73 61 67 65 5f 44 61 74 61 53 61 76 65 41 63 |ssage_DataSaveAc| 00004930 6b 0d 15 36 1b 20 20 20 ea 20 50 61 74 68 4e 61 |k..6. . PathNa| 00004940 6d 65 24 2c 50 6f 69 6e 74 65 72 25 0d 15 40 19 |me$,Pointer%..@.| 00004950 20 20 20 50 6f 69 6e 74 65 72 25 3d 42 6c 6f 63 | Pointer%=Bloc| 00004960 6b 25 2b 34 34 0d 15 4a 08 20 20 20 f5 0d 15 54 |k%+44..J. ...T| 00004970 1f 20 20 20 20 20 20 50 61 74 68 4e 61 6d 65 24 |. PathName$| 00004980 2b 3d bd 3f 50 6f 69 6e 74 65 72 25 0d 15 5e 15 |+=.?Pointer%..^.| 00004990 20 20 20 20 20 20 50 6f 69 6e 74 65 72 25 2b 3d | Pointer%+=| 000049a0 31 0d 15 68 14 20 20 20 fd 20 3f 50 6f 69 6e 74 |1..h. . ?Point| 000049b0 65 72 25 3d 30 0d 15 72 1a 20 20 20 f2 5f 53 61 |er%=0..r. ._Sa| 000049c0 76 65 54 6f 28 50 61 74 68 4e 61 6d 65 24 29 0d |veTo(PathName$).| 000049d0 15 7c 1f 20 20 20 42 6c 6f 63 6b 25 21 30 3d 34 |.|. Block%!0=4| 000049e0 30 2b a9 50 61 74 68 4e 61 6d 65 24 2b 34 0d 15 |0+.PathName$+4..| 000049f0 86 21 20 20 20 42 6c 6f 63 6b 25 21 30 2b 3d 34 |.! Block%!0+=4| 00004a00 2d 28 42 6c 6f 63 6b 25 21 30 20 83 20 34 29 0d |-(Block%!0 . 4).| 00004a10 15 90 27 20 20 20 42 6c 6f 63 6b 25 21 31 36 3d |..' Block%!16=| 00004a20 33 20 3a 20 f4 20 4d 65 73 73 61 67 65 5f 44 61 |3 : . Message_Da| 00004a30 74 61 4c 6f 61 64 0d 15 9a 12 20 20 20 42 6c 6f |taLoad.... Blo| 00004a40 63 6b 25 21 33 36 3d 30 0d 15 a4 15 20 20 20 42 |ck%!36=0.... B| 00004a50 6c 6f 63 6b 25 21 34 30 3d 26 42 30 46 0d 15 ae |lock%!40=&B0F...| 00004a60 22 20 20 20 24 28 42 6c 6f 63 6b 25 2b 34 34 29 |" $(Block%+44)| 00004a70 3d 50 61 74 68 4e 61 6d 65 24 2b bd 28 30 29 0d |=PathName$+.(0).| 00004a80 15 b8 40 20 20 20 c8 99 20 22 57 69 6d 70 5f 53 |..@ .. "Wimp_S| 00004a90 65 6e 64 4d 65 73 73 61 67 65 22 2c 31 38 2c 42 |endMessage",18,B| 00004aa0 6c 6f 63 6b 25 2c 53 65 6e 64 65 72 57 69 6e 64 |lock%,SenderWind| 00004ab0 6f 77 25 2c 53 65 6e 64 65 72 49 63 6f 6e 25 0d |ow%,SenderIcon%.| 00004ac0 15 c2 05 e1 0d 15 cc 05 3a 0d 15 d6 36 f4 20 2a |........:...6. *| 00004ad0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00004af0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00004b00 15 e0 36 f4 20 41 20 46 69 6c 65 20 68 61 73 20 |..6. A File has | 00004b10 62 65 65 6e 20 64 6f 75 62 6c 65 20 63 6c 69 63 |been double clic| 00004b20 6b 65 64 20 6f 6e 2c 20 64 6f 20 49 20 77 61 6e |ked on, do I wan| 00004b30 74 20 69 74 3f 0d 15 ea 36 f4 20 2a 2a 2a 2a 2a |t it?...6. *****| 00004b40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00004b60 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 15 f4 10 dd |***********.....| 00004b70 20 f2 5f 44 61 74 61 4f 70 65 6e 0d 15 fe 0b ea | ._DataOpen.....| 00004b80 20 46 69 6c 65 24 0d 16 08 19 20 20 20 e7 20 42 | File$.... . B| 00004b90 6c 6f 63 6b 25 21 34 30 3d 26 42 30 46 20 8c 0d |lock%!40=&B0F ..| 00004ba0 16 12 27 20 20 20 20 20 20 46 69 6c 65 24 3d a4 |..' File$=.| 00004bb0 5f 52 65 61 64 53 74 72 69 6e 67 28 42 6c 6f 63 |_ReadString(Bloc| 00004bc0 6b 25 2b 34 34 29 0d 16 1c 1c 20 20 20 20 20 20 |k%+44).... | 00004bd0 42 6c 6f 63 6b 25 21 31 32 3d 42 6c 6f 63 6b 25 |Block%!12=Block%| 00004be0 21 38 0d 16 26 15 20 20 20 20 20 20 42 6c 6f 63 |!8..&. Bloc| 00004bf0 6b 25 21 31 36 3d 34 0d 16 30 32 20 20 20 20 20 |k%!16=4..02 | 00004c00 20 c8 99 20 22 57 69 6d 70 5f 53 65 6e 64 4d 65 | .. "Wimp_SendMe| 00004c10 73 73 61 67 65 22 2c 31 37 2c 42 6c 6f 63 6b 25 |ssage",17,Block%| 00004c20 2c 42 6c 6f 63 6b 25 21 34 0d 16 3a 24 20 20 20 |,Block%!4..:$ | 00004c30 20 20 20 f2 5f 44 6f 41 63 74 75 61 6c 4c 6f 61 | ._DoActualLoa| 00004c40 64 54 68 69 6e 67 28 46 69 6c 65 24 29 0d 16 44 |dThing(File$)..D| 00004c50 08 20 20 20 cd 0d 16 4e 05 e1 0d 16 58 05 3a 0d |. ...N....X.:.| 00004c60 16 62 3b f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.b;. ***********| 00004c70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00004c90 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 16 6c 3b f4 20 |**********..l;. | 00004ca0 52 65 61 64 20 61 20 73 74 72 69 6e 67 20 66 72 |Read a string fr| 00004cb0 6f 6d 20 61 20 70 6f 69 6e 74 65 72 2c 20 75 73 |om a pointer, us| 00004cc0 69 6e 67 20 61 20 7a 65 72 6f 2d 74 65 72 6d 69 |ing a zero-termi| 00004cd0 6e 61 74 6f 72 0d 16 76 3b f4 20 2a 2a 2a 2a 2a |nator..v;. *****| 00004ce0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00004d10 0d 16 80 1c dd 20 a4 5f 52 65 61 64 53 74 72 69 |..... ._ReadStri| 00004d20 6e 67 28 50 6f 69 6e 74 65 72 25 29 0d 16 8a 10 |ng(Pointer%)....| 00004d30 20 20 20 ea 20 53 74 72 69 6e 67 24 0d 16 94 16 | . String$....| 00004d40 20 20 20 c8 95 20 3f 50 6f 69 6e 74 65 72 25 3c | .. ?Pointer%<| 00004d50 3e 30 0d 16 9e 1d 20 20 20 20 20 20 53 74 72 69 |>0.... Stri| 00004d60 6e 67 24 2b 3d bd 3f 50 6f 69 6e 74 65 72 25 0d |ng$+=.?Pointer%.| 00004d70 16 a8 15 20 20 20 20 20 20 50 6f 69 6e 74 65 72 |... Pointer| 00004d80 25 2b 3d 31 0d 16 b2 08 20 20 20 ce 0d 16 bc 0c |%+=1.... .....| 00004d90 3d 53 74 72 69 6e 67 24 0d 16 c6 05 3a 0d 16 d0 |=String$....:...| 00004da0 4e f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |N. *************| 00004db0 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 0d 16 da 4e f4 |***********...N.| 00004df0 20 54 68 69 73 20 42 69 74 20 44 6f 65 73 20 54 | This Bit Does T| 00004e00 68 65 20 41 63 74 75 61 6c 20 53 61 76 69 6e 67 |he Actual Saving| 00004e10 20 4f 66 20 54 68 65 20 44 61 74 61 20 57 68 65 | Of The Data Whe| 00004e20 6e 20 52 65 71 75 65 73 74 65 64 20 42 79 20 54 |n Requested By T| 00004e30 68 65 20 46 69 6c 65 72 2e 0d 16 e4 4e f4 20 2a |he Filer....N. *| 00004e40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00004e80 2a 2a 2a 2a 2a 2a 2a 0d 16 ee 19 dd 20 f2 5f 53 |*******..... ._S| 00004e90 61 76 65 54 6f 28 50 61 74 68 4e 61 6d 65 24 29 |aveTo(PathName$)| 00004ea0 0d 16 f8 1a 20 20 20 50 6f 69 6e 74 65 72 25 3d |.... Pointer%=| 00004eb0 a9 50 61 74 68 4e 61 6d 65 24 0d 17 02 32 20 20 |.PathName$...2 | 00004ec0 20 c8 95 20 50 6f 69 6e 74 65 72 25 3e 31 20 80 | .. Pointer%>1 .| 00004ed0 20 c1 50 61 74 68 4e 61 6d 65 24 2c 50 6f 69 6e | .PathName$,Poin| 00004ee0 74 65 72 25 2c 31 29 3c 3e 22 2e 22 0d 17 0c 15 |ter%,1)<>"."....| 00004ef0 20 20 20 20 20 20 50 6f 69 6e 74 65 72 25 2d 3d | Pointer%-=| 00004f00 31 0d 17 16 08 20 20 20 ce 0d 17 20 4c 20 20 20 |1.... ... L | 00004f10 e7 20 50 6f 69 6e 74 65 72 25 3d 31 20 8c 20 85 |. Pointer%=1 . .| 00004f20 20 32 30 30 31 2c 22 54 6f 20 73 61 76 65 2c 20 | 2001,"To save, | 00004f30 64 72 61 67 20 74 68 65 20 69 63 6f 6e 20 74 6f |drag the icon to| 00004f40 20 61 20 64 69 72 65 63 74 6f 72 79 20 76 69 65 | a directory vie| 00004f50 77 65 72 2e 22 0d 17 2a 1f 20 20 20 c8 99 20 22 |wer."..*. .. "| 00004f60 57 69 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 |Wimp_CreateMenu"| 00004f70 2c 2c 2d 31 0d 17 34 1d 20 20 20 53 61 76 65 46 |,,-1..4. SaveF| 00004f80 69 6c 65 25 3d ae 28 50 61 74 68 4e 61 6d 65 24 |ile%=.(PathName$| 00004f90 29 0d 17 3e 3b 20 20 20 f4 20 4f 70 65 6e 20 4f |)..>; . Open O| 00004fa0 75 74 20 41 20 46 69 6c 65 20 41 6e 64 20 50 72 |ut A File And Pr| 00004fb0 69 6e 74 20 4f 75 74 20 41 6c 6c 20 74 68 65 20 |int Out All the | 00004fc0 69 6e 66 6f 72 6d 61 74 69 6f 6e 21 0d 17 48 15 |information!..H.| 00004fd0 20 20 20 e3 20 4c 6f 6f 70 25 3d 30 20 b8 20 33 | . Loop%=0 . 3| 00004fe0 37 0d 17 52 34 20 20 20 20 20 20 f1 20 23 53 61 |7..R4 . #Sa| 00004ff0 76 65 46 69 6c 65 25 2c a4 5f 52 65 61 64 49 63 |veFile%,._ReadIc| 00005000 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c 4c 6f 6f |onText(Main%,Loo| 00005010 70 25 2c a3 29 0d 17 5c 08 20 20 20 ed 0d 17 66 |p%,.)..\. ...f| 00005020 37 20 20 20 f1 20 23 53 61 76 65 46 69 6c 65 25 |7 . #SaveFile%| 00005030 2c a4 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 |,._ReadIconText(| 00005040 4d 61 69 6e 25 2c 54 61 70 65 4e 75 6d 62 65 72 |Main%,TapeNumber| 00005050 25 2c a3 29 0d 17 70 22 20 20 20 f4 20 54 68 65 |%,.)..p" . The| 00005060 6e 20 43 6c 6f 73 65 20 74 68 65 20 66 69 6c 65 |n Close the file| 00005070 20 61 67 61 69 6e 0d 17 7a 13 20 20 20 d9 20 23 | again..z. . #| 00005080 53 61 76 65 46 69 6c 65 25 0d 17 84 24 20 20 20 |SaveFile%...$ | 00005090 ff 20 22 53 65 74 54 79 70 65 20 22 2b 50 61 74 |. "SetType "+Pat| 000050a0 68 4e 61 6d 65 24 2b 22 20 42 30 46 22 0d 17 8e |hName$+" B0F"...| 000050b0 47 20 20 20 f4 20 4f 76 65 72 77 72 69 74 65 20 |G . Overwrite | 000050c0 53 61 76 65 57 69 6e 64 6f 77 20 54 65 78 74 20 |SaveWindow Text | 000050d0 57 69 74 68 20 46 75 6c 6c 20 50 61 74 68 6e 61 |With Full Pathna| 000050e0 6d 65 20 46 6f 72 20 46 75 74 75 72 65 20 53 61 |me For Future Sa| 000050f0 76 65 73 21 0d 17 98 27 20 20 20 f2 5f 53 65 74 |ves!...' ._Set| 00005100 49 63 6f 6e 54 65 78 74 28 34 2c 53 61 76 65 25 |IconText(4,Save%| 00005110 2c 50 61 74 68 4e 61 6d 65 24 29 0d 17 a2 05 e1 |,PathName$).....| 00005120 0d 17 ac 05 3a 0d 17 b6 3f f4 20 2a 2a 2a 2a 2a |....:...?. *****| 00005130 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00005160 2a 2a 2a 2a 0d 17 c0 3f f4 20 54 68 69 73 20 48 |****...?. This H| 00005170 61 6e 64 6c 65 73 20 54 68 65 20 44 72 61 67 67 |andles The Dragg| 00005180 69 6e 67 20 4f 66 20 54 48 65 20 4f 75 74 6c 69 |ing Of THe Outli| 00005190 6e 65 20 4f 66 20 54 68 65 20 53 61 76 65 20 42 |ne Of The Save B| 000051a0 6f 78 2e 0d 17 ca 3f f4 20 2a 2a 2a 2a 2a 2a 2a |ox....?. *******| 000051b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000051e0 2a 2a 0d 17 d4 10 dd 20 f2 5f 44 72 61 67 53 61 |**..... ._DragSa| 000051f0 76 65 0d 17 de 15 20 20 20 ea 20 66 6c 61 67 73 |ve.... . flags| 00005200 25 2c 62 79 74 65 25 0d 17 e8 1e 20 20 20 44 72 |%,byte%.... Dr| 00005210 61 67 41 53 70 72 69 74 65 5f 41 63 74 69 76 65 |agASprite_Active| 00005220 25 20 3d 20 a3 0d 17 f2 40 20 20 20 c8 99 20 22 |% = ....@ .. "| 00005230 58 4f 53 5f 53 57 49 4e 75 6d 62 65 72 46 72 6f |XOS_SWINumberFro| 00005240 6d 53 74 72 69 6e 67 22 2c 2c 22 44 72 61 67 41 |mString",,"DragA| 00005250 53 70 72 69 74 65 5f 26 30 30 22 20 b8 20 3b 66 |Sprite_&00" . ;f| 00005260 6c 61 67 73 25 0d 17 fc 24 20 20 20 c8 99 20 22 |lags%...$ .. "| 00005270 4f 53 5f 42 79 74 65 22 2c 31 36 31 2c 32 38 20 |OS_Byte",161,28 | 00005280 b8 20 2c 2c 62 79 74 65 25 0d 18 06 41 20 20 20 |. ,,byte%...A | 00005290 e7 20 28 66 6c 61 67 73 25 20 80 20 31 29 3d 30 |. (flags% . 1)=0| 000052a0 20 80 20 28 62 79 74 65 25 20 80 20 32 29 3d 32 | . (byte% . 2)=2| 000052b0 20 8c 20 44 72 61 67 41 53 70 72 69 74 65 5f 41 | . DragASprite_A| 000052c0 63 74 69 76 65 25 20 3d 20 b9 0d 18 10 14 20 20 |ctive% = ..... | 000052d0 20 21 42 6c 6f 63 6b 25 3d 53 61 76 65 25 0d 18 | !Block%=Save%..| 000052e0 1a 27 20 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 |.' .. "Wimp_Ge| 000052f0 74 57 69 6e 64 6f 77 53 74 61 74 65 22 2c 2c 42 |tWindowState",,B| 00005300 6c 6f 63 6b 25 0d 18 24 22 20 20 20 4f 66 66 73 |lock%..$" Offs| 00005310 65 74 58 25 3d 42 6c 6f 63 6b 25 21 34 2d 42 6c |etX%=Block%!4-Bl| 00005320 6f 63 6b 25 21 32 30 0d 18 2e 23 20 20 20 4f 66 |ock%!20...# Of| 00005330 66 73 65 74 59 25 3d 42 6c 6f 63 6b 25 21 31 36 |fsetY%=Block%!16| 00005340 2d 42 6c 6f 63 6b 25 21 32 34 0d 18 38 15 20 20 |-Block%!24..8. | 00005350 20 42 6c 6f 63 6b 25 21 30 3d 53 61 76 65 25 0d | Block%!0=Save%.| 00005360 18 42 11 20 20 20 42 6c 6f 63 6b 25 21 34 3d 30 |.B. Block%!4=0| 00005370 0d 18 4c 25 20 20 20 c8 99 20 22 57 69 6d 70 5f |..L% .. "Wimp_| 00005380 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 42 |GetIconState",,B| 00005390 6c 6f 63 6b 25 0d 18 56 14 20 20 20 21 42 6c 6f |lock%..V. !Blo| 000053a0 63 6b 25 3d 53 61 76 65 25 0d 18 60 11 20 20 20 |ck%=Save%..`. | 000053b0 42 6c 6f 63 6b 25 21 34 3d 35 0d 18 6a 21 20 20 |Block%!4=5..j! | 000053c0 20 42 6c 6f 63 6b 25 21 38 3d 42 6c 6f 63 6b 25 | Block%!8=Block%| 000053d0 21 38 2b 4f 66 66 73 65 74 58 25 0d 18 74 23 20 |!8+OffsetX%..t# | 000053e0 20 20 42 6c 6f 63 6b 25 21 31 32 3d 42 6c 6f 63 | Block%!12=Bloc| 000053f0 6b 25 21 31 32 2b 4f 66 66 73 65 74 59 25 0d 18 |k%!12+OffsetY%..| 00005400 7e 23 20 20 20 42 6c 6f 63 6b 25 21 31 36 3d 42 |~# Block%!16=B| 00005410 6c 6f 63 6b 25 21 31 36 2b 4f 66 66 73 65 74 58 |lock%!16+OffsetX| 00005420 25 0d 18 88 23 20 20 20 42 6c 6f 63 6b 25 21 32 |%...# Block%!2| 00005430 30 3d 42 6c 6f 63 6b 25 21 32 30 2b 4f 66 66 73 |0=Block%!20+Offs| 00005440 65 74 59 25 0d 18 92 12 20 20 20 42 6c 6f 63 6b |etY%.... Block| 00005450 25 21 32 34 3d 30 0d 18 9c 12 20 20 20 42 6c 6f |%!24=0.... Blo| 00005460 63 6b 25 21 32 38 3d 30 0d 18 a6 1a 20 20 20 42 |ck%!28=0.... B| 00005470 6c 6f 63 6b 25 21 33 32 3d 26 37 46 46 46 46 46 |lock%!32=&7FFFFF| 00005480 46 46 0d 18 b0 1a 20 20 20 42 6c 6f 63 6b 25 21 |FF.... Block%!| 00005490 33 36 3d 26 37 46 46 46 46 46 46 46 0d 18 ba 1e |36=&7FFFFFFF....| 000054a0 20 20 20 e7 20 44 72 61 67 41 53 70 72 69 74 65 | . DragASprite| 000054b0 5f 41 63 74 69 76 65 25 20 8c 0d 18 c4 44 20 20 |_Active% ....D | 000054c0 20 20 20 20 c8 99 20 22 44 72 61 67 41 53 70 72 | .. "DragASpr| 000054d0 69 74 65 5f 53 74 61 72 74 22 2c 31 39 37 2c 31 |ite_Start",197,1| 000054e0 2c 22 66 69 6c 65 5f 62 30 66 22 2c 42 6c 6f 63 |,"file_b0f",Bloc| 000054f0 6b 25 2b 38 2c 42 6c 6f 63 6b 25 2b 32 34 0d 18 |k%+8,Block%+24..| 00005500 ce 08 20 20 20 cc 0d 18 d8 23 20 20 20 20 20 20 |.. ....# | 00005510 c8 99 20 22 57 69 6d 70 5f 44 72 61 67 42 6f 78 |.. "Wimp_DragBox| 00005520 22 2c 2c 42 6c 6f 63 6b 25 0d 18 e2 08 20 20 20 |",,Block%.... | 00005530 cd 0d 18 ec 05 e1 0d 18 f6 05 3a 0d 19 00 40 f4 |..........:...@.| 00005540 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 00005550 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00005570 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 19 0a 40 f4 |***********...@.| 00005580 20 57 68 65 6e 20 41 20 46 69 6c 65 20 49 73 20 | When A File Is | 00005590 44 72 6f 70 70 65 64 20 4f 6e 74 6f 20 4d 79 20 |Dropped Onto My | 000055a0 49 63 6f 6e 20 42 61 72 20 49 63 6f 6e 2c 20 49 |Icon Bar Icon, I| 000055b0 20 43 6f 6d 65 20 48 65 72 65 21 0d 19 14 40 f4 | Come Here!...@.| 000055c0 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 000055d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000055f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 19 1e 17 dd |***********.....| 00005600 20 f2 5f 46 69 6c 65 44 72 6f 70 70 65 64 4f 6e | ._FileDroppedOn| 00005610 4d 65 0d 19 28 1a 20 20 20 e7 20 42 6c 6f 63 6b |Me..(. . Block| 00005620 25 21 34 30 20 3d 26 42 30 46 20 8c 0d 19 32 20 |%!40 =&B0F ...2 | 00005630 20 20 20 20 20 20 53 61 76 65 4e 61 6d 65 24 3d | SaveName$=| 00005640 24 28 42 6c 6f 63 6b 25 2b 34 34 29 0d 19 3c 1c |$(Block%+44)..<.| 00005650 20 20 20 20 20 20 42 6c 6f 63 6b 25 21 31 32 3d | Block%!12=| 00005660 42 6c 6f 63 6b 25 21 38 0d 19 46 15 20 20 20 20 |Block%!8..F. | 00005670 20 20 42 6c 6f 63 6b 25 21 31 36 3d 34 0d 19 50 | Block%!16=4..P| 00005680 32 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f |2 .. "Wimp_| 00005690 53 65 6e 64 4d 65 73 73 61 67 65 22 2c 31 37 2c |SendMessage",17,| 000056a0 42 6c 6f 63 6b 25 2c 42 6c 6f 63 6b 25 21 34 0d |Block%,Block%!4.| 000056b0 19 5a 28 20 20 20 20 20 20 f2 5f 44 6f 41 63 74 |.Z( ._DoAct| 000056c0 75 61 6c 4c 6f 61 64 54 68 69 6e 67 28 53 61 76 |ualLoadThing(Sav| 000056d0 65 4e 61 6d 65 24 29 0d 19 64 08 20 20 20 cd 0d |eName$)..d. ..| 000056e0 19 6e 05 e1 0d 19 78 05 3a 0d 19 82 55 f4 20 2a |.n....x.:...U. *| 000056f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00005730 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 19 |**************..| 00005740 8c 55 f4 20 43 6f 6e 74 72 6f 6c 20 43 6f 6d 65 |.U. Control Come| 00005750 73 20 48 65 72 65 20 57 68 65 6e 20 41 20 56 61 |s Here When A Va| 00005760 6c 69 64 20 46 69 6c 65 20 54 79 70 65 20 48 61 |lid File Type Ha| 00005770 73 20 42 65 65 6e 20 44 72 6f 70 70 65 64 20 4f |s Been Dropped O| 00005780 6e 74 6f 20 4d 79 20 41 70 70 6c 69 63 61 74 69 |nto My Applicati| 00005790 6f 6e 2e 0d 19 96 55 f4 20 2a 2a 2a 2a 2a 2a 2a |on....U. *******| 000057a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000057e0 2a 2a 2a 2a 2a 2a 2a 2a 0d 19 a0 1b dd 20 f2 5f |********..... ._| 000057f0 4c 6f 61 64 44 61 74 61 28 46 69 6c 65 4e 61 6d |LoadData(FileNam| 00005800 65 24 29 0d 19 aa 1d 20 20 20 4c 6f 61 64 46 69 |e$).... LoadFi| 00005810 6c 65 25 3d 8e 28 46 69 6c 65 4e 61 6d 65 24 29 |le%=.(FileName$)| 00005820 0d 19 b4 19 20 20 20 e3 20 4c 6f 61 64 4c 6f 6f |.... . LoadLoo| 00005830 70 25 3d 30 20 b8 20 33 37 0d 19 be 20 20 20 20 |p%=0 . 37... | 00005840 20 20 20 e8 23 20 4c 6f 61 64 46 69 6c 65 25 2c | .# LoadFile%,| 00005850 54 65 6d 70 54 65 78 74 24 0d 19 c8 32 20 20 20 |TempText$...2 | 00005860 20 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 74 | ._SetIconText| 00005870 28 4c 6f 61 64 4c 6f 6f 70 25 2c 4d 61 69 6e 25 |(LoadLoop%,Main%| 00005880 2c 54 65 6d 70 54 65 78 74 24 29 0d 19 d2 23 20 |,TempText$)...# | 00005890 20 20 20 20 20 f2 5f 52 65 64 72 61 77 28 4d 61 | ._Redraw(Ma| 000058a0 69 6e 25 2c 4c 6f 61 64 4c 6f 6f 70 25 29 0d 19 |in%,LoadLoop%)..| 000058b0 dc 08 20 20 20 ed 0d 19 e6 1d 20 20 20 e8 23 20 |.. ..... .# | 000058c0 4c 6f 61 64 46 69 6c 65 25 2c 54 65 6d 70 54 65 |LoadFile%,TempTe| 000058d0 78 74 24 0d 19 f0 31 20 20 20 f2 5f 53 65 74 49 |xt$...1 ._SetI| 000058e0 63 6f 6e 54 65 78 74 28 54 61 70 65 4e 75 6d 62 |conText(TapeNumb| 000058f0 65 72 25 2c 4d 61 69 6e 25 2c 54 65 6d 70 54 65 |er%,Main%,TempTe| 00005900 78 74 24 29 0d 19 fa 22 20 20 20 f2 5f 52 65 64 |xt$)..." ._Red| 00005910 72 61 77 28 4d 61 69 6e 25 2c 54 61 70 65 4e 75 |raw(Main%,TapeNu| 00005920 6d 62 65 72 25 29 0d 1a 04 13 20 20 20 d9 20 23 |mber%).... . #| 00005930 4c 6f 61 64 46 69 6c 65 25 0d 1a 0e 05 e1 0d 1a |LoadFile%.......| 00005940 18 05 3a 0d 1a 22 4b f4 20 2a 2a 2a 2a 2a 2a 2a |..:.."K. *******| 00005950 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00005980 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 1a |**************..| 00005990 2c 4a f4 20 52 65 61 64 73 20 53 74 61 74 65 20 |,J. Reads State | 000059a0 4f 66 20 49 63 6f 6e 73 20 69 6e 20 57 69 6e 64 |Of Icons in Wind| 000059b0 6f 77 20 53 74 61 74 65 64 20 61 6e 64 20 52 65 |ow Stated and Re| 000059c0 74 75 72 6e 73 20 54 68 65 20 46 69 72 73 74 20 |turns The First | 000059d0 53 65 6c 65 63 74 65 64 0d 1a 36 46 f4 20 49 63 |Selected..6F. Ic| 000059e0 6f 6e 20 49 6e 20 54 68 65 20 47 69 76 65 20 45 |on In The Give E| 000059f0 78 63 6c 75 73 69 76 65 20 53 65 6c 65 63 74 69 |xclusive Selecti| 00005a00 6f 6e 20 47 72 6f 75 70 2e 20 28 2d 31 20 3d 20 |on Group. (-1 = | 00005a10 4e 6f 6e 65 20 53 65 6c 65 63 74 65 64 29 0d 1a |None Selected)..| 00005a20 40 4a f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |@J. ************| 00005a30 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 0d 1a 4a 2b dd 20 a4 5f |********..J+. ._| 00005a70 52 65 61 64 45 53 47 53 65 6c 65 63 74 65 64 28 |ReadESGSelected(| 00005a80 57 69 6e 64 6f 77 48 61 6e 64 6c 65 25 2c 45 73 |WindowHandle%,Es| 00005a90 67 25 29 0d 1a 54 17 20 20 20 ea 20 4d 61 73 6b |g%)..T. . Mask| 00005aa0 25 2c 50 61 74 74 65 72 6e 25 0d 1a 5e 41 20 20 |%,Pattern%..^A | 00005ab0 20 4d 61 73 6b 25 20 20 20 3d 20 28 31 3c 3c 32 | Mask% = (1<<2| 00005ac0 31 29 2b 28 33 31 3c 3c 31 36 29 20 20 20 20 20 |1)+(31<<16) | 00005ad0 20 20 3a 20 f4 20 42 69 74 20 32 31 20 61 6e 64 | : . Bit 21 and| 00005ae0 20 42 69 74 73 20 31 36 2d 32 30 0d 1a 68 3e 20 | Bits 16-20..h> | 00005af0 20 20 50 61 74 74 65 72 6e 25 3d 20 28 31 3c 3c | Pattern%= (1<<| 00005b00 32 31 29 2b 28 45 73 67 25 3c 3c 31 36 29 20 20 |21)+(Esg%<<16) | 00005b10 20 20 20 3a 20 f4 20 53 65 6c 65 63 74 65 64 20 | : . Selected | 00005b20 61 6e 64 20 45 53 47 20 58 0d 1a 72 42 20 20 20 |and ESG X..rB | 00005b30 c8 99 20 22 57 69 6d 70 5f 57 68 69 63 68 49 63 |.. "Wimp_WhichIc| 00005b40 6f 6e 22 2c 57 69 6e 64 6f 77 48 61 6e 64 6c 65 |on",WindowHandle| 00005b50 25 2c 42 6c 6f 63 6b 25 2b 32 30 30 2c 4d 61 73 |%,Block%+200,Mas| 00005b60 6b 25 2c 50 61 74 74 65 72 6e 25 0d 1a 7c 0f 3d |k%,Pattern%..|.=| 00005b70 42 6c 6f 63 6b 25 21 32 30 30 0d 1a 86 05 3a 0d |Block%!200....:.| 00005b80 1a 90 05 3a 0d 1a 9a 69 f4 20 2a 2a 2a 2a 2a 2a |...:...i. ******| 00005b90 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00005be0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 1a a4 |*************...| 00005bf0 67 f4 20 41 4c 54 48 4f 55 47 48 20 41 20 4c 4f |g. ALTHOUGH A LO| 00005c00 54 20 4f 46 20 54 48 45 20 41 42 4f 56 45 20 43 |T OF THE ABOVE C| 00005c10 4f 44 45 20 49 53 20 53 54 49 4c 4c 20 56 45 52 |ODE IS STILL VER| 00005c20 59 20 53 50 45 43 49 46 49 43 20 54 4f 20 54 48 |Y SPECIFIC TO TH| 00005c30 49 53 20 50 52 4f 47 52 41 4d 2c 20 49 54 20 43 |IS PROGRAM, IT C| 00005c40 41 4e 20 42 45 20 45 41 53 49 4c 59 20 41 44 41 |AN BE EASILY ADA| 00005c50 50 54 45 44 0d 1a ae 55 f4 20 41 4c 4c 20 43 4f |PTED...U. ALL CO| 00005c60 44 45 20 42 45 4c 4f 57 20 54 48 49 53 20 4c 49 |DE BELOW THIS LI| 00005c70 4e 45 20 49 53 20 55 4e 4c 49 4b 45 4c 59 20 54 |NE IS UNLIKELY T| 00005c80 4f 20 42 45 20 4f 46 20 4d 55 43 48 20 55 53 45 |O BE OF MUCH USE| 00005c90 20 54 4f 20 41 4e 59 20 4f 54 48 45 52 20 41 50 | TO ANY OTHER AP| 00005ca0 50 4c 49 43 41 54 49 4f 4e 0d 1a b8 69 f4 20 2a |PLICATION...i. *| 00005cb0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00005d10 2a 2a 0d 1a c2 05 3a 0d 1a cc 05 3a 0d 1a d6 33 |**....:....:...3| 00005d20 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. **************| 00005d30 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00005d40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00005d50 1a e0 33 f4 20 53 77 61 70 73 20 74 68 65 20 63 |..3. Swaps the c| 00005d60 61 73 65 20 6f 66 20 6f 66 20 74 68 65 20 73 70 |ase of of the sp| 00005d70 65 63 69 66 69 65 64 20 63 68 61 72 61 63 74 65 |ecified characte| 00005d80 72 2e 0d 1a ea 33 f4 20 2a 2a 2a 2a 2a 2a 2a 2a |r....3. ********| 00005d90 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00005db0 2a 2a 2a 2a 2a 0d 1a f4 26 dd 20 f2 5f 53 77 61 |*****...&. ._Swa| 00005dc0 70 43 61 73 65 28 57 69 6e 64 6f 77 25 2c 49 63 |pCase(Window%,Ic| 00005dd0 6f 6e 25 2c 49 6e 64 65 78 25 29 0d 1a fe 32 20 |on%,Index%)...2 | 00005de0 20 20 e7 20 49 6e 64 65 78 25 3c a9 28 a4 5f 52 | . Index%<.(._R| 00005df0 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e |eadIconText(Main| 00005e00 25 2c 49 63 6f 6e 25 2c a3 29 29 20 8c 0d 1b 08 |%,Icon%,.)) ....| 00005e10 31 20 20 20 20 20 20 49 63 6f 6e 54 65 78 74 24 |1 IconText$| 00005e20 3d a4 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 |=._ReadIconText(| 00005e30 4d 61 69 6e 25 2c 49 63 6f 6e 25 2c a3 29 0d 1b |Main%,Icon%,.)..| 00005e40 12 2c 20 20 20 20 20 20 43 25 3d 97 28 c1 49 63 |., C%=.(.Ic| 00005e50 6f 6e 54 65 78 74 24 2c 49 6e 64 65 78 25 2b 31 |onText$,Index%+1| 00005e60 2c 31 29 29 20 80 20 26 44 46 0d 1b 1c 1f 20 20 |,1)) . &DF.... | 00005e70 20 20 20 20 e7 20 43 25 3e 3d 26 34 31 20 80 20 | . C%>=&41 . | 00005e80 43 25 3c 3d 26 35 41 20 8c 0d 1b 26 32 20 20 20 |C%<=&5A ...&2 | 00005e90 20 20 20 20 20 20 43 24 3d bd 28 97 28 c1 49 63 | C$=.(.(.Ic| 00005ea0 6f 6e 54 65 78 74 24 2c 49 6e 64 65 78 25 2b 31 |onText$,Index%+1| 00005eb0 2c 31 29 29 20 82 20 26 32 30 29 0d 1b 30 26 20 |,1)) . &20)..0& | 00005ec0 20 20 20 20 20 20 20 20 c1 49 63 6f 6e 54 65 78 | .IconTex| 00005ed0 74 24 2c 49 6e 64 65 78 25 2b 31 2c 31 29 3d 43 |t$,Index%+1,1)=C| 00005ee0 24 0d 1b 3a 33 20 20 20 20 20 20 20 20 20 f2 5f |$..:3 ._| 00005ef0 53 65 74 49 63 6f 6e 54 65 78 74 28 49 63 6f 6e |SetIconText(Icon| 00005f00 25 2c 57 69 6e 64 6f 77 25 2c 49 63 6f 6e 54 65 |%,Window%,IconTe| 00005f10 78 74 24 29 0d 1b 44 22 20 20 20 20 20 20 20 20 |xt$)..D" | 00005f20 20 f2 5f 52 65 64 72 61 77 28 4d 61 69 6e 25 2c | ._Redraw(Main%,| 00005f30 49 63 6f 6e 25 29 0d 1b 4e 0b 20 20 20 20 20 20 |Icon%)..N. | 00005f40 cd 0d 1b 58 2c 20 20 20 20 20 20 f2 5f 53 65 74 |...X, ._Set| 00005f50 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 28 49 63 |CaretPosition(Ic| 00005f60 6f 6e 25 2c 49 6e 64 65 78 25 2b 31 29 0d 1b 62 |on%,Index%+1)..b| 00005f70 08 20 20 20 cd 0d 1b 6c 05 e1 0d 1b 76 05 3a 0d |. ...l....v.:.| 00005f80 1b 80 38 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..8. ***********| 00005f90 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00005fb0 2a 2a 2a 2a 2a 2a 2a 0d 1b 8a 38 f4 20 4d 6f 76 |*******...8. Mov| 00005fc0 65 20 43 61 72 65 74 20 44 6f 77 6e 20 54 6f 20 |e Caret Down To | 00005fd0 54 68 65 20 4e 65 78 74 20 45 6e 74 72 79 2c 20 |The Next Entry, | 00005fe0 57 69 74 68 20 57 72 61 70 2d 72 6f 75 6e 64 0d |With Wrap-round.| 00005ff0 1b 94 38 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..8. ***********| 00006000 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006020 2a 2a 2a 2a 2a 2a 2a 0d 1b 9e 17 dd 20 f2 5f 4d |*******..... ._M| 00006030 6f 76 65 44 6f 77 6e 41 6e 45 6e 74 72 79 0d 1b |oveDownAnEntry..| 00006040 a8 4e 20 20 20 e7 20 49 63 6f 6e 25 3c 32 32 20 |.N . Icon%<22 | 00006050 84 20 28 49 63 6f 6e 25 3e 32 33 20 80 20 49 63 |. (Icon%>23 . Ic| 00006060 6f 6e 25 3c 32 36 29 20 8c 20 f2 5f 53 65 74 43 |on%<26) . ._SetC| 00006070 61 72 65 74 50 6f 73 69 74 69 6f 6e 28 49 63 6f |aretPosition(Ico| 00006080 6e 25 2b 32 2c 49 6e 64 65 78 25 29 0d 1b b2 41 |n%+2,Index%)...A| 00006090 20 20 20 e7 20 49 63 6f 6e 25 3d 32 32 20 84 20 | . Icon%=22 . | 000060a0 49 63 6f 6e 25 3d 32 33 20 8c 20 f2 5f 53 65 74 |Icon%=23 . ._Set| 000060b0 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 28 49 63 |CaretPosition(Ic| 000060c0 6f 6e 25 2b 36 2c 49 6e 64 65 78 25 29 0d 1b bc |on%+6,Index%)...| 000060d0 41 20 20 20 e7 20 49 63 6f 6e 25 3e 32 37 20 80 |A . Icon%>27 .| 000060e0 20 49 63 6f 6e 25 3c 33 36 20 8c 20 f2 5f 53 65 | Icon%<36 . ._Se| 000060f0 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 28 49 |tCaretPosition(I| 00006100 63 6f 6e 25 2b 32 2c 49 6e 64 65 78 25 29 0d 1b |con%+2,Index%)..| 00006110 c6 42 20 20 20 e7 20 49 63 6f 6e 25 3d 33 36 20 |.B . Icon%=36 | 00006120 84 20 49 63 6f 6e 25 3d 33 37 20 8c 20 f2 5f 53 |. Icon%=37 . ._S| 00006130 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 28 |etCaretPosition(| 00006140 49 63 6f 6e 25 2d 33 36 2c 49 6e 64 65 78 25 29 |Icon%-36,Index%)| 00006150 0d 1b d0 05 e1 0d 1b da 05 3a 0d 1b e4 32 f4 20 |.........:...2. | 00006160 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006180 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 1b ee 32 |************...2| 00006190 f4 20 4d 6f 76 65 20 43 61 72 65 74 20 55 70 20 |. Move Caret Up | 000061a0 54 6f 20 4e 65 78 74 20 45 6e 74 72 79 2c 20 57 |To Next Entry, W| 000061b0 69 74 68 20 57 72 61 70 2d 72 6f 75 6e 64 0d 1b |ith Wrap-round..| 000061c0 f8 32 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.2. ************| 000061d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000061f0 0d 1c 02 15 dd 20 f2 5f 4d 6f 76 65 55 70 41 6e |..... ._MoveUpAn| 00006200 45 6e 74 72 79 0d 1c 0c 5a 20 20 20 e7 20 28 49 |Entry...Z . (I| 00006210 63 6f 6e 25 3c 32 34 20 80 20 49 63 6f 6e 25 3e |con%<24 . Icon%>| 00006220 31 29 20 84 20 28 49 63 6f 6e 25 3c 33 38 20 80 |1) . (Icon%<38 .| 00006230 20 49 63 6f 6e 25 3e 32 39 29 20 8c 20 f2 5f 53 | Icon%>29) . ._S| 00006240 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 28 |etCaretPosition(| 00006250 49 63 6f 6e 25 2d 32 2c 49 6e 64 65 78 25 29 0d |Icon%-2,Index%).| 00006260 1c 16 41 20 20 20 e7 20 49 63 6f 6e 25 3d 32 38 |..A . Icon%=28| 00006270 20 84 20 49 63 6f 6e 25 3d 32 39 20 8c 20 f2 5f | . Icon%=29 . ._| 00006280 53 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e |SetCaretPosition| 00006290 28 49 63 6f 6e 25 2d 36 2c 49 6e 64 65 78 25 29 |(Icon%-6,Index%)| 000062a0 0d 1c 20 41 20 20 20 e7 20 49 63 6f 6e 25 3d 32 |.. A . Icon%=2| 000062b0 36 20 84 20 49 63 6f 6e 25 3d 32 37 20 8c 20 f2 |6 . Icon%=27 . .| 000062c0 5f 53 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f |_SetCaretPositio| 000062d0 6e 28 49 63 6f 6e 25 2d 32 2c 49 6e 64 65 78 25 |n(Icon%-2,Index%| 000062e0 29 0d 1c 2a 42 20 20 20 e7 20 49 63 6f 6e 25 3d |)..*B . Icon%=| 000062f0 30 30 20 84 20 49 63 6f 6e 25 3d 30 31 20 8c 20 |00 . Icon%=01 . | 00006300 f2 5f 53 65 74 43 61 72 65 74 50 6f 73 69 74 69 |._SetCaretPositi| 00006310 6f 6e 28 49 63 6f 6e 25 2b 33 36 2c 49 6e 64 65 |on(Icon%+36,Inde| 00006320 78 25 29 0d 1c 34 05 e1 0d 1c 3e 05 3a 0d 1c 48 |x%)..4....>.:..H| 00006330 40 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |@. *************| 00006340 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006360 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 1c 52 |*************..R| 00006370 34 f4 20 50 72 69 6e 74 6f 75 74 20 74 68 65 20 |4. Printout the | 00006380 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 |contents of the | 00006390 77 72 69 74 61 62 6c 65 20 69 63 6f 6e 73 21 21 |writable icons!!| 000063a0 21 0d 1c 5c 40 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |!..\@. *********| 000063b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000063e0 2a 0d 1c 66 10 dd 20 f2 5f 50 72 69 6e 74 4f 75 |*..f.. ._PrintOu| 000063f0 74 0d 1c 70 29 20 20 20 c8 8e 20 a4 5f 52 65 61 |t..p) .. ._Rea| 00006400 64 45 53 47 53 65 6c 65 63 74 65 64 28 4f 70 74 |dESGSelected(Opt| 00006410 69 6f 6e 73 25 2c 39 29 20 ca 0d 1c 7a 27 20 20 |ions%,9) ...z' | 00006420 20 20 20 20 c9 20 30 20 3a 20 f2 5f 50 72 69 6e | . 0 : ._Prin| 00006430 74 54 65 78 74 4d 6f 64 65 28 4e 6c 71 4f 4e 24 |tTextMode(NlqON$| 00006440 29 0d 1c 84 28 20 20 20 20 20 20 c9 20 31 20 3a |)...( . 1 :| 00006450 20 f2 5f 50 72 69 6e 74 54 65 78 74 4d 6f 64 65 | ._PrintTextMode| 00006460 28 4e 6c 71 4f 46 46 24 29 0d 1c 8e 23 20 20 20 |(NlqOFF$)...# | 00006470 20 20 20 c9 20 35 20 3a 20 f2 5f 50 72 69 6e 74 | . 5 : ._Print| 00006480 47 72 61 70 68 69 63 73 4d 6f 64 65 0d 1c 98 59 |GraphicsMode...Y| 00006490 20 20 20 20 20 20 7f 20 85 20 32 30 30 31 2c 20 | . . 2001, | 000064a0 22 50 6c 65 61 73 65 20 73 65 6c 65 63 74 20 61 |"Please select a| 000064b0 20 70 72 69 6e 74 6f 75 74 20 6d 6f 64 65 20 66 | printout mode f| 000064c0 72 6f 6d 20 74 68 65 20 6f 70 74 69 6f 6e 73 20 |rom the options | 000064d0 77 69 6e 64 6f 77 20 61 6e 64 20 74 72 79 20 61 |window and try a| 000064e0 67 61 69 6e 22 0d 1c a2 08 20 20 20 cb 0d 1c ac |gain".... ....| 000064f0 05 e1 0d 1c b6 05 3a 0d 1c c0 3b f4 20 2a 2a 2a |......:...;. ***| 00006500 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006530 2a 2a 0d 1c ca 34 f4 20 50 72 69 6e 74 20 6f 75 |**...4. Print ou| 00006540 74 20 74 68 65 20 6c 61 62 65 6c 20 69 6e 20 74 |t the label in t| 00006550 65 78 74 20 6d 6f 64 65 20 28 6e 6f 6e 20 52 69 |ext mode (non Ri| 00006560 73 63 20 4f 53 29 0d 1c d4 3b f4 20 50 61 72 61 |sc OS)...;. Para| 00006570 6d 65 74 65 72 20 69 73 20 61 6e 20 6f 70 74 69 |meter is an opti| 00006580 6f 6e 61 6c 20 63 6f 6e 74 72 6f 6c 20 73 74 72 |onal control str| 00006590 69 6e 67 20 28 69 65 20 4e 4c 51 20 65 74 63 2e |ing (ie NLQ etc.| 000065a0 29 0d 1c de 3b f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |)...;. *********| 000065b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000065d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 1c e8 1e |************....| 000065e0 dd 20 f2 5f 50 72 69 6e 74 54 65 78 74 4d 6f 64 |. ._PrintTextMod| 000065f0 65 28 50 72 65 6c 6f 67 24 29 0d 1c f2 0b 20 20 |e(Prelog$).... | 00006600 20 ea 20 4c 25 0d 1c fc 20 20 20 20 e7 20 a4 5f | . L%... . ._| 00006610 50 72 69 6e 74 65 72 5f 4e 6f 74 4f 6e 4c 69 6e |Printer_NotOnLin| 00006620 65 20 8c 20 e1 0d 1d 06 18 20 20 20 c8 99 20 22 |e . ..... .. "| 00006630 48 6f 75 72 67 6c 61 73 73 5f 4f 6e 22 0d 1d 10 |Hourglass_On"...| 00006640 08 20 20 20 3a 0d 1d 1a 3c 20 20 20 c8 99 20 22 |. :...< .. "| 00006650 4f 53 5f 42 79 74 65 22 2c 33 2c 31 30 20 20 20 |OS_Byte",3,10 | 00006660 20 20 20 20 20 20 20 3a f4 20 53 43 52 45 45 4e | :. SCREEN| 00006670 20 4f 46 46 2c 20 50 52 49 4e 54 45 52 20 4f 4e | OFF, PRINTER ON| 00006680 2e 0d 1d 24 2f 20 20 20 f2 5f 53 65 6e 64 44 61 |...$/ ._SendDa| 00006690 74 61 28 50 72 65 6c 6f 67 24 29 20 20 20 20 20 |ta(Prelog$) | 000066a0 20 3a f4 20 53 65 74 20 4e 4c 51 20 4d 6f 64 65 | :. Set NLQ Mode| 000066b0 0d 1d 2e 36 20 20 20 ef 20 32 37 2c 31 35 20 20 |...6 . 27,15 | 000066c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000066d0 20 3a f4 20 43 6f 6e 64 65 6e 73 65 64 20 70 72 | :. Condensed pr| 000066e0 69 6e 74 20 4f 4e 0d 1d 38 08 20 20 20 3a 0d 1d |int ON..8. :..| 000066f0 42 48 20 20 20 f1 20 22 20 20 22 3b a4 5f 52 65 |BH . " ";._Re| 00006700 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e 25 |adIconText(Main%| 00006710 2c 32 34 2c b9 29 3b 22 7c 20 22 3b a4 5f 52 65 |,24,.);"| ";._Re| 00006720 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e 25 |adIconText(Main%| 00006730 2c 32 36 2c a3 29 0d 1d 4c 3f 20 20 20 f1 20 22 |,26,.)..L? . "| 00006740 20 20 22 3b a4 5f 52 69 67 68 74 4a 75 73 74 69 | ";._RightJusti| 00006750 66 79 28 32 35 2c 33 31 29 3b 22 20 7c 20 22 3b |fy(25,31);" | ";| 00006760 a4 5f 52 69 67 68 74 4a 75 73 74 69 66 79 28 32 |._RightJustify(2| 00006770 37 2c 33 31 29 0d 1d 56 13 20 20 20 f1 20 4c 6f |7,31)..V. . Lo| 00006780 6e 67 45 71 75 61 6c 24 0d 1d 60 16 20 20 20 e3 |ngEqual$..`. .| 00006790 20 4c 25 3d 30 20 b8 20 32 33 20 88 20 32 0d 1d | L%=0 . 23 . 2..| 000067a0 6a 4d 20 20 20 20 20 20 f1 20 22 20 20 22 3b a4 |jM . " ";.| 000067b0 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 |_ReadIconText(Ma| 000067c0 69 6e 25 2c 4c 25 2c b9 29 3b 22 7c 20 22 3b a4 |in%,L%,.);"| ";.| 000067d0 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 |_ReadIconText(Ma| 000067e0 69 6e 25 2c 4c 25 2b 31 2c a3 29 0d 1d 74 08 20 |in%,L%+1,.)..t. | 000067f0 20 20 ed 0d 1d 7e 13 20 20 20 f1 20 4c 6f 6e 67 | ...~. . Long| 00006800 45 71 75 61 6c 24 0d 1d 88 82 20 20 20 f1 20 22 |Equal$.... . "| 00006810 41 3a 20 22 3b a4 5f 52 65 61 64 49 63 6f 6e 54 |A: ";._ReadIconT| 00006820 65 78 74 28 4d 61 69 6e 25 2c 32 34 2c a3 29 3b |ext(Main%,24,.);| 00006830 22 20 2d 20 22 3b a4 5f 52 65 61 64 49 63 6f 6e |" - ";._ReadIcon| 00006840 54 65 78 74 28 4d 61 69 6e 25 2c 32 35 2c a3 29 |Text(Main%,25,.)| 00006850 3b a4 5f 45 6e 64 4f 66 4c 69 6e 65 4c 65 73 73 |;._EndOfLineLess| 00006860 46 69 76 65 3b a4 5f 52 65 61 64 49 63 6f 6e 54 |Five;._ReadIconT| 00006870 65 78 74 28 4d 61 69 6e 25 2c 54 61 70 65 4e 75 |ext(Main%,TapeNu| 00006880 6d 62 65 72 25 2c a3 29 0d 1d 92 4a 20 20 20 f1 |mber%,.)...J .| 00006890 20 22 42 3a 20 22 3b a4 5f 52 65 61 64 49 63 6f | "B: ";._ReadIco| 000068a0 6e 54 65 78 74 28 4d 61 69 6e 25 2c 32 36 2c a3 |nText(Main%,26,.| 000068b0 29 3b 22 20 2d 20 22 3b a4 5f 52 65 61 64 49 63 |);" - ";._ReadIc| 000068c0 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c 32 37 2c |onText(Main%,27,| 000068d0 a3 29 0d 1d 9c 13 20 20 20 f1 20 4c 6f 6e 67 45 |.).... . LongE| 000068e0 71 75 61 6c 24 0d 1d a6 17 20 20 20 e3 20 4c 25 |qual$.... . L%| 000068f0 3d 32 38 20 b8 20 33 36 20 88 20 32 0d 1d b0 4d |=28 . 36 . 2...M| 00006900 20 20 20 20 20 20 f1 20 22 20 20 22 3b a4 5f 52 | . " ";._R| 00006910 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e |eadIconText(Main| 00006920 25 2c 4c 25 2c b9 29 3b 22 7c 20 22 3b a4 5f 52 |%,L%,.);"| ";._R| 00006930 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e |eadIconText(Main| 00006940 25 2c 4c 25 2b 31 2c a3 29 0d 1d ba 08 20 20 20 |%,L%+1,.).... | 00006950 ed 0d 1d c4 13 20 20 20 f1 20 4c 6f 6e 67 4d 69 |..... . LongMi| 00006960 6e 75 73 24 0d 1d ce 08 20 20 20 3a 0d 1d d8 1e |nus$.... :....| 00006970 20 20 20 e3 20 4c 25 3d 30 20 b8 20 bb 28 46 6f | . L%=0 . .(Fo| 00006980 72 6d 4c 65 6e 67 74 68 24 29 0d 1d e2 1e 20 20 |rmLength$).... | 00006990 20 20 20 20 f1 20 3a f4 20 73 68 6f 72 74 20 46 | . :. short F| 000069a0 6f 72 6d 20 46 65 65 64 0d 1d ec 08 20 20 20 ed |orm Feed.... .| 000069b0 0d 1d f6 08 20 20 20 3a 0d 1e 00 3c 20 20 20 c8 |.... :...< .| 000069c0 99 20 22 4f 53 5f 42 79 74 65 22 2c 33 2c 30 30 |. "OS_Byte",3,00| 000069d0 20 20 20 20 20 20 20 20 20 20 3a f4 20 53 43 52 | :. SCR| 000069e0 45 45 4e 20 4f 4e 2c 20 50 52 49 4e 54 45 52 20 |EEN ON, PRINTER | 000069f0 4f 46 46 2e 0d 1e 0a 19 20 20 20 c8 99 20 22 48 |OFF..... .. "H| 00006a00 6f 75 72 67 6c 61 73 73 5f 4f 66 66 22 0d 1e 14 |ourglass_Off"...| 00006a10 05 e1 0d 1e 1e 05 3a 0d 1e 28 40 f4 20 2a 2a 2a |......:..(@. ***| 00006a20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006a50 2a 2a 2a 2a 2a 2a 2a 0d 1e 32 2e f4 20 46 75 6e |*******..2.. Fun| 00006a60 63 74 69 6f 6e 20 74 6f 20 63 68 65 63 6b 20 69 |ction to check i| 00006a70 66 20 70 72 69 6e 74 65 72 20 69 73 20 6f 6e 20 |f printer is on | 00006a80 6c 69 6e 65 2c 0d 1e 3c 40 f4 20 49 66 20 70 72 |line,..<@. If pr| 00006a90 69 6e 74 65 72 20 69 73 20 6e 6f 74 20 6f 6e 6c |inter is not onl| 00006aa0 69 6e 65 20 54 52 55 45 20 69 73 20 72 65 74 75 |ine TRUE is retu| 00006ab0 72 6e 65 64 2c 20 6f 74 68 65 72 77 69 73 65 20 |rned, otherwise | 00006ac0 46 41 4c 53 45 0d 1e 46 40 f4 20 2a 2a 2a 2a 2a |FALSE..F@. *****| 00006ad0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006b00 2a 2a 2a 2a 2a 0d 1e 50 19 dd 20 a4 5f 50 72 69 |*****..P.. ._Pri| 00006b10 6e 74 65 72 5f 4e 6f 74 4f 6e 4c 69 6e 65 0d 1e |nter_NotOnLine..| 00006b20 5a 18 20 20 20 c8 99 20 22 48 6f 75 72 67 6c 61 |Z. .. "Hourgla| 00006b30 73 73 5f 4f 6e 22 0d 1e 64 08 20 20 20 f5 0d 1e |ss_On"..d. ...| 00006b40 6e 23 20 20 20 20 20 20 50 72 69 6e 74 65 72 4f |n# PrinterO| 00006b50 6e 4c 69 6e 65 3d b9 20 3a 20 57 68 61 74 25 3d |nLine=. : What%=| 00006b60 30 0d 1e 78 10 20 20 20 20 20 20 4e 6f 77 25 3d |0..x. Now%=| 00006b70 91 0d 1e 82 17 20 20 20 20 20 20 42 65 66 6f 72 |..... Befor| 00006b80 65 25 3d 96 28 2d 34 29 0d 1e 8c 2f 20 20 20 20 |e%=.(-4).../ | 00006b90 20 20 ef 20 32 2c 31 2c 30 2c 31 2c 30 2c 31 2c | . 2,1,0,1,0,1,| 00006ba0 30 2c 31 2c 30 2c 31 2c 30 2c 31 2c 30 2c 31 2c |0,1,0,1,0,1,0,1,| 00006bb0 30 2c 31 2c 30 2c 33 0d 1e 96 21 20 20 20 20 20 |0,1,0,3...! | 00006bc0 20 4e 6f 77 25 3d 91 20 3a 20 f5 20 fd 20 91 3e | Now%=. : . . .>| 00006bd0 4e 6f 77 25 2b 31 30 30 0d 1e a0 16 20 20 20 20 |Now%+100.... | 00006be0 20 20 41 66 74 65 72 25 3d 96 28 2d 34 29 0d 1e | After%=.(-4)..| 00006bf0 aa 1d 20 20 20 20 20 20 e7 20 42 65 66 6f 72 65 |.. . Before| 00006c00 25 3c 3e 41 66 74 65 72 25 20 8c 0d 1e b4 1f 20 |%<>After% ..... | 00006c10 20 20 20 20 20 20 20 20 c8 99 20 22 48 6f 75 72 | .. "Hour| 00006c20 67 6c 61 73 73 5f 4f 66 66 22 0d 1e be 1c 20 20 |glass_Off".... | 00006c30 20 20 20 20 20 20 20 50 72 69 6e 74 65 72 4f 6e | PrinterOn| 00006c40 4c 69 6e 65 3d a3 0d 1e c8 87 20 20 20 20 20 20 |Line=..... | 00006c50 20 20 20 24 42 6c 6f 63 6b 25 3d 22 54 68 65 20 | $Block%="The | 00006c60 50 72 69 6e 74 65 72 20 69 73 20 6e 6f 74 20 72 |Printer is not r| 00006c70 65 73 70 6f 6e 64 69 6e 67 2c 20 70 6c 65 61 73 |esponding, pleas| 00006c80 65 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 |e check that it | 00006c90 68 61 73 20 70 61 70 65 72 2c 20 69 74 20 69 73 |has paper, it is| 00006ca0 20 73 77 69 74 63 68 65 64 20 6f 6e 20 61 6e 64 | switched on and| 00006cb0 20 69 73 20 6f 6e 2d 6c 69 6e 65 2e 20 54 72 79 | is on-line. Try| 00006cc0 20 61 67 61 69 6e 3f 22 2b bd 28 30 29 0d 1e d2 | again?"+.(0)...| 00006cd0 45 20 20 20 20 20 20 20 20 20 c8 99 20 22 57 69 |E .. "Wi| 00006ce0 6d 70 5f 52 65 70 6f 72 74 45 72 72 6f 72 22 2c |mp_ReportError",| 00006cf0 42 6c 6f 63 6b 25 2c 25 31 30 30 31 31 2c 4d 79 |Block%,%10011,My| 00006d00 54 61 73 6b 4e 61 6d 65 24 20 b8 20 2c 57 68 61 |TaskName$ . ,Wha| 00006d10 74 25 0d 1e dc 1e 20 20 20 20 20 20 20 20 20 c8 |t%.... .| 00006d20 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f 6e 22 |. "Hourglass_On"| 00006d30 0d 1e e6 0b 20 20 20 20 20 20 cd 0d 1e f0 34 20 |.... ....4 | 00006d40 20 20 fd 20 50 72 69 6e 74 65 72 4f 6e 4c 69 6e | . PrinterOnLin| 00006d50 65 20 84 20 28 ac 20 50 72 69 6e 74 65 72 4f 6e |e . (. PrinterOn| 00006d60 4c 69 6e 65 20 80 20 57 68 61 74 25 3d 32 29 0d |Line . What%=2).| 00006d70 1e fa 19 20 20 20 c8 99 20 22 48 6f 75 72 67 6c |... .. "Hourgl| 00006d80 61 73 73 5f 4f 66 66 22 0d 1f 04 15 20 20 20 e7 |ass_Off".... .| 00006d90 20 57 68 61 74 25 3d 32 20 8c 20 3d b9 0d 1f 0e | What%=2 . =....| 00006da0 06 3d a3 0d 1f 18 05 3a 0d 1f 22 48 f4 20 2a 2a |.=.....:.."H. **| 00006db0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006df0 0d 1f 2c 48 f4 20 50 72 69 6e 74 73 20 63 6f 6e |..,H. Prints con| 00006e00 74 65 6e 74 73 20 6f 66 20 49 63 6f 6e 28 49 63 |tents of Icon(Ic| 00006e10 6f 6e 25 29 20 72 69 67 68 74 20 6a 75 73 74 69 |on%) right justi| 00006e20 66 69 65 64 20 69 6e 20 61 20 66 69 65 6c 64 20 |fied in a field | 00006e30 6f 66 20 43 68 61 72 73 0d 1f 36 48 f4 20 2a 2a |of Chars..6H. **| 00006e40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006e80 0d 1f 40 21 dd 20 a4 5f 52 69 67 68 74 4a 75 73 |..@!. ._RightJus| 00006e90 74 69 66 79 28 49 63 6f 6e 25 2c 43 68 61 72 25 |tify(Icon%,Char%| 00006ea0 29 0d 1f 4a 2a 20 20 20 54 65 78 74 24 3d a4 5f |)..J* Text$=._| 00006eb0 52 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 |ReadIconText(Mai| 00006ec0 6e 25 2c 49 63 6f 6e 25 2c a3 29 0d 1f 54 1f 3d |n%,Icon%,.)..T.=| 00006ed0 c4 43 68 61 72 25 2d a9 28 54 65 78 74 24 29 2c |.Char%-.(Text$),| 00006ee0 22 20 22 29 2b 54 65 78 74 24 0d 1f 5e 05 3a 0d |" ")+Text$..^.:.| 00006ef0 1f 68 3d f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.h=. ***********| 00006f00 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006f20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 1f 72 3d |************..r=| 00006f30 f4 20 54 61 62 73 20 74 6f 20 74 68 65 20 65 6e |. Tabs to the en| 00006f40 64 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 65 78 |d of the line ex| 00006f50 63 65 70 74 20 66 6f 72 20 66 69 76 65 20 63 68 |cept for five ch| 00006f60 61 72 61 63 74 65 72 73 2e 0d 1f 7c 3d f4 20 2a |aracters...|=. *| 00006f70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00006fa0 2a 2a 2a 2a 2a 2a 0d 1f 86 19 dd 20 a4 5f 45 6e |******..... ._En| 00006fb0 64 4f 66 4c 69 6e 65 4c 65 73 73 46 69 76 65 0d |dOfLineLessFive.| 00006fc0 1f 90 32 4c 65 6e 67 74 68 25 3d a9 28 a4 5f 52 |..2Length%=.(._R| 00006fd0 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e |eadIconText(Main| 00006fe0 25 2c 54 61 70 65 4e 75 6d 62 65 72 25 2c a3 29 |%,TapeNumber%,.)| 00006ff0 29 0d 1f 9a 29 e7 20 4c 65 6e 67 74 68 25 3d 35 |)...). Length%=5| 00007000 20 8c 20 54 6f 74 4c 65 6e 25 3d 36 33 20 8b 20 | . TotLen%=63 . | 00007010 54 6f 74 4c 65 6e 25 3d 36 33 0d 1f a4 5d 41 6e |TotLen%=63...]An| 00007020 73 24 3d c4 54 6f 74 4c 65 6e 25 2d a9 28 22 20 |s$=.TotLen%-.(" | 00007030 20 41 3a 20 22 2b a4 5f 52 65 61 64 49 63 6f 6e | A: "+._ReadIcon| 00007040 54 65 78 74 28 4d 61 69 6e 25 2c 32 34 2c a3 29 |Text(Main%,24,.)| 00007050 2b 22 20 2d 20 22 2b a4 5f 52 65 61 64 49 63 6f |+" - "+._ReadIco| 00007060 6e 54 65 78 74 28 4d 61 69 6e 25 2c 32 35 2c a3 |nText(Main%,25,.| 00007070 29 29 2c 22 20 22 29 0d 1f ae 09 3d 41 6e 73 24 |))," ")....=Ans$| 00007080 0d 1f b8 05 3a 0d 1f c2 4c f4 20 2a 2a 2a 2a 2a |....:...L. *****| 00007090 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000070d0 2a 0d 1f cc 4c f4 20 54 68 69 73 20 69 73 20 70 |*...L. This is p| 000070e0 75 72 65 6c 79 20 66 6f 72 20 70 72 6f 67 72 61 |urely for progra| 000070f0 6d 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 |m variables and | 00007100 69 73 20 6e 6f 74 68 69 6e 67 20 74 6f 20 64 6f |is nothing to do| 00007110 20 77 69 74 68 20 52 69 73 63 5f 4f 53 0d 1f d6 | with Risc_OS...| 00007120 4c f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |L. *************| 00007130 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00007160 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 1f e0 24 dd 20 f2 |*********...$. .| 00007170 5f 49 6e 69 74 69 61 6c 69 73 65 5f 50 72 6f 67 |_Initialise_Prog| 00007180 72 61 6d 5f 56 61 72 69 61 62 6c 65 73 0d 1f ea |ram_Variables...| 00007190 36 20 20 20 f4 20 56 61 72 69 61 62 6c 65 73 20 |6 . Variables | 000071a0 74 6f 20 64 6f 20 77 69 74 68 20 52 69 73 63 4f |to do with RiscO| 000071b0 53 20 50 44 72 69 76 65 72 20 49 6e 74 65 72 46 |S PDriver InterF| 000071c0 61 63 65 0d 1f f4 1d 20 20 20 de 20 42 6f 78 25 |ace.... . Box%| 000071d0 20 31 36 20 3a 20 de 20 42 6f 78 32 25 20 31 36 | 16 : . Box2% 16| 000071e0 0d 1f fe 13 20 20 20 de 20 4d 61 74 72 69 78 25 |.... . Matrix%| 000071f0 20 31 36 0d 20 08 37 20 20 20 53 63 61 6c 65 58 | 16. .7 ScaleX| 00007200 25 3d 31 20 3a 20 53 63 61 6c 65 59 25 3d 31 20 |%=1 : ScaleY%=1 | 00007210 20 20 3a f4 20 46 6f 72 20 46 75 74 75 72 65 20 | :. For Future | 00007220 45 78 70 61 6e 73 69 6f 6e 3f 0d 20 12 30 20 20 |Expansion?. .0 | 00007230 20 4d 61 74 72 69 78 25 21 30 34 3d 30 20 20 20 | Matrix%!04=0 | 00007240 20 3a 20 4d 61 74 72 69 78 25 21 30 30 3d 32 5e | : Matrix%!00=2^| 00007250 31 36 2a 53 63 61 6c 65 58 25 0d 20 1c 30 20 20 |16*ScaleX%. .0 | 00007260 20 4d 61 74 72 69 78 25 21 30 38 3d 30 20 20 20 | Matrix%!08=0 | 00007270 20 3a 20 4d 61 74 72 69 78 25 21 31 32 3d 32 5e | : Matrix%!12=2^| 00007280 31 36 2a 53 63 61 6c 65 59 25 0d 20 26 12 20 20 |16*ScaleY%. &. | 00007290 20 de 20 4f 72 69 67 69 6e 25 20 38 0d 20 30 05 | . Origin% 8. 0.| 000072a0 3a 0d 20 3a 1e 20 20 20 44 72 61 67 41 53 70 72 |:. :. DragASpr| 000072b0 69 74 65 5f 41 63 74 69 76 65 25 20 3d 20 a3 0d |ite_Active% = ..| 000072c0 20 44 1a 20 20 20 49 63 6f 6e 42 61 72 4d 65 6e | D. IconBarMen| 000072d0 75 25 20 20 20 20 3d 20 30 0d 20 4e 1a 20 20 20 |u% = 0. N. | 000072e0 4d 61 69 6e 57 69 6e 4d 65 6e 75 25 20 20 20 20 |MainWinMenu% | 000072f0 3d 20 31 0d 20 58 1b 20 20 20 54 61 70 65 4e 75 |= 1. X. TapeNu| 00007300 6d 62 65 72 25 20 20 20 20 20 3d 20 35 33 0d 20 |mber% = 53. | 00007310 62 21 20 20 20 4c 6f 6e 67 45 71 75 61 6c 24 20 |b! LongEqual$ | 00007320 20 20 20 20 20 3d 20 c4 36 38 2c 22 3d 22 29 0d | = .68,"=").| 00007330 20 6c 21 20 20 20 4c 6f 6e 67 4d 69 6e 75 73 24 | l! LongMinus$| 00007340 20 20 20 20 20 20 3d 20 c4 36 38 2c 22 2d 22 29 | = .68,"-")| 00007350 0d 20 76 1a 20 20 20 4e 65 77 25 20 20 20 20 20 |. v. New% | 00007360 20 20 20 20 20 20 20 3d 20 b9 0d 20 80 1a 20 20 | = .. .. | 00007370 20 4e 4c 51 25 20 20 20 20 20 20 20 20 20 20 20 | NLQ% | 00007380 20 3d 20 b9 0d 20 8a 23 20 20 20 4e 6c 71 4f 4e | = .. .# NlqON| 00007390 24 20 20 20 20 20 20 20 20 20 20 3d 20 22 32 37 |$ = "27| 000073a0 2c 31 32 30 2c 31 22 0d 20 94 23 20 20 20 4e 6c |,120,1". .# Nl| 000073b0 71 4f 46 46 24 20 20 20 20 20 20 20 20 20 3d 20 |qOFF$ = | 000073c0 22 32 37 2c 31 32 30 2c 30 22 0d 20 9e 23 20 20 |"27,120,0". .# | 000073d0 20 50 72 69 6e 74 46 69 6c 65 24 20 20 20 20 20 | PrintFile$ | 000073e0 20 3d 20 22 50 72 69 6e 74 4f 75 74 22 0d 20 a8 | = "PrintOut". .| 000073f0 72 20 20 20 4c 61 74 65 73 74 56 65 72 25 20 20 |r LatestVer% | 00007400 20 20 20 20 3d 20 32 20 20 20 20 20 20 20 20 20 | = 2 | 00007410 20 20 20 20 3a 20 f4 20 56 65 72 73 69 6f 6e 20 | : . Version | 00007420 4e 75 6d 62 65 72 20 4f 66 20 43 6f 6e 66 69 67 |Number Of Config| 00007430 20 46 69 6c 65 2e 20 43 68 61 6e 67 65 20 49 66 | File. Change If| 00007440 20 46 69 6c 65 20 49 73 20 4d 61 64 65 20 49 6e | File Is Made In| 00007450 63 6f 6d 70 61 74 61 62 6c 65 2e 2e 2e 2e 2e 0d |compatable......| 00007460 20 b2 1b 20 20 20 4f 6c 64 4e 61 6d 65 24 20 20 | .. OldName$ | 00007470 20 20 20 20 20 20 3d 20 22 22 0d 20 bc 05 3a 0d | = "". ..:.| 00007480 20 c6 4f 20 20 20 f4 20 47 69 76 65 20 6e 61 6d | .O . Give nam| 00007490 65 73 20 74 6f 20 73 6f 6d 65 20 6f 66 20 74 68 |es to some of th| 000074a0 65 20 69 63 6f 6e 73 20 65 74 63 2e 20 74 6f 20 |e icons etc. to | 000074b0 6d 61 6b 65 20 74 68 65 20 70 72 6f 67 72 61 6d |make the program| 000074c0 20 6d 6f 72 65 20 72 65 61 64 61 62 6c 65 0d 20 | more readable. | 000074d0 d0 4c 20 20 20 42 61 63 6b 47 72 6f 75 6e 64 25 |.L BackGround%| 000074e0 3d 20 2d 31 20 3a 20 49 63 6f 6e 42 61 72 25 3d |= -1 : IconBar%=| 000074f0 20 2d 32 20 3a 20 50 72 69 6e 74 46 25 3d 34 39 | -2 : PrintF%=49| 00007500 20 3a 20 50 72 69 6e 74 4c 25 3d 34 37 20 3a 20 | : PrintL%=47 : | 00007510 50 72 69 6e 74 44 25 3d 34 38 0d 20 da 72 20 20 |PrintD%=48. .r | 00007520 20 4f 70 74 69 6f 6e 73 4f 4b 46 25 3d 20 32 38 | OptionsOKF%= 28| 00007530 20 3a 20 4f 70 74 69 6f 6e 73 4f 4b 4c 25 3d 32 | : OptionsOKL%=2| 00007540 36 20 3a 20 4f 70 74 69 6f 6e 73 4f 4b 44 25 3d |6 : OptionsOKD%=| 00007550 32 37 20 3a 20 53 61 76 65 49 63 6f 6e 25 3d 20 |27 : SaveIcon%= | 00007560 30 20 3a 20 53 61 76 65 4f 4b 46 25 3d 31 31 20 |0 : SaveOKF%=11 | 00007570 3a 20 53 61 76 65 4f 4b 4c 25 3d 39 20 3a 20 53 |: SaveOKL%=9 : S| 00007580 61 76 65 4f 4b 44 25 20 3d 20 31 30 0d 20 e4 64 |aveOKD% = 10. .d| 00007590 20 20 20 54 6f 70 53 65 74 53 69 64 65 4f 4e 45 | TopSetSideONE| 000075a0 53 74 61 72 74 25 3d 30 30 20 3a 20 54 6f 70 53 |Start%=00 : TopS| 000075b0 65 74 53 69 64 65 4f 4e 45 45 6e 64 25 3d 32 32 |etSideONEEnd%=22| 000075c0 20 3a 20 54 6f 70 53 65 74 53 69 64 65 54 57 4f | : TopSetSideTWO| 000075d0 53 74 61 72 74 25 3d 30 31 20 3a 20 54 6f 70 53 |Start%=01 : TopS| 000075e0 65 74 53 69 64 65 54 57 4f 45 6e 64 25 3d 32 33 |etSideTWOEnd%=23| 000075f0 0d 20 ee 64 20 20 20 42 74 6d 53 65 74 53 69 64 |. .d BtmSetSid| 00007600 65 4f 4e 45 53 74 61 72 74 25 3d 32 38 20 3a 20 |eONEStart%=28 : | 00007610 42 74 6d 53 65 74 53 69 64 65 4f 4e 45 45 6e 64 |BtmSetSideONEEnd| 00007620 25 3d 33 36 20 3a 20 42 74 6d 53 65 74 53 69 64 |%=36 : BtmSetSid| 00007630 65 54 57 4f 53 74 61 72 74 25 3d 32 39 20 3a 20 |eTWOStart%=29 : | 00007640 42 74 6d 53 65 74 53 69 64 65 54 57 4f 45 6e 64 |BtmSetSideTWOEnd| 00007650 25 3d 33 37 0d 20 f8 2a 20 20 20 54 69 74 6c 65 |%=37. .* Title| 00007660 53 69 64 65 4f 4e 45 25 3d 32 34 20 3a 20 54 69 |SideONE%=24 : Ti| 00007670 74 6c 65 53 69 64 65 54 57 4f 25 3d 32 36 0d 21 |tleSideTWO%=26.!| 00007680 02 2c 20 20 20 41 72 74 69 73 74 53 69 64 65 4f |., ArtistSideO| 00007690 4e 45 25 3d 32 35 20 3a 20 41 72 74 69 73 74 53 |NE%=25 : ArtistS| 000076a0 69 64 65 54 57 4f 25 3d 32 37 0d 21 0c 25 20 20 |ideTWO%=27.!.% | 000076b0 20 4e 75 6d 62 65 72 4f 66 4c 69 6e 65 73 25 3d | NumberOfLines%=| 000076c0 35 36 20 3a 20 46 6f 72 6d 61 74 25 3d 36 36 0d |56 : Format%=66.| 000076d0 21 16 14 20 20 20 de 20 50 44 72 69 76 65 72 24 |!.. . PDriver$| 000076e0 28 36 29 0d 21 20 36 20 20 20 50 44 72 69 76 65 |(6).! 6 PDrive| 000076f0 72 24 28 30 29 3d 22 4e 75 6c 6c 3a 22 20 3a 20 |r$(0)="Null:" : | 00007700 50 44 72 69 76 65 72 24 28 31 29 3d 22 4e 4c 51 |PDriver$(1)="NLQ| 00007710 20 50 72 69 6e 74 65 72 22 0d 21 2a 40 20 20 20 | Printer".!*@ | 00007720 50 44 72 69 76 65 72 24 28 32 29 3d 22 44 72 61 |PDriver$(2)="Dra| 00007730 66 74 20 50 72 69 6e 74 65 72 22 20 3a 20 50 44 |ft Printer" : PD| 00007740 72 69 76 65 72 24 28 36 29 3d 22 52 69 73 63 4f |river$(6)="RiscO| 00007750 53 20 44 72 69 76 65 72 22 0d 21 34 15 20 20 20 |S Driver".!4. | 00007760 f2 5f 52 65 61 64 55 73 65 72 44 61 74 61 0d 21 |._ReadUserData.!| 00007770 3e 05 3a 0d 21 48 46 20 20 20 f4 20 47 65 74 20 |>.:.!HF . Get | 00007780 53 57 49 20 4e 75 6d 62 65 72 73 20 66 6f 72 20 |SWI Numbers for | 00007790 66 6f 6e 74 20 63 61 6c 6c 73 20 74 6f 20 73 70 |font calls to sp| 000077a0 65 65 64 20 75 70 20 62 6f 74 74 6c 65 6e 65 63 |eed up bottlenec| 000077b0 6b 20 69 6e 20 63 6f 64 65 0d 21 52 3b 20 20 20 |k in code.!R; | 000077c0 c8 99 20 22 4f 53 5f 53 57 49 4e 75 6d 62 65 72 |.. "OS_SWINumber| 000077d0 46 72 6f 6d 53 74 72 69 6e 67 22 2c 2c 22 46 6f |FromString",,"Fo| 000077e0 6e 74 5f 46 69 6e 64 46 6f 6e 74 22 20 b8 20 46 |nt_FindFont" . F| 000077f0 69 6e 64 25 0d 21 5c 3b 20 20 20 c8 99 20 22 4f |ind%.!\; .. "O| 00007800 53 5f 53 57 49 4e 75 6d 62 65 72 46 72 6f 6d 53 |S_SWINumberFromS| 00007810 74 72 69 6e 67 22 2c 2c 22 46 6f 6e 74 5f 4c 6f |tring",,"Font_Lo| 00007820 73 65 46 6f 6e 74 22 20 b8 20 4c 6f 73 65 25 0d |seFont" . Lose%.| 00007830 21 66 39 20 20 20 c8 99 20 22 4f 53 5f 53 57 49 |!f9 .. "OS_SWI| 00007840 4e 75 6d 62 65 72 46 72 6f 6d 53 74 72 69 6e 67 |NumberFromString| 00007850 22 2c 2c 22 46 6f 6e 74 5f 53 65 74 46 6f 6e 74 |",,"Font_SetFont| 00007860 22 20 b8 20 53 65 74 25 0d 21 70 39 20 20 20 c8 |" . Set%.!p9 .| 00007870 99 20 22 4f 53 5f 53 57 49 4e 75 6d 62 65 72 46 |. "OS_SWINumberF| 00007880 72 6f 6d 53 74 72 69 6e 67 22 2c 2c 22 46 6f 6e |romString",,"Fon| 00007890 74 5f 50 61 69 6e 74 22 20 b8 20 50 61 69 6e 74 |t_Paint" . Paint| 000078a0 25 0d 21 7a 05 3a 0d 21 84 49 20 20 20 44 65 73 |%.!z.:.!.I Des| 000078b0 6b 54 6f 70 53 61 76 65 24 3d 22 52 75 6e 20 22 |kTopSave$="Run "| 000078c0 2b a4 5f 43 6f 6e 76 65 72 74 53 79 73 74 65 6d |+._ConvertSystem| 000078d0 54 6f 53 74 72 69 6e 67 28 22 43 61 73 73 65 74 |ToString("Casset| 000078e0 74 65 24 44 69 72 22 29 2b bd 28 26 30 41 29 0d |te$Dir")+.(&0A).| 000078f0 21 8e 3d 20 20 20 42 61 73 65 46 6f 6e 74 24 3d |!.= BaseFont$=| 00007900 a4 5f 43 6f 6e 76 65 72 74 53 79 73 74 65 6d 54 |._ConvertSystemT| 00007910 6f 53 74 72 69 6e 67 28 22 43 61 73 73 65 74 74 |oString("Cassett| 00007920 65 24 42 61 73 65 46 6f 6e 74 22 29 0d 21 98 3d |e$BaseFont").!.=| 00007930 20 20 20 42 6f 6c 64 46 6f 6e 74 24 3d a4 5f 43 | BoldFont$=._C| 00007940 6f 6e 76 65 72 74 53 79 73 74 65 6d 54 6f 53 74 |onvertSystemToSt| 00007950 72 69 6e 67 28 22 43 61 73 73 65 74 74 65 24 42 |ring("Cassette$B| 00007960 6f 6c 64 46 6f 6e 74 22 29 0d 21 a2 39 20 20 20 |oldFont").!.9 | 00007970 54 61 70 65 4e 75 6d 62 65 72 24 3d a4 5f 43 6f |TapeNumber$=._Co| 00007980 6e 76 65 72 74 53 79 73 74 65 6d 54 6f 53 74 72 |nvertSystemToStr| 00007990 69 6e 67 28 22 54 61 70 65 24 50 72 65 66 69 78 |ing("Tape$Prefix| 000079a0 22 29 0d 21 ac 1b 20 20 20 e7 20 a9 28 54 61 70 |").!.. . .(Tap| 000079b0 65 4e 75 6d 62 65 72 24 29 3e 32 20 8c 0d 21 b6 |eNumber$)>2 ..!.| 000079c0 22 20 20 20 20 20 20 43 6c 69 70 70 65 64 24 3d |" Clipped$=| 000079d0 c0 54 61 70 65 4e 75 6d 62 65 72 24 2c 32 29 0d |.TapeNumber$,2).| 000079e0 21 c0 16 20 20 20 20 20 20 21 42 6c 6f 63 6b 25 |!.. !Block%| 000079f0 3d 39 30 39 30 0d 21 ca 75 20 20 20 20 20 20 45 |=9090.!.u E| 00007a00 72 72 6f 72 24 3d 22 54 61 70 65 24 50 72 65 66 |rror$="Tape$Pref| 00007a10 69 78 20 69 73 20 73 65 74 20 74 6f 20 6c 6f 6e |ix is set to lon| 00007a20 67 65 72 20 74 68 61 6e 20 32 20 63 68 61 72 61 |ger than 2 chara| 00007a30 63 74 65 72 73 2e 20 4f 4b 20 74 6f 20 63 6c 69 |cters. OK to cli| 00007a40 70 20 74 6f 20 22 2b 43 6c 69 70 70 65 64 24 2b |p to "+Clipped$+| 00007a50 22 20 43 61 6e 63 65 6c 20 74 6f 20 61 62 6f 72 |" Cancel to abor| 00007a60 74 20 70 72 6f 67 72 61 6d 22 0d 21 d4 21 20 20 |t program".!.! | 00007a70 20 20 20 20 24 28 42 6c 6f 63 6b 25 2b 34 29 3d | $(Block%+4)=| 00007a80 45 72 72 6f 72 24 20 2b 20 bd 30 0d 21 de 42 20 |Error$ + .0.!.B | 00007a90 20 20 20 20 20 c8 99 20 22 57 69 6d 70 5f 52 65 | .. "Wimp_Re| 00007aa0 70 6f 72 74 45 72 72 6f 72 22 2c 42 6c 6f 63 6b |portError",Block| 00007ab0 25 2c 25 30 31 31 2c 4d 79 54 61 73 6b 4e 61 6d |%,%011,MyTaskNam| 00007ac0 65 24 20 b8 20 2c 52 65 73 75 6c 74 25 0d 21 e8 |e$ . ,Result%.!.| 00007ad0 23 20 20 20 20 20 20 e7 20 52 65 73 75 6c 74 25 |# . Result%| 00007ae0 3d 32 20 8c 20 f2 5f 43 6c 6f 73 65 44 6f 77 6e |=2 . ._CloseDown| 00007af0 0d 21 f2 24 20 20 20 20 20 20 54 61 70 65 4e 75 |.!.$ TapeNu| 00007b00 6d 62 65 72 24 3d 43 6c 69 70 70 65 64 24 2b 22 |mber$=Clipped$+"| 00007b10 20 30 30 22 0d 21 fc 08 20 20 20 cc 0d 22 06 27 | 00".!.. ..".'| 00007b20 20 20 20 20 20 20 54 61 70 65 4e 75 6d 62 65 72 | TapeNumber| 00007b30 24 3d 54 61 70 65 4e 75 6d 62 65 72 24 2b 22 20 |$=TapeNumber$+" | 00007b40 30 30 22 0d 22 10 08 20 20 20 cd 0d 22 1a 05 e1 |00".".. .."...| 00007b50 0d 22 24 05 3a 0d 22 2e 37 f4 20 2a 2a 2a 2a 2a |."$.:.".7. *****| 00007b60 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00007b80 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 22 38 37 |************."87| 00007b90 f4 20 49 66 20 76 61 72 69 61 62 6c 65 20 64 6f |. If variable do| 00007ba0 65 73 20 6e 6f 74 20 65 78 69 73 74 2c 20 72 65 |es not exist, re| 00007bb0 74 75 72 6e 20 61 20 4e 55 4c 4c 20 73 74 72 69 |turn a NULL stri| 00007bc0 6e 67 2e 0d 22 42 37 f4 20 2a 2a 2a 2a 2a 2a 2a |ng.."B7. *******| 00007bd0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00007bf0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 22 4c 28 dd 20 |**********."L(. | 00007c00 a4 5f 43 6f 6e 76 65 72 74 53 79 73 74 65 6d 54 |._ConvertSystemT| 00007c10 6f 53 74 72 69 6e 67 28 56 61 72 69 61 62 6c 65 |oString(Variable| 00007c20 24 29 0d 22 56 1c 20 20 20 ea 20 4c 6f 6f 70 25 |$)."V. . Loop%| 00007c30 2c 46 6c 61 67 25 2c 41 6e 73 77 65 72 24 0d 22 |,Flag%,Answer$."| 00007c40 60 31 20 20 20 e3 20 4c 6f 6f 70 25 3d 31 30 30 |`1 . Loop%=100| 00007c50 20 b8 20 31 35 30 20 88 20 34 20 3a 20 42 6c 6f | . 150 . 4 : Blo| 00007c60 63 6b 25 21 4c 6f 6f 70 25 3d 30 20 3a 20 ed 0d |ck%!Loop%=0 : ..| 00007c70 22 6a 3f 20 20 20 c8 99 20 22 58 4f 53 5f 52 65 |"j? .. "XOS_Re| 00007c80 61 64 56 61 72 56 61 6c 22 2c 56 61 72 69 61 62 |adVarVal",Variab| 00007c90 6c 65 24 2c 42 6c 6f 63 6b 25 2b 31 30 30 2c 35 |le$,Block%+100,5| 00007ca0 30 2c 30 2c 33 20 b8 20 3b 46 6c 61 67 25 0d 22 |0,0,3 . ;Flag%."| 00007cb0 74 44 20 20 20 e7 20 28 46 6c 61 67 25 20 80 20 |tD . (Flag% . | 00007cc0 31 29 20 8c 20 41 6e 73 77 65 72 24 3d 22 22 20 |1) . Answer$="" | 00007cd0 8b 20 41 6e 73 77 65 72 24 3d a4 5f 52 65 61 64 |. Answer$=._Read| 00007ce0 53 74 72 69 6e 67 28 42 6c 6f 63 6b 25 2b 31 30 |String(Block%+10| 00007cf0 30 29 0d 22 7e 0c 3d 41 6e 73 77 65 72 24 0d 22 |0)."~.=Answer$."| 00007d00 88 05 3a 0d 22 92 53 f4 20 2a 2a 2a 2a 2a 2a 2a |..:.".S. *******| 00007d10 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00007d50 2a 2a 2a 2a 2a 2a 0d 22 9c 53 f4 20 53 74 6f 72 |******.".S. Stor| 00007d60 65 20 55 73 65 72 20 43 6f 6e 66 69 67 75 72 61 |e User Configura| 00007d70 62 6c 65 20 53 65 74 74 69 6e 67 73 20 49 6e 20 |ble Settings In | 00007d80 43 6f 6e 66 69 67 20 46 69 6c 65 20 57 69 74 68 |Config File With| 00007d90 69 6e 20 21 43 61 73 73 65 74 74 65 20 41 70 70 |in !Cassette App| 00007da0 6c 69 63 61 74 69 6f 6e 2e 0d 22 a6 53 f4 20 2a |lication..".S. *| 00007db0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00007df0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 22 b0 15 |************."..| 00007e00 dd 20 f2 5f 53 74 6f 72 65 55 73 65 72 44 61 74 |. ._StoreUserDat| 00007e10 61 0d 22 ba 33 20 20 20 44 61 74 61 46 69 6c 65 |a.".3 DataFile| 00007e20 25 3d ae 22 3c 43 61 73 73 65 74 74 65 24 44 69 |%=."<Cassette$Di| 00007e30 72 3e 2e 52 65 73 6f 75 72 63 65 73 2e 43 6f 6e |r>.Resources.Con| 00007e40 66 69 67 22 0d 22 c4 1e 20 20 20 d5 20 23 44 61 |fig".".. . #Da| 00007e50 74 61 46 69 6c 65 25 2c 4c 61 74 65 73 74 56 65 |taFile%,LatestVe| 00007e60 72 25 0d 22 ce 31 20 20 20 f1 20 23 44 61 74 61 |r%.".1 . #Data| 00007e70 46 69 6c 65 25 2c a4 5f 52 65 61 64 49 63 6f 6e |File%,._ReadIcon| 00007e80 54 65 78 74 28 4f 70 74 69 6f 6e 73 25 2c 31 32 |Text(Options%,12| 00007e90 2c a3 29 0d 22 d8 31 20 20 20 f1 20 23 44 61 74 |,.).".1 . #Dat| 00007ea0 61 46 69 6c 65 25 2c a4 5f 52 65 61 64 49 63 6f |aFile%,._ReadIco| 00007eb0 6e 54 65 78 74 28 4f 70 74 69 6f 6e 73 25 2c 31 |nText(Options%,1| 00007ec0 36 2c a3 29 0d 22 e2 31 20 20 20 f1 20 23 44 61 |6,.).".1 . #Da| 00007ed0 74 61 46 69 6c 65 25 2c a4 5f 52 65 61 64 49 63 |taFile%,._ReadIc| 00007ee0 6f 6e 54 65 78 74 28 4f 70 74 69 6f 6e 73 25 2c |onText(Options%,| 00007ef0 32 30 2c a3 29 0d 22 ec 31 20 20 20 f1 20 23 44 |20,.).".1 . #D| 00007f00 61 74 61 46 69 6c 65 25 2c a4 5f 52 65 61 64 45 |ataFile%,._ReadE| 00007f10 53 47 53 65 6c 65 63 74 65 64 28 4f 70 74 69 6f |SGSelected(Optio| 00007f20 6e 73 25 2c 39 29 0d 22 f6 13 20 20 20 d9 20 23 |ns%,9).".. . #| 00007f30 44 61 74 61 46 69 6c 65 25 0d 23 00 1f 20 20 20 |DataFile%.#.. | 00007f40 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 4d |.. "Wimp_CreateM| 00007f50 65 6e 75 22 2c 2c 2d 31 0d 23 0a 05 e1 0d 23 14 |enu",,-1.#....#.| 00007f60 05 3a 0d 23 1e 52 f4 20 2a 2a 2a 2a 2a 2a 2a 2a |.:.#.R. ********| 00007f70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00007fb0 2a 2a 2a 2a 0d 23 28 52 f4 20 52 65 61 64 20 55 |****.#(R. Read U| 00007fc0 73 65 72 20 43 6f 6e 66 69 67 75 72 61 62 6c 65 |ser Configurable| 00007fd0 20 53 65 74 74 69 6e 67 73 20 49 6e 20 43 6f 6e | Settings In Con| 00007fe0 66 69 67 20 46 69 6c 65 20 57 69 74 68 69 6e 20 |fig File Within | 00007ff0 21 43 61 73 73 65 74 74 65 20 41 70 70 6c 69 63 |!Cassette Applic| 00008000 61 74 69 6f 6e 2e 0d 23 32 52 f4 20 2a 2a 2a 2a |ation..#2R. ****| 00008010 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008050 2a 2a 2a 2a 2a 2a 2a 2a 0d 23 3c 14 dd 20 f2 5f |********.#<.. ._| 00008060 52 65 61 64 55 73 65 72 44 61 74 61 0d 23 46 33 |ReadUserData.#F3| 00008070 20 20 20 44 61 74 61 46 69 6c 65 25 3d 8e 22 3c | DataFile%=."<| 00008080 43 61 73 73 65 74 74 65 24 44 69 72 3e 2e 52 65 |Cassette$Dir>.Re| 00008090 73 6f 75 72 63 65 73 2e 43 6f 6e 66 69 67 22 0d |sources.Config".| 000080a0 23 50 18 20 20 20 e7 20 44 61 74 61 46 69 6c 65 |#P. . DataFile| 000080b0 25 3d 30 20 8c 20 e1 0d 23 5a 17 20 20 20 56 65 |%=0 . ..#Z. Ve| 000080c0 72 25 3d 9a 23 44 61 74 61 46 69 6c 65 25 0d 23 |r%=.#DataFile%.#| 000080d0 64 1a 20 20 20 e8 20 23 44 61 74 61 46 69 6c 65 |d. . #DataFile| 000080e0 25 2c 4e 6c 71 4f 4e 24 0d 23 6e 1b 20 20 20 e8 |%,NlqON$.#n. .| 000080f0 20 23 44 61 74 61 46 69 6c 65 25 2c 4e 6c 71 4f | #DataFile%,NlqO| 00008100 46 46 24 0d 23 78 1f 20 20 20 e8 20 23 44 61 74 |FF$.#x. . #Dat| 00008110 61 46 69 6c 65 25 2c 46 6f 72 6d 4c 65 6e 67 74 |aFile%,FormLengt| 00008120 68 24 0d 23 82 27 20 20 20 e8 20 23 44 61 74 61 |h$.#.' . #Data| 00008130 46 69 6c 65 25 2c 53 65 6c 65 63 74 65 64 50 72 |File%,SelectedPr| 00008140 69 6e 74 65 72 49 63 6f 6e 0d 23 8c 13 20 20 20 |interIcon.#.. | 00008150 d9 20 23 44 61 74 61 46 69 6c 65 25 0d 23 96 44 |. #DataFile%.#.D| 00008160 20 20 20 e7 20 56 65 72 25 3c 4c 61 74 65 73 74 | . Ver%<Latest| 00008170 56 65 72 25 20 8c 20 85 20 31 30 30 30 2c 22 49 |Ver% . . 1000,"I| 00008180 6e 63 6f 6d 70 61 74 69 62 6c 65 20 43 6f 6e 66 |ncompatible Conf| 00008190 69 67 75 72 61 74 69 6f 6e 20 46 69 6c 65 2e 22 |iguration File."| 000081a0 0d 23 a0 5b 20 20 20 e7 20 53 65 6c 65 63 74 65 |.#.[ . Selecte| 000081b0 64 50 72 69 6e 74 65 72 49 63 6f 6e 3d 31 35 20 |dPrinterIcon=15 | 000081c0 8c 20 53 65 6c 65 63 74 65 64 50 72 69 6e 74 65 |. SelectedPrinte| 000081d0 72 49 63 6f 6e 3d 35 20 3a 20 f4 20 46 75 64 67 |rIcon=5 : . Fudg| 000081e0 65 20 66 6f 72 20 74 65 6d 70 6c 61 74 65 20 63 |e for template c| 000081f0 68 61 6e 67 65 20 2d 20 53 74 75 0d 23 aa 2d 20 |hange - Stu.#.- | 00008200 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 74 28 | ._SetIconText(| 00008210 32 30 2c 4f 70 74 69 6f 6e 73 25 2c 46 6f 72 6d |20,Options%,Form| 00008220 4c 65 6e 67 74 68 24 29 0d 23 b4 1c 20 20 20 f2 |Length$).#.. .| 00008230 5f 52 65 64 72 61 77 28 4f 70 74 69 6f 6e 73 25 |_Redraw(Options%| 00008240 2c 32 30 29 0d 23 be 28 20 20 20 f2 5f 53 65 74 |,20).#.( ._Set| 00008250 49 63 6f 6e 54 65 78 74 28 31 32 2c 4f 70 74 69 |IconText(12,Opti| 00008260 6f 6e 73 25 2c 4e 6c 71 4f 4e 24 29 0d 23 c8 1c |ons%,NlqON$).#..| 00008270 20 20 20 f2 5f 52 65 64 72 61 77 28 4f 70 74 69 | ._Redraw(Opti| 00008280 6f 6e 73 25 2c 31 32 29 0d 23 d2 29 20 20 20 f2 |ons%,12).#.) .| 00008290 5f 53 65 74 49 63 6f 6e 54 65 78 74 28 31 36 2c |_SetIconText(16,| 000082a0 4f 70 74 69 6f 6e 73 25 2c 4e 6c 71 4f 46 46 24 |Options%,NlqOFF$| 000082b0 29 0d 23 dc 1c 20 20 20 f2 5f 52 65 64 72 61 77 |).#.. ._Redraw| 000082c0 28 4f 70 74 69 6f 6e 73 25 2c 31 36 29 0d 23 e6 |(Options%,16).#.| 000082d0 3e 20 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 |> ._SetIconTex| 000082e0 74 28 34 35 2c 4d 61 69 6e 25 2c 50 44 72 69 76 |t(45,Main%,PDriv| 000082f0 65 72 24 28 53 65 6c 65 63 74 65 64 50 72 69 6e |er$(SelectedPrin| 00008300 74 65 72 49 63 6f 6e 2b 31 29 29 0d 23 f0 19 20 |terIcon+1)).#.. | 00008310 20 20 f2 5f 52 65 64 72 61 77 28 4d 61 69 6e 25 | ._Redraw(Main%| 00008320 2c 34 35 29 0d 23 fa 35 20 20 20 f2 5f 53 65 6c |,45).#.5 ._Sel| 00008330 65 63 74 49 63 6f 6e 28 4f 70 74 69 6f 6e 73 25 |ectIcon(Options%| 00008340 2c 30 2c 53 65 6c 65 63 74 65 64 50 72 69 6e 74 |,0,SelectedPrint| 00008350 65 72 49 63 6f 6e 3d 30 29 0d 24 04 35 20 20 20 |erIcon=0).$.5 | 00008360 f2 5f 53 65 6c 65 63 74 49 63 6f 6e 28 4f 70 74 |._SelectIcon(Opt| 00008370 69 6f 6e 73 25 2c 31 2c 53 65 6c 65 63 74 65 64 |ions%,1,Selected| 00008380 50 72 69 6e 74 65 72 49 63 6f 6e 3d 31 29 0d 24 |PrinterIcon=1).$| 00008390 0e 35 20 20 20 f2 5f 53 65 6c 65 63 74 49 63 6f |.5 ._SelectIco| 000083a0 6e 28 4f 70 74 69 6f 6e 73 25 2c 35 2c 53 65 6c |n(Options%,5,Sel| 000083b0 65 63 74 65 64 50 72 69 6e 74 65 72 49 63 6f 6e |ectedPrinterIcon| 000083c0 3d 35 29 0d 24 18 05 e1 0d 24 22 05 3a 0d 24 2c |=5).$....$".:.$,| 000083d0 27 dd 20 f2 5f 53 65 6c 65 63 74 49 63 6f 6e 28 |'. ._SelectIcon(| 000083e0 57 69 6e 64 6f 77 25 2c 49 63 6f 6e 25 2c 46 6c |Window%,Icon%,Fl| 000083f0 61 67 25 29 0d 24 36 17 20 20 20 42 6c 6f 63 6b |ag%).$6. Block| 00008400 25 21 30 3d 57 69 6e 64 6f 77 25 0d 24 40 15 20 |%!0=Window%.$@. | 00008410 20 20 42 6c 6f 63 6b 25 21 34 3d 49 63 6f 6e 25 | Block%!4=Icon%| 00008420 0d 24 4a 1e 20 20 20 42 6c 6f 63 6b 25 21 38 3d |.$J. Block%!8=| 00008430 28 2d 31 2a 46 6c 61 67 25 29 3c 3c 32 31 0d 24 |(-1*Flag%)<<21.$| 00008440 54 16 20 20 20 42 6c 6f 63 6b 25 21 31 32 3d 31 |T. Block%!12=1| 00008450 3c 3c 32 31 0d 24 5e 25 20 20 20 c8 99 20 22 57 |<<21.$^% .. "W| 00008460 69 6d 70 5f 53 65 74 49 63 6f 6e 53 74 61 74 65 |imp_SetIconState| 00008470 22 2c 2c 42 6c 6f 63 6b 25 0d 24 68 05 e1 0d 24 |",,Block%.$h...$| 00008480 72 05 3a 0d 24 7c 5e f4 20 2a 2a 2a 2a 2a 2a 2a |r.:.$|^. *******| 00008490 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000084e0 2a 0d 24 86 5e f4 20 54 68 69 73 20 54 61 6b 65 |*.$.^. This Take| 000084f0 73 20 41 20 27 4e 75 6d 65 72 69 63 27 20 53 74 |s A 'Numeric' St| 00008500 72 69 6e 67 2c 20 42 72 65 61 6b 73 20 69 74 20 |ring, Breaks it | 00008510 44 6f 77 6e 2c 20 41 6e 64 20 53 65 6e 64 73 20 |Down, And Sends | 00008520 54 68 65 20 56 61 6c 75 65 20 54 6f 20 54 68 65 |The Value To The| 00008530 20 4f 75 74 70 75 74 20 44 65 76 69 63 65 2e 0d | Output Device..| 00008540 24 90 5e f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |$.^. ***********| 00008550 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008590 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 24 9a |*************.$.| 000085a0 17 dd 20 f2 5f 53 65 6e 64 44 61 74 61 28 44 61 |.. ._SendData(Da| 000085b0 74 61 24 29 0d 24 a4 17 20 20 20 ea 20 46 69 6e |ta$).$.. . Fin| 000085c0 69 73 68 25 2c 43 6f 75 6e 74 25 0d 24 ae 22 20 |ish%,Count%.$." | 000085d0 20 20 43 6f 75 6e 74 25 3d 30 20 3a 20 46 69 6e | Count%=0 : Fin| 000085e0 69 73 68 25 3d a9 28 44 61 74 61 24 29 0d 24 b8 |ish%=.(Data$).$.| 000085f0 47 20 20 20 44 61 74 61 24 3d 44 61 74 61 24 2b |G Data$=Data$+| 00008600 22 2c 22 20 3a 20 f4 20 54 68 69 73 20 69 73 20 |"," : . This is | 00008610 63 68 65 61 74 69 6e 67 2e 2e 2e 53 65 65 20 57 |cheating...See W| 00008620 48 49 4c 45 20 43 6f 6e 64 69 74 69 6f 6e 21 21 |HILE Condition!!| 00008630 21 21 21 21 0d 24 c2 08 20 20 20 f5 0d 24 cc 11 |!!!!.$.. ..$..| 00008640 20 20 20 20 20 20 53 75 62 24 3d 22 22 0d 24 d6 | Sub$="".$.| 00008650 14 20 20 20 20 20 20 50 6f 69 6e 74 65 72 25 3d |. Pointer%=| 00008660 31 0d 24 e0 24 20 20 20 20 20 20 c8 95 20 c1 44 |1.$.$ .. .D| 00008670 61 74 61 24 2c 50 6f 69 6e 74 65 72 25 2c 31 29 |ata$,Pointer%,1)| 00008680 3c 3e 22 2c 22 0d 24 ea 29 20 20 20 20 20 20 20 |<>",".$.) | 00008690 20 20 53 75 62 24 3d 53 75 62 24 2b c1 44 61 74 | Sub$=Sub$+.Dat| 000086a0 61 24 2c 50 6f 69 6e 74 65 72 25 2c 31 29 0d 24 |a$,Pointer%,1).$| 000086b0 f4 18 20 20 20 20 20 20 20 20 20 50 6f 69 6e 74 |.. Point| 000086c0 65 72 25 2b 3d 31 0d 24 fe 0b 20 20 20 20 20 20 |er%+=1.$.. | 000086d0 ce 0d 25 08 22 20 20 20 20 20 20 44 61 74 61 24 |..%." Data$| 000086e0 3d c1 44 61 74 61 24 2c 50 6f 69 6e 74 65 72 25 |=.Data$,Pointer%| 000086f0 2b 31 29 0d 25 12 17 20 20 20 20 20 20 f1 20 bd |+1).%.. . .| 00008700 28 bb 28 53 75 62 24 29 29 3b 0d 25 1c 21 20 20 |(.(Sub$));.%.! | 00008710 20 20 20 20 43 6f 75 6e 74 25 3d 43 6f 75 6e 74 | Count%=Count| 00008720 25 2b a9 28 53 75 62 24 29 2b 31 0d 25 26 18 20 |%+.(Sub$)+1.%&. | 00008730 20 20 fd 20 43 6f 75 6e 74 25 3e 3d 46 69 6e 69 | . Count%>=Fini| 00008740 73 68 25 0d 25 30 05 e1 0d 25 3a 05 3a 0d 25 44 |sh%.%0...%:.:.%D| 00008750 67 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |g***************| 00008760 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000087b0 2a 2a 2a 2a 0d 25 4e 65 f4 20 49 66 20 54 68 65 |****.%Ne. If The| 000087c0 20 50 72 6f 67 72 61 6d 20 57 61 73 20 53 74 61 | Program Was Sta| 000087d0 72 74 65 64 20 42 79 20 44 6f 75 62 6c 65 20 43 |rted By Double C| 000087e0 6c 69 63 6b 69 6e 67 20 4f 6e 20 41 20 26 42 30 |licking On A &B0| 000087f0 46 20 46 69 6c 65 20 54 68 65 6e 20 4c 6f 61 64 |F File Then Load| 00008800 20 54 68 65 20 46 69 6c 65 20 41 6e 64 20 44 69 | The File And Di| 00008810 73 70 6c 61 79 20 49 74 2e 0d 25 58 67 2a 2a 2a |splay It..%Xg***| 00008820 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008880 0d 25 62 1a dd 20 f2 5f 4c 6f 61 64 46 69 6c 65 |.%b.. ._LoadFile| 00008890 49 66 52 65 71 75 69 72 65 64 0d 25 6c 20 20 20 |IfRequired.%l | 000088a0 20 c8 99 20 22 4f 53 5f 47 65 74 45 6e 76 22 20 | .. "OS_GetEnv" | 000088b0 b8 20 43 6f 6d 6d 61 6e 64 24 0d 25 76 1e 20 20 |. Command$.%v. | 000088c0 20 49 25 3d a7 43 6f 6d 6d 61 6e 64 24 2c 22 20 | I%=.Command$," | 000088d0 2d 4c 6f 61 64 20 22 29 0d 25 80 0d 20 20 20 e7 |-Load ").%.. .| 000088e0 20 49 25 20 8c 0d 25 8a 18 20 20 20 20 20 20 49 | I% ..%.. I| 000088f0 25 2b 3d a9 22 20 2d 4c 6f 61 64 20 22 0d 25 94 |%+=." -Load ".%.| 00008900 28 20 20 20 20 20 20 c8 95 20 c1 43 6f 6d 6d 61 |( .. .Comma| 00008910 6e 64 24 2c 49 25 2c 31 29 3d 22 20 22 3a 49 25 |nd$,I%,1)=" ":I%| 00008920 2b 3d 31 3a ce 0d 25 9e 21 20 20 20 20 20 20 46 |+=1:..%.! F| 00008930 69 6c 65 4e 61 6d 65 24 3d c1 43 6f 6d 6d 61 6e |ileName$=.Comman| 00008940 64 24 2c 49 25 29 0d 25 a8 35 20 20 20 20 20 20 |d$,I%).%.5 | 00008950 46 69 6c 65 4e 61 6d 65 24 3d c0 46 69 6c 65 4e |FileName$=.FileN| 00008960 61 6d 65 24 2c a7 46 69 6c 65 4e 61 6d 65 24 2b |ame$,.FileName$+| 00008970 22 20 22 2c 22 20 22 29 2d 31 29 0d 25 b2 4c 20 |" "," ")-1).%.L | 00008980 20 20 20 20 20 e7 20 46 69 6c 65 4e 61 6d 65 24 | . FileName$| 00008990 3c 3e 22 22 20 8c 20 53 74 61 72 74 57 69 74 68 |<>"" . StartWith| 000089a0 4c 6f 61 64 3d b9 20 3a 20 f2 5f 44 6f 41 63 74 |Load=. : ._DoAct| 000089b0 75 61 6c 4c 6f 61 64 54 68 69 6e 67 28 46 69 6c |ualLoadThing(Fil| 000089c0 65 4e 61 6d 65 24 29 0d 25 bc 08 20 20 20 cc 0d |eName$).%.. ..| 000089d0 25 c6 19 20 20 20 20 20 20 53 74 61 72 74 57 69 |%.. StartWi| 000089e0 74 68 4c 6f 61 64 3d a3 0d 25 d0 08 20 20 20 cd |thLoad=..%.. .| 000089f0 0d 25 da 05 e1 0d 25 e4 05 3a 0d 25 ee 67 2a 2a |.%....%..:.%.g**| 00008a00 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008a60 2a 0d 25 f8 65 f4 20 53 65 74 73 20 54 68 65 20 |*.%.e. Sets The | 00008a70 53 61 76 65 20 4e 61 6d 65 20 49 6e 20 54 68 65 |Save Name In The| 00008a80 20 53 61 76 65 20 49 63 6f 6e 20 54 6f 20 54 68 | Save Icon To Th| 00008a90 65 20 46 75 6c 6c 20 50 61 74 68 6e 61 6d 65 20 |e Full Pathname | 00008aa0 4f 66 20 54 68 65 20 4c 6f 61 64 65 64 20 46 69 |Of The Loaded Fi| 00008ab0 6c 65 2c 20 41 6e 64 20 54 68 65 6e 20 4c 6f 61 |le, And Then Loa| 00008ac0 64 73 20 49 74 2e 0d 26 02 67 2a 2a 2a 2a 2a 2a |ds It..&.g******| 00008ad0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008b20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 26 0c |*************.&.| 00008b30 24 dd 20 f2 5f 44 6f 41 63 74 75 61 6c 4c 6f 61 |$. ._DoActualLoa| 00008b40 64 54 68 69 6e 67 28 46 69 6c 65 4e 61 6d 65 24 |dThing(FileName$| 00008b50 29 0d 26 16 27 20 20 20 f2 5f 53 65 74 49 63 6f |).&.' ._SetIco| 00008b60 6e 54 65 78 74 28 34 2c 53 61 76 65 25 2c 46 69 |nText(4,Save%,Fi| 00008b70 6c 65 4e 61 6d 65 24 29 0d 26 20 1c 20 20 20 f2 |leName$).& . .| 00008b80 5f 4c 6f 61 64 44 61 74 61 28 46 69 6c 65 4e 61 |_LoadData(FileNa| 00008b90 6d 65 24 29 0d 26 2a 1a 20 20 20 f2 5f 4f 70 65 |me$).&*. ._Ope| 00008ba0 6e 4d 61 69 6e 57 69 6e 64 6f 77 28 a3 29 0d 26 |nMainWindow(.).&| 00008bb0 34 05 e1 0d 26 3e 05 3a 0d 26 48 44 2a 2a 2a 2a |4...&>.:.&HD****| 00008bc0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008bf0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 26 52 42 |************.&RB| 00008c00 f4 20 49 6e 69 74 69 61 6c 69 73 65 73 20 55 73 |. Initialises Us| 00008c10 65 72 20 53 70 72 69 74 65 20 41 72 65 61 2c 20 |er Sprite Area, | 00008c20 61 6e 64 20 4c 6f 61 64 73 20 73 70 72 69 74 65 |and Loads sprite| 00008c30 20 66 69 6c 65 20 69 6e 74 6f 20 69 74 2e 0d 26 | file into it..&| 00008c40 5c 3c f4 20 4c 6f 61 64 20 73 70 72 69 74 65 20 |\<. Load sprite | 00008c50 66 69 6c 65 20 61 70 70 72 6f 70 72 69 61 74 65 |file appropriate| 00008c60 20 74 6f 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 | to current mode| 00008c70 20 76 69 61 20 65 78 74 6e 2e 0d 26 66 44 2a 2a | via extn..&fD**| 00008c80 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00008cb0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 26 |**************.&| 00008cc0 70 1a dd 20 f2 5f 49 6e 69 74 69 61 6c 69 73 65 |p.. ._Initialise| 00008cd0 5f 53 70 72 69 74 65 73 0d 26 7a 22 20 20 20 ea |_Sprites.&z" .| 00008ce0 20 79 65 69 67 66 61 63 74 6f 72 25 2c 65 78 74 | yeigfactor%,ext| 00008cf0 24 2c 66 68 61 6e 64 6c 65 25 0d 26 84 08 20 20 |$,fhandle%.&.. | 00008d00 20 3a 0d 26 8e 17 20 20 20 e7 20 56 65 72 73 69 | :.&.. . Versi| 00008d10 6f 6e 3e 3d 33 30 30 20 8c 0d 26 98 64 20 20 20 |on>=300 ..&.d | 00008d20 20 20 20 c8 99 20 22 4f 53 5f 52 65 61 64 4d 6f | .. "OS_ReadMo| 00008d30 64 65 56 61 72 69 61 62 6c 65 22 2c 2d 31 2c 35 |deVariable",-1,5| 00008d40 20 b8 20 2c 2c 79 65 69 67 66 61 63 74 6f 72 25 | . ,,yeigfactor%| 00008d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 | : | 00008d60 f4 20 52 65 61 64 20 74 68 65 20 63 75 72 72 65 |. Read the curre| 00008d70 6e 74 20 6d 6f 64 65 20 72 61 74 69 6f 0d 26 a2 |nt mode ratio.&.| 00008d80 72 20 20 20 20 20 20 65 78 74 24 20 3d 20 22 32 |r ext$ = "2| 00008d90 22 2b c3 28 31 3c 3c 79 65 69 67 66 61 63 74 6f |"+.(1<<yeigfacto| 00008da0 72 25 29 20 20 20 20 20 20 20 20 20 20 20 20 20 |r%) | 00008db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00008dc0 20 3a 20 f4 20 54 72 61 6e 73 6c 61 74 65 20 72 | : . Translate r| 00008dd0 61 74 69 6f 20 69 6e 74 6f 20 61 20 66 69 6c 65 |atio into a file| 00008de0 20 6e 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e 0d | name extension.| 00008df0 26 ac 6b 20 20 20 20 20 20 66 68 61 6e 64 6c 65 |&.k fhandle| 00008e00 25 3d 8e 28 22 3c 43 61 73 73 65 74 74 65 24 44 |%=.("<Cassette$D| 00008e10 69 72 3e 2e 52 65 73 6f 75 72 63 65 73 2e 53 70 |ir>.Resources.Sp| 00008e20 72 69 74 65 73 22 2b 65 78 74 24 29 20 20 20 20 |rites"+ext$) | 00008e30 20 3a 20 f4 20 41 74 74 65 6d 70 74 20 74 6f 20 | : . Attempt to | 00008e40 6c 6f 63 61 74 65 20 61 20 66 69 6c 65 20 6f 66 |locate a file of| 00008e50 20 74 68 61 74 20 6e 61 6d 65 0d 26 b6 18 20 20 | that name.&.. | 00008e60 20 20 20 20 e7 20 66 68 61 6e 64 6c 65 25 3d 30 | . fhandle%=0| 00008e70 20 8c 0d 26 c0 14 20 20 20 20 20 20 20 20 20 65 | ..&.. e| 00008e80 78 74 24 3d 22 22 0d 26 ca 39 20 20 20 20 20 20 |xt$="".&.9 | 00008e90 20 20 20 66 68 61 6e 64 6c 65 25 3d 8e 22 3c 43 | fhandle%=."<C| 00008ea0 61 73 73 65 74 74 65 24 44 69 72 3e 2e 52 65 73 |assette$Dir>.Res| 00008eb0 6f 75 72 63 65 73 2e 53 70 72 69 74 65 73 22 0d |ources.Sprites".| 00008ec0 26 d4 6c 20 20 20 20 20 20 cd 20 20 20 20 20 20 |&.l . | 00008ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00008f00 20 20 3a 20 f4 20 49 66 20 6e 6f 74 20 70 72 65 | : . If not pre| 00008f10 73 65 6e 74 20 6c 6f 63 61 74 65 20 64 65 66 61 |sent locate defa| 00008f20 75 6c 74 20 73 70 72 69 74 65 73 0d 26 de 51 20 |ult sprites.&.Q | 00008f30 20 20 20 20 20 e7 20 66 68 61 6e 64 6c 65 25 3d | . fhandle%=| 00008f40 30 20 8c 20 85 20 30 2c 22 55 6e 61 62 6c 65 20 |0 . . 0,"Unable | 00008f50 74 6f 20 6c 6f 63 61 74 65 20 64 65 66 61 75 6c |to locate defaul| 00008f60 74 20 73 70 72 69 74 65 20 66 69 6c 65 20 66 6f |t sprite file fo| 00008f70 72 20 21 43 61 73 73 65 74 74 65 22 0d 26 e8 6b |r !Cassette".&.k| 00008f80 20 20 20 20 20 20 46 69 6c 65 4c 65 6e 67 74 68 | FileLength| 00008f90 25 3d 34 2b 28 a2 23 66 68 61 6e 64 6c 65 25 29 |%=4+(.#fhandle%)| 00008fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00008fc0 20 3a 20 f4 20 47 65 74 20 74 68 65 20 6c 65 6e | : . Get the len| 00008fd0 67 74 68 20 6f 66 20 74 68 65 20 73 70 72 69 74 |gth of the sprit| 00008fe0 65 73 20 66 69 6c 65 0d 26 f2 15 20 20 20 20 20 |es file.&.. | 00008ff0 20 d9 20 23 66 68 61 6e 64 6c 65 25 0d 26 fc 08 | . #fhandle%.&..| 00009000 20 20 20 cd 0d 27 06 0e 20 20 20 65 78 74 24 3d | ..'.. ext$=| 00009010 22 22 0d 27 10 08 20 20 20 3a 0d 27 1a 61 20 20 |"".'.. :.'.a | 00009020 20 de 20 53 70 72 69 74 65 41 72 65 61 25 20 46 | . SpriteArea% F| 00009030 69 6c 65 4c 65 6e 67 74 68 25 20 20 20 20 20 20 |ileLength% | 00009040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00009050 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 | : . | 00009060 43 72 65 61 74 65 20 74 68 65 20 75 73 65 72 20 |Create the user | 00009070 73 70 72 69 74 65 20 61 72 65 61 0d 27 24 65 20 |sprite area.'$e | 00009080 20 20 53 70 72 69 74 65 41 72 65 61 25 21 30 20 | SpriteArea%!0 | 00009090 20 3d 20 46 69 6c 65 4c 65 6e 67 74 68 25 20 20 | = FileLength% | 000090a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000090b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | :| 000090c0 20 f4 20 61 6e 64 20 6c 6f 61 64 20 74 68 65 20 | . and load the | 000090d0 73 70 72 69 74 65 73 20 69 6e 74 6f 20 69 74 2e |sprites into it.| 000090e0 0d 27 2e 1a 20 20 20 53 70 72 69 74 65 41 72 65 |.'.. SpriteAre| 000090f0 61 25 21 34 20 20 3d 20 20 30 0d 27 38 1a 20 20 |a%!4 = 0.'8. | 00009100 20 53 70 72 69 74 65 41 72 65 61 25 21 38 20 20 | SpriteArea%!8 | 00009110 3d 20 31 36 0d 27 42 1a 20 20 20 53 70 72 69 74 |= 16.'B. Sprit| 00009120 65 41 72 65 61 25 21 31 32 20 3d 20 31 36 0d 27 |eArea%!12 = 16.'| 00009130 4c 50 20 20 20 c8 99 20 22 4f 53 5f 53 70 72 69 |LP .. "OS_Spri| 00009140 74 65 4f 70 22 2c 26 31 30 41 2c 53 70 72 69 74 |teOp",&10A,Sprit| 00009150 65 41 72 65 61 25 2c 22 3c 43 61 73 73 65 74 74 |eArea%,"<Cassett| 00009160 65 24 44 69 72 3e 2e 52 65 73 6f 75 72 63 65 73 |e$Dir>.Resources| 00009170 2e 53 70 72 69 74 65 73 22 2b 65 78 74 24 0d 27 |.Sprites"+ext$.'| 00009180 56 05 e1 0d 27 60 05 3a 0d 27 6a 2f 2a 2a 2a 2a |V...'`.:.'j/****| 00009190 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000091b0 2a 2a 2a 2a 2a 2a 2a 0d 27 74 2d f4 20 43 6f 6d |*******.'t-. Com| 000091c0 6d 75 6e 69 63 61 74 65 20 77 69 74 68 20 52 69 |municate with Ri| 000091d0 73 63 4f 53 20 50 72 69 6e 74 65 72 20 44 72 69 |scOS Printer Dri| 000091e0 76 65 72 2e 0d 27 7e 2f 2a 2a 2a 2a 2a 2a 2a 2a |ver..'~/********| 000091f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00009210 2a 2a 2a 0d 27 88 19 dd 20 f2 5f 50 72 69 6e 74 |***.'... ._Print| 00009220 47 72 61 70 68 69 63 73 4d 6f 64 65 0d 27 92 34 |GraphicsMode.'.4| 00009230 20 20 20 f4 20 43 68 65 63 6b 20 46 6f 72 20 50 | . Check For P| 00009240 72 65 73 65 6e 63 65 20 4f 66 20 50 72 69 6e 74 |resence Of Print| 00009250 65 72 44 72 69 76 65 72 20 4d 6f 64 75 6c 65 73 |erDriver Modules| 00009260 0d 27 9c 3c 20 20 20 c8 99 20 22 58 4f 53 5f 53 |.'.< .. "XOS_S| 00009270 57 49 4e 75 6d 62 65 72 46 72 6f 6d 53 74 72 69 |WINumberFromStri| 00009280 6e 67 22 2c 2c 22 50 44 72 69 76 65 72 5f 49 6e |ng",,"PDriver_In| 00009290 66 6f 22 20 b8 20 3b 46 6c 61 67 25 0d 27 a6 4a |fo" . ;Flag%.'.J| 000092a0 20 20 20 e7 20 46 6c 61 67 25 20 80 20 31 20 8c | . Flag% . 1 .| 000092b0 20 85 20 32 30 30 31 2c 22 4e 6f 20 50 72 69 6e | . 2001,"No Prin| 000092c0 74 65 72 20 44 72 69 76 65 72 2c 20 50 6c 65 61 |ter Driver, Plea| 000092d0 73 65 20 4c 6f 61 64 20 61 6e 64 20 54 72 79 20 |se Load and Try | 000092e0 41 67 61 69 6e 22 0d 27 b0 08 20 20 20 3a 0d 27 |Again".'.. :.'| 000092f0 ba 55 20 20 20 f4 20 49 66 20 52 69 73 63 4f 53 |.U . If RiscOS| 00009300 20 33 2e 78 20 4d 61 63 68 69 6e 65 2c 20 4d 6f | 3.x Machine, Mo| 00009310 64 75 6c 65 73 20 61 72 65 20 61 6c 77 61 79 73 |dules are always| 00009320 20 69 6e 20 52 4f 4d 2c 20 62 75 74 20 6e 65 65 | in ROM, but nee| 00009330 64 20 74 6f 20 62 65 20 69 6e 69 74 69 61 6c 69 |d to be initiali| 00009340 73 65 64 0d 27 c4 40 20 20 20 f4 20 62 79 20 74 |sed.'.@ . by t| 00009350 68 65 20 21 50 72 69 6e 74 65 72 73 20 61 70 70 |he !Printers app| 00009360 6c 69 63 61 74 69 6f 6e 20 62 65 66 6f 72 65 20 |lication before | 00009370 70 72 69 6e 74 69 6e 67 20 63 61 6e 20 62 65 67 |printing can beg| 00009380 69 6e 2e 0d 27 ce 22 20 20 20 c8 99 20 22 58 50 |in..'." .. "XP| 00009390 44 72 69 76 65 72 5f 49 6e 66 6f 22 20 b8 20 3b |Driver_Info" . ;| 000093a0 46 6c 61 67 25 0d 27 d8 60 20 20 20 e7 20 46 6c |Flag%.'.` . Fl| 000093b0 61 67 25 20 80 20 31 20 8c 20 85 20 32 30 30 31 |ag% . 1 . . 2001| 000093c0 2c 22 55 73 65 20 21 50 72 69 6e 74 65 72 73 20 |,"Use !Printers | 000093d0 74 6f 20 73 65 6c 65 63 74 20 79 6f 75 72 20 72 |to select your r| 000093e0 65 71 75 69 72 65 64 20 70 72 69 6e 74 65 72 20 |equired printer | 000093f0 64 72 69 76 65 72 20 61 6e 64 20 74 72 79 20 61 |driver and try a| 00009400 67 61 69 6e 22 0d 27 e2 08 20 20 20 3a 0d 27 ec |gain".'.. :.'.| 00009410 37 20 20 20 f4 20 43 68 65 63 6b 20 69 66 20 74 |7 . Check if t| 00009420 68 65 20 66 6f 6e 74 20 6d 61 6e 61 67 65 72 20 |he font manager | 00009430 77 69 6c 6c 20 73 75 70 70 6f 72 74 20 4b 65 72 |will support Ker| 00009440 6e 69 6e 67 0d 27 f6 3e 20 20 20 c8 99 20 22 58 |ning.'.> .. "X| 00009450 4f 53 5f 53 57 49 4e 75 6d 62 65 72 46 72 6f 6d |OS_SWINumberFrom| 00009460 53 74 72 69 6e 67 22 2c 2c 22 46 6f 6e 74 5f 53 |String",,"Font_S| 00009470 63 61 6e 53 74 72 69 6e 67 22 20 b8 20 46 6c 61 |canString" . Fla| 00009480 67 25 0d 28 00 3a 20 20 20 e7 20 46 6c 61 67 25 |g%.(.: . Flag%| 00009490 20 80 20 31 20 8c 20 4e 65 77 46 6f 6e 74 4d 61 | . 1 . NewFontMa| 000094a0 6e 61 67 65 72 25 3d a3 20 8b 20 4e 65 77 46 6f |nager%=. . NewFo| 000094b0 6e 74 4d 61 6e 61 67 65 72 25 3d b9 0d 28 0a 05 |ntManager%=..(..| 000094c0 3a 0d 28 14 1b 20 20 20 ea 20 50 72 69 6e 74 46 |:.(.. . PrintF| 000094d0 69 6c 65 25 2c 4f 6c 64 4a 6f 62 25 0d 28 1e 1d |ile%,OldJob%.(..| 000094e0 20 20 20 ea 20 57 68 69 74 65 25 2c 20 50 61 67 | . White%, Pag| 000094f0 65 54 6f 50 72 69 6e 74 25 0d 28 28 29 20 20 20 |eToPrint%.(() | 00009500 57 68 69 74 65 25 3d 26 46 46 46 46 46 46 30 30 |White%=&FFFFFF00| 00009510 20 3a 20 45 25 3d 30 20 3a 20 55 73 61 67 65 25 | : E%=0 : Usage%| 00009520 3d 30 0d 28 32 40 20 20 20 f4 20 43 72 65 61 74 |=0.(2@ . Creat| 00009530 65 20 73 74 6f 72 61 67 65 20 73 70 61 63 65 20 |e storage space | 00009540 66 6f 72 20 63 6c 69 70 70 65 64 20 66 6c 61 67 |for clipped flag| 00009550 73 20 64 75 72 69 6e 67 20 70 72 69 6e 74 69 6e |s during printin| 00009560 67 2e 0d 28 3c 4b 20 20 20 43 6c 69 70 70 65 64 |g..(<K Clipped| 00009570 41 72 72 61 79 25 3d 43 6c 69 70 70 65 64 41 72 |Array%=ClippedAr| 00009580 72 61 79 25 20 3a 20 e7 20 43 6c 69 70 70 65 64 |ray% : . Clipped| 00009590 41 72 72 61 79 25 3d 30 20 8c 20 de 20 43 6c 69 |Array%=0 . . Cli| 000095a0 70 70 65 64 41 72 72 61 79 25 20 34 30 0d 28 46 |ppedArray% 40.(F| 000095b0 34 20 20 20 e3 20 54 65 6d 70 25 3d 30 20 b8 20 |4 . Temp%=0 . | 000095c0 34 30 20 88 34 20 3a 20 43 6c 69 70 70 65 64 41 |40 .4 : ClippedA| 000095d0 72 72 61 79 25 21 54 65 6d 70 25 3d 30 20 3a 20 |rray%!Temp%=0 : | 000095e0 ed 0d 28 50 08 20 20 20 3a 0d 28 5a 5f 20 20 20 |..(P. :.(Z_ | 000095f0 f4 20 4f 70 65 6e 20 44 65 73 74 69 6e 61 74 69 |. Open Destinati| 00009600 6f 6e 20 66 69 6c 65 20 61 6e 64 20 73 65 74 20 |on file and set | 00009610 75 70 20 6c 6f 63 61 6c 20 65 72 72 6f 72 20 68 |up local error h| 00009620 61 6e 64 6c 65 72 20 74 68 61 74 20 77 69 6c 6c |andler that will| 00009630 20 63 6c 6f 73 65 20 69 74 20 61 67 61 69 6e 20 | close it again | 00009640 6f 6e 20 65 72 72 6f 72 0d 28 64 1d 20 20 20 50 |on error.(d. P| 00009650 72 69 6e 74 46 69 6c 65 25 3d ae 22 70 72 69 6e |rintFile%=."prin| 00009660 74 65 72 3a 22 0d 28 6e 0a 20 20 20 ea 20 85 0d |ter:".(n. . ..| 00009670 28 78 55 20 20 20 ee 20 85 20 ea 20 3a 20 f7 20 |(xU . . . : . | 00009680 85 20 3a 20 45 72 72 24 3d 49 6e 24 2b 22 2d 22 |. : Err$=In$+"-"| 00009690 2b c3 28 49 6e 25 29 2b 22 20 3a 20 22 2b f6 24 |+.(In%)+" : "+.$| 000096a0 2b 22 2d 22 2b c3 28 9e 29 20 3a 20 d9 20 23 50 |+"-"+.(.) : . #P| 000096b0 72 69 6e 74 46 69 6c 65 25 20 3a 20 85 20 9e 2c |rintFile% : . .,| 000096c0 45 72 72 24 0d 28 82 05 3a 0d 28 8c 7e 20 20 20 |Err$.(..:.(.~ | 000096d0 f4 20 53 74 61 72 74 20 75 70 20 61 20 70 72 69 |. Start up a pri| 000096e0 6e 74 20 6a 6f 62 20 66 6f 72 20 74 68 69 73 20 |nt job for this | 000096f0 66 69 6c 65 2c 20 72 65 6d 65 6d 62 65 72 69 6e |file, rememberin| 00009700 67 20 74 68 65 20 68 61 6e 64 6c 65 20 6f 66 20 |g the handle of | 00009710 61 6e 79 20 70 72 65 76 69 6f 75 73 20 70 72 69 |any previous pri| 00009720 6e 74 20 6a 6f 62 2c 20 74 68 65 6e 20 73 65 74 |nt job, then set| 00009730 20 75 70 20 6c 6f 63 61 6c 20 65 72 72 6f 72 20 | up local error | 00009740 68 61 6e 64 6c 65 72 0d 28 96 45 20 20 20 c8 99 |handler.(.E ..| 00009750 20 22 50 44 72 69 76 65 72 5f 53 65 6c 65 63 74 | "PDriver_Select| 00009760 4a 6f 62 22 2c 50 72 69 6e 74 46 69 6c 65 25 2c |Job",PrintFile%,| 00009770 22 42 6f 66 66 69 6e 20 50 72 69 6e 74 20 4a 6f |"Boffin Print Jo| 00009780 62 22 20 b8 20 4f 6c 64 4a 6f 62 25 0d 28 a0 18 |b" . OldJob%.(..| 00009790 20 20 20 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 | .. "Hourglass| 000097a0 5f 4f 6e 22 0d 28 aa 0a 20 20 20 ea 20 85 0d 28 |_On".(.. . ..(| 000097b0 b4 88 20 20 20 ee 20 85 20 ea 20 3a 20 f7 20 85 |.. . . . : . .| 000097c0 20 3a 20 49 6e 25 3d 9e 20 3a 20 49 6e 24 3d f6 | : In%=. : In$=.| 000097d0 24 20 3a 20 c8 99 20 22 48 6f 75 72 67 6c 61 73 |$ : .. "Hourglas| 000097e0 73 5f 4f 66 66 22 20 3a 20 c8 99 20 22 50 44 72 |s_Off" : .. "PDr| 000097f0 69 76 65 72 5f 41 62 6f 72 74 4a 6f 62 22 2c 50 |iver_AbortJob",P| 00009800 72 69 6e 74 46 69 6c 65 25 20 3a 20 c8 99 20 22 |rintFile% : .. "| 00009810 50 44 72 69 76 65 72 5f 53 65 6c 65 63 74 4a 6f |PDriver_SelectJo| 00009820 62 22 2c 4f 6c 64 4a 6f 62 25 20 3a 20 85 20 49 |b",OldJob% : . I| 00009830 6e 25 2c 49 6e 24 0d 28 be 05 3a 0d 28 c8 19 20 |n%,In$.(..:.(.. | 00009840 20 20 f4 20 53 74 61 72 74 20 70 72 69 6e 74 20 | . Start print | 00009850 6c 6f 6f 70 0d 28 d2 1e 20 20 20 f2 5f 47 65 74 |loop.(.. ._Get| 00009860 44 6f 63 75 6d 65 6e 74 53 69 7a 65 28 42 6f 78 |DocumentSize(Box| 00009870 25 29 0d 28 dc 22 20 20 20 f2 5f 46 69 74 54 6f |%).(." ._FitTo| 00009880 50 61 67 65 28 48 65 69 67 68 74 25 2c 57 69 64 |Page(Height%,Wid| 00009890 74 68 25 29 0d 28 e6 05 3a 0d 28 f0 2b 20 20 20 |th%).(..:.(.+ | 000098a0 f4 20 53 65 74 20 55 70 20 54 6f 20 50 72 69 6e |. Set Up To Prin| 000098b0 74 20 4a 75 73 74 20 4f 6e 65 20 52 65 63 74 61 |t Just One Recta| 000098c0 6e 67 6c 65 0d 28 fa 3e 20 20 20 c8 99 20 22 50 |ngle.(.> .. "P| 000098d0 44 72 69 76 65 72 5f 47 69 76 65 52 65 63 74 61 |Driver_GiveRecta| 000098e0 6e 67 6c 65 22 2c 2c 42 6f 78 25 2c 4d 61 74 72 |ngle",,Box%,Matr| 000098f0 69 78 25 2c 4f 72 69 67 69 6e 25 2c 57 68 69 74 |ix%,Origin%,Whit| 00009900 65 25 0d 29 04 05 3a 0d 29 0e 18 20 20 20 f4 20 |e%.)..:.).. . | 00009910 53 74 61 72 74 20 70 72 69 6e 74 69 6e 67 2e 0d |Start printing..| 00009920 29 18 36 20 20 20 c8 99 20 22 50 44 72 69 76 65 |).6 .. "PDrive| 00009930 72 5f 44 72 61 77 50 61 67 65 22 2c 31 2c 42 6f |r_DrawPage",1,Bo| 00009940 78 32 25 2c 30 2c 30 20 b8 20 43 6f 70 69 65 73 |x2%,0,0 . Copies| 00009950 4c 65 66 74 25 0d 29 22 15 20 20 20 c8 95 20 43 |Left%.)". .. C| 00009960 6f 70 69 65 73 4c 65 66 74 25 0d 29 2c 1a 20 20 |opiesLeft%.),. | 00009970 20 20 20 20 f2 5f 4d 69 6e 69 5f 57 49 4d 50 5f | ._Mini_WIMP_| 00009980 50 6f 6c 6c 0d 29 36 1c 20 20 20 20 20 20 f2 5f |Poll.)6. ._| 00009990 44 72 61 77 49 6e 6c 61 79 28 42 6f 78 32 25 29 |DrawInlay(Box2%)| 000099a0 0d 29 40 37 20 20 20 20 20 20 c8 99 20 22 50 44 |.)@7 .. "PD| 000099b0 72 69 76 65 72 5f 47 65 74 52 65 63 74 61 6e 67 |river_GetRectang| 000099c0 6c 65 22 2c 2c 42 6f 78 25 20 b8 20 43 6f 70 69 |le",,Box% . Copi| 000099d0 65 73 4c 65 66 74 25 0d 29 4a 08 20 20 20 ce 0d |esLeft%.)J. ..| 000099e0 29 54 05 3a 0d 29 5e 34 20 20 20 f4 20 50 72 69 |)T.:.)^4 . Pri| 000099f0 6e 74 69 6e 67 20 43 6f 6d 70 6c 65 74 65 2c 20 |nting Complete, | 00009a00 54 65 72 6d 69 6e 61 74 65 20 74 68 69 73 20 70 |Terminate this p| 00009a10 72 69 6e 74 20 6a 6f 62 0d 29 68 25 20 20 20 c8 |rint job.)h% .| 00009a20 99 20 22 50 44 72 69 76 65 72 5f 45 6e 64 4a 6f |. "PDriver_EndJo| 00009a30 62 22 2c 50 72 69 6e 74 46 69 6c 65 25 0d 29 72 |b",PrintFile%.)r| 00009a40 05 3a 0d 29 7c 38 20 20 20 f4 20 52 65 74 75 72 |.:.)|8 . Retur| 00009a50 6e 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 6f |n to the first o| 00009a60 66 20 6f 75 72 20 6c 6f 63 61 6c 20 65 72 72 6f |f our local erro| 00009a70 72 20 68 61 6e 64 6c 65 72 73 0d 29 86 0a 20 20 |r handlers.).. | 00009a80 20 f7 20 85 0d 29 90 05 3a 0d 29 9a 5a 20 20 20 | . ..)..:.).Z | 00009a90 f4 20 41 6e 64 20 54 68 65 6e 20 67 6f 20 62 61 |. And Then go ba| 00009aa0 63 6b 20 74 6f 20 77 68 61 74 65 76 65 72 20 70 |ck to whatever p| 00009ab0 72 69 6e 74 20 6a 6f 62 20 77 61 73 20 61 63 74 |rint job was act| 00009ac0 69 76 65 20 28 69 66 20 61 6e 79 29 20 6f 6e 20 |ive (if any) on | 00009ad0 65 6e 74 72 79 20 74 6f 20 74 68 69 73 20 50 52 |entry to this PR| 00009ae0 4f 43 2e 0d 29 a4 19 20 20 20 c8 99 20 22 48 6f |OC..).. .. "Ho| 00009af0 75 72 67 6c 61 73 73 5f 4f 66 66 22 0d 29 ae 25 |urglass_Off".).%| 00009b00 20 20 20 c8 99 20 22 50 44 72 69 76 65 72 5f 53 | .. "PDriver_S| 00009b10 65 6c 65 63 74 4a 6f 62 22 2c 4f 6c 64 4a 6f 62 |electJob",OldJob| 00009b20 25 0d 29 b8 05 3a 0d 29 c2 2d 20 20 20 f4 20 47 |%.)..:.).- . G| 00009b30 6f 20 62 61 63 6b 20 74 6f 20 74 68 65 20 63 61 |o back to the ca| 00009b40 6c 6c 65 72 73 20 65 72 72 6f 72 20 68 61 6e 64 |llers error hand| 00009b50 6c 65 72 0d 29 cc 0a 20 20 20 f7 20 85 0d 29 d6 |ler.).. . ..).| 00009b60 05 3a 0d 29 e0 23 20 20 20 f4 20 43 6c 6f 73 65 |.:.).# . Close| 00009b70 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e | the destination| 00009b80 20 66 69 6c 65 0d 29 ea 14 20 20 20 d9 20 23 50 | file.).. . #P| 00009b90 72 69 6e 74 46 69 6c 65 25 0d 29 f4 05 3a 0d 29 |rintFile%.)..:.)| 00009ba0 fe 05 e1 0d 2a 08 05 3a 0d 2a 12 1d dd 20 f2 5f |....*..:.*... ._| 00009bb0 47 65 74 44 6f 63 75 6d 65 6e 74 53 69 7a 65 28 |GetDocumentSize(| 00009bc0 42 6f 78 25 29 0d 2a 1c 24 20 20 20 48 65 69 67 |Box%).*.$ Heig| 00009bd0 68 74 25 3d 37 32 35 20 20 20 20 20 20 3a 20 57 |ht%=725 : W| 00009be0 69 64 74 68 25 3d 37 32 35 0d 2a 26 2b 20 20 20 |idth%=725.*&+ | 00009bf0 58 31 25 3d 30 20 20 3a 20 20 58 32 25 3d 57 69 |X1%=0 : X2%=Wi| 00009c00 64 74 68 25 2f 32 20 20 3a 20 58 33 25 3d 57 69 |dth%/2 : X3%=Wi| 00009c10 64 74 68 25 0d 2a 30 4a 20 20 20 59 31 25 3d 30 |dth%.*0J Y1%=0| 00009c20 20 20 3a 20 20 59 32 25 3d 31 36 33 20 20 20 20 | : Y2%=163 | 00009c30 20 20 20 3a 20 59 33 25 3d 59 32 25 2b 39 32 20 | : Y3%=Y2%+92 | 00009c40 3a 20 59 34 25 3d 48 65 69 67 68 74 25 2d 37 30 |: Y4%=Height%-70| 00009c50 20 3a 20 59 35 25 3d 48 65 69 67 68 74 25 0d 2a | : Y5%=Height%.*| 00009c60 3a 22 20 20 20 42 6f 78 25 21 30 3d 30 20 20 20 |:" Box%!0=0 | 00009c70 20 20 20 20 20 20 3a 20 42 6f 78 25 21 34 3d 30 | : Box%!4=0| 00009c80 0d 2a 44 65 20 20 20 42 6f 78 25 21 38 3d 57 69 |.*De Box%!8=Wi| 00009c90 64 74 68 25 2b 32 30 20 3a 20 42 6f 78 25 21 31 |dth%+20 : Box%!1| 00009ca0 32 3d 48 65 69 67 68 74 25 2b 32 30 20 3a 20 f4 |2=Height%+20 : .| 00009cb0 20 54 6f 20 41 6c 6c 6f 77 20 46 6f 72 20 52 6f | To Allow For Ro| 00009cc0 75 6e 64 69 6e 67 20 45 72 72 6f 72 73 20 49 6e |unding Errors In| 00009cd0 20 43 6f 6e 76 65 72 73 69 6f 6e 20 52 6f 75 74 | Conversion Rout| 00009ce0 69 6e 65 73 2e 0d 2a 4e 05 e1 0d 2a 58 05 3a 0d |ines..*N...*X.:.| 00009cf0 2a 62 21 dd 20 f2 5f 46 69 74 54 6f 50 61 67 65 |*b!. ._FitToPage| 00009d00 28 48 65 69 67 68 74 25 2c 57 69 64 74 68 25 29 |(Height%,Width%)| 00009d10 0d 2a 6c 22 20 20 20 ea 20 4c 65 66 74 25 2c 42 |.*l" . Left%,B| 00009d20 6f 74 74 6f 6d 25 2c 52 69 67 68 74 25 2c 54 6f |ottom%,Right%,To| 00009d30 70 25 0d 2a 76 65 20 20 20 f4 20 52 65 74 75 72 |p%.*ve . Retur| 00009d40 6e 73 20 76 61 6c 75 65 73 20 69 6e 20 4d 69 6c |ns values in Mil| 00009d50 6c 69 70 6f 69 6e 74 73 2c 20 48 65 69 67 68 74 |lipoints, Height| 00009d60 25 20 26 20 57 69 64 74 68 25 20 61 72 65 20 69 |% & Width% are i| 00009d70 6e 20 4f 53 20 55 6e 69 74 73 2e 20 31 20 4f 53 |n OS Units. 1 OS| 00009d80 20 55 6e 69 74 20 3d 20 34 30 30 20 4d 69 6c 6c | Unit = 400 Mill| 00009d90 69 70 6f 69 6e 74 73 0d 2a 80 3b 20 20 20 c8 99 |ipoints.*.; ..| 00009da0 20 22 50 44 72 69 76 65 72 5f 50 61 67 65 53 69 | "PDriver_PageSi| 00009db0 7a 65 22 20 b8 20 2c 2c 2c 4c 65 66 74 25 2c 42 |ze" . ,,,Left%,B| 00009dc0 6f 74 74 6f 6d 25 2c 52 69 67 68 74 25 2c 54 6f |ottom%,Right%,To| 00009dd0 70 25 0d 2a 8a 4d 20 20 20 4f 72 69 67 69 6e 58 |p%.*.M OriginX| 00009de0 25 3d 28 28 52 69 67 68 74 25 2b 4c 65 66 74 25 |%=((Right%+Left%| 00009df0 29 2d 28 57 69 64 74 68 25 2a 34 30 30 29 29 2f |)-(Width%*400))/| 00009e00 32 20 3a 20 4f 72 69 67 69 6e 59 25 3d 54 6f 70 |2 : OriginY%=Top| 00009e10 25 2d 28 48 65 69 67 68 74 25 2a 34 30 30 29 0d |%-(Height%*400).| 00009e20 2a 94 2e 20 20 20 4f 72 69 67 69 6e 25 21 30 3d |*.. Origin%!0=| 00009e30 4f 72 69 67 69 6e 58 25 20 3a 20 4f 72 69 67 69 |OriginX% : Origi| 00009e40 6e 25 21 34 3d 4f 72 69 67 69 6e 59 25 0d 2a 9e |n%!4=OriginY%.*.| 00009e50 05 e1 0d 2a a8 05 3a 0d 2a b2 24 dd 20 f2 5f 44 |...*..:.*.$. ._D| 00009e60 72 61 77 49 6e 6c 61 79 28 43 6f 5f 6f 72 64 69 |rawInlay(Co_ordi| 00009e70 6e 61 74 65 42 6c 6f 63 6b 25 29 0d 2a bc 3c 20 |nateBlock%).*.< | 00009e80 20 20 c8 99 20 46 69 6e 64 25 2c 2c 42 61 73 65 | .. Find%,,Base| 00009e90 46 6f 6e 74 24 2c 30 39 2a 31 36 2c 31 32 2a 31 |Font$,09*16,12*1| 00009ea0 36 2c 30 2c 30 20 b8 20 42 61 73 65 46 6f 6e 74 |6,0,0 . BaseFont| 00009eb0 48 61 6e 64 6c 65 25 0d 2a c6 3c 20 20 20 c8 99 |Handle%.*.< ..| 00009ec0 20 46 69 6e 64 25 2c 2c 42 6f 6c 64 46 6f 6e 74 | Find%,,BoldFont| 00009ed0 24 2c 31 30 2a 31 36 2c 31 33 2a 31 36 2c 30 2c |$,10*16,13*16,0,| 00009ee0 30 20 b8 20 42 6f 6c 64 46 6f 6e 74 48 61 6e 64 |0 . BoldFontHand| 00009ef0 6c 65 25 0d 2a d0 05 3a 0d 2a da 42 20 20 20 f2 |le%.*..:.*.B .| 00009f00 5f 46 6f 6e 74 50 61 69 6e 74 28 22 22 2c a4 5f |_FontPaint("",._| 00009f10 52 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 |ReadIconText(Mai| 00009f20 6e 25 2c 32 34 2c a3 29 2c 58 31 25 2b 31 30 2c |n%,24,.),X1%+10,| 00009f30 59 34 25 2b 34 30 2c 32 34 29 0d 2a e4 42 20 20 |Y4%+40,24).*.B | 00009f40 20 f2 5f 46 6f 6e 74 50 61 69 6e 74 28 22 22 2c | ._FontPaint("",| 00009f50 a4 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 4d |._ReadIconText(M| 00009f60 61 69 6e 25 2c 32 35 2c a3 29 2c 58 31 25 2b 31 |ain%,25,.),X1%+1| 00009f70 30 2c 59 34 25 2b 30 35 2c 32 35 29 0d 2a ee 42 |0,Y4%+05,25).*.B| 00009f80 20 20 20 f2 5f 46 6f 6e 74 50 61 69 6e 74 28 22 | ._FontPaint("| 00009f90 22 2c a4 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 |",._ReadIconText| 00009fa0 28 4d 61 69 6e 25 2c 32 36 2c a3 29 2c 58 32 25 |(Main%,26,.),X2%| 00009fb0 2b 31 30 2c 59 34 25 2b 34 30 2c 32 36 29 0d 2a |+10,Y4%+40,26).*| 00009fc0 f8 42 20 20 20 f2 5f 46 6f 6e 74 50 61 69 6e 74 |.B ._FontPaint| 00009fd0 28 22 22 2c a4 5f 52 65 61 64 49 63 6f 6e 54 65 |("",._ReadIconTe| 00009fe0 78 74 28 4d 61 69 6e 25 2c 32 37 2c a3 29 2c 58 |xt(Main%,27,.),X| 00009ff0 32 25 2b 31 30 2c 59 34 25 2b 30 35 2c 32 37 29 |2%+10,Y4%+05,27)| 0000a000 0d 2b 02 05 3a 0d 2b 0c 1e 20 20 20 53 65 70 61 |.+..:.+.. Sepa| 0000a010 72 61 74 69 6f 6e 3d 28 59 34 25 2d 59 33 25 29 |ration=(Y4%-Y3%)| 0000a020 2f 31 32 0d 2b 16 23 20 20 20 53 70 61 63 65 53 |/12.+.# SpaceS| 0000a030 74 61 72 74 59 3d 59 33 25 20 2b 20 53 65 70 61 |tartY=Y3% + Sepa| 0000a040 72 61 74 69 6f 6e 0d 2b 20 10 20 20 20 54 72 61 |ration.+ . Tra| 0000a050 63 6b 25 3d 32 32 0d 2b 2a 2f 20 20 20 c8 99 20 |ck%=22.+*/ .. | 0000a060 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 |"ColourTrans_Set| 0000a070 47 43 4f 4c 22 2c 26 44 30 44 30 44 30 30 30 2c |GCOL",&D0D0D000,| 0000a080 2c 2c 30 2c 30 0d 2b 34 17 20 20 20 f2 5f 4d 69 |,,0,0.+4. ._Mi| 0000a090 6e 69 5f 57 49 4d 50 5f 50 6f 6c 6c 0d 2b 3e 1c |ni_WIMP_Poll.+>.| 0000a0a0 20 20 20 c8 95 20 53 70 61 63 65 53 74 61 72 74 | .. SpaceStart| 0000a0b0 59 20 3c 3d 20 59 34 25 0d 2b 48 47 20 20 20 20 |Y <= Y4%.+HG | 0000a0c0 20 20 e7 20 53 70 61 63 65 53 74 61 72 74 59 20 | . SpaceStartY | 0000a0d0 3c 20 59 34 25 2d 31 30 20 8c 20 ec 20 58 31 25 |< Y4%-10 . . X1%| 0000a0e0 2c 53 70 61 63 65 53 74 61 72 74 59 20 3a df 20 |,SpaceStartY :. | 0000a0f0 58 33 25 2c 53 70 61 63 65 53 74 61 72 74 59 0d |X3%,SpaceStartY.| 0000a100 2b 52 2e 20 20 20 20 20 20 54 65 78 74 24 3d a4 |+R. Text$=.| 0000a110 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 |_ReadIconText(Ma| 0000a120 69 6e 25 2c 54 72 61 63 6b 25 2c a3 29 0d 2b 5c |in%,Track%,.).+\| 0000a130 3c 20 20 20 20 20 20 f2 5f 46 6f 6e 74 50 61 69 |< ._FontPai| 0000a140 6e 74 28 22 22 2c 54 65 78 74 24 2c 58 31 25 2b |nt("",Text$,X1%+| 0000a150 31 30 2c 53 70 61 63 65 53 74 61 72 74 59 2d 32 |10,SpaceStartY-2| 0000a160 35 2c 54 72 61 63 6b 25 29 0d 2b 66 30 20 20 20 |5,Track%).+f0 | 0000a170 20 20 20 54 65 78 74 24 3d a4 5f 52 65 61 64 49 | Text$=._ReadI| 0000a180 63 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c 54 72 |conText(Main%,Tr| 0000a190 61 63 6b 25 2b 31 2c a3 29 0d 2b 70 3e 20 20 20 |ack%+1,.).+p> | 0000a1a0 20 20 20 f2 5f 46 6f 6e 74 50 61 69 6e 74 28 22 | ._FontPaint("| 0000a1b0 22 2c 54 65 78 74 24 2c 58 32 25 2b 31 30 2c 53 |",Text$,X2%+10,S| 0000a1c0 70 61 63 65 53 74 61 72 74 59 2d 32 35 2c 54 72 |paceStartY-25,Tr| 0000a1d0 61 63 6b 25 2b 31 29 0d 2b 7a 21 20 20 20 20 20 |ack%+1).+z! | 0000a1e0 20 53 70 61 63 65 53 74 61 72 74 59 2b 3d 53 65 | SpaceStartY+=Se| 0000a1f0 70 61 72 61 74 69 6f 6e 0d 2b 84 13 20 20 20 20 |paration.+.. | 0000a200 20 20 54 72 61 63 6b 25 2d 3d 32 0d 2b 8e 08 20 | Track%-=2.+.. | 0000a210 20 20 ce 0d 2b 98 05 3a 0d 2b a2 4e 20 20 20 53 | ..+..:.+.N S| 0000a220 70 69 6e 65 4c 69 6e 65 31 24 3d a4 5f 52 65 61 |pineLine1$=._Rea| 0000a230 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c |dIconText(Main%,| 0000a240 32 34 2c a3 29 2b 22 20 2d 20 22 2b a4 5f 52 65 |24,.)+" - "+._Re| 0000a250 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e 25 |adIconText(Main%| 0000a260 2c 32 35 2c a3 29 0d 2b ac 4e 20 20 20 53 70 69 |,25,.).+.N Spi| 0000a270 6e 65 4c 69 6e 65 32 24 3d a4 5f 52 65 61 64 49 |neLine2$=._ReadI| 0000a280 63 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c 32 36 |conText(Main%,26| 0000a290 2c a3 29 2b 22 20 2d 20 22 2b a4 5f 52 65 61 64 |,.)+" - "+._Read| 0000a2a0 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c 32 |IconText(Main%,2| 0000a2b0 37 2c a3 29 0d 2b b6 37 20 20 20 f2 5f 46 6f 6e |7,.).+.7 ._Fon| 0000a2c0 74 50 61 69 6e 74 28 22 42 6f 6c 64 22 2c 53 70 |tPaint("Bold",Sp| 0000a2d0 69 6e 65 4c 69 6e 65 31 24 2c 58 31 25 2b 31 30 |ineLine1$,X1%+10| 0000a2e0 2c 59 32 25 2b 35 35 2c 32 34 29 0d 2b c0 37 20 |,Y2%+55,24).+.7 | 0000a2f0 20 20 f2 5f 46 6f 6e 74 50 61 69 6e 74 28 22 42 | ._FontPaint("B| 0000a300 6f 6c 64 22 2c 53 70 69 6e 65 4c 69 6e 65 32 24 |old",SpineLine2$| 0000a310 2c 58 31 25 2b 31 30 2c 59 32 25 2b 31 35 2c 32 |,X1%+10,Y2%+15,2| 0000a320 36 29 0d 2b ca 18 20 20 20 f2 5f 50 72 69 6e 74 |6).+.. ._Print| 0000a330 54 61 70 65 4e 75 6d 62 65 72 0d 2b d4 05 3a 0d |TapeNumber.+..:.| 0000a340 2b de 1d 20 20 20 53 65 70 61 72 61 74 69 6f 6e |+.. Separation| 0000a350 3d 28 59 32 25 2d 59 31 25 29 2f 35 0d 2b e8 23 |=(Y2%-Y1%)/5.+.#| 0000a360 20 20 20 53 70 61 63 65 53 74 61 72 74 59 3d 59 | SpaceStartY=Y| 0000a370 31 25 20 2b 20 53 65 70 61 72 61 74 69 6f 6e 0d |1% + Separation.| 0000a380 2b f2 10 20 20 20 54 72 61 63 6b 25 3d 33 36 0d |+.. Track%=36.| 0000a390 2b fc 17 20 20 20 f2 5f 4d 69 6e 69 5f 57 49 4d |+.. ._Mini_WIM| 0000a3a0 50 5f 50 6f 6c 6c 0d 2c 06 1c 20 20 20 c8 95 20 |P_Poll.,.. .. | 0000a3b0 53 70 61 63 65 53 74 61 72 74 59 20 3c 3d 20 59 |SpaceStartY <= Y| 0000a3c0 32 25 0d 2c 10 45 20 20 20 20 20 20 e7 20 53 70 |2%.,.E . Sp| 0000a3d0 61 63 65 53 74 61 72 74 59 20 3c 20 59 32 25 2d |aceStartY < Y2%-| 0000a3e0 31 30 20 ec 20 58 31 25 2c 53 70 61 63 65 53 74 |10 . X1%,SpaceSt| 0000a3f0 61 72 74 59 20 3a df 20 58 33 25 2c 53 70 61 63 |artY :. X3%,Spac| 0000a400 65 53 74 61 72 74 59 0d 2c 1a 2e 20 20 20 20 20 |eStartY.,.. | 0000a410 20 54 65 78 74 24 3d a4 5f 52 65 61 64 49 63 6f | Text$=._ReadIco| 0000a420 6e 54 65 78 74 28 4d 61 69 6e 25 2c 54 72 61 63 |nText(Main%,Trac| 0000a430 6b 25 2c a3 29 0d 2c 24 3c 20 20 20 20 20 20 f2 |k%,.).,$< .| 0000a440 5f 46 6f 6e 74 50 61 69 6e 74 28 22 22 2c 54 65 |_FontPaint("",Te| 0000a450 78 74 24 2c 58 31 25 2b 31 30 2c 53 70 61 63 65 |xt$,X1%+10,Space| 0000a460 53 74 61 72 74 59 2d 32 35 2c 54 72 61 63 6b 25 |StartY-25,Track%| 0000a470 29 0d 2c 2e 30 20 20 20 20 20 20 54 65 78 74 24 |).,.0 Text$| 0000a480 3d a4 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 |=._ReadIconText(| 0000a490 4d 61 69 6e 25 2c 54 72 61 63 6b 25 2b 31 2c a3 |Main%,Track%+1,.| 0000a4a0 29 0d 2c 38 3e 20 20 20 20 20 20 f2 5f 46 6f 6e |).,8> ._Fon| 0000a4b0 74 50 61 69 6e 74 28 22 22 2c 54 65 78 74 24 2c |tPaint("",Text$,| 0000a4c0 58 32 25 2b 31 30 2c 53 70 61 63 65 53 74 61 72 |X2%+10,SpaceStar| 0000a4d0 74 59 2d 32 35 2c 54 72 61 63 6b 25 2b 31 29 0d |tY-25,Track%+1).| 0000a4e0 2c 42 21 20 20 20 20 20 20 53 70 61 63 65 53 74 |,B! SpaceSt| 0000a4f0 61 72 74 59 2b 3d 53 65 70 61 72 61 74 69 6f 6e |artY+=Separation| 0000a500 0d 2c 4c 13 20 20 20 20 20 20 54 72 61 63 6b 25 |.,L. Track%| 0000a510 2d 3d 32 0d 2c 56 08 20 20 20 ce 0d 2c 60 05 3a |-=2.,V. ..,`.:| 0000a520 0d 2c 6a 2f 20 20 20 c8 99 20 22 43 6f 6c 6f 75 |.,j/ .. "Colou| 0000a530 72 54 72 61 6e 73 5f 53 65 74 47 43 4f 4c 22 2c |rTrans_SetGCOL",| 0000a540 26 30 30 30 30 30 30 30 30 2c 2c 2c 30 2c 30 0d |&00000000,,,0,0.| 0000a550 2c 74 19 20 20 20 c8 93 20 58 31 25 2c 59 31 25 |,t. .. X1%,Y1%| 0000a560 2c 58 33 25 2c 59 35 25 0d 2c 7e 1d 20 20 20 c8 |,X3%,Y5%.,~. .| 0000a570 93 20 58 31 25 2c 59 32 25 2c 58 33 25 2c 59 33 |. X1%,Y2%,X3%,Y3| 0000a580 25 2d 59 32 25 0d 2c 88 1c 20 20 20 ec 20 58 32 |%-Y2%.,.. . X2| 0000a590 25 2c 59 31 25 20 3a 20 df 20 58 32 25 2c 59 32 |%,Y1% : . X2%,Y2| 0000a5a0 25 0d 2c 92 1c 20 20 20 ec 20 58 32 25 2c 59 33 |%.,.. . X2%,Y3| 0000a5b0 25 20 3a 20 df 20 58 32 25 2c 59 34 25 0d 2c 9c |% : . X2%,Y4%.,.| 0000a5c0 1c 20 20 20 ec 20 58 31 25 2c 59 34 25 20 3a 20 |. . X1%,Y4% : | 0000a5d0 df 20 58 33 25 2c 59 34 25 0d 2c a6 05 3a 0d 2c |. X3%,Y4%.,..:.,| 0000a5e0 b0 1f 20 20 20 c8 99 20 4c 6f 73 65 25 2c 42 61 |.. .. Lose%,Ba| 0000a5f0 73 65 46 6f 6e 74 48 61 6e 64 6c 65 25 0d 2c ba |seFontHandle%.,.| 0000a600 1f 20 20 20 c8 99 20 4c 6f 73 65 25 2c 42 6f 6c |. .. Lose%,Bol| 0000a610 64 46 6f 6e 74 48 61 6e 64 6c 65 25 0d 2c c4 05 |dFontHandle%.,..| 0000a620 e1 0d 2c ce 05 3a 0d 2c d8 45 2a 2a 2a 2a 2a 2a |..,..:.,.E******| 0000a630 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000a660 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 2c e2 43 f4 |***********.,.C.| 0000a670 20 53 65 6c 65 63 74 20 72 65 71 75 69 72 65 64 | Select required| 0000a680 20 46 6f 6e 74 20 61 6e 64 20 63 6f 6c 6f 75 72 | Font and colour| 0000a690 2c 20 74 68 65 6e 20 70 72 69 6e 74 20 4d 65 73 |, then print Mes| 0000a6a0 73 61 67 65 24 20 61 74 20 58 25 2c 59 25 0d 2c |sage$ at X%,Y%.,| 0000a6b0 ec 45 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.E**************| 0000a6c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000a6f0 2a 2a 2a 0d 2c f6 30 dd 20 f2 5f 46 6f 6e 74 50 |***.,.0. ._FontP| 0000a700 61 69 6e 74 28 50 6f 73 74 46 69 78 24 2c 4d 65 |aint(PostFix$,Me| 0000a710 73 73 61 67 65 24 2c 58 25 2c 59 25 2c 49 63 6f |ssage$,X%,Y%,Ico| 0000a720 6e 25 29 0d 2d 00 14 20 20 20 ea 20 46 6f 6e 74 |n%).-.. . Font| 0000a730 48 61 6e 64 6c 65 25 0d 2d 0a 18 20 20 20 e7 20 |Handle%.-.. . | 0000a740 4d 65 73 73 61 67 65 24 3d 22 22 20 8c 20 e1 0d |Message$="" . ..| 0000a750 2d 14 3b 20 20 20 f4 20 44 6f 6e 74 20 57 61 73 |-.; . Dont Was| 0000a760 74 65 20 54 69 6d 65 20 4d 65 73 73 69 6e 67 20 |te Time Messing | 0000a770 61 62 6f 75 74 20 69 66 20 6e 6f 74 68 69 6e 67 |about if nothing| 0000a780 20 74 6f 20 70 72 69 6e 74 21 0d 2d 1e 16 20 20 | to print!.-.. | 0000a790 20 e7 20 50 6f 73 74 46 69 78 24 3d 22 22 20 8c | . PostFix$="" .| 0000a7a0 0d 2d 28 21 20 20 20 20 20 20 c8 99 20 53 65 74 |.-(! .. Set| 0000a7b0 25 2c 42 61 73 65 46 6f 6e 74 48 61 6e 64 6c 65 |%,BaseFontHandle| 0000a7c0 25 0d 2d 32 2e 20 20 20 20 20 20 54 65 78 74 24 |%.-2. Text$| 0000a7d0 3d a4 5f 54 72 69 6d 54 6f 46 69 74 28 4d 65 73 |=._TrimToFit(Mes| 0000a7e0 73 61 67 65 24 2c 34 38 2c 49 63 6f 6e 25 29 0d |sage$,48,Icon%).| 0000a7f0 2d 3c 08 20 20 20 cc 0d 2d 46 21 20 20 20 20 20 |-<. ..-F! | 0000a800 20 c8 99 20 53 65 74 25 2c 42 6f 6c 64 46 6f 6e | .. Set%,BoldFon| 0000a810 74 48 61 6e 64 6c 65 25 0d 2d 50 2e 20 20 20 20 |tHandle%.-P. | 0000a820 20 20 54 65 78 74 24 3d a4 5f 54 72 69 6d 54 6f | Text$=._TrimTo| 0000a830 46 69 74 28 4d 65 73 73 61 67 65 24 2c 38 37 2c |Fit(Message$,87,| 0000a840 49 63 6f 6e 25 29 0d 2d 5a 08 20 20 20 cd 0d 2d |Icon%).-Z. ..-| 0000a850 64 3c 20 20 20 c8 99 20 22 43 6f 6c 6f 75 72 54 |d< .. "ColourT| 0000a860 72 61 6e 73 5f 53 65 74 46 6f 6e 74 43 6f 6c 6f |rans_SetFontColo| 0000a870 75 72 73 22 2c 30 2c 26 46 46 46 46 46 46 30 30 |urs",0,&FFFFFF00| 0000a880 2c 26 30 30 30 30 30 30 30 30 0d 2d 6e 08 20 20 |,&00000000.-n. | 0000a890 20 3a 0d 2d 78 22 20 20 20 c8 99 20 50 61 69 6e | :.-x" .. Pain| 0000a8a0 74 25 2c 2c 54 65 78 74 24 2c 26 32 31 30 2c 58 |t%,,Text$,&210,X| 0000a8b0 25 2c 59 25 0d 2d 82 05 e1 0d 2d 8c 05 3a 0d 2d |%,Y%.-....-..:.-| 0000a8c0 96 53 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.S. ************| 0000a8d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000a910 2a 0d 2d a0 53 f4 20 50 72 69 6e 74 73 20 74 68 |*.-.S. Prints th| 0000a920 65 20 74 61 70 65 20 6e 75 6d 62 65 72 20 69 6e |e tape number in| 0000a930 20 61 20 73 6d 61 6c 6c 65 72 20 70 6f 69 6e 74 | a smaller point| 0000a940 20 73 69 7a 65 20 61 74 20 61 20 66 69 78 65 64 | size at a fixed| 0000a950 20 70 6c 61 63 65 20 6f 6e 20 74 68 65 20 69 6e | place on the in| 0000a960 6c 61 79 2e 0d 2d aa 53 f4 20 2a 2a 2a 2a 2a 2a |lay..-.S. ******| 0000a970 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000a9b0 2a 2a 2a 2a 2a 2a 2a 0d 2d b4 17 dd 20 f2 5f 50 |*******.-... ._P| 0000a9c0 72 69 6e 74 54 61 70 65 4e 75 6d 62 65 72 0d 2d |rintTapeNumber.-| 0000a9d0 be 1a 20 20 20 ea 20 54 65 78 74 24 2c 46 6f 6e |.. . Text$,Fon| 0000a9e0 74 48 61 6e 64 6c 65 25 0d 2d c8 36 20 20 20 c8 |tHandle%.-.6 .| 0000a9f0 99 20 46 69 6e 64 25 2c 2c 42 61 73 65 46 6f 6e |. Find%,,BaseFon| 0000aa00 74 24 2c 36 2a 31 36 2c 38 2a 31 36 2c 30 2c 30 |t$,6*16,8*16,0,0| 0000aa10 20 b8 20 46 6f 6e 74 48 61 6e 64 6c 65 25 0d 2d | . FontHandle%.-| 0000aa20 d2 3c 20 20 20 c8 99 20 22 43 6f 6c 6f 75 72 54 |.< .. "ColourT| 0000aa30 72 61 6e 73 5f 53 65 74 46 6f 6e 74 43 6f 6c 6f |rans_SetFontColo| 0000aa40 75 72 73 22 2c 30 2c 26 46 46 46 46 46 46 30 30 |urs",0,&FFFFFF00| 0000aa50 2c 26 30 30 30 30 30 30 30 30 0d 2d dc 08 20 20 |,&00000000.-.. | 0000aa60 20 3a 0d 2d e6 30 20 20 20 54 65 78 74 24 3d a4 | :.-.0 Text$=.| 0000aa70 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 4d 61 |_ReadIconText(Ma| 0000aa80 69 6e 25 2c 54 61 70 65 4e 75 6d 62 65 72 25 2c |in%,TapeNumber%,| 0000aa90 b9 29 0d 2d f0 29 20 20 20 c8 99 20 50 61 69 6e |.).-.) .. Pain| 0000aaa0 74 25 2c 2c 54 65 78 74 24 2c 26 31 30 2c 58 33 |t%,,Text$,&10,X3| 0000aab0 25 2d 37 30 2c 59 32 25 2b 37 35 0d 2d fa 08 20 |%-70,Y2%+75.-.. | 0000aac0 20 20 3a 0d 2e 04 1b 20 20 20 c8 99 20 4c 6f 73 | :.... .. Los| 0000aad0 65 25 2c 46 6f 6e 74 48 61 6e 64 6c 65 25 0d 2e |e%,FontHandle%..| 0000aae0 0e 05 e1 0d 2e 18 05 3a 0d 2e 22 5f f4 20 2a 2a |.......:.."_. **| 0000aaf0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000ab40 2a 2a 2a 2a 2a 2a 2a 0d 2e 2c 5f f4 20 43 68 65 |*******..,_. Che| 0000ab50 63 6b 20 74 68 65 20 70 72 69 6e 74 65 64 20 6c |ck the printed l| 0000ab60 65 6e 67 74 68 20 6f 66 20 74 68 65 20 74 65 78 |ength of the tex| 0000ab70 74 20 61 67 61 69 6e 73 74 20 74 68 65 20 73 69 |t against the si| 0000ab80 7a 65 20 69 6e 20 70 69 78 65 6c 73 2c 20 61 6e |ze in pixels, an| 0000ab90 64 20 73 68 6f 72 74 65 6e 20 69 66 20 72 65 71 |d shorten if req| 0000aba0 75 69 72 65 64 2e 0d 2e 36 21 f4 20 55 73 65 73 |uired...6!. Uses| 0000abb0 20 3a 20 46 4e 5f 57 61 72 6e 41 62 6f 75 74 43 | : FN_WarnAboutC| 0000abc0 6c 69 70 70 69 6e 67 0d 2e 40 5f f4 20 2a 2a 2a |lipping..@_. ***| 0000abd0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000ac20 2a 2a 2a 2a 2a 2a 0d 2e 4a 21 dd 20 a4 5f 54 72 |******..J!. ._Tr| 0000ac30 69 6d 54 6f 46 69 74 28 54 65 78 74 24 2c 6d 6d |imToFit(Text$,mm| 0000ac40 2c 49 63 6f 6e 25 29 0d 2e 54 25 20 20 20 ea 20 |,Icon%)..T% . | 0000ac50 4e 75 6d 62 65 72 4f 66 50 72 69 6e 74 61 62 6c |NumberOfPrintabl| 0000ac60 65 43 68 61 72 61 63 74 65 72 73 25 0d 2e 5e 12 |eCharacters%..^.| 0000ac70 20 20 20 43 6f 6e 74 69 6e 75 65 25 3d b9 0d 2e | Continue%=...| 0000ac80 68 1f 20 20 20 58 4c 65 6e 67 74 68 25 3d 28 6d |h. XLength%=(m| 0000ac90 6d 2f 32 35 2e 34 29 2a 37 32 30 30 30 0d 2e 72 |m/25.4)*72000..r| 0000aca0 1a 20 20 20 e7 20 4e 65 77 46 6f 6e 74 4d 61 6e |. . NewFontMan| 0000acb0 61 67 65 72 25 20 8c 0d 2e 7c 6e 20 20 20 20 20 |ager% ...|n | 0000acc0 20 c8 99 20 22 46 6f 6e 74 5f 53 63 61 6e 53 74 | .. "Font_ScanSt| 0000acd0 72 69 6e 67 22 2c 30 2c 54 65 78 74 24 2c 26 31 |ring",0,Text$,&1| 0000ace0 30 30 33 38 30 2c 58 4c 65 6e 67 74 68 25 2c 31 |00380,XLength%,1| 0000acf0 35 30 30 30 2c 2c 2c a9 28 54 65 78 74 24 29 20 |5000,,,.(Text$) | 0000ad00 b8 20 2c 2c 2c 2c 2c 2c 2c 4e 75 6d 62 65 72 4f |. ,,,,,,,NumberO| 0000ad10 66 50 72 69 6e 74 61 62 6c 65 43 68 61 72 61 63 |fPrintableCharac| 0000ad20 74 65 72 73 25 0d 2e 86 08 20 20 20 cc 0d 2e 90 |ters%.... ....| 0000ad30 64 20 20 20 20 20 20 c8 99 20 22 46 6f 6e 74 5f |d .. "Font_| 0000ad40 53 74 72 69 6e 67 57 69 64 74 68 22 2c 2c 54 65 |StringWidth",,Te| 0000ad50 78 74 24 2c 58 4c 65 6e 67 74 68 25 2c 31 35 30 |xt$,XLength%,150| 0000ad60 30 30 2c 2d 31 2c a9 28 54 65 78 74 24 29 20 b8 |00,-1,.(Text$) .| 0000ad70 20 2c 2c 2c 2c 4e 75 6d 62 65 72 4f 66 50 72 69 | ,,,,NumberOfPri| 0000ad80 6e 74 61 62 6c 65 43 68 61 72 61 63 74 65 72 73 |ntableCharacters| 0000ad90 25 0d 2e 9a 08 20 20 20 cd 0d 2e a4 38 20 20 20 |%.... ....8 | 0000ada0 54 65 78 74 54 6f 50 72 69 6e 74 24 3d c0 54 65 |TextToPrint$=.Te| 0000adb0 78 74 24 2c 4e 75 6d 62 65 72 4f 66 50 72 69 6e |xt$,NumberOfPrin| 0000adc0 74 61 62 6c 65 43 68 61 72 61 63 74 65 72 73 25 |tableCharacters%| 0000add0 29 0d 2e ae 48 20 20 20 e7 20 4e 75 6d 62 65 72 |)...H . Number| 0000ade0 4f 66 50 72 69 6e 74 61 62 6c 65 43 68 61 72 61 |OfPrintableChara| 0000adf0 63 74 65 72 73 25 3c a9 28 54 65 78 74 24 29 20 |cters%<.(Text$) | 0000ae00 80 20 43 6c 69 70 70 65 64 41 72 72 61 79 25 3f |. ClippedArray%?| 0000ae10 49 63 6f 6e 25 3d 30 20 8c 0d 2e b8 3b 20 20 20 |Icon%=0 ....; | 0000ae20 20 20 20 43 6f 6e 74 69 6e 75 65 25 3d a4 5f 57 | Continue%=._W| 0000ae30 61 72 6e 41 62 6f 75 74 43 6c 69 70 70 69 6e 67 |arnAboutClipping| 0000ae40 28 54 65 78 74 24 2c 54 65 78 74 54 6f 50 72 69 |(Text$,TextToPri| 0000ae50 6e 74 24 29 0d 2e c2 1f 20 20 20 20 20 20 43 6c |nt$).... Cl| 0000ae60 69 70 70 65 64 41 72 72 61 79 25 3f 49 63 6f 6e |ippedArray%?Icon| 0000ae70 25 3d 31 0d 2e cc 08 20 20 20 cd 0d 2e d6 41 20 |%=1.... ....A | 0000ae80 20 20 e7 20 43 6f 6e 74 69 6e 75 65 25 3d a3 20 | . Continue%=. | 0000ae90 8c 20 85 20 32 30 30 31 2c 22 41 62 6f 72 74 69 |. . 2001,"Aborti| 0000aea0 6e 67 20 50 72 69 6e 74 6f 75 74 2e 20 4f 4b 20 |ng Printout. OK | 0000aeb0 74 6f 20 43 6f 6e 74 69 6e 75 65 22 0d 2e e0 11 |to Continue"....| 0000aec0 3d 54 65 78 74 54 6f 50 72 69 6e 74 24 0d 2e ea |=TextToPrint$...| 0000aed0 05 3a 0d 2e f4 5a f4 20 2a 2a 2a 2a 2a 2a 2a 2a |.:...Z. ********| 0000aee0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000af20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 2e fe 5b |************...[| 0000af30 f4 20 49 66 20 43 6c 69 70 70 69 6e 67 20 77 69 |. If Clipping wi| 0000af40 6c 6c 20 6f 63 63 6f 75 72 2c 20 74 68 65 6e 20 |ll occour, then | 0000af50 64 69 73 70 6c 61 79 20 57 61 72 6e 69 6e 67 20 |display Warning | 0000af60 6d 65 73 73 61 67 65 20 61 6e 64 20 61 6c 6c 6f |message and allo| 0000af70 77 20 75 73 65 72 20 6f 70 74 69 6f 6e 20 74 6f |w user option to| 0000af80 20 61 62 6f 72 74 2e 0d 2f 08 10 f4 20 55 73 65 | abort../... Use| 0000af90 73 3a 20 4e 4f 4e 45 0d 2f 12 5a f4 20 2a 2a 2a |s: NONE./.Z. ***| 0000afa0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000aff0 2a 0d 2f 1c 31 dd 20 a4 5f 57 61 72 6e 41 62 6f |*./.1. ._WarnAbo| 0000b000 75 74 43 6c 69 70 70 69 6e 67 28 49 63 6f 6e 54 |utClipping(IconT| 0000b010 65 78 74 24 2c 54 65 78 74 54 6f 50 72 69 6e 74 |ext$,TextToPrint| 0000b020 24 29 0d 2f 26 0f 20 20 20 ea 20 45 72 72 6f 72 |$)./&. . Error| 0000b030 24 0d 2f 30 10 20 20 20 21 42 6c 6f 63 6b 25 3d |$./0. !Block%=| 0000b040 30 0d 2f 3a 7b 20 20 20 45 72 72 6f 72 24 20 3d |0./:{ Error$ =| 0000b050 22 54 68 69 73 20 54 65 78 74 20 2d 20 27 22 2b |"This Text - '"+| 0000b060 49 63 6f 6e 54 65 78 74 24 2b 22 27 20 44 6f 65 |IconText$+"' Doe| 0000b070 73 20 6e 6f 74 20 66 69 74 2e 20 43 6c 69 70 70 |s not fit. Clipp| 0000b080 69 6e 67 20 74 6f 20 27 22 2b 54 65 78 74 54 6f |ing to '"+TextTo| 0000b090 50 72 69 6e 74 24 2b 22 27 20 20 4f 4b 20 54 6f |Print$+"' OK To| 0000b0a0 20 43 6f 6e 74 69 6e 75 65 2c 20 43 41 4e 43 45 | Continue, CANCE| 0000b0b0 4c 20 54 6f 20 41 62 6f 72 74 2e 22 0d 2f 44 1e |L To Abort."./D.| 0000b0c0 20 20 20 24 28 42 6c 6f 63 6b 25 2b 34 29 3d 45 | $(Block%+4)=E| 0000b0d0 72 72 6f 72 24 20 2b 20 bd 30 0d 2f 4e 41 20 20 |rror$ + .0./NA | 0000b0e0 20 c8 99 20 22 57 69 6d 70 5f 52 65 70 6f 72 74 | .. "Wimp_Report| 0000b0f0 45 72 72 6f 72 22 2c 42 6c 6f 63 6b 25 2c 25 31 |Error",Block%,%1| 0000b100 30 30 31 31 2c 4d 79 54 61 73 6b 4e 61 6d 65 24 |0011,MyTaskName$| 0000b110 20 b8 20 2c 52 65 73 75 6c 74 25 0d 2f 58 2e 20 | . ,Result%./X. | 0000b120 20 20 e7 20 52 65 73 75 6c 74 25 3d 32 20 8c 20 | . Result%=2 . | 0000b130 43 6f 6e 74 69 6e 75 65 25 3d a3 20 8b 20 43 6f |Continue%=. . Co| 0000b140 6e 74 69 6e 75 65 25 3d b9 0d 2f 62 34 20 20 20 |ntinue%=../b4 | 0000b150 c8 99 20 22 57 69 6d 70 5f 52 65 70 6f 72 74 45 |.. "Wimp_ReportE| 0000b160 72 72 6f 72 22 2c 42 6c 6f 63 6b 25 2c 31 3c 3c |rror",Block%,1<<| 0000b170 36 2c 4d 79 54 61 73 6b 4e 61 6d 65 24 0d 2f 6c |6,MyTaskName$./l| 0000b180 0e 3d 43 6f 6e 74 69 6e 75 65 25 0d 2f 76 04 0d |.=Continue%./v..| 0000b190 2f 80 1c dd 20 f2 5f 4f 70 65 6e 53 75 62 4d 65 |/... ._OpenSubMe| 0000b1a0 6e 75 28 57 69 6e 64 6f 77 25 29 0d 2f 8a 27 20 |nu(Window%)./.' | 0000b1b0 20 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 50 6f | .. "Wimp_GetPo| 0000b1c0 69 6e 74 65 72 49 6e 66 6f 22 2c 2c 42 6c 6f 63 |interInfo",,Bloc| 0000b1d0 6b 25 0d 2f 94 3c 20 20 20 c8 99 20 22 57 69 6d |k%./.< .. "Wim| 0000b1e0 70 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c 57 |p_CreateMenu",,W| 0000b1f0 69 6e 64 6f 77 25 2c 42 6c 6f 63 6b 25 21 30 2d |indow%,Block%!0-| 0000b200 36 34 2c 42 6c 6f 63 6b 25 21 34 2b 34 38 0d 2f |64,Block%!4+48./| 0000b210 9e 05 e1 0d 2f a8 05 3a 0d 2f b2 4c f4 20 2a 2a |..../..:./.L. **| 0000b220 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000b260 2a 2a 2a 2a 0d 2f bc 4c f4 20 53 65 74 73 20 74 |****./.L. Sets t| 0000b270 68 65 20 63 61 73 65 20 6f 66 20 61 6c 6c 20 74 |he case of all t| 0000b280 68 65 20 77 72 69 74 61 62 6c 65 20 69 63 6f 6e |he writable icon| 0000b290 73 20 74 6f 20 65 6e 73 75 72 65 20 61 20 63 6f |s to ensure a co| 0000b2a0 6e 73 69 73 74 61 6e 74 20 66 6f 72 6d 61 74 2e |nsistant format.| 0000b2b0 0d 2f c6 4c f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |./.L. **********| 0000b2c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000b2f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 2f d0 16 |************./..| 0000b300 dd 20 f2 5f 46 6f 72 6d 61 74 49 63 6f 6e 54 65 |. ._FormatIconTe| 0000b310 78 74 0d 2f da 0e 20 20 20 ea 20 4c 6f 6f 70 25 |xt./.. . Loop%| 0000b320 0d 2f e4 3a 20 20 20 e3 20 4c 6f 6f 70 25 3d 54 |./.: . Loop%=T| 0000b330 6f 70 53 65 74 53 69 64 65 4f 4e 45 53 74 61 72 |opSetSideONEStar| 0000b340 74 25 20 b8 20 54 6f 70 53 65 74 53 69 64 65 54 |t% . TopSetSideT| 0000b350 57 4f 45 6e 64 25 20 88 20 32 0d 2f ee 31 20 20 |WOEnd% . 2./.1 | 0000b360 20 20 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 | ._SetIconTex| 0000b370 74 28 4c 6f 6f 70 25 2c 4d 61 69 6e 25 2c a4 5f |t(Loop%,Main%,._| 0000b380 43 45 57 28 4c 6f 6f 70 25 29 29 0d 2f f8 35 20 |CEW(Loop%))./.5 | 0000b390 20 20 20 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 | ._SetIconTe| 0000b3a0 78 74 28 4c 6f 6f 70 25 2b 31 2c 4d 61 69 6e 25 |xt(Loop%+1,Main%| 0000b3b0 2c a4 5f 43 45 57 28 4c 6f 6f 70 25 2b 31 29 29 |,._CEW(Loop%+1))| 0000b3c0 0d 30 02 1f 20 20 20 20 20 20 f2 5f 52 65 64 72 |.0.. ._Redr| 0000b3d0 61 77 28 4d 61 69 6e 25 2c 4c 6f 6f 70 25 29 0d |aw(Main%,Loop%).| 0000b3e0 30 0c 21 20 20 20 20 20 20 f2 5f 52 65 64 72 61 |0.! ._Redra| 0000b3f0 77 28 4d 61 69 6e 25 2c 4c 6f 6f 70 25 2b 31 29 |w(Main%,Loop%+1)| 0000b400 0d 30 16 08 20 20 20 ed 0d 30 20 3a 20 20 20 e3 |.0.. ..0 : .| 0000b410 20 4c 6f 6f 70 25 3d 42 74 6d 53 65 74 53 69 64 | Loop%=BtmSetSid| 0000b420 65 4f 4e 45 53 74 61 72 74 25 20 b8 20 42 74 6d |eONEStart% . Btm| 0000b430 53 65 74 53 69 64 65 54 57 4f 45 6e 64 25 20 88 |SetSideTWOEnd% .| 0000b440 20 32 0d 30 2a 31 20 20 20 20 20 20 f2 5f 53 65 | 2.0*1 ._Se| 0000b450 74 49 63 6f 6e 54 65 78 74 28 4c 6f 6f 70 25 2c |tIconText(Loop%,| 0000b460 4d 61 69 6e 25 2c a4 5f 43 45 57 28 4c 6f 6f 70 |Main%,._CEW(Loop| 0000b470 25 29 29 0d 30 34 35 20 20 20 20 20 20 f2 5f 53 |%)).045 ._S| 0000b480 65 74 49 63 6f 6e 54 65 78 74 28 4c 6f 6f 70 25 |etIconText(Loop%| 0000b490 2b 31 2c 4d 61 69 6e 25 2c a4 5f 43 45 57 28 4c |+1,Main%,._CEW(L| 0000b4a0 6f 6f 70 25 2b 31 29 29 0d 30 3e 1f 20 20 20 20 |oop%+1)).0>. | 0000b4b0 20 20 f2 5f 52 65 64 72 61 77 28 4d 61 69 6e 25 | ._Redraw(Main%| 0000b4c0 2c 4c 6f 6f 70 25 29 0d 30 48 21 20 20 20 20 20 |,Loop%).0H! | 0000b4d0 20 f2 5f 52 65 64 72 61 77 28 4d 61 69 6e 25 2c | ._Redraw(Main%,| 0000b4e0 4c 6f 6f 70 25 2b 31 29 0d 30 52 08 20 20 20 ed |Loop%+1).0R. .| 0000b4f0 0d 30 5c 43 20 20 20 f2 5f 53 65 74 49 63 6f 6e |.0\C ._SetIcon| 0000b500 54 65 78 74 28 54 69 74 6c 65 53 69 64 65 4f 4e |Text(TitleSideON| 0000b510 45 25 2c 4d 61 69 6e 25 2c a4 5f 49 63 6f 6e 5f |E%,Main%,._Icon_| 0000b520 46 54 55 28 54 69 74 6c 65 53 69 64 65 4f 4e 45 |FTU(TitleSideONE| 0000b530 25 29 29 0d 30 66 43 20 20 20 f2 5f 53 65 74 49 |%)).0fC ._SetI| 0000b540 63 6f 6e 54 65 78 74 28 54 69 74 6c 65 53 69 64 |conText(TitleSid| 0000b550 65 54 57 4f 25 2c 4d 61 69 6e 25 2c a4 5f 49 63 |eTWO%,Main%,._Ic| 0000b560 6f 6e 5f 46 54 55 28 54 69 74 6c 65 53 69 64 65 |on_FTU(TitleSide| 0000b570 54 57 4f 25 29 29 0d 30 70 45 20 20 20 f2 5f 53 |TWO%)).0pE ._S| 0000b580 65 74 49 63 6f 6e 54 65 78 74 28 41 72 74 69 73 |etIconText(Artis| 0000b590 74 53 69 64 65 4f 4e 45 25 2c 4d 61 69 6e 25 2c |tSideONE%,Main%,| 0000b5a0 a4 5f 49 63 6f 6e 5f 46 54 55 28 41 72 74 69 73 |._Icon_FTU(Artis| 0000b5b0 74 53 69 64 65 4f 4e 45 25 29 29 0d 30 7a 45 20 |tSideONE%)).0zE | 0000b5c0 20 20 f2 5f 53 65 74 49 63 6f 6e 54 65 78 74 28 | ._SetIconText(| 0000b5d0 41 72 74 69 73 74 53 69 64 65 54 57 4f 25 2c 4d |ArtistSideTWO%,M| 0000b5e0 61 69 6e 25 2c a4 5f 49 63 6f 6e 5f 46 54 55 28 |ain%,._Icon_FTU(| 0000b5f0 41 72 74 69 73 74 53 69 64 65 54 57 4f 25 29 29 |ArtistSideTWO%))| 0000b600 0d 30 84 2e 20 20 20 e3 20 4c 6f 6f 70 25 3d 20 |.0.. . Loop%= | 0000b610 54 69 74 6c 65 53 69 64 65 4f 4e 45 25 20 b8 20 |TitleSideONE% . | 0000b620 41 72 74 69 73 74 53 69 64 65 54 57 4f 25 0d 30 |ArtistSideTWO%.0| 0000b630 8e 1f 20 20 20 20 20 20 f2 5f 52 65 64 72 61 77 |.. ._Redraw| 0000b640 28 4d 61 69 6e 25 2c 4c 6f 6f 70 25 29 0d 30 98 |(Main%,Loop%).0.| 0000b650 08 20 20 20 ed 0d 30 a2 05 e1 0d 30 ac 05 3a 0d |. ..0....0..:.| 0000b660 30 b6 37 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |0.7. ***********| 0000b670 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000b690 2a 2a 2a 2a 2a 2a 0d 30 c0 37 f4 20 46 75 6e 63 |******.0.7. Func| 0000b6a0 74 69 6f 6e 20 74 6f 20 43 61 70 69 74 61 6c 69 |tion to Capitali| 0000b6b0 73 65 20 45 61 63 68 20 57 6f 72 64 20 69 6e 20 |se Each Word in | 0000b6c0 61 20 67 69 76 65 6e 20 49 63 6f 6e 2e 0d 30 ca |a given Icon..0.| 0000b6d0 37 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |7. *************| 0000b6e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000b700 2a 2a 2a 2a 0d 30 d4 12 dd 20 a4 5f 43 45 57 28 |****.0... ._CEW(| 0000b710 49 63 6f 6e 25 29 0d 30 de 24 20 20 20 ea 20 49 |Icon%).0.$ . I| 0000b720 63 6f 6e 54 65 78 74 24 2c 20 49 6e 64 65 78 25 |conText$, Index%| 0000b730 2c 20 45 6e 64 25 2c 20 43 25 0d 30 e8 2e 20 20 |, End%, C%.0.. | 0000b740 20 49 63 6f 6e 54 65 78 74 24 3d a4 5f 52 65 61 | IconText$=._Rea| 0000b750 64 49 63 6f 6e 54 65 78 74 28 4d 61 69 6e 25 2c |dIconText(Main%,| 0000b760 49 63 6f 6e 25 2c a3 29 0d 30 f2 29 20 20 20 f4 |Icon%,.).0.) .| 0000b770 20 49 66 20 69 63 6f 6e 20 69 73 20 65 6d 70 74 | If icon is empt| 0000b780 79 2c 20 61 62 61 6e 64 6f 6e 20 66 6f 72 6d 61 |y, abandon forma| 0000b790 74 0d 30 fc 22 20 20 20 e7 20 49 63 6f 6e 54 65 |t.0." . IconTe| 0000b7a0 78 74 24 3d 22 22 20 8c 20 3d 49 63 6f 6e 54 65 |xt$="" . =IconTe| 0000b7b0 78 74 24 0d 31 06 23 20 20 20 49 6e 64 65 78 25 |xt$.1.# Index%| 0000b7c0 3d 31 20 3a 20 45 6e 64 25 3d a9 28 49 63 6f 6e |=1 : End%=.(Icon| 0000b7d0 54 65 78 74 24 29 0d 31 10 1a 20 20 20 f4 20 47 |Text$).1.. . G| 0000b7e0 65 74 20 31 73 74 20 63 68 61 72 61 63 74 65 72 |et 1st character| 0000b7f0 0d 31 1a 16 20 20 20 c8 95 20 49 6e 64 65 78 25 |.1.. .. Index%| 0000b800 3c 3d 45 6e 64 25 0d 31 24 37 20 20 20 20 20 20 |<=End%.1$7 | 0000b810 c1 49 63 6f 6e 54 65 78 74 24 2c 49 6e 64 65 78 |.IconText$,Index| 0000b820 25 2c 31 29 3d a4 5f 43 68 61 72 5f 46 54 55 28 |%,1)=._Char_FTU(| 0000b830 49 63 6f 6e 25 2c 49 6e 64 65 78 25 29 0d 31 2e |Icon%,Index%).1.| 0000b840 13 20 20 20 20 20 20 49 6e 64 65 78 25 2b 3d 31 |. Index%+=1| 0000b850 0d 31 38 21 20 20 20 20 20 20 43 24 3d c1 49 63 |.18! C$=.Ic| 0000b860 6f 6e 54 65 78 74 24 2c 49 6e 64 65 78 25 2c 31 |onText$,Index%,1| 0000b870 29 0d 31 42 35 20 20 20 20 20 20 f4 20 4c 6f 6f |).1B5 . Loo| 0000b880 70 20 75 6e 74 69 6c 20 65 6e 64 20 6f 66 20 77 |p until end of w| 0000b890 6f 72 64 20 28 6f 72 20 65 6e 64 20 6f 66 20 73 |ord (or end of s| 0000b8a0 74 72 69 6e 67 29 0d 31 4c 23 20 20 20 20 20 20 |tring).1L# | 0000b8b0 c8 95 20 43 24 3c 3e 22 20 22 20 80 20 49 6e 64 |.. C$<>" " . Ind| 0000b8c0 65 78 25 3c 3d 45 6e 64 25 0d 31 56 3a 20 20 20 |ex%<=End%.1V: | 0000b8d0 20 20 20 20 20 20 c1 49 63 6f 6e 54 65 78 74 24 | .IconText$| 0000b8e0 2c 49 6e 64 65 78 25 2c 31 29 3d a4 5f 43 68 61 |,Index%,1)=._Cha| 0000b8f0 72 5f 46 54 4c 28 49 63 6f 6e 25 2c 49 6e 64 65 |r_FTL(Icon%,Inde| 0000b900 78 25 29 0d 31 60 16 20 20 20 20 20 20 20 20 20 |x%).1`. | 0000b910 49 6e 64 65 78 25 2b 3d 31 0d 31 6a 24 20 20 20 |Index%+=1.1j$ | 0000b920 20 20 20 20 20 20 43 24 3d c1 49 63 6f 6e 54 65 | C$=.IconTe| 0000b930 78 74 24 2c 49 6e 64 65 78 25 2c 31 29 0d 31 74 |xt$,Index%,1).1t| 0000b940 0b 20 20 20 20 20 20 ce 0d 31 7e 39 20 20 20 20 |. ..1~9 | 0000b950 20 20 f4 20 4c 6f 6f 70 20 75 6e 74 69 6c 20 6e | . Loop until n| 0000b960 65 78 74 20 77 6f 72 64 20 66 6f 75 6e 64 20 28 |ext word found (| 0000b970 4f 72 20 65 6e 64 20 6f 66 20 73 74 72 69 6e 67 |Or end of string| 0000b980 29 0d 31 88 22 20 20 20 20 20 20 c8 95 20 43 24 |).1." .. C$| 0000b990 3d 22 20 22 20 80 20 49 6e 64 65 78 25 3c 3d 45 |=" " . Index%<=E| 0000b9a0 6e 64 25 0d 31 92 16 20 20 20 20 20 20 20 20 20 |nd%.1.. | 0000b9b0 49 6e 64 65 78 25 2b 3d 31 0d 31 9c 24 20 20 20 |Index%+=1.1.$ | 0000b9c0 20 20 20 20 20 20 43 24 3d c1 49 63 6f 6e 54 65 | C$=.IconTe| 0000b9d0 78 74 24 2c 49 6e 64 65 78 25 2c 31 29 0d 31 a6 |xt$,Index%,1).1.| 0000b9e0 0b 20 20 20 20 20 20 ce 0d 31 b0 16 20 20 20 20 |. ..1.. | 0000b9f0 20 20 f1 49 6e 64 65 78 25 2c 45 6e 64 25 0d 31 | .Index%,End%.1| 0000ba00 ba 08 20 20 20 ce 0d 31 c4 0e 3d 49 63 6f 6e 54 |.. ..1..=IconT| 0000ba10 65 78 74 24 0d 31 ce 05 3a 0d 31 d8 3f f4 20 2a |ext$.1..:.1.?. *| 0000ba20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000ba50 2a 2a 2a 2a 2a 2a 2a 2a 0d 31 e2 3f f4 20 46 75 |********.1.?. Fu| 0000ba60 6e 63 74 69 6f 6e 20 74 6f 20 46 6f 72 63 65 20 |nction to Force | 0000ba70 61 6c 6c 20 74 65 78 74 20 69 6e 20 61 20 67 69 |all text in a gi| 0000ba80 76 65 6e 20 69 63 6f 6e 20 74 6f 20 55 50 50 45 |ven icon to UPPE| 0000ba90 52 20 43 41 53 45 2e 0d 31 ec 3f f4 20 2a 2a 2a |R CASE..1.?. ***| 0000baa0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000bad0 2a 2a 2a 2a 2a 2a 0d 31 f6 17 dd 20 a4 5f 49 63 |******.1... ._Ic| 0000bae0 6f 6e 5f 46 54 55 28 49 63 6f 6e 25 29 0d 32 00 |on_FTU(Icon%).2.| 0000baf0 12 20 20 20 ea 20 49 63 6f 6e 54 65 78 74 24 0d |. . IconText$.| 0000bb00 32 0a 2e 20 20 20 49 63 6f 6e 54 65 78 74 24 3d |2.. IconText$=| 0000bb10 a4 5f 52 65 61 64 49 63 6f 6e 54 65 78 74 28 4d |._ReadIconText(M| 0000bb20 61 69 6e 25 2c 49 63 6f 6e 25 2c a3 29 0d 32 14 |ain%,Icon%,.).2.| 0000bb30 23 20 20 20 49 6e 64 65 78 25 3d 31 20 3a 20 45 |# Index%=1 : E| 0000bb40 6e 64 25 3d a9 28 49 63 6f 6e 54 65 78 74 24 29 |nd%=.(IconText$)| 0000bb50 0d 32 1e 16 20 20 20 c8 95 20 49 6e 64 65 78 25 |.2.. .. Index%| 0000bb60 3c 3d 45 6e 64 25 0d 32 28 37 20 20 20 20 20 20 |<=End%.2(7 | 0000bb70 c1 49 63 6f 6e 54 65 78 74 24 2c 49 6e 64 65 78 |.IconText$,Index| 0000bb80 25 2c 31 29 3d a4 5f 43 68 61 72 5f 46 54 55 28 |%,1)=._Char_FTU(| 0000bb90 49 63 6f 6e 25 2c 49 6e 64 65 78 25 29 0d 32 32 |Icon%,Index%).22| 0000bba0 13 20 20 20 20 20 20 49 6e 64 65 78 25 2b 3d 31 |. Index%+=1| 0000bbb0 0d 32 3c 21 20 20 20 20 20 20 43 24 3d c1 49 63 |.2<! C$=.Ic| 0000bbc0 6f 6e 54 65 78 74 24 2c 49 6e 64 65 78 25 2c 31 |onText$,Index%,1| 0000bbd0 29 0d 32 46 08 20 20 20 ce 0d 32 50 0e 3d 49 63 |).2F. ..2P.=Ic| 0000bbe0 6f 6e 54 65 78 74 24 0d 32 5a 05 3a 0d 32 64 3f |onText$.2Z.:.2d?| 0000bbf0 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. **************| 0000bc00 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000bc20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 32 6e 3f f4 |***********.2n?.| 0000bc30 20 46 75 6e 63 74 69 6f 6e 20 74 6f 20 46 6f 72 | Function to For| 0000bc40 63 65 20 61 6c 6c 20 74 65 78 74 20 69 6e 20 61 |ce all text in a| 0000bc50 20 67 69 76 65 6e 20 69 63 6f 6e 20 74 6f 20 4c | given icon to L| 0000bc60 4f 57 45 52 20 43 41 53 45 2e 0d 32 78 3f f4 20 |OWER CASE..2x?. | 0000bc70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000bca0 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 32 82 17 dd 20 a4 |*********.2... .| 0000bcb0 5f 49 63 6f 6e 5f 46 54 4c 28 49 63 6f 6e 25 29 |_Icon_FTL(Icon%)| 0000bcc0 0d 32 8c 12 20 20 20 ea 20 49 63 6f 6e 54 65 78 |.2.. . IconTex| 0000bcd0 74 24 0d 32 96 2e 20 20 20 49 63 6f 6e 54 65 78 |t$.2.. IconTex| 0000bce0 74 24 3d a4 5f 52 65 61 64 49 63 6f 6e 54 65 78 |t$=._ReadIconTex| 0000bcf0 74 28 4d 61 69 6e 25 2c 49 63 6f 6e 25 2c a3 29 |t(Main%,Icon%,.)| 0000bd00 0d 32 a0 23 20 20 20 49 6e 64 65 78 25 3d 31 20 |.2.# Index%=1 | 0000bd10 3a 20 45 6e 64 25 3d a9 28 49 63 6f 6e 54 65 78 |: End%=.(IconTex| 0000bd20 74 24 29 0d 32 aa 16 20 20 20 c8 95 20 49 6e 64 |t$).2.. .. Ind| 0000bd30 65 78 25 3c 3d 45 6e 64 25 0d 32 b4 37 20 20 20 |ex%<=End%.2.7 | 0000bd40 20 20 20 c1 49 63 6f 6e 54 65 78 74 24 2c 49 6e | .IconText$,In| 0000bd50 64 65 78 25 2c 31 29 3d a4 5f 43 68 61 72 5f 46 |dex%,1)=._Char_F| 0000bd60 54 4c 28 49 63 6f 6e 25 2c 49 6e 64 65 78 25 29 |TL(Icon%,Index%)| 0000bd70 0d 32 be 13 20 20 20 20 20 20 49 6e 64 65 78 25 |.2.. Index%| 0000bd80 2b 3d 31 0d 32 c8 21 20 20 20 20 20 20 43 24 3d |+=1.2.! C$=| 0000bd90 c1 49 63 6f 6e 54 65 78 74 24 2c 49 6e 64 65 78 |.IconText$,Index| 0000bda0 25 2c 31 29 0d 32 d2 08 20 20 20 ce 0d 32 dc 05 |%,1).2.. ..2..| 0000bdb0 3a 0d 32 e6 38 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |:.2.8. *********| 0000bdc0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000bde0 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 32 f0 38 f4 20 46 |*********.2.8. F| 0000bdf0 75 6e 63 74 69 6f 6e 20 74 6f 20 46 6f 72 63 65 |unction to Force| 0000be00 20 61 20 67 69 76 65 6e 20 63 68 61 72 61 63 74 | a given charact| 0000be10 65 72 20 74 6f 20 55 50 50 45 52 20 43 41 53 45 |er to UPPER CASE| 0000be20 2e 0d 32 fa 38 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |..2.8. *********| 0000be30 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000be50 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 33 04 1e dd 20 a4 |*********.3... .| 0000be60 5f 43 68 61 72 5f 46 54 55 28 49 63 6f 6e 25 2c |_Char_FTU(Icon%,| 0000be70 49 6e 64 65 78 25 29 0d 33 0e 0e 20 20 20 ea 20 |Index%).3.. . | 0000be80 54 65 6d 70 24 0d 33 18 21 20 20 20 54 65 6d 70 |Temp$.3.! Temp| 0000be90 24 3d c1 49 63 6f 6e 54 65 78 74 24 2c 49 6e 64 |$=.IconText$,Ind| 0000bea0 65 78 25 2c 31 29 0d 33 22 3a 20 20 20 e7 20 54 |ex%,1).3": . T| 0000beb0 65 6d 70 24 3e 3d 22 61 22 20 80 20 54 65 6d 70 |emp$>="a" . Temp| 0000bec0 24 3c 3d 22 7a 22 20 8c 20 54 65 6d 70 24 3d bd |$<="z" . Temp$=.| 0000bed0 28 97 28 54 65 6d 70 24 29 20 80 20 26 44 46 29 |(.(Temp$) . &DF)| 0000bee0 0d 33 2c 0a 3d 54 65 6d 70 24 0d 33 36 05 3a 0d |.3,.=Temp$.36.:.| 0000bef0 33 40 38 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |3@8. ***********| 0000bf00 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000bf20 2a 2a 2a 2a 2a 2a 2a 0d 33 4a 38 f4 20 46 75 6e |*******.3J8. Fun| 0000bf30 63 74 69 6f 6e 20 74 6f 20 46 6f 72 63 65 20 61 |ction to Force a| 0000bf40 20 67 69 76 65 6e 20 63 68 61 72 61 63 74 65 72 | given character| 0000bf50 20 74 6f 20 4c 4f 57 45 52 20 43 41 53 45 2e 0d | to LOWER CASE..| 0000bf60 33 54 38 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |3T8. ***********| 0000bf70 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000bf90 2a 2a 2a 2a 2a 2a 2a 0d 33 5e 1e dd 20 a4 5f 43 |*******.3^.. ._C| 0000bfa0 68 61 72 5f 46 54 4c 28 49 63 6f 6e 25 2c 49 6e |har_FTL(Icon%,In| 0000bfb0 64 65 78 25 29 0d 33 68 0e 20 20 20 ea 20 54 65 |dex%).3h. . Te| 0000bfc0 6d 70 24 0d 33 72 21 20 20 20 54 65 6d 70 24 3d |mp$.3r! Temp$=| 0000bfd0 c1 49 63 6f 6e 54 65 78 74 24 2c 49 6e 64 65 78 |.IconText$,Index| 0000bfe0 25 2c 31 29 0d 33 7c 3a 20 20 20 e7 20 54 65 6d |%,1).3|: . Tem| 0000bff0 70 24 3e 3d 22 41 22 20 80 20 54 65 6d 70 24 3c |p$>="A" . Temp$<| 0000c000 3d 22 5a 22 20 8c 20 54 65 6d 70 24 3d bd 28 97 |="Z" . Temp$=.(.| 0000c010 28 54 65 6d 70 24 29 20 84 20 26 32 30 29 0d 33 |(Temp$) . &20).3| 0000c020 86 0a 3d 54 65 6d 70 24 0d 33 90 05 3a 0d 33 9a |..=Temp$.3..:.3.| 0000c030 81 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.. *************| 0000c040 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000c0a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 33 |**************.3| 0000c0b0 a4 7e f4 20 54 68 69 73 20 6d 65 73 73 61 67 65 |.~. This message| 0000c0c0 20 69 73 20 75 6e 69 71 75 65 20 74 6f 20 74 68 | is unique to th| 0000c0d0 65 20 50 6f 72 74 61 62 6c 65 2e 20 49 74 20 6f |e Portable. It o| 0000c0e0 63 63 75 72 65 73 20 77 68 65 6e 20 74 68 65 20 |ccures when the | 0000c0f0 62 61 74 74 65 72 79 20 69 73 20 74 6f 6f 20 6c |battery is too l| 0000c100 6f 77 20 66 6f 72 20 63 6f 6e 74 69 6e 75 65 64 |ow for continued| 0000c110 20 75 73 61 67 65 2e 20 49 74 20 69 73 20 61 20 | usage. It is a | 0000c120 73 65 63 6f 6e 64 20 73 74 61 67 65 0d 33 ae 7c |second stage.3.|| 0000c130 f4 20 77 61 72 6e 69 6e 67 2c 20 74 68 65 20 66 |. warning, the f| 0000c140 69 72 73 74 20 73 74 61 67 65 20 69 6e 76 69 74 |irst stage invit| 0000c150 65 73 20 74 68 65 20 75 73 65 72 20 74 6f 20 73 |es the user to s| 0000c160 68 75 74 20 64 6f 77 6e 20 74 68 65 20 6d 61 63 |hut down the mac| 0000c170 68 69 6e 65 20 73 61 66 65 6c 79 2c 20 62 75 74 |hine safely, but| 0000c180 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 | if this is not | 0000c190 64 6f 6e 65 20 74 68 65 6e 20 74 68 69 73 20 73 |done then this s| 0000c1a0 74 61 67 65 20 74 77 6f 0d 33 b8 7b f4 20 6d 65 |tage two.3.{. me| 0000c1b0 73 73 61 67 65 20 69 73 20 73 65 6e 74 20 6f 75 |ssage is sent ou| 0000c1c0 74 2e 20 49 66 20 79 6f 75 20 61 72 65 20 61 77 |t. If you are aw| 0000c1d0 61 72 65 20 6f 66 20 74 68 65 20 73 74 61 74 75 |are of the statu| 0000c1e0 73 20 6f 66 20 79 6f 75 72 20 66 69 6c 65 20 74 |s of your file t| 0000c1f0 68 65 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20 70 |hen you should p| 0000c200 72 6f 6d 70 74 20 74 68 65 20 75 73 65 72 20 74 |rompt the user t| 0000c210 6f 20 73 61 76 65 20 61 6e 79 20 6d 6f 64 69 66 |o save any modif| 0000c220 69 65 64 0d 33 c2 7a f4 20 6f 72 20 75 6e 73 61 |ied.3.z. or unsa| 0000c230 76 65 64 20 66 69 6c 65 73 20 69 6e 20 79 6f 75 |ved files in you| 0000c240 72 20 6e 6f 72 6d 61 6c 20 63 6c 6f 73 65 64 6f |r normal closedo| 0000c250 77 6e 20 6d 61 6e 6e 65 72 2e 20 49 66 20 79 6f |wn manner. If yo| 0000c260 75 20 63 61 6e 6e 6f 74 20 64 6f 20 74 68 69 73 |u cannot do this| 0000c270 2c 20 6f 72 20 74 68 65 20 75 73 65 72 20 64 6f |, or the user do| 0000c280 65 73 20 6e 6f 74 20 72 65 73 70 6f 6e 64 20 28 |es not respond (| 0000c290 45 47 20 4d 61 63 68 69 6e 65 20 69 73 0d 33 cc |EG Machine is.3.| 0000c2a0 63 f4 20 75 6e 61 74 74 65 6e 64 65 64 29 20 74 |c. unattended) t| 0000c2b0 68 65 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 |hen the applicat| 0000c2c0 69 6f 6e 20 73 68 6f 75 6c 64 20 73 61 76 65 20 |ion should save | 0000c2d0 74 68 65 20 64 61 74 61 20 69 6e 74 6f 20 74 68 |the data into th| 0000c2e0 65 20 73 63 72 61 70 20 64 69 72 65 63 74 6f 72 |e scrap director| 0000c2f0 79 20 62 79 20 74 68 65 6d 73 65 6c 76 65 73 2e |y by themselves.| 0000c300 0d 33 d6 80 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.3... **********| 0000c310 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000c380 0d 33 e0 17 dd 20 f2 5f 4c 6f 77 50 6f 77 65 72 |.3... ._LowPower| 0000c390 57 61 72 6e 69 6e 67 0d 33 ea 31 20 20 20 ea 20 |Warning.3.1 . | 0000c3a0 53 61 76 65 4e 61 6d 65 24 2c 50 6f 69 6e 74 65 |SaveName$,Pointe| 0000c3b0 72 25 2c 4c 65 61 66 4e 61 6d 65 24 2c 4d 79 53 |r%,LeafName$,MyS| 0000c3c0 63 72 61 70 44 69 72 24 0d 33 f4 3b 20 20 20 4d |crapDir$.3.; M| 0000c3d0 79 53 63 72 61 70 44 69 72 24 3d a4 5f 43 6f 6e |yScrapDir$=._Con| 0000c3e0 76 65 72 74 53 79 73 74 65 6d 54 6f 53 74 72 69 |vertSystemToStri| 0000c3f0 6e 67 28 22 57 69 6d 70 24 53 63 72 61 70 44 69 |ng("Wimp$ScrapDi| 0000c400 72 22 29 0d 33 fe 19 20 20 20 e7 20 4d 79 53 63 |r").3.. . MySc| 0000c410 72 61 70 44 69 72 24 3d 22 22 20 8c 0d 34 08 3b |rapDir$="" ..4.;| 0000c420 20 20 20 20 20 20 4d 79 53 63 72 61 70 44 69 72 | MyScrapDir| 0000c430 24 3d a4 5f 43 6f 6e 76 65 72 74 53 79 73 74 65 |$=._ConvertSyste| 0000c440 6d 54 6f 53 74 72 69 6e 67 28 22 57 69 6d 70 24 |mToString("Wimp$| 0000c450 53 63 72 61 70 22 29 0d 34 12 1e 20 20 20 20 20 |Scrap").4.. | 0000c460 20 e7 20 4d 79 53 63 72 61 70 44 69 72 24 3d 22 | . MyScrapDir$="| 0000c470 22 20 8c 20 e1 0d 34 1c 21 20 20 20 20 20 20 50 |" . ..4.! P| 0000c480 6f 69 6e 74 65 72 25 3d a9 28 4d 79 53 63 72 61 |ointer%=.(MyScra| 0000c490 70 44 69 72 24 29 0d 34 26 37 20 20 20 20 20 20 |pDir$).4&7 | 0000c4a0 c8 95 20 50 6f 69 6e 74 65 72 25 3e 31 20 80 20 |.. Pointer%>1 . | 0000c4b0 c1 4d 79 53 63 72 61 70 44 69 72 24 2c 50 6f 69 |.MyScrapDir$,Poi| 0000c4c0 6e 74 65 72 25 2c 31 29 3c 3e 22 2e 22 0d 34 30 |nter%,1)<>".".40| 0000c4d0 1b 20 20 20 20 20 20 20 20 20 20 20 20 50 6f 69 |. Poi| 0000c4e0 6e 74 65 72 25 2d 3d 31 0d 34 3a 0b 20 20 20 20 |nter%-=1.4:. | 0000c4f0 20 20 ce 0d 34 44 1a 20 20 20 20 20 20 e7 20 50 | ..4D. . P| 0000c500 6f 69 6e 74 65 72 25 3d 31 20 8c 20 e1 0d 34 4e |ointer%=1 . ..4N| 0000c510 30 20 20 20 20 20 20 4d 79 53 63 72 61 70 44 69 |0 MyScrapDi| 0000c520 72 24 3d c0 4d 79 53 63 72 61 70 44 69 72 24 2c |r$=.MyScrapDir$,| 0000c530 28 50 6f 69 6e 74 65 72 25 2d 31 29 29 0d 34 58 |(Pointer%-1)).4X| 0000c540 08 20 20 20 cd 0d 34 62 2a 20 20 20 4d 79 53 63 |. ..4b* MySc| 0000c550 72 61 70 44 69 72 24 3d 4d 79 53 63 72 61 70 44 |rapDir$=MyScrapD| 0000c560 69 72 24 2b 22 2e 43 61 73 73 65 74 74 65 22 0d |ir$+".Cassette".| 0000c570 34 6c 1b 20 20 20 ff 22 43 44 69 72 20 22 2b 4d |4l. ."CDir "+M| 0000c580 79 53 63 72 61 70 44 69 72 24 0d 34 76 31 20 20 |yScrapDir$.4v1 | 0000c590 20 f2 5f 53 61 76 65 54 6f 28 4d 79 53 63 72 61 | ._SaveTo(MyScra| 0000c5a0 70 44 69 72 24 2b 22 2e 22 2b a4 5f 49 6e 76 65 |pDir$+"."+._Inve| 0000c5b0 6e 74 53 61 76 65 4e 61 6d 65 29 0d 34 80 05 e1 |ntSaveName).4...| 0000c5c0 0d 34 8a 05 3a 0d 34 94 49 f4 20 2a 2a 2a 2a 2a |.4..:.4.I. *****| 0000c5d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000c600 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 34 |**************.4| 0000c610 9e 49 f4 20 54 68 65 20 66 69 6c 65 72 20 69 73 |.I. The filer is| 0000c620 20 73 61 76 69 6e 67 20 61 20 64 65 73 6b 74 6f | saving a deskto| 0000c630 70 20 21 42 6f 6f 74 20 66 69 6c 65 2c 20 61 64 |p !Boot file, ad| 0000c640 64 20 6d 79 20 52 55 4e 20 63 6f 6d 6d 61 6e 64 |d my RUN command| 0000c650 20 74 6f 20 69 74 2e 0d 34 a8 49 f4 20 2a 2a 2a | to it..4.I. ***| 0000c660 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000c6a0 0d 34 b2 13 dd 20 f2 5f 44 65 73 6b 54 6f 70 53 |.4... ._DeskTopS| 0000c6b0 61 76 65 0d 34 bc 21 20 20 20 d5 23 28 42 6c 6f |ave.4.! .#(Blo| 0000c6c0 63 6b 25 21 32 30 29 2c 44 65 73 6b 54 6f 70 53 |ck%!20),DeskTopS| 0000c6d0 61 76 65 24 0d 34 c6 05 e1 0d 34 d0 05 3a 0d 34 |ave$.4....4..:.4| 0000c6e0 da 55 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.U. ************| 0000c6f0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000c730 2a 2a 2a 0d 34 e4 55 f4 20 4d 69 6e 69 2d 57 49 |***.4.U. Mini-WI| 0000c740 4d 50 20 50 4f 4c 4c 20 22 72 6f 75 74 69 6e 65 |MP POLL "routine| 0000c750 22 20 74 6f 20 61 6c 6c 6f 77 20 70 72 69 6e 74 |" to allow print| 0000c760 69 6e 67 20 74 6f 20 62 65 20 61 20 62 69 74 20 |ing to be a bit | 0000c770 6d 6f 72 65 20 69 6e 20 74 68 65 20 62 61 63 6b |more in the back| 0000c780 67 72 6f 75 6e 64 21 2e 0d 34 ee 55 f4 20 2a 2a |ground!..4.U. **| 0000c790 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 0000c7d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 34 f8 |*************.4.| 0000c7e0 16 dd 20 f2 5f 4d 69 6e 69 5f 57 49 4d 50 5f 50 |.. ._Mini_WIMP_P| 0000c7f0 6f 6c 6c 0d 35 02 1f 20 20 20 c8 99 20 22 50 44 |oll.5.. .. "PD| 0000c800 72 69 76 65 72 5f 53 65 6c 65 63 74 4a 6f 62 22 |river_SelectJob"| 0000c810 2c 30 0d 35 0c 19 20 20 20 c8 99 20 22 48 6f 75 |,0.5.. .. "Hou| 0000c820 72 67 6c 61 73 73 5f 4f 66 66 22 0d 35 16 23 20 |rglass_Off".5.# | 0000c830 20 20 c8 99 20 22 57 69 6d 70 5f 50 6f 6c 6c 22 | .. "Wimp_Poll"| 0000c840 2c 30 2c 42 6c 6f 63 6b 25 20 b8 20 41 25 0d 35 |,0,Block% . A%.5| 0000c850 20 0e 20 20 20 c8 8e 20 41 25 20 ca 0d 35 2a 43 | . .. A% ..5*C| 0000c860 20 20 20 20 20 20 c9 20 32 20 3a 20 c8 99 20 22 | . 2 : .. "| 0000c870 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 |Wimp_OpenWindow"| 0000c880 2c 2c 42 6c 6f 63 6b 25 20 20 20 3a 20 f4 20 61 |,,Block% : . a| 0000c890 6c 6c 6f 77 73 20 61 75 74 6f 20 44 72 61 67 0d |llows auto Drag.| 0000c8a0 35 34 44 20 20 20 20 20 20 c9 20 33 20 3a 20 c8 |54D . 3 : .| 0000c8b0 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 57 69 6e |. "Wimp_CloseWin| 0000c8c0 64 6f 77 22 2c 2c 42 6c 6f 63 6b 25 20 20 3a 20 |dow",,Block% : | 0000c8d0 f4 20 61 6c 6c 6f 77 73 20 61 75 74 6f 20 43 6c |. allows auto Cl| 0000c8e0 6f 73 65 0d 35 3e 2e 20 20 20 20 20 20 c9 20 31 |ose.5>. . 1| 0000c8f0 37 2c 31 38 20 3a 20 f2 5f 44 65 63 6f 64 65 4d |7,18 : ._DecodeM| 0000c900 65 73 73 61 67 65 28 42 6c 6f 63 6b 25 21 31 36 |essage(Block%!16| 0000c910 29 0d 35 48 08 20 20 20 cb 0d 35 52 18 20 20 20 |).5H. ..5R. | 0000c920 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f 6e |.. "Hourglass_On| 0000c930 22 0d 35 5c 28 20 20 20 c8 99 20 22 50 44 72 69 |".5\( .. "PDri| 0000c940 76 65 72 5f 53 65 6c 65 63 74 4a 6f 62 22 2c 50 |ver_SelectJob",P| 0000c950 72 69 6e 74 46 69 6c 65 25 0d 35 66 05 e1 0d ff |rintFile%.5f....| 0000c960