Home » Archimedes archive » Acorn User » AU 1997-Xmas A.adf » StrongHelp » !StrongHlp/Resources/ResFind

!StrongHlp/Resources/ResFind

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 1997-Xmas A.adf » StrongHelp
Filename: !StrongHlp/Resources/ResFind
Read OK:
File size: 0940 bytes
Load address: 0000
Exec address: 0000
File contents
   10*|***********************************************************************
   20*|                                                                      *
   30*|              ResFind: Look for resources                             *
   40*|                                                                      *
   50*|    Copyright (C) 1992-96 Olaf Krumnow and Herbert zur Nedden         *
   60*|                 German Archimedes Group (GAG)                        *
   70*|                                                                      *
   80*| Version 2.01b           FREEWARE - may be used in any application    *
   90*|                                                                      *
  100*|***********************************************************************
  110DIM A_% 256:ON ERROR A_%!0=255:$(A_%+4)=REPORT$+" at "+STR$(ERL)+CHR$(0):SYS262367,A_%,3,"ResFind":END
  120B_$=FN_GetParam:C_$=FN_GetVariable("Obey$Dir"):IF B_$=""THEN
  130B_$=FN_StringLeaf(C_$):IF LEFT$(B_$,1)="!"THEN B_$=MID$(B_$,2)
  140ENDIF:PROC_SetVariable(B_$+"$Dir",C_$):D_$=C_$+".":E_$=FN_GetVariable(B_$+"$Language")+","+FN_GetVariable("ResFind$LanguagesPref")+","+FN_GetCountry+","+FN_GetVariable("ResFind$LanguagesSuff")+","+"UK"
  150IF FN_CheckDir(D_$+"Resources")THEN F_$=D_$+"Resources."ELSE F_$=D_$
  160G_%=FALSE:REPEAT:H_%=INSTR(E_$,","):IF H_%=0THEN
  170I_$=E_$:E_$=""
  180ELSE:I_$=LEFT$(E_$,H_%-1):E_$=MID$(E_$,H_%+1)
  190ENDIF:IF I_$<>""THEN G_%=FN_CheckDir(F_$+I_$)
  200UNTIL G_%ORE_$="":IF G_%THEN
  210PROC_SetVariable(B_$+"Res$Path",F_$+I_$+".,"+D_$):PROC_SetVariable(B_$+"Res$Dir",F_$+I_$)
  220ELSE:PROC_SetVariable(B_$+"Res$Path",D_$):PROC_SetVariable(B_$+"Res$Dir",C_$)
  230ENDIF:END
  240DEF FN_GetParam:SYS131088TOJ_%;K_%:IF(K_%AND1)=1THEN
  250J_$=""
  260ELSE:J_$=FN_GetString(J_%,255):i%=INSTR(J_$,""""):IF i%>0THEN i%=INSTR(J_$,"""",i%+1)
  270IF i%=0THEN
  280J_$=""
  290ELSE:J_$=MID$(J_$,i%+1):WHILE LEFT$(J_$,1)=" ":J_$=MID$(J_$,2):ENDWHILE:i%=INSTR(J_$," "):IF i%>1THEN J_$=LEFT$(J_$,i%-1)
  300ENDIF
  310ENDIF:=J_$
  320DEF FN_GetVariable(L_$):SYS131107,L_$,A_%,256,0,3TO,,M_%;K_%:IF(K_%AND1)<>0THEN=""ELSE=FN_GetString(A_%,M_%)
  330
  340DEF PROC_SetVariable(L_$,N_$):M_%=LEN(N_$)+1:$A_%=N_$:SYS131108,L_$,A_%,M_%,0,0TO;K_%:IF(K_%AND1)<>0THEN ERROR3,"Can't set variable "+L_$
  350ENDPROC
  360DEF FN_GetCountry:SYS6,70,127TO,I_%:SYS48,,67,2,I_%,A_%,256TO,,,,,M_%:=FN_GetString(A_%,M_%)
  370DEF FN_CheckDir(O_$):SYS131080,17,O_$TOP_%;K_%:IF(K_%AND1)<>0THEN P_%=0
  380=(P_%=2)
  390DEF FN_GetString(Q_%,M_%):R_$="":i%=0:WHILE(i%<M_%)AND(Q_%?i%>31):R_$+=CHR$(Q_%?i%):i%+=1:ENDWHILE:=R_$
  400DEF FN_StringLeaf(S_$):T_%=0:H_%=INSTR(S_$,".",T_%):WHILE H_%>0:T_%=H_%:H_%=INSTR(S_$,".",T_%+1):ENDWHILE:=MID$(S_$,T_%+1)

M*|***********************************************************************
M*|                                                                      *
M*|              ResFind: Look for resources                             *
(M*|                                                                      *
2M*|    Copyright (C) 1992-96 Olaf Krumnow and Herbert zur Nedden         *
<M*|                 German Archimedes Group (GAG)                        *
FM*|                                                                      *
PM*| Version 2.01b           FREEWARE - may be used in any application    *
ZM*|                                                                      *
dM*|***********************************************************************
nS� A_% 256:� � A_%!0=255:$(A_%+4)=�$+" at "+�(�)+�(0):ș262367,A_%,3,"ResFind":�
x:B_$=�_GetParam:C_$=�_GetVariable("Obey$Dir"):� B_$=""�
�4B_$=�_StringLeaf(C_$):� �B_$,1)="!"� B_$=�B_$,2)
���:�_SetVariable(B_$+"$Dir",C_$):D_$=C_$+".":E_$=�_GetVariable(B_$+"$Language")+","+�_GetVariable("ResFind$LanguagesPref")+","+�_GetCountry+","+�_GetVariable("ResFind$LanguagesSuff")+","+"UK"
�@� �_CheckDir(D_$+"Resources")� F_$=D_$+"Resources."� F_$=D_$
�"G_%=�:�:H_%=�E_$,","):� H_%=0�
�I_$=E_$:E_$=""
�%�:I_$=�E_$,H_%-1):E_$=�E_$,H_%+1)
�(�:� I_$<>""� G_%=�_CheckDir(F_$+I_$)
�� G_%�E_$="":� G_%�
�W�_SetVariable(B_$+"Res$Path",F_$+I_$+".,"+D_$):�_SetVariable(B_$+"Res$Dir",F_$+I_$)
�H�:�_SetVariable(B_$+"Res$Path",D_$):�_SetVariable(B_$+"Res$Dir",C_$)
��:�
�-� �_GetParam:ș131088�J_%;K_%:�(K_%�1)=1�
�
J_$=""
G�:J_$=�_GetString(J_%,255):i%=�J_$,""""):� i%>0� i%=�J_$,"""",i%+1)
� i%=0�

J_$=""
"U�:J_$=�J_$,i%+1):ȕ �J_$,1)=" ":J_$=�J_$,2):�:i%=�J_$," "):� i%>1� J_$=�J_$,i%-1)
,�
6
�:=J_$
@a� �_GetVariable(L_$):ș131107,L_$,A_%,256,0,3�,,M_%;K_%:�(K_%�1)<>0�=""�=�_GetString(A_%,M_%)
J
Tz� �_SetVariable(L_$,N_$):M_%=�(N_$)+1:$A_%=N_$:ș131108,L_$,A_%,M_%,0,0�;K_%:�(K_%�1)<>0� �3,"Can't set variable "+L_$
^�
hX� �_GetCountry:ș6,70,127�,I_%:ș48,,67,2,I_%,A_%,256�,,,,,M_%:=�_GetString(A_%,M_%)
r@� �_CheckDir(O_$):ș131080,17,O_$�P_%;K_%:�(K_%�1)<>0� P_%=0
|=(P_%=2)
�Y� �_GetString(Q_%,M_%):R_$="":i%=0:ȕ(i%<M_%)�(Q_%?i%>31):R_$+=�(Q_%?i%):i%+=1:�:=R_$
�c� �_StringLeaf(S_$):T_%=0:H_%=�S_$,".",T_%):ȕ H_%>0:T_%=H_%:H_%=�S_$,".",T_%+1):�:=�S_$,T_%+1)
�
00000000  0d 00 0a 4d 2a 7c 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |...M*|**********|
00000010  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000040  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 00 14  |*************...|
00000050  4d 2a 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |M*|             |
00000060  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000090  20 20 20 20 20 20 20 20  20 2a 0d 00 1e 4d 2a 7c  |         *...M*||
000000a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 52 65  |              Re|
000000b0  73 46 69 6e 64 3a 20 4c  6f 6f 6b 20 66 6f 72 20  |sFind: Look for |
000000c0  72 65 73 6f 75 72 63 65  73 20 20 20 20 20 20 20  |resources       |
000000d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000e0  20 20 20 20 20 20 2a 0d  00 28 4d 2a 7c 20 20 20  |      *..(M*|   |
000000f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000130  20 20 20 2a 0d 00 32 4d  2a 7c 20 20 20 20 43 6f  |   *..2M*|    Co|
00000140  70 79 72 69 67 68 74 20  28 43 29 20 31 39 39 32  |pyright (C) 1992|
00000150  2d 39 36 20 4f 6c 61 66  20 4b 72 75 6d 6e 6f 77  |-96 Olaf Krumnow|
00000160  20 61 6e 64 20 48 65 72  62 65 72 74 20 7a 75 72  | and Herbert zur|
00000170  20 4e 65 64 64 65 6e 20  20 20 20 20 20 20 20 20  | Nedden         |
00000180  2a 0d 00 3c 4d 2a 7c 20  20 20 20 20 20 20 20 20  |*..<M*|         |
00000190  20 20 20 20 20 20 20 20  47 65 72 6d 61 6e 20 41  |        German A|
000001a0  72 63 68 69 6d 65 64 65  73 20 47 72 6f 75 70 20  |rchimedes Group |
000001b0  28 47 41 47 29 20 20 20  20 20 20 20 20 20 20 20  |(GAG)           |
000001c0  20 20 20 20 20 20 20 20  20 20 20 20 20 2a 0d 00  |             *..|
000001d0  46 4d 2a 7c 20 20 20 20  20 20 20 20 20 20 20 20  |FM*|            |
000001e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000210  20 20 20 20 20 20 20 20  20 20 2a 0d 00 50 4d 2a  |          *..PM*|
00000220  7c 20 56 65 72 73 69 6f  6e 20 32 2e 30 31 62 20  || Version 2.01b |
00000230  20 20 20 20 20 20 20 20  20 20 46 52 45 45 57 41  |          FREEWA|
00000240  52 45 20 2d 20 6d 61 79  20 62 65 20 75 73 65 64  |RE - may be used|
00000250  20 69 6e 20 61 6e 79 20  61 70 70 6c 69 63 61 74  | in any applicat|
00000260  69 6f 6e 20 20 20 20 2a  0d 00 5a 4d 2a 7c 20 20  |ion    *..ZM*|  |
00000270  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000002b0  20 20 20 20 2a 0d 00 64  4d 2a 7c 2a 2a 2a 2a 2a  |    *..dM*|*****|
000002c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000300  2a 2a 0d 00 6e 53 de 20  41 5f 25 20 32 35 36 3a  |**..nS. A_% 256:|
00000310  ee 20 85 20 41 5f 25 21  30 3d 32 35 35 3a 24 28  |. . A_%!0=255:$(|
00000320  41 5f 25 2b 34 29 3d f6  24 2b 22 20 61 74 20 22  |A_%+4)=.$+" at "|
00000330  2b c3 28 9e 29 2b bd 28  30 29 3a c8 99 32 36 32  |+.(.)+.(0):..262|
00000340  33 36 37 2c 41 5f 25 2c  33 2c 22 52 65 73 46 69  |367,A_%,3,"ResFi|
00000350  6e 64 22 3a e0 0d 00 78  3a 42 5f 24 3d a4 5f 47  |nd":...x:B_$=._G|
00000360  65 74 50 61 72 61 6d 3a  43 5f 24 3d a4 5f 47 65  |etParam:C_$=._Ge|
00000370  74 56 61 72 69 61 62 6c  65 28 22 4f 62 65 79 24  |tVariable("Obey$|
00000380  44 69 72 22 29 3a e7 20  42 5f 24 3d 22 22 8c 0d  |Dir"):. B_$=""..|
00000390  00 82 34 42 5f 24 3d a4  5f 53 74 72 69 6e 67 4c  |..4B_$=._StringL|
000003a0  65 61 66 28 43 5f 24 29  3a e7 20 c0 42 5f 24 2c  |eaf(C_$):. .B_$,|
000003b0  31 29 3d 22 21 22 8c 20  42 5f 24 3d c1 42 5f 24  |1)="!". B_$=.B_$|
000003c0  2c 32 29 0d 00 8c c2 cd  3a f2 5f 53 65 74 56 61  |,2).....:._SetVa|
000003d0  72 69 61 62 6c 65 28 42  5f 24 2b 22 24 44 69 72  |riable(B_$+"$Dir|
000003e0  22 2c 43 5f 24 29 3a 44  5f 24 3d 43 5f 24 2b 22  |",C_$):D_$=C_$+"|
000003f0  2e 22 3a 45 5f 24 3d a4  5f 47 65 74 56 61 72 69  |.":E_$=._GetVari|
00000400  61 62 6c 65 28 42 5f 24  2b 22 24 4c 61 6e 67 75  |able(B_$+"$Langu|
00000410  61 67 65 22 29 2b 22 2c  22 2b a4 5f 47 65 74 56  |age")+","+._GetV|
00000420  61 72 69 61 62 6c 65 28  22 52 65 73 46 69 6e 64  |ariable("ResFind|
00000430  24 4c 61 6e 67 75 61 67  65 73 50 72 65 66 22 29  |$LanguagesPref")|
00000440  2b 22 2c 22 2b a4 5f 47  65 74 43 6f 75 6e 74 72  |+","+._GetCountr|
00000450  79 2b 22 2c 22 2b a4 5f  47 65 74 56 61 72 69 61  |y+","+._GetVaria|
00000460  62 6c 65 28 22 52 65 73  46 69 6e 64 24 4c 61 6e  |ble("ResFind$Lan|
00000470  67 75 61 67 65 73 53 75  66 66 22 29 2b 22 2c 22  |guagesSuff")+","|
00000480  2b 22 55 4b 22 0d 00 96  40 e7 20 a4 5f 43 68 65  |+"UK"...@. ._Che|
00000490  63 6b 44 69 72 28 44 5f  24 2b 22 52 65 73 6f 75  |ckDir(D_$+"Resou|
000004a0  72 63 65 73 22 29 8c 20  46 5f 24 3d 44 5f 24 2b  |rces"). F_$=D_$+|
000004b0  22 52 65 73 6f 75 72 63  65 73 2e 22 8b 20 46 5f  |"Resources.". F_|
000004c0  24 3d 44 5f 24 0d 00 a0  22 47 5f 25 3d a3 3a f5  |$=D_$..."G_%=.:.|
000004d0  3a 48 5f 25 3d a7 45 5f  24 2c 22 2c 22 29 3a e7  |:H_%=.E_$,","):.|
000004e0  20 48 5f 25 3d 30 8c 0d  00 aa 12 49 5f 24 3d 45  | H_%=0.....I_$=E|
000004f0  5f 24 3a 45 5f 24 3d 22  22 0d 00 b4 25 cc 3a 49  |_$:E_$=""...%.:I|
00000500  5f 24 3d c0 45 5f 24 2c  48 5f 25 2d 31 29 3a 45  |_$=.E_$,H_%-1):E|
00000510  5f 24 3d c1 45 5f 24 2c  48 5f 25 2b 31 29 0d 00  |_$=.E_$,H_%+1)..|
00000520  be 28 cd 3a e7 20 49 5f  24 3c 3e 22 22 8c 20 47  |.(.:. I_$<>"". G|
00000530  5f 25 3d a4 5f 43 68 65  63 6b 44 69 72 28 46 5f  |_%=._CheckDir(F_|
00000540  24 2b 49 5f 24 29 0d 00  c8 17 fd 20 47 5f 25 84  |$+I_$)..... G_%.|
00000550  45 5f 24 3d 22 22 3a e7  20 47 5f 25 8c 0d 00 d2  |E_$="":. G_%....|
00000560  57 f2 5f 53 65 74 56 61  72 69 61 62 6c 65 28 42  |W._SetVariable(B|
00000570  5f 24 2b 22 52 65 73 24  50 61 74 68 22 2c 46 5f  |_$+"Res$Path",F_|
00000580  24 2b 49 5f 24 2b 22 2e  2c 22 2b 44 5f 24 29 3a  |$+I_$+".,"+D_$):|
00000590  f2 5f 53 65 74 56 61 72  69 61 62 6c 65 28 42 5f  |._SetVariable(B_|
000005a0  24 2b 22 52 65 73 24 44  69 72 22 2c 46 5f 24 2b  |$+"Res$Dir",F_$+|
000005b0  49 5f 24 29 0d 00 dc 48  cc 3a f2 5f 53 65 74 56  |I_$)...H.:._SetV|
000005c0  61 72 69 61 62 6c 65 28  42 5f 24 2b 22 52 65 73  |ariable(B_$+"Res|
000005d0  24 50 61 74 68 22 2c 44  5f 24 29 3a f2 5f 53 65  |$Path",D_$):._Se|
000005e0  74 56 61 72 69 61 62 6c  65 28 42 5f 24 2b 22 52  |tVariable(B_$+"R|
000005f0  65 73 24 44 69 72 22 2c  43 5f 24 29 0d 00 e6 07  |es$Dir",C_$)....|
00000600  cd 3a e0 0d 00 f0 2d dd  20 a4 5f 47 65 74 50 61  |.:....-. ._GetPa|
00000610  72 61 6d 3a c8 99 31 33  31 30 38 38 b8 4a 5f 25  |ram:..131088.J_%|
00000620  3b 4b 5f 25 3a e7 28 4b  5f 25 80 31 29 3d 31 8c  |;K_%:.(K_%.1)=1.|
00000630  0d 00 fa 0a 4a 5f 24 3d  22 22 0d 01 04 47 cc 3a  |....J_$=""...G.:|
00000640  4a 5f 24 3d a4 5f 47 65  74 53 74 72 69 6e 67 28  |J_$=._GetString(|
00000650  4a 5f 25 2c 32 35 35 29  3a 69 25 3d a7 4a 5f 24  |J_%,255):i%=.J_$|
00000660  2c 22 22 22 22 29 3a e7  20 69 25 3e 30 8c 20 69  |,""""):. i%>0. i|
00000670  25 3d a7 4a 5f 24 2c 22  22 22 22 2c 69 25 2b 31  |%=.J_$,"""",i%+1|
00000680  29 0d 01 0e 0b e7 20 69  25 3d 30 8c 0d 01 18 0a  |)..... i%=0.....|
00000690  4a 5f 24 3d 22 22 0d 01  22 55 cc 3a 4a 5f 24 3d  |J_$="".."U.:J_$=|
000006a0  c1 4a 5f 24 2c 69 25 2b  31 29 3a c8 95 20 c0 4a  |.J_$,i%+1):.. .J|
000006b0  5f 24 2c 31 29 3d 22 20  22 3a 4a 5f 24 3d c1 4a  |_$,1)=" ":J_$=.J|
000006c0  5f 24 2c 32 29 3a ce 3a  69 25 3d a7 4a 5f 24 2c  |_$,2):.:i%=.J_$,|
000006d0  22 20 22 29 3a e7 20 69  25 3e 31 8c 20 4a 5f 24  |" "):. i%>1. J_$|
000006e0  3d c0 4a 5f 24 2c 69 25  2d 31 29 0d 01 2c 05 cd  |=.J_$,i%-1)..,..|
000006f0  0d 01 36 0a cd 3a 3d 4a  5f 24 0d 01 40 61 dd 20  |..6..:=J_$..@a. |
00000700  a4 5f 47 65 74 56 61 72  69 61 62 6c 65 28 4c 5f  |._GetVariable(L_|
00000710  24 29 3a c8 99 31 33 31  31 30 37 2c 4c 5f 24 2c  |$):..131107,L_$,|
00000720  41 5f 25 2c 32 35 36 2c  30 2c 33 b8 2c 2c 4d 5f  |A_%,256,0,3.,,M_|
00000730  25 3b 4b 5f 25 3a e7 28  4b 5f 25 80 31 29 3c 3e  |%;K_%:.(K_%.1)<>|
00000740  30 8c 3d 22 22 8b 3d a4  5f 47 65 74 53 74 72 69  |0.="".=._GetStri|
00000750  6e 67 28 41 5f 25 2c 4d  5f 25 29 0d 01 4a 04 0d  |ng(A_%,M_%)..J..|
00000760  01 54 7a dd 20 f2 5f 53  65 74 56 61 72 69 61 62  |.Tz. ._SetVariab|
00000770  6c 65 28 4c 5f 24 2c 4e  5f 24 29 3a 4d 5f 25 3d  |le(L_$,N_$):M_%=|
00000780  a9 28 4e 5f 24 29 2b 31  3a 24 41 5f 25 3d 4e 5f  |.(N_$)+1:$A_%=N_|
00000790  24 3a c8 99 31 33 31 31  30 38 2c 4c 5f 24 2c 41  |$:..131108,L_$,A|
000007a0  5f 25 2c 4d 5f 25 2c 30  2c 30 b8 3b 4b 5f 25 3a  |_%,M_%,0,0.;K_%:|
000007b0  e7 28 4b 5f 25 80 31 29  3c 3e 30 8c 20 85 33 2c  |.(K_%.1)<>0. .3,|
000007c0  22 43 61 6e 27 74 20 73  65 74 20 76 61 72 69 61  |"Can't set varia|
000007d0  62 6c 65 20 22 2b 4c 5f  24 0d 01 5e 05 e1 0d 01  |ble "+L_$..^....|
000007e0  68 58 dd 20 a4 5f 47 65  74 43 6f 75 6e 74 72 79  |hX. ._GetCountry|
000007f0  3a c8 99 36 2c 37 30 2c  31 32 37 b8 2c 49 5f 25  |:..6,70,127.,I_%|
00000800  3a c8 99 34 38 2c 2c 36  37 2c 32 2c 49 5f 25 2c  |:..48,,67,2,I_%,|
00000810  41 5f 25 2c 32 35 36 b8  2c 2c 2c 2c 2c 4d 5f 25  |A_%,256.,,,,,M_%|
00000820  3a 3d a4 5f 47 65 74 53  74 72 69 6e 67 28 41 5f  |:=._GetString(A_|
00000830  25 2c 4d 5f 25 29 0d 01  72 40 dd 20 a4 5f 43 68  |%,M_%)..r@. ._Ch|
00000840  65 63 6b 44 69 72 28 4f  5f 24 29 3a c8 99 31 33  |eckDir(O_$):..13|
00000850  31 30 38 30 2c 31 37 2c  4f 5f 24 b8 50 5f 25 3b  |1080,17,O_$.P_%;|
00000860  4b 5f 25 3a e7 28 4b 5f  25 80 31 29 3c 3e 30 8c  |K_%:.(K_%.1)<>0.|
00000870  20 50 5f 25 3d 30 0d 01  7c 0c 3d 28 50 5f 25 3d  | P_%=0..|.=(P_%=|
00000880  32 29 0d 01 86 59 dd 20  a4 5f 47 65 74 53 74 72  |2)...Y. ._GetStr|
00000890  69 6e 67 28 51 5f 25 2c  4d 5f 25 29 3a 52 5f 24  |ing(Q_%,M_%):R_$|
000008a0  3d 22 22 3a 69 25 3d 30  3a c8 95 28 69 25 3c 4d  |="":i%=0:..(i%<M|
000008b0  5f 25 29 80 28 51 5f 25  3f 69 25 3e 33 31 29 3a  |_%).(Q_%?i%>31):|
000008c0  52 5f 24 2b 3d bd 28 51  5f 25 3f 69 25 29 3a 69  |R_$+=.(Q_%?i%):i|
000008d0  25 2b 3d 31 3a ce 3a 3d  52 5f 24 0d 01 90 63 dd  |%+=1:.:=R_$...c.|
000008e0  20 a4 5f 53 74 72 69 6e  67 4c 65 61 66 28 53 5f  | ._StringLeaf(S_|
000008f0  24 29 3a 54 5f 25 3d 30  3a 48 5f 25 3d a7 53 5f  |$):T_%=0:H_%=.S_|
00000900  24 2c 22 2e 22 2c 54 5f  25 29 3a c8 95 20 48 5f  |$,".",T_%):.. H_|
00000910  25 3e 30 3a 54 5f 25 3d  48 5f 25 3a 48 5f 25 3d  |%>0:T_%=H_%:H_%=|
00000920  a7 53 5f 24 2c 22 2e 22  2c 54 5f 25 2b 31 29 3a  |.S_$,".",T_%+1):|
00000930  ce 3a 3d c1 53 5f 24 2c  54 5f 25 2b 31 29 0d ff  |.:=.S_$,T_%+1)..|
00000940