This program implements a speech synthesis library using machine code stored in a REM statement at line 11 to drive audio output. The machine code occupies a substantial block (over 2KB of hex data in the REM) and is invoked via RAND USR 16514, which jumps directly into the code embedded in the REM at that address. The BASIC portion at lines 3000–4010 provides a word-playback library: it walks a linked list of word entries stored starting at address 29999, reading 16-bit word numbers and lengths packed as little-endian pairs, then calls subroutine 4000 to speak each word via POKEs to system variables and the machine code entry point. Subroutine 4000 deposits the word number into addresses 16593–16594 and constructs a one-item list at the display file workspace pointer (read from 16636–16637) before triggering the speech routine.
Program Analysis
Program Structure
The program has two distinct layers. Line 11 is a REM statement containing the entire machine code payload — more than 2,000 bytes of Z80 object code encoded as hex escape sequences. Line 12 is a short REM acting as a guard comment. The BASIC proper begins at line 3000 and is split into two subroutines:
- Lines 3000–3070: A word-list walker that traverses a linked list of speech entries stored downward from address 29999.
- Lines 4000–4010: A speech-trigger subroutine that POKEs the word number into system memory, sets up a one-entry list at the display file area, and fires the machine code.
Machine Code Invocation
The machine code lives inside the REM at line 11. On a ZX81/TS1000/TS2068 the BASIC line storage begins at a well-known address; RAND USR 16514 at line 4008 jumps directly into the body of that REM, bypassing the BASIC interpreter entirely. This is the classic “REM as code store” idiom, keeping the binary in a location that survives NEW and is not disturbed by normal BASIC execution.
Word-List Data Format
The speech library stores its vocabulary as a downward-growing linked list anchored at address 29999. Each entry occupies at least four bytes:
| Offset from WA | Size | Content |
|---|---|---|
| 0 / −1 | 2 bytes (big-endian) | Word number (NO) |
| −2 / −3 | 2 bytes (big-endian) | Entry length in bytes (NL) |
| −4 … −(4+NL−1) | NL bytes | Speech data for this word |
The walker at line 3050 steps backwards by 4 + NL bytes each iteration and stops when the working address WA is no longer greater than DW (the display-file pointer, used here as a lower-bound sentinel).
Key BASIC Idioms
- 16-bit big-endian read:
PEEK WA*256+PEEK (WA-1)— the high byte is at the higher address, low byte one below; a common pattern when packing 16-bit values into PEEK-accessible memory from machine code. - Integer extraction:
INT (NO/256)gives the high byte;NO-(INT (NO/256)*256)gives the low byte. Repeated in lines 4001/4002 and 4004/4005 because ZX BASIC has no bitwise operators. - Display-file pointer as workspace base:
DW=PEEK 16636+256*PEEK 16637reads the system variableD_FILE. The four POKEs at lines 4004–4007 write a minimal one-word speech list immediately at that address before the USR call.
System Variable Usage
| Address | System Variable | Use in program |
|---|---|---|
| 16593–16594 | — | Receives the 16-bit word number before USR call |
| 16636–16637 | D_FILE | Read to obtain DW; also used as scratch list base |
| 16514 | — | Entry point into machine code in REM line 11 |
Notable Techniques
- The machine code block is large enough (~2 KB) to contain a full speech synthesis engine — likely a formant or LPC codec driving the EAR/MIC port or the TS2068 sound hardware (
D3 FF=OUT (FF),A, andED 50=IN D,(C)appear near the start of the REM data, consistent with audio I/O). - The sentinel check
IF WA>DW THEN GOTO 3010(line 3060) reuses the display-file address as a safe lower bound, ensuring the walker never strays into the BASIC system area below the display file. RAND USRis used rather thanUSRin aLET, discarding the integer return value — a standard idiom when only the machine code’s side-effects matter.
Potential Anomalies
- Lines 4001–4005 POKE the word number into two separate locations (16593/16594 and
DW/DW-1). This redundancy suggests the machine code may read the value from either location depending on call path, or that one location is a parameter register and the other builds the in-memory list structure. - The REM at line 12 reads
0-23(DO NOT REMOVE), implying the first 24 bytes of the line 11 REM are a header or jump table that must remain intact for theUSR 16514entry point to be valid.
Content
Source Code
11 REM CDD440F3 EFE21AC44 6 87E18 7CB1F161C1520FD 0 0CB4720 4D3FF18 4ED50 0 010E9161C1520FD2BE5D511 743A7ED52D1E120D2FB 1 0 0C9212F75DB21CB6F28FADB11772B7CFE4020F1C917 0 0212F7518 3A7ED42562B5E2B462B4E2BE52AD140A7ED52E120EB228940A7ED4222B040ED4B8940C9 743 0 0 0 0 0 0 0 0 0 0 0 0 743 0 0 0 0 0 1 017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0606B 0 75720 0 0 0 0 0 060 0 0 3FE 0 03C 0 0F0 0 01FFC 0 0 677F8 0 0FFF0 0 7FFF880407FFC 0 7FFE0 0 1FFF0 0 FFFE8 7A5FFC0 07FFFC03F43FC 011FFFE83FC3FC3 0 01FF83FC3FE18 1FF9FF0FD 7C0C0 03FFC3FF0F0E1C7FFFC3FF8787083FFFC3FF07C 0F7FC787BE1F0 1DFF1E1E787C3 71F1F1F787C 07FF9E1EF8780 7BE3C79E1E083CF8E1E78F0 1E3CF E78F0 0F1E71E78F1 7F1C71C70E3 E73CE39C3863CE71CF7 E C739C739C70338E718C6380CE398C731C2319CE6398E11CCE63198E 8C67339DCE0 633198C46 033F9CCC470 F1DCE4627 073FE723138 3CFB39188C01F3DCCCE66 07CEE623118 2F3B198CCE0 99EC663318213398CC647 0347B1D8C46 03C7B198C47 0 E7318CE27 033398C471384273198E61BC0 6F78C5BF690 1FEC297FFC8 0DF30 B7ED2 077D842FFE9 01BF4217FF480 DEA10BFFA40 4F7 8D7FD20 6F7 85FFF20 2FF844BFFA0 27FA4 FFF90 033A8 FFE90 03D8C1FFE90 0798C1FFF80 0A5AC1FFF90 46350BFFD20 0F7807FFE40 3D081FFF9 0 8607ED7FE 181FC1FE13C 1887F73C0F0 4433F8FC7802018DC7E3C10C673F1E8E0 884E7AFCBC3 C387C7C38B110C2C7211C163138FC70 6389C7C38143838F870 C7071E0E0 1 017 0 080 0 0 01C 0 0 7 010 0 0 0 3 03838 0 0 0 0 7 7 7 1C0 0 038 3F0 3C0 0 3C07C FE0 F 07C F803F 7F0 7C03E 1F8 FC1FC 038 0 01FC0FC FC0 1E0 680FE FE0FC 0 F 01E FF07F 7E0783E 1F07F83F07F F 1F83F 7FC1F83F07C1FC3F83FC1F83F 7E0FC3FC3FC FC1F83F FC1FE1FE07E F81F83F 7F07F 3F07C1F87F07F FE83F 7C0F838E7E0FC 7C1F03E1F 7F87E 3E0F83F F8FF87C 7E1F03F8F87F8FCA7C3E19E1F1FE1FA1F F80787C3F87F87C3E 3C3E0FC3FC1E1F03E3E1F8FBC3C3E F87C3E3EF F F81E1E3E1E38F87C1E1E1E1E3C787C3C3C3C3CF F F87878F87AE3C3E E3C3C3C70F0F821F1E1E38F F801F1E1F78F0F881E1C3E71E F143C7879C3C3E187 F F38F07830E3C3CE3C1E1C3878F18F 785 E1E3D43C1E1C3878F90F0F0A0E3C3E8783C3878F1F61E1E E1C387F F F 7871E3FC383C1C3878FE1E1E078E3C3C878783C38F0FE1E1E 7 C3C7F F F 1E71E1E 7C3C0E38F1FE1C3C87087 E31E1C0F187 F11E1C383878F 8F0E38383C38870F187 3C3C47873 7 7C3E0787E E F87C0F0F81E3E1E 3C3C010E1E03C3C20387EA5 117 0 02B20 8 0 0 0 0 17C 0 0 0 0 02FFFE0 0 0 2C0 07FBF80 0 017F0 0FFD8 020 0B7C0 17DA4 010 05BD8 07FA341 0 01F7D 0AFD5 0 1 0 2BFD0 1FFA0 0 0 0ABFD143AEA14 0 0 1FFA0975D6CA0 0 0FFE8 5FEB040 0 D7FF4 2FB4A88 0 03FFA 17FAC20 0A21FFB 15554 8 1141FFF41555420 5143FFF41555428 1143FFA 17FAC 0 A 07FF492FF5040 521FFD01355404144 FFE925AAA 4 091DFCB6BAAA0 0 0FFFF41FD5424A491FFD25D5522 2 7FB492BB584 2 7FFD12B55 04923FFA0BAAA 0 47FFC16BA5092537FE8A7AA88 92FFEA2FAA84965FFD01F5010D35FED 6D5 12CB7FA BFEA0 0 7FF 5FF50125BFD20FEA8169B7D22FFA8 6 FFFA2BFA8 4 EFF20BAA8134DFEC17D50 CBFFF 27AA0926FF6 8F54124BFFC13FA80997F9A27FD 044FBF44FBA 0A1FFC89B74124CDF9326CC 99136644DD8 991FEC899D8 12277E899981118EEE41DCC 1389FF2 5EE 03C8FF9807F801CE33EE01FE0 770CFF8 7FC 0CE39FF 1FF 033867FC07FE0 670CFF8 7F8 11C 7FC 3FE 0C711FF807F808C706F305FF02718EF31CE318C631CC7398E719CE21CE31B9C67398E6338CC6318E7398CF18C671C746087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 03F 0C0 0 0 0 1FFC0 0 0 0 0 0FF 0 0 0 0 03FF0 0 0 0 0 7FFC0 C 0 0 0FFE4 0 0 0 03FFCC0 FC060 7FFF0 8 4 7 3FFF0383D 1BFE07FC36823F07F 1B2 1F03F2FB1B0681D FC0EC3E 487C0F87E F 4 F87E0F07C303E1F 781F0 0 E7C3F131F198F 1 0411397 7808080F1F040 216 0 0 0 0E0 3C0 C 038 6 0 7 1F0 F807E 1E0 FE0 FE03E 3C0 3C3 7E0 FE0 0 FC0 FFE1F801F801C1E1C7F387E187E187879E1FC71FC31F83C787C11FC 1F823F83C787CF9FCE1F8C3F8 7FC1FF8FE61FCC3F9 7FF FF87E30FC43F887CF FBCFC31F8C3E1 F8E3F71F8C7E3 F863E38F8E7C31F 47E 1F8C7E67E19F843E0CFC73F33F09F807E C7C71F33F88FC 7F0E7C61F13F88FC07E E7EE3F31F18F887D8 FE07F 3F01F 0F81DF0FF CF84F88783FE1FC33E33E21E31C67C77C67C43C4F19F1DE13E01E4615F1FE27E43C9C7386F8AF20E4619E37C57D F22 EF1FC47D0F021DE1FC0F8 E 63BC3F81F41C0 678DE 3C07310DE1F80F01C842F FE178 F401DC7F0BC 7A01EE3F89E 390 E63F85E 38846F1F85E1380 7F0FC3F11C013D8FE3F11C0 3D87E1B88E0 9E87F BC8E0 1EC3F DC470 1F43E87E070 3F03C 7F038 1E0FE 7D0FC 7E1F8 FC0FC 3 1FC FC07E C80FC47603E28 7F03F801F 03F827F 4FB 0A417FC 5BB 6803FE019763041 16C936C24936DA49369C0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3E0 0 0 0 0 0 F 0 0 0 0 0 03FE0 0 0 0 0 07FF0 0 0 0 0 01FC0 0 0 0 0 03FC0 0 0 0 0 07E 0 4 0 0 01FFF 010 4 0 063FF 0 0 0 0 01FF0 0 0 0 03FFFE6 0 F80FB81FEC5E037 3FC 3F8 F 07723F01F8072227F1FA1F0231311F1FC9EC6703E1F8BC160307C3E F239181C0F07A3F 198E0E2381C5E181C869E F 3C1E0F03818 F 33C E 7 381E0783C1E102C 215 0 0 0 084 0 0 5E0 1 0 4 0D2 140 3D040 0 03D 01A81AB80 0 0 3D140 B 7 0 0 07C 0FE8058 040 034 05F80412020 016D0 27F40 540 0 8 FE8 3FD40 280 0541F50 7FA8164 02480BF801BEA 969 1A686FE416FA8 A 0 14037F28B55456A 03F805FE4 7FA83A0 0FF809FF9 5FE8F50 ABF 07FB2 FF5 F40 ABF2037FA 9752F 01FE017FF 1BEB060 7F2837FA09F50B4 3FA49FE955BA87C 1FE 3FF20BF50E4 7FA FF482FD43C0 FB05FE8 7D25A 05F 5FE82FF41E01FD17FB05FE920 3F17FF01FEC 0 DA0FFC03FF81015 FFE 1FF80 4C97FC03FF814A04FF0 FFA2461DEE4BF99F237272221CE60E6619FF821 1D8F0C0C2731528 E 0 1C0 0 01D 0 FC0 0 0 0 3FF10 1C7E0 7FFFFC07FE6 03FFF80 7FD681FFE80 3FFB43FFE 0 FEBD0FFFC 03F3F43FFA0 0FC7FD0FF80 BF8FF817E 01FC2FC BF0 07F15E84E8081F827627C 98FF03F 3F0123F11F8 F80223D 3E8BE 8C3F11FE2F8 38FF11E 9E0718F38F1878070F383CC1F 0 1FC3EF07C E F878F83F0 0FDF0FC FC0 3FF 3F03F 0 7F83F81FC 03FC0FE 7F0 0 3F83FC1C0 46C 03E 4F0 2FC3F87C7F83839F8FF83F870F833C731C3C1FC61EF1BE1AF1F1F17E71F9F21F19B3C1B871E 887BE258E407B119C72E2F1824CCC66446760E1F1842C4D BE0F03C1C DF05D3C10 E904C 2F074 2AAA9FA 114 0 020 0 0 2 01C80 0 0 0 0 1 0 0FF80 080 0 110 0 0FF80C040 0DD80 8 1FF 0 7 0 1EC 020 FFC 0 0 0 3B0 1803FF0 420 03BC0 6 07F81 080 1DF2074 7FE 0 C 0 EEC 6F03FF8 0C0 1FFC037 9FF80 6 0 EFD 3D09FF8 0D0 1FFA17E11FF 034 0 7E01BC4FF60 F 01FFC EF13FD8 780 FFE81F84FFC 9 047FF 1FC6FFE 0 0 3FFC8DFE07F 3F0 FDDEC4FE03F 130 FF9FC8FCC7E 6 0 FE3F23F31F059983F9BB9FB1D819183F9BF9F91F81B307F3FB3763F 4CC7F9FD9FD9F86 C7E9FC9F8BF 4C9F9BF23727C 06FCDF83F2342 6FCBD1BF46C40DFBF46FC9F 0B37FC0FF26C02EDFB16E13A0 D3FE8BF25D0161FE2FD22D0103FF2FD23D8 03FE0FD23D0 07FA4FA16B0 0FF41F6 DE0 1FE 7FE D40 17E BED1A88 2F827DAB5 0 7F84FB06D 0 5F44FB56B 0 9F49B64EA241BE49F60BA 013EC1E68D6 837C93E8174403FC13E8174 0BE41FE 8B6 5FA FF546BA 2E9 7FAA155 16C8BF512AA80905DFA 95540 02FD1 4FB60 03F541BEE94 8ABBA55 D55A55980 E EA9A9447D F511D3A1358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3C0 0 0 0 0 0 3FE 0 0 4 0 0 FFE 0 0 0 0 03FFE 080 0 0 03FE0 0 0 0 01FFE 0 0 0 0 1FFF8 0 0 0 01FFF8029 0 0 0FFC0 060 0 01FF2 01B 0 01FFFE010 190 3FFFC 1 018 01FFF43 0 01FF827F8 4BC 3FE 2FC 8 6C4FF81F8243496C7D8FBA0B83F139191A07C3F 3E0B8 0FC1F 780E0 1F1F83C F 07C3C2E 7208D8DC4E623637180 03B 213 0 0 3 2 1 2 1 0 3C0 C 4 0 0 8 0 8 264C0 08080 D913C80 0 0 0C0 FC07F 0 0 130 7E07F44FE 998 199BB81B91370 3301F99F8 FD99B803F81F83FC1B913F019807ECFF06EC4FC 3F03F23F83B3277 1F01F91FC D999B84F81B99FD1F991B89B13367FA376277 3601D9FF0DC89FC18 3ECDD86ECCDC0C87CCDC87ECCDC D 6C9991FD89B8244C26EC7F44DE122637646F666E0 6C0FC8DFC FC0 91FF93FF13F 0C8FD81BB11F0 01FB0372276 0 FC09F915B 05B 3FE89DD21295C8B55 B4833B02AAC 087F52FE9544A52A2A550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 4 081 020C07050541068208C40 C29 E 38281 5 480F36860486030381C 018B01E F 6 284 743C1C06220E0FC70381CFC7E3F E46671F8FC7C1C1C7C3E1F0F0F0F8FC7E7E7E3E3F1F9F9F8F8FD3F1E7E3F0 7F678FCFCEF3DC81B FC7F038 7E1F8FC E 0F8FE4F23 03F1F9381C447E7E2E06089F8F8F818183E3F1F13 7 747C7C4C0E0E0F8F810 C383E3E26 D F 747C4C1B1E0E8F8D8383E C1F1B 3 7C1C1F1616078F83E36 6 F8F 346C0C0F1F068D8581E3E E8D8F 3C7C1916160F8F93A54301E1F 7 C858387E4E1B9A078F81A1616 FCF81A066 F8F83C4C0783E3E F85 3E0C0 0 0 0 0 010 FF5 112 0 0 7 034 E206243942980226B16C9D8 531B42924C1DA95A945A56ED33E4AB26D99B76B43844998C47988DCB888B7E3D8CD703E10A78C48C8C333 8CCDD98CC3510CE27D932F443326E25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 020 0 0 038 0 0 0 0 1 160 0 0 0 2 0D03C 0 0 0981B 7 0 C 0C8 0F8BF 1FF41FA4FB3E8 0 0FE7FC9747E 7FCBF67F93D7F 3F87F8FF06C7D83F87E2FC1A0FC1FC5F07C D FE0FC3F 7C1B04C1F 7C1FA74 7 7E3E0FD1A F83F364691A C8BF2E8F8361E 7C593F468183E2E8F836081F0FC6D1B183F F47D1B0 7E0F8F837 0F83D1E46C03E2F 781B01F1F83E46C168FC1F036 3 7E0F81B 327E8DC9D 22760DC8D8227E0DC8D 2 7E8DC8D84 F81781F8C B91F91B 81B52F01B101F 2F01F 07E 7E03E 0F8 DE0FE 043F988FC 0 0 FE671 C82654B18C7889E9099BACD6F 0ED988AADD95AE0C3 862202BA8 F BDA1940C83C442B848C 1E1D94E2F18465A 24DC073 654A1691E 7C059C527F9A95E41C3AA 86E53B6207581906195 313B93BF5561CC3E1718CC98BB11B59F0E268CCC066E7DCB684 E99 F25CA2217505B9C189E4F92F8 F 3CC6AB1C98F7C2895C9BE99A8BA344198F15080CF74 F1244582C144985A27262A4C2D043486B43 A5EE4E028892385 131 1F7ED53409524 42BB0AC1C3886389D89CF8E3338F062E3B73F8787E639 F8B83C8CE2321F0781C46E270FC3E F DE06C7E17 38384C7E172382E47 3E1C18D 2 211998DC8E072 211 0 0 0 0 0 020 0 0 0 0 3F0 3FD 010 028 03F 03FD0 0 0 7801FF0 FF4 0F2 1F8 1FF 0FF407F807F 07FE01FE8 FE01FD01FFC 7F2 7F0 7F8 FFC17FA 7F4 3FA 7FE17EA 3FC 3FE 3FE95EA BE9 1FF 3FD22D6 7F0 3FFA5FA51A811492DFE93F916B0F24365FE5BE53A97821B6FF2DF69B476806DFE93E932AF81FE1F6DF6AD6BE43ECFE4FE D63C07F9FD1FD12F743FCBFC9B45B7C1FCBFC1F44BD83F93F83E897 0FEDFE0FA D803F FE0FA2581FC3FC1F45B 1F0FF 7D16C F87F83E8960F83F93E41A 792FC3EC1A0BC2F83F836 785F07F16C0F03E FE0D81E F82F836 783F0BE D83E0FE2F8340F07E 7C1F07C3F 3F0683E F81F8341E 7E0FC1A F 7F07C1B 783F87E D 381F83E D 3C1F83E D 3C0F83E D83C0F83E D83E0F83E D 3E0F83E D 3E0F83E D 3E0F83E D83E0F83E D8360F83E8D8164DD1F459064DD1F468036 D B42C03E F8B42D03C F8B42E0391F1781C0F83C2F B81E0F8381E F 7C0D0B83C1F B46C2703C F1B 3C480 0 A1C807D 110 0 019E0 C 0 810 03B3B10 0 0 0 0 1FB12 0 0 1 0 0 3FA 2 0 1819032 7E0 F 0 3 36274 FC018 0 327 66C FC0 8 0 FD01F80FFC0 0 01FC064 07FC0 0 04E6034207F60 0 047F224207FE0 0 017D02C 07FC0 0 037B038 0FFC0 0 06F6052 5FF80 0 0FE84E0 BFF 0 0 37F 980B7FE 0 0 5B4 2 29FF0 0 0 FE01016FF80 0 7FE 1896FFC 0 07FC01096FFC0 0 FFD 9 A5FF8 0 0FF802141FF80 0 7F8 4CA37F0 0 3FEA57F83FE 0 07FF8B5E2F580 03FE85BE97FC0 03FE86D683DC0 03FF86F697FC0 07FD0DFD2FF80 3FF4BFD49EE 0 FFB4FEA2D70 07FD2DF52FF80 7FDADF5AF70 0FFA5BEA5EE 01FFC77A97DC0 7FF5FEA5EE0 3FF FF52F70 1FE97FE96A8 0FE96F496A8 1FDADFD2D50 3FE5BD05AA0 FE97F50EA807F4B7F B54 3FA5FD05AA03FA5BEA5AA 17A5BD05AA03FE17D4B54 7F43DA87F80FF87F5 F701FA5FFA5AA 1E95FC16A80FA9FF4BD40794F5A1AA03D6FE82D502D2DED2D503D2FE92D50294B5A1FC05A9FD05AA014BFA4BD40 87F416A8414FEA2F5 A BFF55FA 4 7F4 7A8101FFA2F50202FF55EA0505FE03D40E81FD2BA81E83FD07A81602FE07A80502FE05E80 07FE07D 0 07F 3FF 4 07E97FF14 05DB7FF488040B6FDEC4C6A75EAB7CB1C32D4BD2B7036D5B34793A45AA54EE43946A1BA84A52135F935BCE63F8CD085DC626C84C018822462 E FC1 031 C64 1982E20891740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 040 1 048 899 B 6 26081C078E546 7 1BFAF4E3247 1C27C A38 FF817 48540E396903C7970 C8972 F80F8 64C 7C881C3BA81D983207F807E41F81FF3FF817640187FED8993F67FB2F6 0D9 BF02F603F 3FC BD8 FC0FF 3F4 7F03FC0FD 3F41FA07EC0FC 3F01FB03B 5F813E4 E917E 5FB 364DF907E80D03FC09FA07C 3FC FD0 E40FF83F4 1336FC9DD 0 07FC9F9 0 03FEF817F28 4C1FD ECE5236EE6B713F18E2A8A8736277F490DCDBEE70C241957A315EA774EAD32538306546BEF5E35BEB49E4C7441CB4252C4EA55F8C1199A3 4CF5FD6B9973972E49E9C1FA0 1CB229D838196C4 5C9ECB88D8F75B4 1A211DB98F3E0 0 0D8353819D8 1FCFE8D4B1DB7C4C87A31 695 150 F4342FE1153D913B9 7A892D1A1F098CB 027 63035DC A2242 0 0 2 3 1 120 060D0 0 0 0 030 0 0 2 0 0AD 3 F 0 0E0 181F0 0 0 0 0 0 F998C 0 0 0 0 0FC7818 0 0 E 0 03FC7 5C0 1 180 C 3F018 2 078 C 5F01F 0 018 1B0302680FC 4CC 01983 3F6 7E0 2 0 0FE 230 1FF 0 0 0 9F8 E80 FEC 0C0 03BC034 07FC0 0 0 3FC 1C8 3FE 0 8 07F8035807FC0 4 0 FF8 7B0 FF8 4 0 3FC 0E4 3FF 050 03FE858807FE07C 01FF016 05FD81E 03FE016 02FFC1E 0 FF217 14FF810 03FE8 E 2BFF0 0 0FFA038 AFFC060 3FF 1FC 7FF 7801FFC F693FF078 1FF82F693FF 3 07FF85F697D5070 3FFA5ADA5EF C 0FFF4F7B4BDE0803FF97D6D3D70801FFC8FB6AEB8 03FFC8FEC2F70 07FF2FF9ABAE0 3FE96F4D5F7 03FFD7FCD5FE0 7FFAFE9ABFC 0FFCBFAD3D7 0FFE1FF2AFF 07FC3FAD355 0FFAFE9AB5C 7FF7FED5D601FDBDED556 1FD7BC96AA03F2F79 D54 D6BFB4B55 3D2F695554169FB5AAAA0B57D694AA0BABDAD55502AFDE95FE0A8FBA94AA0217BCA2AA042F7D2D54084FEA52B81 5ED4AEB 2 3FA96AA 52FFD4D54141EF4A550107BD2D7C0417F4A5F 1 5FD D54 02FE83550 0BFA8FDC0 5FC86AA 0 7F51AA8 03FD0F540 0FEABF5 0 7FC 6A8 02FF55DE0 17FA0D5 0 1FFABD4 0 7FE F502017F23F40 0BFC3FA 4 1FE1FF8 0 2C8FDF4 A412FA59E6B547B5B22E9 AF12EC9BA95EA47D9348A40 66CD5AC254922389AC19AA71623898A 8D42E 192467732203029406CC613 3111833201721 9C010 71FA0 313 2 E 0 0 0 03E 0 0FF83E0 0 130 0 0FF40 0 0 160 0 1FF80 0 0 0EC 0 03FC0 0 0 0BE 0 01FF8 0 0 03F80 0 7FE 0 0 07FE0 0 0FF80 0 0 FF8 0 03FF8 0 0 37F 0 0 3FF 0 0 01FE0 0 0BFC0 0 0 7F8 0 0 7F8 0 0 1FF 0 9 0FE 0 0 07FF02752FF80 0 0 FF82160BFE0 0 01FFC25B49FE0 0 0 FFC 2D25FF0 0 0 FFC 2DA5FF040 01FFC 2D45FF8 0 07FE8 528BDE0 0 03FF082D0FFC0 0 3FF805A8BDE 0 01FFC 1B4BFE0 0 0FFC02B41FF 0 0 7FC 2B41EE0 0 0FFC05F8B5E 0 0FFF0 7D0FF80 01FFC 1F83DE0 0 FFC 7E83DC0 03FF0 FF0F780 03FD03E83D4 0 1FF 3F51FE0 01FB03FC1FF 0 BFD17F83F60 0FE 3F817E8 05F 1FE 5FE 05A 5FC 3FA 1 017E03FF782 5 0B7C2FE8258 6B7 6B6256EA578F1BB56E4D3AC5BA74BA4C54A91323A25442C488FA02DC877998031284C7831E691B0D1811B724A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7C0 0 0 0 0 7C0 0 0 0 0 780 0 3F0 01F 0 0 3F8 018 0 0FFF2 0FC 0 1FF30 0FC 0 7FC30 0FC 0 FFC88 0 0 0 399FF 0 FFF44FFE07E83FE 4FE 3FE FFE 7F8 3F81FF8 FF0 1FE37F89FC044FE27F01BC084FE 7F01F81C0FE 7F01F80C07FC3F01FC0F81FC0FA FC0781FC0FE1FC0781F80FC1F80F03F 3F87F 0E0FC 7E0BC 2 3F03F86F0 03F 1FC2F 0 7F07F 1F0 03FE0FFD0 09E31D91CFFC23614 C3BD82916C28C1086 C8E1E373D2B92F0E0E61F138261 F 7909AF1C3E38410 5 F BF21384F98DC83E90208E11 EDC85691BA31B9594A0D478F46A23534F8AC6 E E2AFC1991B03C42C56383C1 F4267 B1A 3 33260F03BB9914C 1 05678DE C 0 2 E6D94818887A53A 3D98128 8 E 0 1 8 422B160311380 0 0 088418482 0 040A4 2 D 0 09C 3 2 0F4 8 FE0 24038 D 0D077A8C4 2107F 0F0F8 E57A8 44685E84031 8F1C14090AA2081A2EA 5E0B05CD8A54410FF 5404A12A8906A C50A1 F40F098 5 021719142 01F 988 43648 0 01F81 0 0 048 0 01F8140 0 0 8 0C0 FC1 0 0 0 0 0F8 7F0 0 0 0 FC03F 07F 0 0 7C0FC 3F8 7E0 0 03E FFC1FE07E 01C 7E0FF83FE FC0 1 03F 3FC1FF0FC C E 3F81FC1FE F83803C1FC0FC1FF07C30 7F0FE FC1FE F81C07E1FE0FC1FE0F8 E FF1FE F83FE1F801C7E3FC3F0FF87E0787F8FF07C3FE1F8 0E3C3FC3E1FF0FE 787F1FE1F 7F87E 039F0FF F87F87F 3E1F87F F83FC3E 3C3F0FE F FF0FC F87E1FC3E1FC1FC3C3F F81F0FE1F83C7E3E0FC3F87C0E3E3F1FC3F87C0678FE1F87F F81FC7F FC3E878 F 7E0F81E 780F0FC1F 3C0F87E3F87C0F03C F 7E1F8FC F 381E0FC3F 3C0C1F07E1F8BC0E0F83E FC1E080F8FC FC1E880F87C FC1E881F8FC FCBCC 1F8FC F8BC8 1F0FC1F83C0 1F0FC1F8BC0 1F1FD1F83C4 3F1783F93D8 5E0FA3F 7D0 781F87E 7B01FC7F0FC F80FE1FC1F01F 0E13E 3C03E 718F38F 87843 79C3E60F8 0FF83FA 7E0 FF83F801F807F81FC 0FE 0F8 FF1 1FC 3E03FD0 7F0 F80FFC01FC03E 3FF807F 1E01FF8 7F8 0 0 3FF 3E0 07C 2 6 3E4301E1F8383F03F40F8383EB2 FAF23DEFF97 0FD4179F9F83EF17C1C34678F5C7C6E7FC59C1F81F8F0C5E723C3 7B036 E 3C8 C85E8782387E0 8F0 43A80103038 781F01830 334202C 2 C 0 0 0 0 0 0 0 0FFC0 0 0 0 0 03F80C0 0 0 0 0 0 1FC 0 0 0 0 0 0 0 FE0 0 0 0 7E0 0 03F80 0 0 01680 0 7FE 0 0 0 0FE 0 01FF8 0 0 0 FF0 0 07FE0 0 0 04FC020 3FF 0 0 01FFB 1 01FF8 0 0 037F0 8 0FFC0 0 01FFF91 01FFC 0 0 3FFA040 7FF 0 0 3FF72 0 3FFC0 0 3FFF8 0 0FFE0 0 03FD8 BD8BFE0 0 0 CFE85FC FC0 4 7D8FF81FC1FC0 81FF37723F03F 0203FC5F81F81F8 441FE1FC8FC8FC064 FC1FC8D88F8 9 1F93B 3F11F 6 07E4FC0EC4FC2 07E FC0FE 7E0 01B95BDA84FC0 047 330 87FE0 0 062 2 1FDC0 01E 0 0 3FD80 4 E 110CEE6 0 E 0 0C0FFD8 0 6 0 07FFC80 380 0 03DFC 0 11FF9F9FFC0 0 7F87F9DFC 7C3FC87E03F 3333F 3F01F803F13E1FC3B903F 3E17A3F 01F 3E17A17221F 7E2F47E3E1F 7E2F46E2C E FC0E8DC4C3E F85E85C583E1F83D0787C3E F81E85C5C1F F81E85C C F8FC0F0AC26 F87C0FC7E12 743E07E F 01F87E0781F80E07F 1F81FC02F627F 0BFC017 1FF805FE0 780FFE03FF8 5407FF8 FFE 1C81FFE 3FF8070 7FF 0FFC0 8 1FFC03FF0 3 07FF01FFC 5401FEC 7FE 2 03FFA 3FF80 0 FFE 0FFC010 3FF 07FF0 0 1FF803FF8 4 0FFC03FFC 0 0BF50 FF6 054BB913FF6 09016EC5FFB 54847FA 7FF A 0 FF42BF545 03FE01FEC90 3FE8155C0 17F802EB8 05FE0 5FC 01FF8 5FE 01FD017EC 0 0 FF8 0 E 2 B 0 0 0 0 0 0 793F8 0 0 0 0 0 0FF 0 0 0 0 0 0 0 7FC 180 0 018 0 03FF0 6 0 0 0C010 0FFC020 0 03B9084 3FF 040 0 1B8 0 01FF8 0 0 01BE120 0FFC0 0 0 0FF89 0 7FE 280 013BD 8 27FE0 0 0351FC04023FF 0 0 01BFC84423FF0 0 0351FC04423FB 0 0 091FC 0423FF0 0 01C7F40108DFE 0 0 6 07F 3FB1FE0 0 0FC FC0BD87F8 0C8FF8FC01D87F0 088FF9F883F FD0 320FE6E207C5F80391FA37217E5F8 183F07E46F8FE 0E0FC7FB37A7F 0C0FD7EB77A7F 081F0EF47E8FC 0 FCFF13F 7E0 0FCDF93F07E 0 7EFD1BF4FC0 E9FF22FC1B8 18BF4 FF07E 065FB17E83F 033FD1BE41B 052FC1BF41B 053FC1BE4BF 083FC17E8F6 1 7F82FD1AC 0 FF05F23F8 03FC1FE8D60 07F 3F837C0 1FC FE0DF 0 7D07F8378 03F81FE8F60 0FE FF06F 017C83E9168 01F41BE FE0 1B41FA4FA 0 A 1F6DF8080 3D5A3E5A254D3468345E1A1 4B06C532C165AAF DF6 966855AD553F47FD8A76EB76BDA6C723D5BFA759B1D2A94A95A9595D88958CC8C47C37A18B311884687C66832 03383A896 1 A 0 0 0 0 0 020 01F9018 0 0 0 181FF1980 0 0 0 0 7FB10 0 0 4 080 FE7 0 0 02130 01FF8 0 0 01C80 0 3FE 0 0 01190 0 0FFC0 0 0 1B42C 01FF8 7 0 036 3 0 7FE 1 0 01EC580 1FF8010 01FE1E0 0FFC078 0 FF890 07FE0 0 0 FFF68 01FF818 0 3FFE0 0 FFE 0 0 3FF60 0 7FF 0 0 3FF60 0 7FE 2 0 7FF60 017FE 0 0 3FF601C43FF 2 0 1FF403E 7FC 0 0 3FF80FE FF020 07FF4 7E2FD80 0 7FFA0FF57F0C0 01FF43FD1FE 0 07FF49FE47F 8 0 1FA9FE87F 4 0 07A FD1FE 4 9F7ED3F60F8E0 FDF64FD13E2 0 0BF2DD937 4 BF7E8DDB36284FCF336F4DC403FCE8D9F37 C 3E7E6EDCDC0 1F1F0F77270 07D7B337330 07E7E333938 07EFE76793880FCFC7E6270 1EDF8F8C4E0 3CFE1F3A9C0 71FC3EEC7 0 E3F F9D8E 01CFF F3B1C 03CFE1F3E1C 039BE1E7638 03DFE2E7638 03C7E1F1F1C 01CCF F8F8E 0 73787C783 1 18DC0E1C1C0217370787070407C7E4E5C C 6 F FCF4F8983 0E1E8C9D1F0 0347E 5F93F 0 1A57A 1FFE0 0 02FE0 7FF80 0 03FC01FFE 0 0 07F 03FFC 0 0 07C 07FF8 0 0 1F8 0FFF8 0 0 070 1FFF8 0 0 3E0 1FFF8 0 0 7C0 1FFF0 0 0 180 7FFE0 0 0 0C8 1 9 0 0 6803020 0 5242C A408E12856AC9953258BD6A56DDAD5AD7AD5B938D4CE6663719ABBBB8E1D2F1983F33D1F3A5AC4444FC3AE56DCAD4B5 94A31A3258BE1846799 4479380E2 B8786466C6198A6 FCE461C3D89CD82 1FF419C46138227 9947232 43E C8380D9992C6B1AAE20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3E0 0 0 0 0 068 0 0 0 0 0 0 03FF8 0 7FFC0 FFFE0 1FFFC 0FFFC 03FFF803FFF80 3FFF8 3FFF0 07FFF 03FFE 0 07FE8 7FAA4 0FFFDAAFF5010 3FF48BFD45027FFA057EA 161FFD2 B75 564BFB217EB1A817FE526D65A 97FB41B584925FE92FD40 82FFC96EA 0D07FE036D06D 4FE BFD 2F07FE03FD03F 1FE83FB 3E01FF05FA03F 0FE 9F4 3E01FC03F807F 7FA FA0 7C07F816C 0F8 FF05B 03F83FC12C4 BE0FF 4B3 0FA4F9268806D 3C8346817C9744B28 791EC1B30 FC1F02F 01F 7C0BE 1F07C BC03F 7C1B01F 3E0F81E 1F07D283E FC0788C 1 8 0 0 0 C40 0 0 0C0 0 0 8CE 0 0 1 0 0 1FED9 0 0 F60 0 1FFA480 0 7E0 0 03FF0 F 0 19DC04423FF 0 0 0 3F8 8423FF010 0 1FF80C423FF 0 0 0 3FE 7211FF8 4 0 3FFE032 1FF80E0 03F7F 1908FFC 6 0 1FFF01C 8FFC020 01FFF 3908FFC 7 0 3FFE07211FF80C0 0 7F8188C7FC070 07FFC 2223FF0 8 07FFF 3B11FF8 0 01FFE 4211FF8 0 01FFC 2F63FE060 07FFF 3F13F8190 39DFC1FC1FC CC03F8FC8FD9F808983F9F91FB1F0 2607E6E66E87E 3303E46E5EC7E 4407C8FC9C87C2662F47E27537080BD FC0F427 0333BD09C87E0 54FCCF731FC 0 473BDCDEF 0 7 0 CE37FC040F81F31FFE03F 0 3F8FFD3A1FC 0 0FFF0 0 0 FFCFFE0 1FCFF83FDE03F 7FBF37F87E0FE7FC8FE2D5FD0FC87E1F83F4FC0FC F85F8FC F81F83F B81F01F 7E0703E 3E0FC F46C07C1F81F9D01F83E0762E 7E0FC F42C0F81F 3E1F03E FC1E274 F 3E07C F88D0F93B13A2207E4EC4ECC01F83F03F20 FC0FC 7E01D81FF85F8 480FFC2FE 1 863FFF736DC7F 34738F93F1F846D5847C69FF93066 98C30107018E0 2F2 8 988 1B8C1 310 7 0 3103F80F6 6F9F6823BE1CF9434 39F23C698723C67801831CB222C728CE9DB7360 9 280 F 2 C233047BF8C6BE21210C798 01E3BC21633E34FA5A04CC1EF F1E17 E1C3FC3DD13423A E 4 4C0 9C2DC18 8 F2E C43 07BFBF38C 0F6 05063BB9C24C3 3E2183A1FF111 020C66023 7 384A310CEABC3 6E330138DD32011B31741BD F 9A5483610826BC39936 2 7 0 0 0C277 0 0 0 080 0 080 0128C 081 088C4996DBDC9E220389A3E324E 07F7F32CF 63AB77F1859E357E0C06C9B23AE3C1E22E7DFF1E1C9C63A363C7318 0 D8FF89F98667C219170FC1B 960E1 6 C1DD0 2A1E349BE406234DF1E 3 CB3683020 A98 9CE1B9C47103B8663EE3B9E37 3CF 6251E 1C0E7FC60CB3FC6C0F033 78DF1D0FE 6 8 34120 C461887 01FC0C3EE30474F80 CE1 238301818FBC2 188 7802631 04012 A14C49A2214208CF33C 0 2 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 020 0 0 0 0 0 030 190 C 0 0 780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3FFF0 FF37C3FFC3FF83FC176DFF41FE07F807F5FE07F 2FC 3ECFF 7F916E03E FF07F81EC F817E BF07D 7E0FF 5F91AC2E87F44F93741D07E81F95A8360F913E45D13 7E81B96ECB03FC0DE2764 3F6 FC13B 03F41F813B0 7E81F813B 2FD BF017A04B91BF 376 4397FE43F4068 FF88FFC278E7E7CE2 7 F3E6037 3FBF21C32 BEFF33087B3E180 F24678D38 6FF80C3 3 8 8 D 8E08C99903EE3FF 0 43C1F81859F1B2440843181BF 1388C7011F97DC010367FC71C C37FF107F 08388 9EF9BCFFFC81D17 38FF840C8403EEF8F3A28C0FC4F1324E13C4C68C71A2143D9E1D990 0 3878FFB E4EC7FFC6E28E1917C0 3E41F78 27DCC 1F8 D87A1E0E318F060 19878E039EFE61FC8 C8E10 FC0 03FE78B10 23180 43E D2030E171C8666467C1C78652472420A1CDE32C 2 6 0 023 181 7C783 2 3 0 D84E0781840 0 070385BC6C7 0 4743D FE3 F 0 0187F1FC0 CC210 7F01FC0 340 0 BC05FD0 8D212 040C7 28C581A63426462 C9040122080 01072 484 0 0 0 01CE3 0 0 0 0 0 03380 0 0 040 0 0FF 1 0 0 1 42381FE 0 0 0721848 FFC 0 0 31181F01FF8 1C04071 FE43FF82080 7F81FEC7FF04440 7F03FD8DFE0 3 2 3FD1FF89FE03B2763FB1FF83F83FE1FF3FE 7E07E 2FC FC3FC1F91FC81F03F 7F07E FC347E0FC1F83F2363E1F87E0FE1F91B0F83E3FC3F0FC D 7A3E07C1F83F1B85E1F8FE1F83E17 3E0F4FE2F4FC2F14FC7C7C1F9F81A2363E7F8FC7C E3E7C7C7C7E E 71838FC7C1E1E863C7C7C78783A18F1E1E1E1E1C8E3 7 F1F1F8E8760E1E3E3F1F0FC3C7838FCFC361F1C3C7C7C3C1E3E383C7C381C7C7838F87838F0E0E3F1E0E3C3838FC7 31F1C1E3E1C18F8E071F0E0C7C7 78F87 C7C7838FC3843C38387C7861C3C1C7E3830E1C1E3E1C1 7 F E1F1E18387870FCF040E3E1C6E383 71F F1B8E181C7C386E3840F1F0E1F8E1 3878387C3801E1E E1B8E10E1E078EE3883C7 1C371C01C381C3F E 0C381C3F8E01C707C7E E 31C1F FE1E01E1FC3C878 187F0F21E 011FFFF411238F1AC 3 9F0D0995763207A4B52D05862756220236A1BED 674 BE22093E68E 862AC3D4A1A88B0D8F31A48D19028FB2CBC 9 8CA7CA4883C7D8DA5 E417CE4F837653016B121F4774660ACE9 9 DDD83626F8D C251E202C1ED41C93 1C82CA11F2E4CB89F5CC367A1DE3A81 2B8 F702AD1E21E30C158A3298C282A 03751FF49EE3E 0F573C124 95986 37024 07FCDCC457C91442858101C352340 0 010 08E20 0 1 0 0 2 01012 472 2 5 0 023 0 0 0 0 0E0 0 040 0 0 0 0 0 060 180 060 0 1F860 0 0 8C0C0 F 1E0 8C0101E 370FC4F18 C 381F01D87F13C80C03B1FE07F FC47E 1719CE781F83F11E03F8C4E3C FE1FC8F 0663170FE3F 7E238 6 E 78DE1F83F33C0 6319C7F1FC0F91F 1CE67C3E1F81F11C13C E3338CF11E678 E 07E1F 7C0F81E 3C4738F23E47C F 1C71FC7B9F83C 7 711C78FE3DC79 F1E 79CFF1FC3D878783A3FE1FE3DC39CC387F87F FF0F8 3C3F07F FF0F819C3C33C3EE1E38E1E 1E0FF F80 F1C7C3FE0F0 787BE FF83E 7873E FFC1F 7 0FC1FFC1F 0 1F83FF83F 3 7E0FFE0FE181F 7FF83F8 1F83FF81FC0 F81FFC0FE 07C1FFC 7F0 7C0FFE07F807C FFE 7F8 7C0FFC07F 0F81FF8 FE01F 3FF 1FC 3E0FFE03F80FC1FFC FE01F 3FF 1F8 7E0FFC07E 1F81FF01F807E 7FC 7E01F83FE 3F0 FC0FE 0FC 3F07F 07F 1FC1FC01F80FE 7E0 FE03DC1F0 3F0 F107C61F8 1 C3E187E 0 0 1FFF090 51C6A6E74721E34B1E1A1C3F3E5AC11EDAF7948EB1E6249DAA033B61135932592E593B04A59 B5673185C53894C58F3E64B69794ED55BD4284574E13BBC 8B8B29D9A6332 48F33758A85E1172ED4177564C35EE48EC476285885374921E4CA623AEA44CC21261C88AC36C67044144A70 9442859D3322650966AADA84D 4C1B4682840E548 85D2B BD920 B61 0AC894D84DE 04220334081 081 0 0 1 8 9 2 4 0 0 020 780 0FE 070 0 3A0 7A0 0FF41 0 0 FA0 7E0 05542C0 05D403E80 3EB 0 0 140 FF5 0 F5590 0 AAA7F40 3FF80 0 1415FE8 1AAA1 02115AFF4 05F50 0 2 25FF4 07F51 0 1 035F4 1DF50 0 0415FE0 7FE80 0 0 FFA 0FFE8 01152FF40 FFD 0 0 0FFE0 7FA80 0 03FF0 7FFC0 0 07FE0 7FE80 083FF801FFA 0203FFE 1FF50 0 7FFC05FF510101FF82BEFA010 7FF AFAA8 2 7FFC17DE8 4 7FFC2FAA8 147FD82FB5824 FFF4BEAA0101FFC 5AA80 07FE82AF810 7FA4175D0 17FAA175D 9 1FEC17FA024BFD92EF2 1 7FA 57E80916E915FA0453EC91EE86C9F648BF42C9BF6 5DB 493FF44DD89917F226EC3667FE27760644FE233709C8FFA13F8 CC6FF 8EE 6637F847F80719FE11FE01C67F8 7B8 7 0FF 0FF 0E03FC01FE01C 7FC 3FC 3C07F807F8038 FF01FF0 7C1FF 1FE 0FA FE03FC0 F 3FC 7F0 383FE BF8 010 07FE9 A56FEB7AD485B94 4AB79F0A5AB E2DE6195A10A1A51E15 51EE387B2A14C921BD811A92DF9C09B43D1AE71B3819638A13E4FC018184C723D 9523316 326CC89112ACC7C8C A1310E8 FC2135273D1CD9C9066316CADD8 786C5483A17986C813310E139CCF036E848CEC4 1C18948 AF92FED 0 5 040 0 190D2 1 3 0 060 0 0 0 070 0FF 0 0 0 0 07E 0 3FE 0 0 0 0 03C 0 7FC 0 0 0 0 7FC 0 FF8 0 0 0 0 1F0 03FF0 0 0 0 01FE0 0FFC080 0 0 1FF 0 7FF 0 0 0 03FE0 0FFE0 0 0 0 7FF 01FFC 0 0 0 FFF 01FFE 0 0 1FFFE 03FFC 0 0 07FF0 0FFF0 0 0 FFFC0 FFF80 0 1FFF0 0FFF0 0 07FFE 07FFC 0 03FFE 07FFC 0 07FFE 0FFF0 0 FFFE4 7FF80 1FFFC 1FFF0407FFB 07FF8 03FFB10FFF8 03FFF10FFF0 03FFD43FFE4 0FFFC FFF90 3FF603FF4 01FFD 1FFA0 37FE88FFB 01FF682FFD0 17F686FFB 12FFD41FB61 7EF817FE8 17FF057FA103EEC17FE802FF64AFF40 7FB 57FA0 37E8275D0 3BF412AD8 4BFA55568 05FF2AFF4 02FF04EFA10 7B8 57A 017F825FD 0 FDC82FD 0 7FA 2FD 0 7FE 6FD 0 FF227FB 0 BA47FFE 5A356FDBB4A94 D7EEB66A45FEF4477A9 1A2A55ABD 89D5A9548D2A8526850604D8232E1C0BE34E0 F72F826 C38B6E18863 A4190 1 23E 8348D96 131B6 46E 1 2 0 0 6 0 020 0 F81F0 F 0 0 8 0 0 FE0 370 1 330 7801F87C0 0 01C 080 7FE 0 0 01980 0 03FB020 0 066 0 0 0FE83 0 0 3B0 0 0 FFC 0 0 03F 01C 0FEC0 0 0 1F8 0 03FD0 0 0 17B80201FF6 2 0 0FEC020 7FF 028 0FD3880 1FE81 0 03F6090 3FE80 0 0FFF0 8 7FD 0 0 7FF 4A41FF4 0 0 3F8 F62FF60 1 03FE01EE37E33 043FF 3F95F818031FFC0FC8FC1683DDFC1FC8FC4E0703753FB1F8311F9BD8FEC7E1A BDDF89FC6E2623B9F89FC5E 01B9FE6FE1381 D8FE27F B80131FE67F1F806E3F91FC2E 230FC47F2B823 7CC7F19C2223D8FE238 C47A1BC47 311F8EF11C318FE3B8871 8EE15C2781047 AE11C 8A784728E 8638C718F18C398F1C710E39C79879861EE1CE1E41877C7987C E AE0FF F83C31E E70F838E1E1E78787 C1E E383E1E20F83DF07C1F 1F0FFE07C3C 7E07FC0FE 03F 0FF807F80 7C07FC01FE03E 0 7FE 3FF 0F0 01FFC FF8 F 0 038 03FE038 0 0 0 03FC0 0 0 0 0 07F80 0 0 0 0 03FC0 0 0 0 0 03FF0 0 0 03E 0 FF8 0 0 03E 0 7FC 0 0 03E 0 1FE 0 0 03F 0 3FC 780 1FC 0 FF8 0 0 7F8 01FF0 0 0AF 1 1 0 0 0 0E1 7 0 01C 0 03F 3C0 0 0E0E1C3E3 3C0 C C3C1C707E 01E 0 07FC1F7 7E0 3E083879E F9C3F20 F 61E1FF87FE0FC 03C187C3CE0FB83F2 1FC 0F87BC3E3 FCF 7F0 7E1FF F983E2018F0FF 7F87C41F3 C3BC3EF1F70F987C878 F FFC7D87F43E 8E1C73FE1FE1FA1F837 E39FF1FC1F41F 7E1CE3FC3FC7D 781F07C1FF0FE3E83C0F0B8F3F87E1F43C0F03CE3E8F81E 783E0FC7F83E078 F 787C3FE1F83E07838 CE7F0BC F23C381C3F71FC2F03C38FC77F07C F23E313DCFE2F89E473E0399FC7E0791FE03E1FC3F03C FE03C1FC3F07C F80703E FC3F01C DC0F07F FC170C07F FC07E13803E 3F01FC1F81B84FE1FC877 4C07F 7F61DE0 0FD 7F0 FF0 7F8 FF01FF0 FE01FE01FE03F80FF807FC0DC 3FE 1FF 3307FF8 7FC C 3FFC13FE0601FFE 9FF 0 0FF80FFF0801FF8 7FF 0 7FF 0FFE0 0FFE09FFC 03FF8 3FF 01FFA 7FFC0 FFC13FFA013D8 0BED0 FFC91FFA8 5FA8B5FA415FAAB5DE4 BAC57FAA857CA D76805D68BFD54175829F55 5D6825DA417DA 97F80 5FA857EA0 6FB40AF50 17E916BD6 04AB125FF53E478E05FBE 38F87 37FF8 889838D1FE1F0313CF0E7E478C58041F6FFD4 D84 7F83E8E AE03A E3F3BC1F010 11DEF3F132D7E 6 8DBFD4F8A7846F0BF3084 315811BFB B41FC 181BCDB70BC2073F166781E426CF018C6 061CEF81FC0 7FFC38044CE803FEE C 31087CE278F 3EC 781A43FE216 2C666701FB986 E C 2403FFE1EDC208E 07FE03D861879 1FFE1 6 0 7C01FFE4684 6EC 3FF8150 1FD 0FFE0 0 1FC 1FF804A 2 0 0 0
12 REM 0-23(DO NOT REMOVE)
3000 REM SPEAKS LIBRARY
3005 LET WA=29999
3010 LET NO=PEEK WA*256+PEEK (WA-1)
3020 LET NL=PEEK (WA-2)*256+PEEK (WA-3)
3030 PRINT NO;" ";
3040 GOSUB 4000
3050 LET WA=WA-4-NL
3060 IF WA>DW THEN GOTO 3010
3065 PRINT
3070 RETURN
4000 REM LET NO=DESIRED WORD
4001 POKE 16594,INT (NO/256)
4002 POKE 16593,NO-(INT (NO/256)*256)
4003 LET DW=PEEK 16636+256*PEEK 16637
4004 POKE DW,INT (NO/256)
4005 POKE DW-1,NO-(INT (NO/256)*256)
4006 POKE DW-2,0
4007 POKE DW-3,1
4008 RAND USR 16514
4010 RETURN
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
