Home » Archimedes archive » Zipped Apps » Impression Style » !WordWorks/!RunImage
!WordWorks/!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 » Zipped Apps » Impression Style |
Filename: | !WordWorks/!RunImage |
Read OK: | ✔ |
File size: | 0E5C bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1REM> !RunImage 2REM 3REM WordWorks launcher 4REM LEN Computer Concepts Ltd. 1993 5REM 6REM This program launches the contents of the Auto directory into the viewing 7REM application, ensuring that only one copy of the viewer is in use at any 8REM one time. 9REM 10 11ON ERROR PROCreport(REPORT$+" during init (code "+STR$(ERL)+")"):END 12SYS "Wimp_Initialise",200,&4B534154,"WordWorks startup" TO ,task% 13PROCinit 14 15ON ERROR PROCerror 16REPEAT 17 SYS "Wimp_PollIdle",0,pollblock%,waketime% TO reason% 18 CASE reason% OF 19 WHEN 0: PROCnull 20 WHEN 17,18: PROCmessage 21 WHEN 19: PROCnackmessage 22 ENDCASE 23UNTIL finished% 24 25SYS "Wimp_CloseDown",task%,&4B534154 26 27END 28 29 30DEF PROCinit 31 namesize%=256 32 blocksize%=256 33 Message_DataLoadAck=4 34 Message_DataOpen=5 35 FileType_HyprDict=&BD7 36 appname$="WordWorks" 37 DIM pollblock% blocksize% 38 DIM tempblock% blocksize% 39 DIM namebuff% namesize% 40 finished%=FALSE 41 count%=0 42 myref%=0:filename$="" 43 waketime%=FNmonotime+(1<<24) 44 attemptrun%=TRUE 45 PROCnext 46ENDPROC 47 48REM PROCerror relies on being called in an ON ERROR statement just before the 49REM main poll loop so that it can drop back into the program if needed... 50DEF PROCerror 51 LOCAL r% 52 !tempblock%=0 53 PROCdollarin(tempblock%+4,REPORT$+" (Code "+STR$ERL+"). OK to continue, Cancel to quit program.") 54 SYS "Wimp_ReportError",block,%00000011,appname$ TO ,r% 55 IF r%=2 THEN 56 SYS "Wimp_CloseDown",task%,&4B534154 57 END 58 ENDIF 59ENDPROC 60 61DEF PROCnull 62 IF filename$="" THEN 63 PROCnext 64 waketime%=FNmonotime+(1<<24) 65 ELSE 66 waketime%=FNmonotime+50 67 ENDIF 68ENDPROC 69 70DEF PROCmessage 71 CASE pollblock%!16 OF 72 WHEN 0: finished%=TRUE 73 WHEN Message_DataLoadAck: PROCackdataopen 74 ENDCASE 75ENDPROC 76 77DEF PROCackdataopen 78 IF pollblock%!12 = myref% THEN 79 myref%=0:filename$="" 80 PROCnext 81 ENDIF 82ENDPROC 83 84DEF PROCnackmessage 85 CASE pollblock%!16 OF 86 WHEN Message_DataOpen: PROCnackdataopen 87 ENDCASE 88ENDPROC 89 90DEF PROCnackdataopen 91 IF pollblock%!8 = myref% THEN 92 IF attemptrun% THEN 93 SYS "Wimp_StartTask","Run <HyperView$Dir> "+filename$ 94 myref%=0:filename$="" 95 waketime%=FNmonotime+50 96 attemptrun%=FALSE 97 ELSE 98 finished%=TRUE 99 ENDIF 100 ENDIF 101ENDPROC 102 103DEF PROCnext 104LOCAL c%,f$ 105 IF FNnextfile(count%,filename$) THEN 106 c%=count% 107 IF FNnextfile(c%,f$) THEN filename$+=" -hpl" ELSE filename$+=" -hapl" 108 PROCdataopen(filename$) 109 ELSE 110 finished%=TRUE 111 ENDIF 112ENDPROC 113 114DEF FNnextfile(RETURN pos%, RETURN file$) 115 nomore%=FALSE 116 ftype%=0 117 REPEAT 118 SYS "XOS_GBPB",9,"<Collins$Dir>.Auto",namebuff%,1,pos%,namesize%,"*" TO ,,,,pos%;flags% 119 IF (flags%AND%0001) OR (pos%=-1) THEN 120 nomore%=TRUE 121 ELSE 122 file$="<Collins$Dir>.Auto."+FNdollarout(namebuff%) 123 SYS "XOS_File",5,file$ TO exists%,,ftype%;flags% 124 ftype%=(ftype%EOR&FFF00000)>>8 AND (exists%=1) AND ((flags%AND1)=0) 125 ENDIF 126 UNTIL ftype%=FileType_HyprDict OR nomore% 127=NOT nomore% 128 129DEF PROCdataopen(f$) 130 pollblock%!0=(44+LEN(f$)+4)ANDNOT3 131 pollblock%!12=0 132 pollblock%!16=Message_DataOpen 133 pollblock%!20=-2 134 pollblock%!28=0 135 pollblock%!32=0 136 pollblock%!36=0 137 pollblock%!40=FileType_HyprDict 138 PROCdollarin(pollblock%+44,f$) 139 SYS "Wimp_SendMessage",18,pollblock%,0 140 myref%=pollblock%!8 141ENDPROC 142 143DEF FNdollarout(addr%) 144LOCAL c%,s$ 145S$="" 146c%=?addr% 147WHILE c%>=32 148 s$+=CHR$c% 149 addr%+=1 150 c%=?addr% 151ENDWHILE 152=s$ 153 154DEF PROCdollarin(addr%,s$) 155$addr%=s$ 156addr%?LEN(s$)=0 157ENDPROC 158 159DEF PROCreport(message$) 160SYS "Hourglass_Smash" 161!tempblock%=0 162PROCdollarin(tempblock%+4,message$) 163SYS "Wimp_ReportError",tempblock%,%10001,"Message from "+appname$ 164ENDPROC 165 166DEF FNmonotime 167LOCAL time% 168SYS "XOS_ReadMonotonicTime" TO time% 169=time% 170 171
�> !RunImage � � WordWorks launcher $� � Computer Concepts Ltd. 1993 � P� This program launches the contents of the Auto directory into the viewing N� application, ensuring that only one copy of the viewer is in use at any � one time. � 4� � �report(�$+" during init (code "+�(�)+")"):� Cș "Wimp_Initialise",200,&4B534154,"WordWorks startup" � ,task% �init � � �error � 9 ș "Wimp_PollIdle",0,pollblock%,waketime% � reason% Ȏ reason% � � 0: �null � 17,18: �message � 19: �nackmessage � � finished% 'ș "Wimp_CloseDown",task%,&4B534154 � � �init namesize%=256 blocksize%=256 ! Message_DataLoadAck=4 " Message_DataOpen=5 # FileType_HyprDict=&BD7 $ appname$="WordWorks" % � pollblock% blocksize% & � tempblock% blocksize% ' � namebuff% namesize% ( finished%=� ) count%=0 * myref%=0:filename$="" +! waketime%=�monotime+(1<<24) , attemptrun%=� - �next .� / 0O� PROCerror relies on being called in an ON ERROR statement just before the 1K� main poll loop so that it can drop back into the program if needed... 2� �error 3 � r% 4 !tempblock%=0 5Z �dollarin(tempblock%+4,�$+" (Code "+Þ+"). OK to continue, Cancel to quit program.") 6: ș "Wimp_ReportError",block,%00000011,appname$ � ,r% 7 � r%=2 � 8+ ș "Wimp_CloseDown",task%,&4B534154 9 � : � ;� < =� �null > � filename$="" � ? �next @# waketime%=�monotime+(1<<24) A � B waketime%=�monotime+50 C � D� E F� �message G Ȏ pollblock%!16 � H � 0: finished%=� I+ � Message_DataLoadAck: �ackdataopen J � K� L M� �ackdataopen N � pollblock%!12 = myref% � O myref%=0:filename$="" P �next Q � R� S T� �nackmessage U Ȏ pollblock%!16 � V) � Message_DataOpen: �nackdataopen W � X� Y Z� �nackdataopen [ � pollblock%!8 = myref% � \ � attemptrun% � ]> ș "Wimp_StartTask","Run <HyperView$Dir> "+filename$ ^ myref%=0:filename$="" _ waketime%=�monotime+50 ` attemptrun%=� a � b finished%=� c � d � e� f g� �next h� c%,f$ i% � �nextfile(count%,filename$) � j c%=count% kE � �nextfile(c%,f$) � filename$+=" -hpl" � filename$+=" -hapl" l �dataopen(filename$) m � n finished%=� o � p� q r � �nextfile(� pos%, � file$) s nomore%=� t ftype%=0 u � v] ș "XOS_GBPB",9,"<Collins$Dir>.Auto",namebuff%,1,pos%,namesize%,"*" � ,,,,pos%;flags% w& � (flags%�%0001) � (pos%=-1) � x nomore%=� y � z; file$="<Collins$Dir>.Auto."+�dollarout(namebuff%) {8 ș "XOS_File",5,file$ � exists%,,ftype%;flags% |E ftype%=(ftype%�&FFF00000)>>8 � (exists%=1) � ((flags%�1)=0) } � ~* � ftype%=FileType_HyprDict � nomore% =� nomore% � �� �dataopen(f$) �" pollblock%!0=(44+�(f$)+4)��3 � pollblock%!12=0 �$ pollblock%!16=Message_DataOpen � pollblock%!20=-2 � pollblock%!28=0 � pollblock%!32=0 � pollblock%!36=0 �% pollblock%!40=FileType_HyprDict �! �dollarin(pollblock%+44,f$) �+ ș "Wimp_SendMessage",18,pollblock%,0 � myref%=pollblock%!8 �� � �� �dollarout(addr%) �� c%,s$ � S$="" � c%=?addr% � ȕ c%>=32 � s$+=�c% � addr%+=1 � c%=?addr% �� �=s$ � �� �dollarin(addr%,s$) � $addr%=s$ �addr%?�(s$)=0 �� � �� �report(message$) �ș "Hourglass_Smash" �!tempblock%=0 �$�dollarin(tempblock%+4,message$) �Dș "Wimp_ReportError",tempblock%,%10001,"Message from "+appname$ �� � �� �monotime �� time% �&ș "XOS_ReadMonotonicTime" � time% � =time% � � �
00000000 0d 00 01 10 f4 3e 20 21 52 75 6e 49 6d 61 67 65 |.....> !RunImage| 00000010 0d 00 02 05 f4 0d 00 03 19 f4 20 20 57 6f 72 64 |.......... Word| 00000020 57 6f 72 6b 73 20 6c 61 75 6e 63 68 65 72 0d 00 |Works launcher..| 00000030 04 24 f4 20 20 a9 20 43 6f 6d 70 75 74 65 72 20 |.$. . Computer | 00000040 43 6f 6e 63 65 70 74 73 20 4c 74 64 2e 20 31 39 |Concepts Ltd. 19| 00000050 39 33 0d 00 05 05 f4 0d 00 06 50 f4 20 20 54 68 |93........P. Th| 00000060 69 73 20 70 72 6f 67 72 61 6d 20 6c 61 75 6e 63 |is program launc| 00000070 68 65 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 |hes the contents| 00000080 20 6f 66 20 74 68 65 20 41 75 74 6f 20 64 69 72 | of the Auto dir| 00000090 65 63 74 6f 72 79 20 69 6e 74 6f 20 74 68 65 20 |ectory into the | 000000a0 76 69 65 77 69 6e 67 0d 00 07 4e f4 20 20 61 70 |viewing...N. ap| 000000b0 70 6c 69 63 61 74 69 6f 6e 2c 20 65 6e 73 75 72 |plication, ensur| 000000c0 69 6e 67 20 74 68 61 74 20 6f 6e 6c 79 20 6f 6e |ing that only on| 000000d0 65 20 63 6f 70 79 20 6f 66 20 74 68 65 20 76 69 |e copy of the vi| 000000e0 65 77 65 72 20 69 73 20 69 6e 20 75 73 65 20 61 |ewer is in use a| 000000f0 74 20 61 6e 79 0d 00 08 10 f4 20 20 6f 6e 65 20 |t any..... one | 00000100 74 69 6d 65 2e 0d 00 09 05 f4 0d 00 0a 04 0d 00 |time............| 00000110 0b 34 ee 20 85 20 f2 72 65 70 6f 72 74 28 f6 24 |.4. . .report(.$| 00000120 2b 22 20 64 75 72 69 6e 67 20 69 6e 69 74 20 28 |+" during init (| 00000130 63 6f 64 65 20 22 2b c3 28 9e 29 2b 22 29 22 29 |code "+.(.)+")")| 00000140 3a e0 0d 00 0c 43 c8 99 20 22 57 69 6d 70 5f 49 |:....C.. "Wimp_I| 00000150 6e 69 74 69 61 6c 69 73 65 22 2c 32 30 30 2c 26 |nitialise",200,&| 00000160 34 42 35 33 34 31 35 34 2c 22 57 6f 72 64 57 6f |4B534154,"WordWo| 00000170 72 6b 73 20 73 74 61 72 74 75 70 22 20 b8 20 2c |rks startup" . ,| 00000180 74 61 73 6b 25 0d 00 0d 09 f2 69 6e 69 74 0d 00 |task%.....init..| 00000190 0e 04 0d 00 0f 0e ee 20 85 20 f2 65 72 72 6f 72 |....... . .error| 000001a0 0d 00 10 05 f5 0d 00 11 39 20 20 c8 99 20 22 57 |........9 .. "W| 000001b0 69 6d 70 5f 50 6f 6c 6c 49 64 6c 65 22 2c 30 2c |imp_PollIdle",0,| 000001c0 70 6f 6c 6c 62 6c 6f 63 6b 25 2c 77 61 6b 65 74 |pollblock%,waket| 000001d0 69 6d 65 25 20 b8 20 72 65 61 73 6f 6e 25 0d 00 |ime% . reason%..| 000001e0 12 12 20 20 c8 8e 20 72 65 61 73 6f 6e 25 20 ca |.. .. reason% .| 000001f0 0d 00 13 16 20 20 20 20 c9 20 30 3a 20 20 20 20 |.... . 0: | 00000200 20 f2 6e 75 6c 6c 0d 00 14 19 20 20 20 20 c9 20 | .null.... . | 00000210 31 37 2c 31 38 3a 20 f2 6d 65 73 73 61 67 65 0d |17,18: .message.| 00000220 00 15 1d 20 20 20 20 c9 20 31 39 3a 20 20 20 20 |... . 19: | 00000230 f2 6e 61 63 6b 6d 65 73 73 61 67 65 0d 00 16 07 |.nackmessage....| 00000240 20 20 cb 0d 00 17 0f fd 20 66 69 6e 69 73 68 65 | ...... finishe| 00000250 64 25 0d 00 18 04 0d 00 19 27 c8 99 20 22 57 69 |d%.......'.. "Wi| 00000260 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 2c 74 61 |mp_CloseDown",ta| 00000270 73 6b 25 2c 26 34 42 35 33 34 31 35 34 0d 00 1a |sk%,&4B534154...| 00000280 04 0d 00 1b 05 e0 0d 00 1c 04 0d 00 1d 04 0d 00 |................| 00000290 1e 0b dd 20 f2 69 6e 69 74 0d 00 1f 13 20 20 6e |... .init.... n| 000002a0 61 6d 65 73 69 7a 65 25 3d 32 35 36 0d 00 20 14 |amesize%=256.. .| 000002b0 20 20 62 6c 6f 63 6b 73 69 7a 65 25 3d 32 35 36 | blocksize%=256| 000002c0 0d 00 21 1b 20 20 4d 65 73 73 61 67 65 5f 44 61 |..!. Message_Da| 000002d0 74 61 4c 6f 61 64 41 63 6b 3d 34 0d 00 22 18 20 |taLoadAck=4..". | 000002e0 20 4d 65 73 73 61 67 65 5f 44 61 74 61 4f 70 65 | Message_DataOpe| 000002f0 6e 3d 35 0d 00 23 1c 20 20 46 69 6c 65 54 79 70 |n=5..#. FileTyp| 00000300 65 5f 48 79 70 72 44 69 63 74 3d 26 42 44 37 0d |e_HyprDict=&BD7.| 00000310 00 24 1a 20 20 61 70 70 6e 61 6d 65 24 3d 22 57 |.$. appname$="W| 00000320 6f 72 64 57 6f 72 6b 73 22 0d 00 25 1d 20 20 de |ordWorks"..%. .| 00000330 20 70 6f 6c 6c 62 6c 6f 63 6b 25 20 62 6c 6f 63 | pollblock% bloc| 00000340 6b 73 69 7a 65 25 0d 00 26 1d 20 20 de 20 74 65 |ksize%..&. . te| 00000350 6d 70 62 6c 6f 63 6b 25 20 62 6c 6f 63 6b 73 69 |mpblock% blocksi| 00000360 7a 65 25 0d 00 27 1b 20 20 de 20 6e 61 6d 65 62 |ze%..'. . nameb| 00000370 75 66 66 25 20 6e 61 6d 65 73 69 7a 65 25 0d 00 |uff% namesize%..| 00000380 28 11 20 20 66 69 6e 69 73 68 65 64 25 3d a3 0d |(. finished%=..| 00000390 00 29 0e 20 20 63 6f 75 6e 74 25 3d 30 0d 00 2a |.). count%=0..*| 000003a0 1b 20 20 6d 79 72 65 66 25 3d 30 3a 66 69 6c 65 |. myref%=0:file| 000003b0 6e 61 6d 65 24 3d 22 22 0d 00 2b 21 20 20 77 61 |name$=""..+! wa| 000003c0 6b 65 74 69 6d 65 25 3d a4 6d 6f 6e 6f 74 69 6d |ketime%=.monotim| 000003d0 65 2b 28 31 3c 3c 32 34 29 0d 00 2c 13 20 20 61 |e+(1<<24)..,. a| 000003e0 74 74 65 6d 70 74 72 75 6e 25 3d b9 0d 00 2d 0b |ttemptrun%=...-.| 000003f0 20 20 f2 6e 65 78 74 0d 00 2e 05 e1 0d 00 2f 04 | .next......./.| 00000400 0d 00 30 4f f4 20 50 52 4f 43 65 72 72 6f 72 20 |..0O. PROCerror | 00000410 72 65 6c 69 65 73 20 6f 6e 20 62 65 69 6e 67 20 |relies on being | 00000420 63 61 6c 6c 65 64 20 69 6e 20 61 6e 20 4f 4e 20 |called in an ON | 00000430 45 52 52 4f 52 20 73 74 61 74 65 6d 65 6e 74 20 |ERROR statement | 00000440 6a 75 73 74 20 62 65 66 6f 72 65 20 74 68 65 0d |just before the.| 00000450 00 31 4b f4 20 6d 61 69 6e 20 70 6f 6c 6c 20 6c |.1K. main poll l| 00000460 6f 6f 70 20 73 6f 20 74 68 61 74 20 69 74 20 63 |oop so that it c| 00000470 61 6e 20 64 72 6f 70 20 62 61 63 6b 20 69 6e 74 |an drop back int| 00000480 6f 20 74 68 65 20 70 72 6f 67 72 61 6d 20 69 66 |o the program if| 00000490 20 6e 65 65 64 65 64 2e 2e 2e 0d 00 32 0c dd 20 | needed.....2.. | 000004a0 f2 65 72 72 6f 72 0d 00 33 0a 20 20 ea 20 72 25 |.error..3. . r%| 000004b0 0d 00 34 13 20 20 21 74 65 6d 70 62 6c 6f 63 6b |..4. !tempblock| 000004c0 25 3d 30 0d 00 35 5a 20 20 f2 64 6f 6c 6c 61 72 |%=0..5Z .dollar| 000004d0 69 6e 28 74 65 6d 70 62 6c 6f 63 6b 25 2b 34 2c |in(tempblock%+4,| 000004e0 f6 24 2b 22 20 28 43 6f 64 65 20 22 2b c3 9e 2b |.$+" (Code "+..+| 000004f0 22 29 2e 20 4f 4b 20 74 6f 20 63 6f 6e 74 69 6e |"). OK to contin| 00000500 75 65 2c 20 43 61 6e 63 65 6c 20 74 6f 20 71 75 |ue, Cancel to qu| 00000510 69 74 20 70 72 6f 67 72 61 6d 2e 22 29 0d 00 36 |it program.")..6| 00000520 3a 20 20 c8 99 20 22 57 69 6d 70 5f 52 65 70 6f |: .. "Wimp_Repo| 00000530 72 74 45 72 72 6f 72 22 2c 62 6c 6f 63 6b 2c 25 |rtError",block,%| 00000540 30 30 30 30 30 30 31 31 2c 61 70 70 6e 61 6d 65 |00000011,appname| 00000550 24 20 b8 20 2c 72 25 0d 00 37 0e 20 20 e7 20 72 |$ . ,r%..7. . r| 00000560 25 3d 32 20 8c 0d 00 38 2b 20 20 20 20 c8 99 20 |%=2 ...8+ .. | 00000570 22 57 69 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 |"Wimp_CloseDown"| 00000580 2c 74 61 73 6b 25 2c 26 34 42 35 33 34 31 35 34 |,task%,&4B534154| 00000590 0d 00 39 09 20 20 20 20 e0 0d 00 3a 07 20 20 cd |..9. ...:. .| 000005a0 0d 00 3b 05 e1 0d 00 3c 04 0d 00 3d 0b dd 20 f2 |..;....<...=.. .| 000005b0 6e 75 6c 6c 0d 00 3e 16 20 20 e7 20 66 69 6c 65 |null..>. . file| 000005c0 6e 61 6d 65 24 3d 22 22 20 8c 0d 00 3f 0d 20 20 |name$="" ...?. | 000005d0 20 20 f2 6e 65 78 74 0d 00 40 23 20 20 20 20 77 | .next..@# w| 000005e0 61 6b 65 74 69 6d 65 25 3d a4 6d 6f 6e 6f 74 69 |aketime%=.monoti| 000005f0 6d 65 2b 28 31 3c 3c 32 34 29 0d 00 41 07 20 20 |me+(1<<24)..A. | 00000600 cc 0d 00 42 1e 20 20 20 20 77 61 6b 65 74 69 6d |...B. waketim| 00000610 65 25 3d a4 6d 6f 6e 6f 74 69 6d 65 2b 35 30 0d |e%=.monotime+50.| 00000620 00 43 07 20 20 cd 0d 00 44 05 e1 0d 00 45 04 0d |.C. ...D....E..| 00000630 00 46 0e dd 20 f2 6d 65 73 73 61 67 65 0d 00 47 |.F.. .message..G| 00000640 18 20 20 c8 8e 20 70 6f 6c 6c 62 6c 6f 63 6b 25 |. .. pollblock%| 00000650 21 31 36 20 ca 0d 00 48 18 20 20 20 20 c9 20 30 |!16 ...H. . 0| 00000660 3a 20 66 69 6e 69 73 68 65 64 25 3d b9 0d 00 49 |: finished%=...I| 00000670 2b 20 20 20 20 c9 20 4d 65 73 73 61 67 65 5f 44 |+ . Message_D| 00000680 61 74 61 4c 6f 61 64 41 63 6b 3a 20 f2 61 63 6b |ataLoadAck: .ack| 00000690 64 61 74 61 6f 70 65 6e 0d 00 4a 07 20 20 cb 0d |dataopen..J. ..| 000006a0 00 4b 05 e1 0d 00 4c 04 0d 00 4d 12 dd 20 f2 61 |.K....L...M.. .a| 000006b0 63 6b 64 61 74 61 6f 70 65 6e 0d 00 4e 20 20 20 |ckdataopen..N | 000006c0 e7 20 70 6f 6c 6c 62 6c 6f 63 6b 25 21 31 32 20 |. pollblock%!12 | 000006d0 3d 20 6d 79 72 65 66 25 20 8c 0d 00 4f 1d 20 20 |= myref% ...O. | 000006e0 20 20 6d 79 72 65 66 25 3d 30 3a 66 69 6c 65 6e | myref%=0:filen| 000006f0 61 6d 65 24 3d 22 22 0d 00 50 0d 20 20 20 20 f2 |ame$=""..P. .| 00000700 6e 65 78 74 0d 00 51 07 20 20 cd 0d 00 52 05 e1 |next..Q. ...R..| 00000710 0d 00 53 04 0d 00 54 12 dd 20 f2 6e 61 63 6b 6d |..S...T.. .nackm| 00000720 65 73 73 61 67 65 0d 00 55 18 20 20 c8 8e 20 70 |essage..U. .. p| 00000730 6f 6c 6c 62 6c 6f 63 6b 25 21 31 36 20 ca 0d 00 |ollblock%!16 ...| 00000740 56 29 20 20 20 20 c9 20 4d 65 73 73 61 67 65 5f |V) . Message_| 00000750 44 61 74 61 4f 70 65 6e 3a 20 f2 6e 61 63 6b 64 |DataOpen: .nackd| 00000760 61 74 61 6f 70 65 6e 0d 00 57 07 20 20 cb 0d 00 |ataopen..W. ...| 00000770 58 05 e1 0d 00 59 04 0d 00 5a 13 dd 20 f2 6e 61 |X....Y...Z.. .na| 00000780 63 6b 64 61 74 61 6f 70 65 6e 0d 00 5b 1f 20 20 |ckdataopen..[. | 00000790 e7 20 70 6f 6c 6c 62 6c 6f 63 6b 25 21 38 20 3d |. pollblock%!8 =| 000007a0 20 6d 79 72 65 66 25 20 8c 0d 00 5c 17 20 20 20 | myref% ...\. | 000007b0 20 e7 20 61 74 74 65 6d 70 74 72 75 6e 25 20 8c | . attemptrun% .| 000007c0 0d 00 5d 3e 20 20 20 20 20 20 c8 99 20 22 57 69 |..]> .. "Wi| 000007d0 6d 70 5f 53 74 61 72 74 54 61 73 6b 22 2c 22 52 |mp_StartTask","R| 000007e0 75 6e 20 3c 48 79 70 65 72 56 69 65 77 24 44 69 |un <HyperView$Di| 000007f0 72 3e 20 22 2b 66 69 6c 65 6e 61 6d 65 24 0d 00 |r> "+filename$..| 00000800 5e 1f 20 20 20 20 20 20 6d 79 72 65 66 25 3d 30 |^. myref%=0| 00000810 3a 66 69 6c 65 6e 61 6d 65 24 3d 22 22 0d 00 5f |:filename$="".._| 00000820 20 20 20 20 20 20 20 77 61 6b 65 74 69 6d 65 25 | waketime%| 00000830 3d a4 6d 6f 6e 6f 74 69 6d 65 2b 35 30 0d 00 60 |=.monotime+50..`| 00000840 17 20 20 20 20 20 20 61 74 74 65 6d 70 74 72 75 |. attemptru| 00000850 6e 25 3d a3 0d 00 61 09 20 20 20 20 cc 0d 00 62 |n%=...a. ...b| 00000860 15 20 20 20 20 20 20 66 69 6e 69 73 68 65 64 25 |. finished%| 00000870 3d b9 0d 00 63 09 20 20 20 20 cd 0d 00 64 07 20 |=...c. ...d. | 00000880 20 cd 0d 00 65 05 e1 0d 00 66 04 0d 00 67 0b dd | ...e....f...g..| 00000890 20 f2 6e 65 78 74 0d 00 68 0b ea 20 63 25 2c 66 | .next..h.. c%,f| 000008a0 24 0d 00 69 25 20 20 e7 20 a4 6e 65 78 74 66 69 |$..i% . .nextfi| 000008b0 6c 65 28 63 6f 75 6e 74 25 2c 66 69 6c 65 6e 61 |le(count%,filena| 000008c0 6d 65 24 29 20 8c 0d 00 6a 11 20 20 20 20 63 25 |me$) ...j. c%| 000008d0 3d 63 6f 75 6e 74 25 0d 00 6b 45 20 20 20 20 e7 |=count%..kE .| 000008e0 20 a4 6e 65 78 74 66 69 6c 65 28 63 25 2c 66 24 | .nextfile(c%,f$| 000008f0 29 20 8c 20 66 69 6c 65 6e 61 6d 65 24 2b 3d 22 |) . filename$+="| 00000900 20 2d 68 70 6c 22 20 8b 20 66 69 6c 65 6e 61 6d | -hpl" . filenam| 00000910 65 24 2b 3d 22 20 2d 68 61 70 6c 22 0d 00 6c 1c |e$+=" -hapl"..l.| 00000920 20 20 20 20 f2 64 61 74 61 6f 70 65 6e 28 66 69 | .dataopen(fi| 00000930 6c 65 6e 61 6d 65 24 29 0d 00 6d 07 20 20 cc 0d |lename$)..m. ..| 00000940 00 6e 13 20 20 20 20 66 69 6e 69 73 68 65 64 25 |.n. finished%| 00000950 3d b9 0d 00 6f 07 20 20 cd 0d 00 70 05 e1 0d 00 |=...o. ...p....| 00000960 71 04 0d 00 72 20 dd 20 a4 6e 65 78 74 66 69 6c |q...r . .nextfil| 00000970 65 28 f8 20 70 6f 73 25 2c 20 f8 20 66 69 6c 65 |e(. pos%, . file| 00000980 24 29 0d 00 73 0f 20 20 6e 6f 6d 6f 72 65 25 3d |$)..s. nomore%=| 00000990 a3 0d 00 74 0e 20 20 66 74 79 70 65 25 3d 30 0d |...t. ftype%=0.| 000009a0 00 75 07 20 20 f5 0d 00 76 5d 20 20 20 20 c8 99 |.u. ...v] ..| 000009b0 20 22 58 4f 53 5f 47 42 50 42 22 2c 39 2c 22 3c | "XOS_GBPB",9,"<| 000009c0 43 6f 6c 6c 69 6e 73 24 44 69 72 3e 2e 41 75 74 |Collins$Dir>.Aut| 000009d0 6f 22 2c 6e 61 6d 65 62 75 66 66 25 2c 31 2c 70 |o",namebuff%,1,p| 000009e0 6f 73 25 2c 6e 61 6d 65 73 69 7a 65 25 2c 22 2a |os%,namesize%,"*| 000009f0 22 20 b8 20 2c 2c 2c 2c 70 6f 73 25 3b 66 6c 61 |" . ,,,,pos%;fla| 00000a00 67 73 25 0d 00 77 26 20 20 20 20 e7 20 28 66 6c |gs%..w& . (fl| 00000a10 61 67 73 25 80 25 30 30 30 31 29 20 84 20 28 70 |ags%.%0001) . (p| 00000a20 6f 73 25 3d 2d 31 29 20 8c 0d 00 78 13 20 20 20 |os%=-1) ...x. | 00000a30 20 20 20 6e 6f 6d 6f 72 65 25 3d b9 0d 00 79 09 | nomore%=...y.| 00000a40 20 20 20 20 cc 0d 00 7a 3b 20 20 20 20 20 20 66 | ...z; f| 00000a50 69 6c 65 24 3d 22 3c 43 6f 6c 6c 69 6e 73 24 44 |ile$="<Collins$D| 00000a60 69 72 3e 2e 41 75 74 6f 2e 22 2b a4 64 6f 6c 6c |ir>.Auto."+.doll| 00000a70 61 72 6f 75 74 28 6e 61 6d 65 62 75 66 66 25 29 |arout(namebuff%)| 00000a80 0d 00 7b 38 20 20 20 20 20 20 c8 99 20 22 58 4f |..{8 .. "XO| 00000a90 53 5f 46 69 6c 65 22 2c 35 2c 66 69 6c 65 24 20 |S_File",5,file$ | 00000aa0 b8 20 65 78 69 73 74 73 25 2c 2c 66 74 79 70 65 |. exists%,,ftype| 00000ab0 25 3b 66 6c 61 67 73 25 0d 00 7c 45 20 20 20 20 |%;flags%..|E | 00000ac0 20 20 66 74 79 70 65 25 3d 28 66 74 79 70 65 25 | ftype%=(ftype%| 00000ad0 82 26 46 46 46 30 30 30 30 30 29 3e 3e 38 20 80 |.&FFF00000)>>8 .| 00000ae0 20 28 65 78 69 73 74 73 25 3d 31 29 20 80 20 28 | (exists%=1) . (| 00000af0 28 66 6c 61 67 73 25 80 31 29 3d 30 29 0d 00 7d |(flags%.1)=0)..}| 00000b00 09 20 20 20 20 cd 0d 00 7e 2a 20 20 fd 20 66 74 |. ...~* . ft| 00000b10 79 70 65 25 3d 46 69 6c 65 54 79 70 65 5f 48 79 |ype%=FileType_Hy| 00000b20 70 72 44 69 63 74 20 84 20 6e 6f 6d 6f 72 65 25 |prDict . nomore%| 00000b30 0d 00 7f 0e 3d ac 20 6e 6f 6d 6f 72 65 25 0d 00 |....=. nomore%..| 00000b40 80 04 0d 00 81 13 dd 20 f2 64 61 74 61 6f 70 65 |....... .dataope| 00000b50 6e 28 66 24 29 0d 00 82 22 20 20 70 6f 6c 6c 62 |n(f$)..." pollb| 00000b60 6c 6f 63 6b 25 21 30 3d 28 34 34 2b a9 28 66 24 |lock%!0=(44+.(f$| 00000b70 29 2b 34 29 80 ac 33 0d 00 83 15 20 20 70 6f 6c |)+4)..3.... pol| 00000b80 6c 62 6c 6f 63 6b 25 21 31 32 3d 30 0d 00 84 24 |lblock%!12=0...$| 00000b90 20 20 70 6f 6c 6c 62 6c 6f 63 6b 25 21 31 36 3d | pollblock%!16=| 00000ba0 4d 65 73 73 61 67 65 5f 44 61 74 61 4f 70 65 6e |Message_DataOpen| 00000bb0 0d 00 85 16 20 20 70 6f 6c 6c 62 6c 6f 63 6b 25 |.... pollblock%| 00000bc0 21 32 30 3d 2d 32 0d 00 86 15 20 20 70 6f 6c 6c |!20=-2.... poll| 00000bd0 62 6c 6f 63 6b 25 21 32 38 3d 30 0d 00 87 15 20 |block%!28=0.... | 00000be0 20 70 6f 6c 6c 62 6c 6f 63 6b 25 21 33 32 3d 30 | pollblock%!32=0| 00000bf0 0d 00 88 15 20 20 70 6f 6c 6c 62 6c 6f 63 6b 25 |.... pollblock%| 00000c00 21 33 36 3d 30 0d 00 89 25 20 20 70 6f 6c 6c 62 |!36=0...% pollb| 00000c10 6c 6f 63 6b 25 21 34 30 3d 46 69 6c 65 54 79 70 |lock%!40=FileTyp| 00000c20 65 5f 48 79 70 72 44 69 63 74 0d 00 8a 21 20 20 |e_HyprDict...! | 00000c30 f2 64 6f 6c 6c 61 72 69 6e 28 70 6f 6c 6c 62 6c |.dollarin(pollbl| 00000c40 6f 63 6b 25 2b 34 34 2c 66 24 29 0d 00 8b 2b 20 |ock%+44,f$)...+ | 00000c50 20 c8 99 20 22 57 69 6d 70 5f 53 65 6e 64 4d 65 | .. "Wimp_SendMe| 00000c60 73 73 61 67 65 22 2c 31 38 2c 70 6f 6c 6c 62 6c |ssage",18,pollbl| 00000c70 6f 63 6b 25 2c 30 0d 00 8c 19 20 20 6d 79 72 65 |ock%,0.... myre| 00000c80 66 25 3d 70 6f 6c 6c 62 6c 6f 63 6b 25 21 38 0d |f%=pollblock%!8.| 00000c90 00 8d 05 e1 0d 00 8e 04 0d 00 8f 17 dd 20 a4 64 |............. .d| 00000ca0 6f 6c 6c 61 72 6f 75 74 28 61 64 64 72 25 29 0d |ollarout(addr%).| 00000cb0 00 90 0b ea 20 63 25 2c 73 24 0d 00 91 09 53 24 |.... c%,s$....S$| 00000cc0 3d 22 22 0d 00 92 0d 63 25 3d 3f 61 64 64 72 25 |=""....c%=?addr%| 00000cd0 0d 00 93 0d c8 95 20 63 25 3e 3d 33 32 0d 00 94 |...... c%>=32...| 00000ce0 0d 20 20 73 24 2b 3d bd 63 25 0d 00 95 0e 20 20 |. s$+=.c%.... | 00000cf0 61 64 64 72 25 2b 3d 31 0d 00 96 0f 20 20 63 25 |addr%+=1.... c%| 00000d00 3d 3f 61 64 64 72 25 0d 00 97 05 ce 0d 00 98 07 |=?addr%.........| 00000d10 3d 73 24 0d 00 99 04 0d 00 9a 19 dd 20 f2 64 6f |=s$......... .do| 00000d20 6c 6c 61 72 69 6e 28 61 64 64 72 25 2c 73 24 29 |llarin(addr%,s$)| 00000d30 0d 00 9b 0d 24 61 64 64 72 25 3d 73 24 0d 00 9c |....$addr%=s$...| 00000d40 11 61 64 64 72 25 3f a9 28 73 24 29 3d 30 0d 00 |.addr%?.(s$)=0..| 00000d50 9d 05 e1 0d 00 9e 04 0d 00 9f 17 dd 20 f2 72 65 |............ .re| 00000d60 70 6f 72 74 28 6d 65 73 73 61 67 65 24 29 0d 00 |port(message$)..| 00000d70 a0 18 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f |.... "Hourglass_| 00000d80 53 6d 61 73 68 22 0d 00 a1 11 21 74 65 6d 70 62 |Smash"....!tempb| 00000d90 6c 6f 63 6b 25 3d 30 0d 00 a2 24 f2 64 6f 6c 6c |lock%=0...$.doll| 00000da0 61 72 69 6e 28 74 65 6d 70 62 6c 6f 63 6b 25 2b |arin(tempblock%+| 00000db0 34 2c 6d 65 73 73 61 67 65 24 29 0d 00 a3 44 c8 |4,message$)...D.| 00000dc0 99 20 22 57 69 6d 70 5f 52 65 70 6f 72 74 45 72 |. "Wimp_ReportEr| 00000dd0 72 6f 72 22 2c 74 65 6d 70 62 6c 6f 63 6b 25 2c |ror",tempblock%,| 00000de0 25 31 30 30 30 31 2c 22 4d 65 73 73 61 67 65 20 |%10001,"Message | 00000df0 66 72 6f 6d 20 22 2b 61 70 70 6e 61 6d 65 24 0d |from "+appname$.| 00000e00 00 a4 05 e1 0d 00 a5 04 0d 00 a6 0f dd 20 a4 6d |............. .m| 00000e10 6f 6e 6f 74 69 6d 65 0d 00 a7 0b ea 20 74 69 6d |onotime..... tim| 00000e20 65 25 0d 00 a8 26 c8 99 20 22 58 4f 53 5f 52 65 |e%...&.. "XOS_Re| 00000e30 61 64 4d 6f 6e 6f 74 6f 6e 69 63 54 69 6d 65 22 |adMonotonicTime"| 00000e40 20 b8 20 74 69 6d 65 25 0d 00 a9 0a 3d 74 69 6d | . time%....=tim| 00000e50 65 25 0d 00 aa 04 0d 00 ab 04 0d ff |e%..........| 00000e5c