From: jrl@images1.waterloo.NCR.COM (john Latala) Newsgroups: comp.sources.hp48 Subject: v04i004: bclk - Large digit clock display v1.0, Part01/01 Date: 29 Feb 92 19:18:53 GMT Followup-To: comp.sys.hp48 Organization: NCR Canada Ltd, Waterloo, Ontario, Canada. Checksum: 1721112255 (verify with brik -cv) Submitted-by: john Latala Posting-number: Volume 4, Issue 4 Archive-name: bclk/part01 BEGIN_DOC bclk.doc This directory contains two programs to display a digital clock on the HP48s. The 'simple' one, CLK2, just displays the time in HH:MM format, changing the display every minute. The fancy one, CLK1, uses the same format HH:MM format as CLK2, but the minutes unit digit slowly rolls up. Just like the odometer in your car or some clocks still do! This is basically a '48 port of an old '28 program that I posted many moons ago. The program actually cheats by creating a GROB which if quite narrow, but very tall, to store all the digits. To show the 'static' digits it just takes chunks out of this GROB to build the screen display. The messy part was getting the vertical scrolling correct. Especially the 'odd' cases: HH:M9, HH:59, H9:59, and 23:59. The 23:59 case was one I initially forgot when I first wrote the program. These weird cases are the reason for the structure if the CSET variable. The variable has four pieces, "01234567890" used for the units digits of the hours and minutes, "0123450" used for the tens of minutes, "0120" used for the tens of hours and "30" used for the units minutes at 23:59 Just run either CLK1 or CLK2. If the DIGITS variable doesn't exist then it will be created. After that it will just be used. The DIGITS variable is quite large, 2080 as reported by BYTES. END_DOC BEGIN_RDM bclk.rdm [ I stuck these routines in the directory with the bclk programs. This text was left for the explanation of the programs included. You do not need to download these programs for bclk to work. Only download bclk.asc. -chris ] The routines call CHKARG, that checks the number and type of calling arguments. They also use a routine called UTIME and reference a variable called TNames from port 0. I put the TNames variable into port 0 because it's used by a number of other routines that I have and I wanted it out of the way (i.e. not in the home directory). Basically it's just a list of strings giving a human readable name to each variable type that the HP has: -------------------- Start of :0:TNames -------------------- %%HP: T(3)A(D)F(.); { "Real" "Complex" "String" "RealArray" "ComplexArray" "List" "GlobalName" "LocalName" "Program" "Algebraic" "Binary" "GraphicObj" "TaggedObj" "UnitObj" "XLibrary" "Directory" "Library" "BackupObj" "BltInFnc" "BltInCmd" "Type20" "Type21" "Type22" "Type23" "Type24" "Code" } --------------------- End of :0:TNames --------------------- The UTIME routine just takes a time in HH.MMSSTT format on the stack and unpacks it into HH, MM, SS, TT. -------------------- Start of UTIME -------------------- %%HP: T(3)A(D)F(.); "D9D20E16329C2A2803A23013278BF1D6BB1DBBF13ABB13392020000000000000 10EEDA1C423233920200000000000001050FA176BA193632B213023E5" --------------------- End of UTIME --------------------- Finally CHKARG takes two arguments: a name and a list. The name is the name of the calling routine and the argument list is a list showing the expected types of arguments. If you had a routine TEST that took three arguments: a directory, a GROB and a list you could code it like: << 'TEST' { DIR END GROB 1 1 00 { } } CHKARG ... body of TEST ... >> CHKARG will make sure that there are three arguments on the stack and that their types are DIR, GROB and LIST. If the types don't match, or there aren't enough arguments then CHKARG never returns, using DOERR to display an informative error message. -------------------- Start of CHKARG.ARC -------------------- %%HP: T(3)A(D)F(.); "D9D20E16323CE2244CF14B2A2D5CE1AFE22D9D203CE2292CF168BC14563284E2 010859763268BC1279E192CF168BC147A20B213068BC1279E1387E1AFE22D9D2 044CF1ED2A290DA1E0CF1B0BC1ED2A292CF18B9C19C2A290DA1C58C11C432D6E 2070162776C6963747D6E204016277637D6E2040E616D656E16323CE22D6E207 0162776C69637478B9C1D6E204016277637D5CE1AFE22D9D20D6E2040E616D65 6C2A2011000A30274F6470276BA1D6E204016277637B0BC176BA1C2A20D00000 216277676BA13CE22D6E2040162776379C2A2D9AE1AFE22D9D20C2A207000037 76BA1B21305DF2233920100000000000001066BC176BA1C2A205100002020202 020202029C2A2D6E2040E616D6568B9C1C58C176BA1C2A20310000202E456564 60276BA1D6E2070162776C69637478B9C1B0BC176BA1933A1B21305BF22D9D20 9C2A2D6E2070162776C69637478B9C14B2A21C432D6E2030162776D6E2040162 77637D6E204046F6E656E16323C0323CE22D6E204016277637D6E20301627769 C2A290DA190DA1A9CF168BC1D6E2070162776C6963747D6E20301627766C7D16 8BC1D9AE1AFE22D9D20CFA20100384E206045E416D6563704B021C432D6E2080 162776E616D65637E1632D6E2040E616D656C2A2070000A376BA1D6E20301627 76B0BC176BA1C2A2031000A3027516E6470276BA1D6E2080162776E616D65637 D6E2070162776C6963747D6E20301627766C7D168BC19C2A276BA16C7D176BA1 33920100000000000001066BC176BA1C2A20D000074F6470276BA1D6E2080162 776E616D65637D6E204016277637D6E20301627769C2A290DA190DA1ED2A276B A1A9CF168BC19C2A276BA16C7D176BA1933A1EF532B21305DF229C2A245632D6 E203016277697632B4402DE032D6E2030162776D6E204016277637D5CE1D6E20 4046F6E656908E19B632EF532B21305DF22EF532B21305BF22D9D201C432D6E2 040E616D656D6E2070162776C6963747E1632D6E2040E616D656B0BC1ED2A292 CF18B9C19C2A290DA1C58C1D6E2040E616D656C2A2031000A302E45656460276 BA1D6E2070162776C69637478B9C1B0BC176BA1C2A20D00000216277676BA13C E22D6E2070162776C69637479C2A2D9AE1AFE22D9D20C2A20700003776BA1B21 305DF22933A1EF532B21305DF22B21305BF22D9D20C2A20D20003484B4142574 A302E4F60216277657D656E64737933A1B21305DF2293632B213001E8" --------------------- End of CHKARG.ASC --------------------- END_RDM Finally here's an ASCed version of BCLK. BEGIN_ASC bclk.asc %%HP: T(3)A(D)F(.); "69A20FF70E430000006045E414D454356047A20C2A20D0000255616C6C2A2031 00034F6D607C65687C2A201100035472796E676C2A2071000255616C61427271 697C2A20D100034F6D607C656871427271697C2A20D0000C4963747C2A209100 074C6F62616C6E416D656C2A2071000C4F63616C6E416D656C2A20310000527F 6762716D6C2A207100014C676562627169636C2A20110002496E6162797C2A20 9100074271607869636F426A6C2A2071000451676765646F426A6C2A20310005 5E69647F426A6C2A205100085C4962627162797C2A2071000449627563647F62 797C2A2031000C4962627162797C2A2071000241636B65707F426A6C2A205100 024C64794E664E636C2A205100024C64794E634D646C2A201100045970756230 3C2A2011000459707562313C2A2011000459707562323C2A2011000459707562 333C2A2011000459707562343C2A20D000034F64656B2130E920050554594D45 450D9D20E16329C2A2803A23013278BF1D6BB1DBBF13ABB13392020000000000 00010EEDA1C423233920200000000000001050FA176BA193632B213038000603 484B414257460D9D20E16323CE2244CF14B2A2D5CE1AFE22D9D203CE2292CF16 8BC14563284E2010859763268BC1279E192CF168BC147A20B213068BC1279E13 87E1AFE22D9D2044CF1ED2A290DA1E0CF1B0BC1ED2A292CF18B9C19C2A290DA1 C58C11C432D6E2070162776C6963747D6E204016277637D6E2040E616D656E16 323CE22D6E2070162776C69637478B9C1D6E204016277637D5CE1AFE22D9D20D 6E2040E616D656C2A2011000A30274F6470276BA1D6E204016277637B0BC176B A1C2A20D00000216277676BA13CE22D6E2040162776379C2A2D9AE1AFE22D9D2 0C2A20700003776BA1B21305DF2233920100000000000001066BC176BA1C2A20 5100002020202020202029C2A2D6E2040E616D6568B9C1C58C176BA1C2A20310 000202E45656460276BA1D6E2070162776C69637478B9C1B0BC176BA1933A1B2 1305BF22D9D209C2A2D6E2070162776C69637478B9C14B2A21C432D6E2030162 776D6E204016277637D6E204046F6E656E16323C0323CE22D6E204016277637D 6E20301627769C2A290DA190DA1A9CF168BC1D6E2070162776C6963747D6E203 01627766C7D168BC1D9AE1AFE22D9D20CFA20100384E206045E416D6563704B0 21C432D6E2080162776E616D65637E1632D6E2040E616D656C2A2070000A376B A1D6E2030162776B0BC176BA1C2A2031000A3027516E6470276BA1D6E2080162 776E616D65637D6E2070162776C6963747D6E20301627766C7D168BC19C2A276 BA16C7D176BA133920100000000000001066BC176BA1C2A20D000074F6470276 BA1D6E2080162776E616D65637D6E204016277637D6E20301627769C2A290DA1 90DA1ED2A276BA1A9CF168BC19C2A276BA16C7D176BA1933A1EF532B21305DF2 29C2A245632D6E203016277697632B4402DE032D6E2030162776D6E204016277 637D5CE1D6E204046F6E656908E19B632EF532B21305DF22EF532B21305BF22D 9D201C432D6E2040E616D656D6E2070162776C6963747E1632D6E2040E616D65 6B0BC1ED2A292CF18B9C19C2A290DA1C58C1D6E2040E616D656C2A2031000A30 2E45656460276BA1D6E2070162776C69637478B9C1B0BC176BA1C2A20D000002 16277676BA13CE22D6E2070162776C69637479C2A2D9AE1AFE22D9D20C2A2070 0003776BA1B21305DF22933A1EF532B21305DF22B21305BF22D9D20C2A20D200 03484B4142574A302E4F60216277657D656E64737933A1B21305DF2293632B21 30507006044947494453560E1B20B30102B200210008FF0008FF0008FF000700 70070070070070070070070070070070070E70070E70070E7007C17007C17007 C1700F30700F30700F307007007007007007007007007007007007007008FF00 08FF0008FF0000000000000000000000C10000C10000C10008F10008F10008F1 0000C10000C10000C10000C10000C10000C10000C10000C10000C10000C10000 C10000C10000C10000C10000C10000C10000C10000C10008FF0008FF0008FF00 00000000000000000008FF0008FF0008FF000700700700700700700700700700 70070070000E00000E00000E0000C10000C10000C10008300008300008300007 00000700000700000700000700000700000FFF700FFF700FFF70000000000000 00000008FF0008FF0008FF000700700700700700700000700000700000700000 7000007000007008FF0008FF0008FF0000007000007000007000007000007000 007007007007007007007008FF0008FF0008FF00000000000000000000000E00 000E00000E0000CF0000CF0000CF00083E00083E00083E00070E00070E00070E 000FFF700FFF700FFF70000E00000E00000E00000E00000E00000E00000E0000 0E00000E00000E00000E00000E000000000000000000000FFF700FFF700FFF70 0700000700000700000700000700000700000FFF000FFF000FFF000000700000 7000007000007000007000007000007000007000007007007007007007007008 FF0008FF0008FF0000000000000000000000CF0000CF0000CF00083000083000 0830000700000700000700000700000700000700000FFF000FFF000FFF000700 7007007007007007007007007007007007007007007007007008FF0008FF0008 FF000000000000000000000FFF700FFF700FFF70000070000070000070000070 000070000070000E00000E00000E0000C10000C10000C1000830000830000830 0008300008300008300008300008300008300008300008300008300000000000 000000000008FF0008FF0008FF00070070070070070070070070070070070070 07007007007007007008FF0008FF0008FF000700700700700700700700700700 7007007007007007007007007008FF0008FF0008FF0000000000000000000008 FF0008FF0008FF00070070070070070070070070070070070070070070070070 07007008FF7008FF7008FF70000070000070000070000070000070000070000E 00000E00000E0008F10008F10008F10000000000000000000008FF0008FF0008 FF00070070070070070070070070070070070070070E70070E70070E7007C170 07C17007C1700F30700F30700F30700700700700700700700700700700700700 7008FF0008FF0008FF0000000000000000000000C10000C10000C10008F10008 F10008F10000C10000C10000C10000C10000C10000C10000C10000C10000C100 00C10000C10000C10000C10000C10000C10000C10000C10000C10008FF0008FF 0008FF0000000000000000000008FF0008FF0008FF0007007007007007007007 0070070070070070000E00000E00000E0000C10000C10000C100083000083000 0830000700000700000700000700000700000700000FFF700FFF700FFF700000 0000000000000008FF0008FF0008FF0007007007007007007000007000007000 007000007000007000007008FF0008FF0008FF00000070000070000070000070 00007000007007007007007007007008FF0008FF0008FF000000000000000000 00000E00000E00000E0000CF0000CF0000CF00083E00083E00083E00070E0007 0E00070E000FFF700FFF700FFF70000E00000E00000E00000E00000E00000E00 000E00000E00000E00000E00000E00000E000000000000000000000FFF700FFF 700FFF700700000700000700000700000700000700000FFF000FFF000FFF0000 0070000070000070000070000070000070000070000070000070070070070070 07007008FF0008FF0008FF0000000000000000000008FF0008FF0008FF000700 70070070070070070070070070070070070E70070E70070E7007C17007C17007 C1700F30700F30700F307007007007007007007007007007007007007008FF00 08FF0008FF0000000000000000000000C10000C10000C10008F10008F10008F1 0000C10000C10000C10000C10000C10000C10000C10000C10000C10000C10000 C10000C10000C10000C10000C10000C10000C10000C10008FF0008FF0008FF00 00000000000000000008FF0008FF0008FF000700700700700700700700700700 70070070000E00000E00000E0000C10000C10000C10008300008300008300007 00000700000700000700000700000700000FFF700FFF700FFF70000000000000 00000008FF0008FF0008FF00070070070070070070070070070070070070070E 70070E70070E7007C17007C17007C1700F30700F30700F307007007007007007 007007007007007007007008FF0008FF0008FF0000000000000000000008FF00 08FF0008FF000700700700700700700000700000700000700000700000700000 7008FF0008FF0008FF0000007000007000007000007000007000007007007007 007007007008FF0008FF0008FF0000000000000000000008FF0008FF0008FF00 070070070070070070070070070070070070070E70070E70070E7007C17007C1 7007C1700F30700F30700F307007007007007007007007007007007007007008 FF0008FF0008FF00000000000000000000000000000000000000000000000000 00000008F10008F10008F10008F10008F10008F10000000000000000000008F1 0008F10008F10008F10008F10008F10000000000000000000000000000000000 0000000000000000000000005010403435544540C2A203300003132333435363 738393031323334353031323033303A34400080D4B444947494453580D9D20E1 6324563284E2080D4B44494749445359763247A20C2A20500004B2A24B2A2B21 3084E20603484B41425741C432D6E204036375647D6E204066F6E647D6E2040A 7F6F6D6E1632C2A207000085D6E204066F6E647DA5E18B9C1BB691DBBF1BB691 1C432D6E20308696E6D6E20307796E6E1632D6E20307796E6D6E2040A7F6F6D6 EEDA1B9691D6E20308696E6D6E2040A7F6F6D6EEDA1D6E2040363756478B9C1E EDA1B9691614E19C2A2D6E2040363756478B9C10A132D6E201036D6E20403637 5647D6E201036D6E201036C58C19C2A2485A1E4A20510000000000000000000D 6E2010369C2A290DA1D6E20308696E6EEDA1D6E2040A7F6F6D6EEDA1B9691ED2 A2387C1D6E204036375647D6E201036D6E201036C58C1D6E204066F6E647DA5E 1D6E2040A7F6F6D684E2060249474745425AE8C1C42324563284E20604494749 4453597632DCC02D6E2040363756474563284E20403435544597632DCC02EF53 2EF53293632B2130BE2004034C4B42340D9D20E1632FD332D9D204563284E206 04494749445359763204B02B2130F1732D9D2084E2040343554453F2A23F2A28 4E2080D4B4449474944535B21305BF228DBF15DF2284E20604494749445358B9 C184E2040343554458B9C150FA1BB691DBBF1BB6914B2A21C432D6E201086D6E 201077D6E204046F6E656E1632E4A20510003800000000000000E4A205100004 00000000000000614E1634E1DCC0247A20E4A20510000000000000000000E4A2 0510000000000000000000B21300F2E13C0327F7911C432D6E20404796D656E1 632D6E20404796D65684E2050554594D454D6E20404796D65633920100000000 000001050FA1D6BB1D6E20404796D656339201000000000000010D4EB1D6BB1D 6E20404796D656339201000000000000010EEDA1339201000000000000010D4E B1D6BB1D6E20404796D656339202000000000000010EEDA13392010000000000 00010D4EB1D6BB1339202000000000001310D6E201077D13A2EEDA190DA1ED2A 250FA1B9691339201000000000000460D6E20108690DA1ED2A250FA1B96911C4 32D6E20208686D6E2020D6D6D6E20203737D6E20204747D6E2030861303D6E20 208613D6E2030D61303D6E2020D613D6E201087D6E201097E1632E4A20510003 800000000000000E4A20510000400000000000000614E1D6E201087D6E201097 ED2A2387C184E2060449474944535E4A20510000000000000000000E4A205100 00000000000000000D6E2030861303D6E201086EEDA176BA1ED2A2387C178BF1 B7FC18DBF1D6E20108676BA19C2A290DA1DBBF1D6E20107776BA19C2A290DA1D BBF1ED2A2387C1C58C1AE8C1D6E201087D6E20107776BA145632D6E201087976 32DCC02D6E201087D6E201097ED2A2387C184E2060449474944535E4A2051000 0000000000000000E4A20510000000000000000000D6E20208613D6E201086EE DA176BA1ED2A2387C178BF1B7FC18DBF1D6E20108676BA19C2A290DA1DBBF1D6 E20107776BA19C2A290DA1DBBF1ED2A2387C1C58C1AE8C1D6E201087D6E20107 776BA145632D6E20108797632DCC02D6E201087D6E201097ED2A2387C184E206 0449474944535E4A2051000000000000000000084E2040343554458B9C19C2A2 90DA1D6E201086EEDA1B9691ED2A2387C178BF1B7FC18DBF1D6E20108676BA19 C2A290DA1DBBF1D6E20107776BA19C2A290DA1DBBF1ED2A2387C1C58C1AE8C1D 6E201087D6E20107776BA145632D6E20108797632DCC02D6E201087D6E201097 ED2A2387C184E2060449474944535E4A20510000000000000000000E4A205100 00000000000000000D6E2030D61303D6E201086EEDA176BA1ED2A2387C178BF1 B7FC18DBF1D6E20108676BA19C2A290DA1DBBF1D6E20107776BA19C2A290DA1D BBF1ED2A2387C1C58C1AE8C1D6E201087D6E20107776BA145632D6E201087976 32DCC02D6E201087D6E201097ED2A2387C184E2060449474944535E4A2051000 0000000000000000E4A20510000000000000000000D6E2020D613D6E201086EE DA176BA1ED2A2387C178BF1B7FC18DBF1D6E20108676BA19C2A290DA1DBBF1D6 E20107776BA19C2A290DA1DBBF1ED2A2387C1C58C1AE8C1634E1DBBF147A20E4 A20510000000000000000000E4A20510000000000000000000B2130DBBF1AE8C 1330327F7913ABB1339202000000000000010EEDA1D6BB1D6E2020D6D6279E1D 6E204046F6E656F88E1387E1D5032D9D20634E147A20E4A20510000000000000 000000E4A20510000000000000000000B21307F791339202000000000000010E EDA13ABB1339202000000000000010EEDA1D6BB1B0BC19C2A2DA5E1AE8C13CE2 2378A1AFE22D9D208DBF19C2A245632D6E204046F6E65697632DCC02B21305DF 22B213049632EF532EF532DE032D6E204046F6E6569B632EF53293632B21309E A004034C4B41340D9D20E1632FD332D9D204563284E206044947494453597632 04B02B2130F1732D9D2084E2040343554453F2A23F2A284E2080D4B444947494 4535B21305BF228DBF15DF2284E20604494749445358B9C184E2040343554458 B9C150FA1BB691DBBF1BB6911C432D6E201086D6E201077E1632E4A205100038 00000000000000E4A20510000400000000000000614E1634E1DCC0247A20E4A2 0510000000000000000000E4A20510000000000000000000B21300F2E13C0327 F7911C432D6E20404796D656E1632D6E20404796D65684E2050554594D454D6E 20404796D65633920100000000000001050FA1D6BB1D6E20404796D656339201 000000000000010D4EB1D6BB1D6E20404796D656339201000000000000010EED A1339201000000000000010D4EB1D6BB1D6E20404796D6563392020000000000 00010EEDA1339201000000000000010D4EB1D6BB1339202000000000001310D6 E201077D13A2EEDA190DA1ED2A250FA1B9691339201000000000000460D6E201 08690DA1ED2A250FA1B96911C432D6E20208686D6E2020D6D6D6E20203737D6E 20204747D6E2030861303D6E20208613D6E2030D61303D6E2020D613D6E20108 7D6E201097E1632E4A20510003800000000000000E4A20510000400000000000 000614E1D6E201087D6E201097ED2A2387C184E2060449474944535E4A205100 00000000000000000E4A20510000100000000000000D6E201086EEDA1D6E2030 861303D6E201086EEDA176BA13CE22D6E2020868633920100000000000032027 9E1D6E20208613173A2279E1908E1D6E2030D61303D13A2279E1387E1D6E2020 D613173A2279E1387E1AFE22D9D20D6E201086D6E20203737339201000000000 00006050FA1EEDA176BA1B21305DF22ED2A2387C178BF1B7FC18DBF1D6E20108 676BA19C2A290DA1DBBF1D6E20107776BA19C2A290DA1DBBF1ED2A2387C1C58C 1AE8C1D6E201087D6E20107776BA145632D6E20108797632DCC02D6E201087D6 E201097ED2A2387C184E2060449474944535E4A205100000000000000000003C E22D6E20208686339201000000000000320279E1D6E2020D6D63392010000000 00000950279E1387E1AFE22E4A205100011000000000000005BF22E4A2051000 00000000000000005DF22D6E201086EEDA1D6E20208613D6E201086EEDA176BA 13CE22D6E2030D61303D13A2279E1D6E2020D613173A2279E1387E1AFE22D9D2 0D6E201086D6E2020373733920100000000000006050FA1EEDA176BA1B21305D F22ED2A2387C178BF1B7FC18DBF1D6E20108676BA19C2A290DA1DBBF1D6E2010 7776BA19C2A290DA1DBBF1ED2A2387C1C58C1AE8C1D6E201087D6E20107776BA 145632D6E20108797632DCC02D6E201087D6E201097ED2A2387C184E20604494 74944535E4A20510000000000000000000D6E20108684E2040343554458B9C19 C2A290DA1EEDA1B9691ED2A2387C178BF1B7FC18DBF1D6E20108676BA19C2A29 0DA1DBBF1D6E20107776BA19C2A290DA1DBBF1ED2A2387C1C58C1AE8C1D6E201 087D6E20107776BA145632D6E20108797632DCC02D6E201087D6E201097ED2A2 387C184E2060449474944535E4A20510000000000000000000E4A2051000A000 000000000000D6E201086EEDA1D6E2030D61303D6E201086EEDA176BA13CE22D 6E2020D613173A2279E1AFE22D9D20D6E201086D6E2020373733920100000000 000006050FA1EEDA176BA1B21305DF22ED2A2387C178BF1B7FC18DBF1D6E2010 8676BA19C2A290DA1DBBF1D6E20107776BA19C2A290DA1DBBF1ED2A2387C1C58 C1AE8C1D6E201087D6E20107776BA145632D6E20108797632DCC02D6E201087D 6E201097ED2A2387C184E2060449474944535E4A20510000000000000000000E 4A20510000000000000000000D6E201086EEDA1D6E2020D613D6E201086EEDA1 76BA1D6E201086D6E2020373733920100000000000006050FA1EEDA176BA1ED2 A2387C178BF1B7FC18DBF1D6E20108676BA19C2A290DA1DBBF1D6E20107776BA 19C2A290DA1DBBF1ED2A2387C1C58C1AE8C1634E1DBBF147A20E4A2051000000 0000000000000E4A20510000000000000000000B2130DBBF1AE8C1EF532EF532 DE032378A19B6328DBF1EF53293632B213002C006024947474542560D9D20E16 324563284E20602494747454259763247A20E1B20110001000010000004B2A2B 213084E20603484B414257492CF18B9C1BB691DBBF1BB691DBBF11C432D6E205 0F67627F626D6E2010A7D6E201077D6E201086E1632D6E201077D6E2010A7EED A1B9691D6E201086D6E2010A7EEDA1B9691614E1D6E2010A7B969178BF1614E1 599A11C432D6E203026C6B6E16324B2A2D6E2010779C2A290DA10A132D6E2010 873CE22D6E2050F67627F626D6E201087B9691E4A20510000000000000000000 ED2A2387C1D6E201087B9691D6E201086B9691ED2A2387C1C58C1E4A20510001 000000000000000D6E201086B9691614E1D9AE1AFE22D9D204B2A2D6E2010869 C2A290DA10A132D6E2010973CE22D6E2050F67627F626D6E201087B9691D6E20 1097B9691ED2A2387C178BF1C58C1E1B2011000100001000010279E1AFE22D9D 20D6E201087D6E2010A7EEDA1B9691D6E201097D6E2010A7EEDA1B9691ED2A23 87C1D6E203026C6B6AE8C1B21305DF22C4232B21305DF22C4232EF532EF53293 632B21306594" END_ASC BYTES: #4956h 7180.5 BEGIN_UU bclk.uue begin 644 bclk M2%!(4#0X+466*O!_X#0````&5$Y!3453!G0JP*("#0`@51;&QJ("$P`P]-8& MQU:&QZ("$0`P12>7YG;&H@(7`"!5%L86)"<7EL>B`AT`,/36!L=6AA6 MQZ("#0#`E#9'QZ("&0!PQ/8F%L;F%-96QJ("%P#`]#86QN84UE;&H@(3```E M]W8F%];&H@(7`!#$=E8F)A>6-L:B`A$`()3F%B:7QZ("&0!P)!<&AY8V]B2F MQJ("%P!`%79V5D;V)*;&H@(3`%#EED;W)*;&H@(5`(#%E"8F%R:7QZ("%P!` ME"97-D;W)I?'H@(3`,"4)B87)I?'H@(7`"`4-K96!_&DPR,I,"`@`` M``````$%KW&V&CDVLA(#@P!@,(2T%"1U9-#9`AXV,NPB1/Q!*RI=[*'O(ITM M,.PB*?QAN!Q4-H+D`@%8>39BN!QRZ9'"'X;+0:<"*S%@N!QRZ3%X'OHNTMD" M1/SA+2H)K>'`'PO+X2TJ*?R!FQS)HI+0&ES($4PC;2YP$"9WQI8V1]?F`@1A MRA[R*=+=#F M`@1N86UE+"H0`0`Z($=O="!GJ]'F`@1A; M'+2B$DPC;2XP$"9WUN8"!&%R9W-M+D!`]N96YF$CPS`R[")M+D`0)GVL!QGJ\&B`A,`H`-R%>9&!W*V&FTN@!`F=^86UE8VU^8" M!V%R9VQIK87P=9ZLQDP(!`````````6;+<;8: M+"K0``!';W0@9ZO1Y@((87)G;F%M97-M+D`0)GN3;B7R,K,5#](OXULA(# MM2_2V0+!--+F`@1N86UE;2YP$"9WQI8V1^=A(VTN0.`6UE:VL!S>HI+"'[C) MD2PJ":W!A1QM+D#@%M96QJ("$P"@`^)45D8&;'`O+ M<;8:+"K0```@87)G9ZLQ[")M+G`0)G?&EC9'ERPJG>JA[R*=+<"B`@<`,'>V M&BLQ4/TB.:/A7R,K,5#](BLQ4/LBG2W`H@(M`#"$M!0D=:0#XO0&$B9W5M=6 MYD8WES,:*S%0_2(Y-K(2`P4'8$"4=)1$-67@L0([$"`K`!(`@/\`@/\`@/\` M<``'<``'<``'<``'<``'<``'<.`'<.`'<.`'F]O;>ZML6D9;2XP M@);FUN8"!'IO;VWNK='F`@1C&FTN0*#W]M;FWAJ;EN$M*H/'T>8"!&-S971M+A`P MUN8"`6-71Y@($>F]O;4@N8""4='14)*6.'$PR0F4C2"Y@ M0)1TE$0UE68"!'1I;64S*1`````` M```0T.0;;;O1Y@($=&EM93,I$````````!#@WAHS*1`````````0T.0;;;O1 MY@($=&EM93,I(````````!#@WAHS*1`````````0T.0;;;LQDP("```````Q M`6TN$'#7,2KNK9'0&MZB4O`:FY8QDP(!``````!`!FTN$("6T!K>HE+P&IN6 M$4PC;2X@@(;6Y@(";6UM+B`P-]?F`@)T=&TN,(`6`]/F`@)H,6TN,-`6`]/F M`@)M,6TN$(#7Y@(!>1XVXJ0"%0`P"````````."D`A4```0```````!@01YM M+A"`U^8"`7G>HC)X'$@N8$"4=)1$->6D`A4```````````#@I`(5```````` M````T.8"`V@Q,&TN$(#FWAIGJ^$M*H/'<;@?>\^!O1]M+A"`=K8:R:*2T!J] M^]'F`@%W9ZN1+"H)K=&[']ZB,G@<7,BACAQM+A"`U^8"`7=GJT%E(VTN$("7 M9R/-#-+F`@%X;2X0D.0"!D1)1TE44TXJ4`$```````````!.*E`! M````````````;2X@@!;3Y@(!:.ZM<;8:WJ(R>!R'^['W'-C[T>8"`6AGJY$L M*@FMT;L?;2X0<'>V&LFBDM`:O?OA+2J#Q\&%'.K(T>8"`7AM+A!P=[8:5#;2 MY@(!>'DVTLP@;2X0@-?F`@%YWJ(R>!Q(+F!`E'241#7EI`(5```````````` M@.0"!$-3152XR9$L*@FMT>8"`6CNK;%I&=ZB,G@V&E0V MTN8"`7AY-M+,(&TN$(#7Y@(!>=ZB,G@<2"Y@0)1TE$0UY:0"%0`````````` M`."D`A4```````````#0Y@(#;3$P;2X0@.;>&F>KX2TJ@\=QN!][SX&]'VTN M$(!VMAK)HI+0&KW[T>8"`7=GJY$L*@FMT;L?WJ(R>!QK064C;2X0@)=G(\T,TN8"`7AM+A"0YRTJ@\>!Y`(&1$E'25133BI0`0`` M`````````$XJ4`$```````````!M+B#0%M/F`@%H[JUQMAK>HC)X'(?[L?<< MV/O1Y@(!:&>KD2PJ":W1NQ]M+A!P=[8:R:*2T!J]^^$M*H/'P847,;H; M,RD@````````$.#>&FV[T>8"`FUM73#2V0(VY$&G M`DXJ4`$```````````!.*E`!````````````*S%P?QDS*2`````````0X-X: MH[LQDP("`````````>ZMT;8;"\N1+"JMY:&.',,N,H<:^B[2V0+8^Y$L*E0V MTN8"!&1O;F5Y-M+,("LQ4/TB*S%`:2/^->)?(^TPTN8"!&1O;F6Y-N)?(SDV MLA(#Z0I`,,2T%$/0V0(>-O(](YTM0&4C2"Y@0)1TE$0UE68"!'1I;64S*1`````````0T.0; M;;O1Y@($=&EM93,I$````````!#@WAHS*1`````````0T.0;;;O1Y@($=&EM M93,I(````````!#@WAHS*1`````````0T.0;;;LQDP("```````Q`6TN$'#7 M,2KNK9'0&MZB4O`:FY8QDP(!``````!`!FTN$("6T!K>HE+P&IN6$4PC;2X@ M@(;6Y@(";6UM+B`P-]?F`@)T=&TN,(`6`]/F`@)H,6TN,-`6`]/F`@)M,6TN M$(#7Y@(!>1XVXJ0"%0`P"````````."D`A4```0```````!@01YM+A"`U^8" M`7G>HC)X'$@N8$"4=)1$->6D`A4```````````#@I`(5```!````````T.8" M`6CNK='F`@-H,3!M+A"`YMX:9ZLQ[")M+B"`AC:3`@$``````#`"8"`VTQ,!VC(I<>@^?1Y@(";3%QHR*7'H/GH>\BG2W0Y@(! M:&TN(#`W-Y,"`0````````8%K^'>&F>KL1(#U2_B+2J#QW&X'WO/@;T?;2X0 M@':V&LFBDM`:O?O1Y@(!=V>KD2PJ":W1NQ_>HC)X'%S(H8X<;2X0@-?F`@%W M9ZM!92-M+A"`EV&TN$)#G+2J#QX'D`@9$24=)5%-.*E`!```` M````````PR[2Y@(":&@S*1`````````C()<>;2X@T-8VDP(!``````"0!7+I M,7@>^B[BI`(5`!`!````````4/LB3BI0`0```````````-4OTN8"`6CNK='F M`@)H,6TN$(#FWAIGJS'L(FTN,-`6`],Q*G+IT>8"`FTQ<:,BEQZ#YZ'O(ITM MT.8"`6AM+B`P-S>3`@$````````&!:_AWAIGJ[$2`]4OXBTJ@\=QN!][SX&] M'VTN$(!VMAK)HI+0&KW[T>8"`7=GJY$L*@FMT;L?WJ(R>!QK064C;2X0@)=G(\T,TN8"`7AM+A"0YRTJ@\>!Y`(&1$E'25133BI0 M`0```````````&TN$("&Y`($0U-%5+C)D2PJ":WAWAJ;EN$M*H/'<;@?>\^! MO1]M+A"`=K8:R:*2T!J]^]'F`@%W9ZN1+"H)K=&[']ZB,G@<7,BACAQM+A"` MU^8"`7=GJT%E(VTN$("79R/-#-+F`@%X;2X0D.0"!D1)1TE44TXJ M4`$```````````!.*E`!``H`````````;2X0@.;>&FTN,-`6`]/F`@%H[JUQ MMAK#+M+F`@)M,7&C(I<>^B[2V0)M+A"`UN8"`G-S,RD0````````8%#P&NZM M<;8:*S%0_2+>HC)X'(?[L?<KD2PJ":W1NQ]M+A!P=[8:R:*2 MT!J]^^$M*H/'P84&TN$'!WMAI4-M+F`@%X>3;2S"!M+A"`U^8" M`7G>HC)X'$@N8$"4=)1$->6D`A4```````````#@I`(5````````````T.8" M`6CNK='F`@)M,6TN$(#FWAIGJ]'F`@%H;2X@,#KD2PJ":W1NQ_> MHC)X'%S(H8X<-N31NQ]T*N"D`A4```````````#@I`(5````````````L!(# MO?NACAS^->)?(^TP,H<:N3:"O1_^-9)C(RLQ`,(`!D))1T=%4@:=+>!A(U0V M@N0"!D))1T=%4GDV0J<"'BL0`0`!`!````"THK(2`T@N8#"$M!0D=93"'[C) ML6L9O?NQ:QF]^Q%,(VTN4/!V)O-M+F`@%W;2X0 MH.?>&IN6T>8"`6AM+A"@Y]X:FY9A01YM+A"@MVD9A_MA01Z5J1%,(VTN,"#& MMN9A([2BTN8"`7?)HI+0&J`QTN8"`7C#+M+F`@5O9W)O8FTN$("W:1E.*E`! M````````````WJ(R>!QM+A"`MVD9;2X0@+9I&=ZB,G@<7,CAI`(5`!`````` M````T.8"`6B;EF%!'IWJH>\BG2U`*RIM+A"`EBPJ":T!&B-M+A"0-^PB;2Y0 M\'8F]R;6Y@(!>)N6T>8"`7F;EN$M*H/'<;@?7,CAL0(1`!````$`$""7'OHN MTMD";2X0@-?F`@%Z[JVQ:1EM+A"0U^8"`7KNK;%I&=ZB,G@<;2XP(,:VIHX< 9*S%0_2),,K(2`]4OPB0C_C7B7R,Y-K(2`[(2 ` end END_UU -- john.Latala@Waterloo.NCR.COM /EARTH is 90% full, please delete anything superfluous...