OD4IBM p >> FastCopy III << by Martin Backschat, Bergstr.16, 8071 Hepberg, West-Germany, Tel. 08456/5495 -- It's Freeware! -- (Greetings to all 'Masters Of Puppets')BH OC @`!#@%`')+;EGOQS@U`WY[ce`gikmoq u`wy{} @` @ ` @ ` @ ` ɠ @ ` ׀ ٠  @` @`!Aa   !Aa!!#%a'+-1O5a9;=?A!CAEaGIKMOQ!SAUaWY[_a!cAeagikmoq!sAuawy{}!Aa!Ao!Aa!Aa!aǁɡ!Aaׁ١!Aa!AaOC @`!#@%`')+;EGOQS@U`WY[ce`gikmoq u`wy{} @` @ ` @ ` @ ` ɠ @ ` ׀ ٠  @` @`!Aa   !Aa!!#%a'+-1O5a9;=?A!CAEaGIKMOQ!SAUaWY[_a!cAeagikmoq!sAuawy{}!Aa!Ao!Aa!Aa!aǁɡ!Aaׁ١!Aa!AaAUTO  -COMPAT  1EXAMPLES  6 HGT  sHGTTUTOR  LIBS  TOOLS  2ANIMATORARJ ' 8 .  -..  HRAM1MEGPRG m `jHz?< NA\B?< NA\`B BxF x h.PN zD*(#F0(3BH 9#"`#|":0H#J3N&x.HzF/<NM/@.E(NMPO KbfV"HA 0<Ba IfHah`XxJxfPO/JNs6/C|g6OT>/JBoNs6O` 86kC<ea9f x.4(|l:A?<NATAHz?<NA\>9NSGkl"yJ?/ KI)<:g :`:p\fRIBW/ a*_JGf?</ ?<NNAPJf(a"_>CQ x.1|B?< NA\BgNA/ ?< NA\Hz?< NA\`~?/ ?<NNAPJm2:><.g:+߸fA p6QRGg ?<ONAT`Nu Lf*HS$Ig"<\fBH*LaL<\K`B&yx:<av?/SGk/ &z S@ LIQ$<\fR"LA,+fM/?< NA\Hz/?< NA\Bg/?<=NAP:/9|/??<?NAO ??<>NAX?Bg/?<NAX?Bg/?<=NAP2:?<?Hk?<WNAO ??<>NAXG,Q*(_,_>NuHz2?< NA\O?<NATO`"NVTaFIC_aGTx?za4ATJGg"/ /Af?Ka> _*_A,SGfN^Nu?/ ?<9NA\0NuHz?< NA\`p  pRamdisk Full!q Press any key pFile not found!q Not enough RAM \*.* N (:*&@(@ 86!.!6av0<CD L0QpAC0Qz | LA <Ba)@`fReset Proof Ramdisc 1.9 HiSoft 1988-90 09BS@HR@3 ?T"R3$R3҂y3A3"KSp"QAH"KrQNuH@@"Cx DCdCL`ИQLNuHiSoftBBBp* bAv vAb!vAR ~A>!~A* rA!r 8:!Nu:/gNA Nu:/gNpNu:/gN"o0/ S@r2/ ҁAMP! A/gH/ fNr""""""""""""""""""""""""""""""""QQpNu2<QQpNu phbasic.prg!hbasic.lib!wercsbas.prgwercsbas.rschisofted.infwercs.infnf4     r"&  q.  1..  HBST10 BH r HBST13 BH u HBAM1 BH w 9bREM $OPTION ~ALIAS,BIN$,BYVAL,CDECL,CURDIR$,DECLARE,ENVIRON REM $OPTION ~ENVIRON$,FORMATD$,FORMATI$,FORMATL$,FORMATS$ REM $OPTION ~FREEFILE,FUNCTION,IS,LTRIM$,MIN,MAX,PRESERVE,RINSTR REM $OPTION ~RTRIM$,SPEEKB,SPEEKL,SPEEKW,SPOKEB,SPOKEL,SPOKEW REM $OPTION ~ALIAS,,BYVAL,CDECL,CURDIR$,ENVIRON REM $OPTION ~ENVIRON$,FORMATD$,FORMATI$,FORMATL$,FORMATS$ REM $OPTION ~FREEFILE,IS,LTRIM$,MIN,MAX,PRESERVE,RINSTR REM $OPTION ~RTRIM$,SPEEKB,SPEEKL,SPEEKW,SPOKEB,SPOKEL,SPOKEW CREM $OPTION ~CLEARW,CLOSEW,ELLIPSE,FILL,FULLW,GB,GEMSYS,GETCOOKIE REM $OPTION ~LINEF,OPENW,PCIRCLE,VDISYS REM $OPTION ~BYVAL,CURDIR$,ENVIRON,ENVIRON$,FORMATD$,FORMATI$,FORMATL$ REM $OPTION ~FORMATS$,FREEFILE,IS,LTRIM$,MIN,MAX,PRESERVE,RINSTR REM $OPTION ~RTRIM$,SPEEKB,SPEEKL,SPEEKW,SPOKEB,SPOKEL,SPOKEW .  6 ..  LINK  8 HGTEXAM  @CALC BAS  JDIR2STR BAS  KDISKCOPYBAS  M DUMP BAS  PFASTCONVBAS  R%*PCWALL BAS  ]SIEVE BAS  _"WRSC BH  `WRSC HRD  aWRSC RSC  bTWTEST BAS  dWTEST PRG  j!.  8 ..  6 FREQ BAS  FREQLINKBAS  GETCH S  HBCUTIL O  $Bdefint a-z CONST eofch=-1 'DECLARE SUB getch CDECL SUB getch SHARED ch,source$,sx& IF sx&<=LEN(source$) THEN ch=ASC(MID$(source$,sx&,1)) INCR sx& ELSE ch=eofch END IF END SUB input "enter filename:";filename$ open filename$ for input as #1 DIM freq(255) source$=INPUT$(LOF(1),1) sx&=1 DO getch IF ch=eofch THEN EXIT LOOP INCR freq(ch) LOOP FOR i=0 TO 255 PRINT i;TAB(6); IF i>32 THEN PRINT CHR$(i); PRINT ,freq(i) NEXT i CLOSE #1 " DEFINT a-z CONST eofch=-1 DECLARE SUB getch CDECL 'SUB getch 'SHARED ch,source$,sx& 'IF sx&<=LEN(source$) THEN ' ch=ASC(MID$(source$,sx&,1)) ' INCR sx& 'ELSE ' ch=eofch 'END IF ' 'END SUB input "enter filename:";filename$ open filename$ for input as #1 DIM freq(255) source$=INPUT$(LOF(1),1) sx&=1 DO getch IF ch=eofch THEN EXIT LOOP INCR freq(ch) LOOP FOR i=0 TO 255 PRINT i;TAB(6); IF i>32 THEN PRINT CHR$(i); PRINT ,freq(i) NEXT i CLOSE #1 * Assembler linking example opt lattice global equr a5 eofch equ -1 * The BASIC routines that we use xref dcr_dest xref _SXL,_SOURCES,_CHI * The routine that we are defining xdef _getch _getch lea _SOURCES(global),a0 bsr dcr_dest move.l _SXL(global),d0 cmp.l d4,d0 bcc.s getch_eof move.b -1(a1,d0.l),_CHI+1(global) addq.l #1,d0 move.l d0,_SXL(global) rts getch_eof move.w #eofch,_CHI(global) rts FCopyright (C) HiSoft 1989CODENTH?6 lN l LlN\NuNTH?6 l0, N l LlN\Nuget_array4get_string_getbasicstr_getbasicarray"_getbasicstr_getbasicarray".  @..  6 ADDRESS BAS  ADDRESS BH  ADDRESS HRD  ADDRESS RSC  DESKTESTBAS  5FSHACDSPBAS  GOLD BH  9GOLD HRD  wGOLD RSC  NXADDRESSBAS  "!ICONDRAGBAS  *IMAGTESTBAS  ,IWINTESTBAS  -eMENUTESTBAS  .MENUTESTBH  /EMENUTESTHRD  06MENUTESTRSC  10OWINTESTBAS  2SHOWPIC BAS  3WINTEST BAS  4WRSC BH  5WRSC HRD  6WRSC RSC  7TXADDRESSRSC  9XADDRESSHRD  <XADDRESSBH  = XFRMTESTBAS  >XFRMTESTRSC  ?vXFRMTESTHRD  AXFRMTESTBH  B_REM $option !gy REM $option k100 REM $include toolbox.bas REM $include dialog.bas REM $include menu.bas REM $include address.bh ' The routines for handling the address book file and data structure SUB PutRecord(BYVAL i) SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED nname$,addr$(1),phone$ PUT #1,i+1 nnames$(i)=nname$ addr1$(i)=addr$(1) addr2$(i)=addr$(2) addr3$(i)=addr$(3) addr4$(i)=addr$(4) phones$(i)=phone$ END SUB SUB GetRecord(BYVAL i) SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED nname$,addr$(1),phone$ GET #1,i+1 nnames$(i)=nname$ addr1$(i)=addr$(1) addr2$(i)=addr$(2) addr3$(i)=addr$(3) addr4$(i)=addr$(4) phones$(i)=phone$ END SUB SUB OpenFile SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED nname$,addr$(1),phone$,records,max_records,recordcnt$ STATIC newfile,i newfile= FEXISTS("address.dat")=0 OPEN "address.dat" FOR RANDOM AS #1 LEN=180 DIM addr$(4) FIELD #1, 20 AS nname$,_ 35 AS addr$(1),_ 35 AS addr$(2),_ 35 AS addr$(3),_ 35 AS addr$(4),_ 20 AS phone$ FIELD #1, 2 AS recordcnt$ IF newfile THEN records=0 ELSE GET #1,1 records=CVI(recordcnt$) END IF max_records=records+10 DIM nnames$(max_records) DIM addr1$(max_records) DIM addr2$(max_records) DIM addr3$(max_records) DIM addr4$(max_records) DIM phones$(max_records) FOR i=1 TO records GetRecord i NEXT i END SUB SUB CloseFile SHARED recordcnt$,records LSET recordcnt$=MKI$(records) PUT #1,1 CLOSE #1 END SUB FUNCTION AddRecord SHARED records,max_records,nnames$(1) SHARED addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) INCR records IF records>max_records THEN max_records=max_records+10 REDIM APPEND nnames$(max_records),addr1$(max_records),addr2$(max_records),addr3$(max_records),addr4$(max_records),phones$(max_records) END IF PutRecord records AddRecord=records END FUNCTION FUNCTION NextRecord(BYVAL i) SHARED records,nnames$(1) DO INCR i IF i>records THEN i=0: EXIT LOOP LOOP WHILE LEFT$(nnames$(i),7)="DELETED" NextRecord=i END FUNCTION FUNCTION PreviousRecord(BYVAL i) SHARED records,nnames$(1) DO DECR i IF i<=0 THEN i=0: EXIT LOOP LOOP WHILE LEFT$(nnames$(i),7)="DELETED" PreviousRecord=i END FUNCTION FUNCTION FindRecord(partname$,cur_record) SHARED nnames$(1),records STATIC start_record,i start_record=cur_record i=cur_record DO i=NextRecord(i) IF i=0 THEN IF start_record=0 THEN i=0 ELSE i=NextRecord(0) IF i=0 THEN i=start_record 'no records at all END IF END IF IF i=start_record THEN 'record not found FindRecord=-1 EXIT LOOP END IF IF INSTR(nnames$(i),partname$)>0 THEN FindRecord=i EXIT LOOP END IF LOOP END FUNCTION SUB DeleteRecord(BYVAL i) SHARED nname$ LSET nname$="DELETED" PutRecord i END SUB SUB ReOrganiseFile SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED records,nname$ STATIC i,j j=1:i=1 DO IF i>records THEN EXIT LOOP GET #1,i+1 IF LEFT$(nname$,7)<>"DELETED" THEN IF i<>j THEN PUT #1,j+1 nnames$(j)=nnames$(i) addr1$(j)=addr1$(i) addr2$(j)=addr2$(i) addr3$(j)=addr3$(i) addr4$(j)=addr4$(i) phones$(j)=phones$(i) END IF INCR j END IF INCR i LOOP records=j-1 END SUB 'Now the routines that handle the user interface/data structure conversions SUB DisplayRecord(BYVAL i) SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) IF i=0 THEN EXIT SUB SelectTree MAINDIALOG Sette_ptext MDNAME,RTRIM$(nnames$(i)) Sette_ptext MDADDR1,RTRIM$(addr1$(i)) Sette_ptext MDADDR2,RTRIM$(addr2$(i)) Sette_ptext MDADDR3,RTRIM$(addr3$(i)) Sette_ptext MDADDR4,RTRIM$(addr4$(i)) Sette_ptext MDPHONE,RTRIM$(phones$(i)) END SUB SUB ExtractInfo SHARED nname$,addr$(1),phone$ STATIC i LSET nname$=Gette_ptext$(MDNAME) FOR i=1 TO 4 LSET addr$(i)=Gette_ptext$(MDADDR1+i-1) NEXT i LSET phone$=Gette_ptext$(MDPHONE) END SUB ' Now the purely user interface routines SUB ClearDialog SHARED i SelectTree MAINDIALOG Sette_ptext MDNAME,"" FOR i=1 TO 4 Sette_ptext MDADDR1+i-1,"" NEXT i Sette_ptext MDPHONE,"" END SUB SUB HandleEdits SHARED nname$,addr$(1),phone$,cur_record STATIC Comm,i cur_record=0 DO SelectTree MAINDIALOG Comm=HandleDialog(MDNAME) SELECT CASE Comm CASE MDNEW: ExtractInfo cur_record=AddRecord CASE MDFIND: SelectTree FindDialog IF HandleDialog(0)=FDOK THEN i=FindRecord(Gette_ptext$(FDSTRING),cur_record) IF i>0 THEN cur_record=i DisplayRecord cur_record ELSE junk=Newform_alert(ALERTNOTFOUND,1) END IF END IF CASE MDDELETE: IF cur_record=0 THEN junk=newform_alert(NOTHINGDEL,1) ELSE IF Newform_alert(DELETEWARN,1)=2 THEN DeleteRecord cur_record cur_record=0 END IF END IF CASE MDPREVIOUS: i=PreviousRecord(cur_record) IF i>0 THEN cur_record=i DisplayRecord cur_record END IF CASE MDNEXT: i=NextRecord(cur_record) [IF i>0 THEN cur_record=i DisplayRecord cur_record END IF CASE MDUPDATE: IF cur_record>0 THEN ExtractInfo PutRecord cur_record ELSE junk=Newform_alert(NOTHINGUPDATE,1) END IF CASE MDCLEAR: ClearDialog cur_record=0 CASE MDEXIT: EXIT SUB END SELECT LOOP END SUB SUB ProcessUserMenus(VAL cur_front,VAL item,VAL title) SHARED texth,wolines(1),lines$(2),TextWindows STATIC i,finame$,temp,id SELECT CASE item CASE MeAboutAddress: SelectTree AboutDialog junk=HandleDialog(0) CASE MeReorganise: ReorganiseFile CASE MeEdit: HandleEdits END SELECT END SUB SUB jokeredraw END SUB StartProgram "ADDRESS.RSC",MENU,MEQUIT OpenFile ClearDialog HGTloop CloseFile StopProgram  CONST MAINDIALOG%= 0 CONST MDNAME%= 2 CONST MDADDR1%= 4 CONST MDADDR2%= 5 CONST MDADDR3%= 6 CONST MDADDR4%= 7 CONST MDPHONE%= 8 CONST MDDELETE%= 9 CONST MDNEW%= 10 CONST MDEXIT%= 11 CONST MDFIND%= 12 CONST MDUPDATE%= 13 CONST MDCLEAR%= 14 CONST MDPREVIOUS%= 15 CONST MDNEXT%= 16 CONST MENU%= 1 CONST MEFILE%= 4 CONST MEABOUTADDRESS%= 7 CONST MEQUIT%= 16 CONST MEREORGANISE%= 17 CONST MEEDIT%= 18 CONST ABOUTDIALOG%= 2 CONST FINDDIALOG%= 3 CONST FDSTRING%= 2 CONST FDCANCEL%= 3 CONST FDOK%= 4 CONST ALERTNOTFOUND%= 0 CONST DELETEWARN%= 1 CONST NOTHINGDEL%= 2 CONST NOTHINGUPDATE%= 3 MainDialogMDMDNameMDAddr1MDAddr2MDADdr3MDAddr4MDPhone MDDelete MDNew MDExit MDFind MDUpdateMDClearMDPreviousMDNextMENUMEMEFileMEAboutAddressMEQuitMEReorganiseMEEditAboutDialogADFindDialogFDFDstringFDCancelFDOKAlertNotFoundDeleteWarnNOTHINGDELNOTHINGUPDATE+ TTT$T.Address Book@XName: _XAddress:@X"_#X@X"_#X@X"_#X@X"_#X@XPhone: _XDeleteNewExitFindUpdateClearPreviousNext Desk File About Address-123456 Quit Q Reorganise R Edit EAddress Book Written using HiSoft BASIC 2by Dave NutkinsOKFind Name@X_XCancelOK[1][ Name not found][ Cancel ][3][ Really delete this| entry.][ Cancel | Delete ][1][ Nothing to Delete][ Cancel ][2][ Nothing to update.][ Cancel ]:\1Fal$$$$$H$$Jn$$'$  c####             %  xPP     P  * , . 0246G X ! i w'   8'T,LREM $option !g[& REM $option k100,y REM $include wrsc.bh rem $include toolbox.bas rem $include newdesk.bas SUB ProcessKeys(BYVAL ascii$,BYVAL scan_code,BYVAL kstate) SHARED finished_flag,TextWindows,wolines(1),desk_flag STATIC handle2 SELECT CASE ascii$ CASE chr$(15): 'ctrl-o IF desk_flag THEN desk_flag=0 SetDesk -1 'reset it ELSE desk_flag=-1 SetDesk NewDeskTop END IF CASE chr$(17),"E": 'ctrl-q finished_flag=-1 END SELECT END SUB desk_flag=0 StartProgram "WRSC.RSC",0,0 keys_enabled=-1 HGTloop StopProgram REM $option j140,y+,v+,u+,#,[,] REM $include acctbox.bas rem $include window.bas rem $include textwind.bas rem $include image.bas rem $include imagwind.bas REM $include filesel.bas SUB AccOpened SHARED finame$,ext$,imageWindows,textWindows,wolines(1),AlreadyOpen STATIC x,texth,temp,i IF AlreadyOpen THEN CloseAWindow Texth ELSE InitTextWindows 1,2000 END IF finame$=FileSelect$ IF finame$<>"" THEN ext$=UCASE$(MID$(finame$,LEN(finame$)-3,3)) SELECT CASE ext$ CASE ".PI",".PC",".IM",".NE": LoadPicture finame$,imagewindows texth=OpenImageWindow(finame$,win_all-win_info) CASE ELSE ' treat as text LoadTextFile finame$,TextWindows,wolines(TextWindows) texth=OpenTextWindow(finame$,win_all-win_info) END SELECT FullReDraw texth END IF END SUB DIM images(2,fd_size) ExpandTabsFlag=-1 StartAccessory " HGT Display " w CONST menu1%= 0 CONST me%= 0 CONST medesk%= 3 CONST mefile%= 4 CONST meaboutgold%= 7 CONST me1%= 9 CONST me2%= 10 CONST me3%= 11 CONST me4%= 12 CONST me5%= 13 CONST me6%= 14 CONST mequit%= 16 CONST mesave%= 17 CONST meload%= 18 CONST form2%= 1 CONST fmcancel%= 3 CONST fmok%= 4 CONST form3%= 2 CONST d2%= 0 CONST d2somemoretext%= 1 CONST d2todisplayin%= 2 CONST d2whatapowerfu%= 3 CONST d2cancel%= 4 CONST d2ok%= 5 CONST aboutalert%= 0  h ~8VMENU1~8VME~ME~MEDesk~MEFile~MEAboutGold~ ME1~ ME2~ ME3~ ME4~ ME5~ME6~MEQuit~MESave~MELoad~FORM2~FM~FMCancel~FMOK~FORM3~D2~D2~D2Somemoretext~D2todisplayin~D2WhataPowerfu~D2Cancel~D2OK~AboutAlert)rrrrn$nrBN Desk File About Gold-123456 Quit Q Save S Load LThis is some text for the goldfish to displayHere's another lineCancelOKSome more text for the fine HiSoft GEM Toolboxto display in another window, chaps.What a Powerful tool!CancelOK[0][This is an example|written using HGT][ OK ]>    $ + 2 ? T V X Z\^ ` j  t F~- '& 7.$4 %; r:REM $option !gy REM $option k100 REM $include toolbox.bas REM $include dialog.bas REM $include window.bas REM $include objwind.bas REM $include menu.bas REM $include xformdo.bas REM $include formwind.bas REM $include xaddress.bh rem $include objcext.bas ' The routines for handling the address book file and data structure SUB PutRecord(BYVAL i) SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED nname$,addr$(1),phone$ PUT #1,i+1 nnames$(i)=nname$ addr1$(i)=addr$(1) addr2$(i)=addr$(2) addr3$(i)=addr$(3) addr4$(i)=addr$(4) phones$(i)=phone$ END SUB SUB GetRecord(BYVAL i) SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED nname$,addr$(1),phone$ GET #1,i+1 nnames$(i)=nname$ addr1$(i)=addr$(1) addr2$(i)=addr$(2) addr3$(i)=addr$(3) addr4$(i)=addr$(4) phones$(i)=phone$ END SUB SUB OpenFile SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED nname$,addr$(1),phone$,records,max_records,recordcnt$ STATIC newfile,i newfile= FEXISTS("address.dat")=0 OPEN "address.dat" FOR RANDOM AS #1 LEN=180 DIM addr$(4) FIELD #1, 20 AS nname$,_ 35 AS addr$(1),_ 35 AS addr$(2),_ 35 AS addr$(3),_ 35 AS addr$(4),_ 20 AS phone$ FIELD #1, 2 AS recordcnt$ IF newfile THEN records=0 ELSE GET #1,1 records=CVI(recordcnt$) END IF max_records=records+10 DIM nnames$(max_records) DIM addr1$(max_records) DIM addr2$(max_records) DIM addr3$(max_records) DIM addr4$(max_records) DIM phones$(max_records) FOR i=1 TO records GetRecord i NEXT i END SUB SUB CloseFile SHARED recordcnt$,records LSET recordcnt$=MKI$(records) PUT #1,1 CLOSE #1 END SUB FUNCTION AddRecord SHARED records,max_records,nnames$(1) SHARED addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) INCR records IF records>max_records THEN max_records=max_records+10 REDIM APPEND nnames$(max_records),addr1$(max_records),addr2$(max_records),addr3$(max_records),addr4$(max_records),phones$(max_records) END IF PutRecord records AddRecord=records END FUNCTION FUNCTION NextRecord(BYVAL i) SHARED records,nnames$(1) DO INCR i IF i>records THEN i=0: EXIT LOOP LOOP WHILE LEFT$(nnames$(i),7)="DELETED" NextRecord=i END FUNCTION FUNCTION PreviousRecord(BYVAL i) SHARED records,nnames$(1) DO DECR i IF i<=0 THEN i=0: EXIT LOOP LOOP WHILE LEFT$(nnames$(i),7)="DELETED" PreviousRecord=i END FUNCTION FUNCTION FindRecord(partname$,cur_record) SHARED nnames$(1),records STATIC start_record,i start_record=cur_record i=cur_record DO i=NextRecord(i) IF i=0 THEN IF start_record=0 THEN i=0 ELSE i=NextRecord(0) IF i=0 THEN i=start_record 'no records at all END IF END IF IF i=start_record THEN 'record not found FindRecord=-1 EXIT LOOP END IF IF INSTR(nnames$(i),partname$)>0 THEN FindRecord=i EXIT LOOP END IF LOOP END FUNCTION SUB DeleteRecord(BYVAL i) SHARED nname$ LSET nname$="DELETED" PutRecord i END SUB SUB ReOrganiseFile SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED records,nname$ STATIC i,j j=1:i=1 DO IF i>records THEN EXIT LOOP GET #1,i+1 IF LEFT$(nname$,7)<>"DELETED" THEN IF i<>j THEN PUT #1,j+1 nnames$(j)=nnames$(i) addr1$(j)=addr1$(i) addr2$(j)=addr2$(i) addr3$(j)=addr3$(i) addr4$(j)=addr4$(i) phones$(j)=phones$(i) END IF INCR j END IF INCR i LOOP records=j-1 END SUB 'Now the routines that handle the user interface/data structure conversions SUB DisplayRecord(BYVAL i) SHARED nnames$(1),addr1$(1),addr2$(1),addr3$(1),addr4$(1),phones$(1) SHARED edit_handle SelectTree MAINDIALOG 'IF i=0 THEN EXIT SUB Sette_ptext MDNAME,RTRIM$(nnames$(i)) Sette_ptext MDADDR1,RTRIM$(addr1$(i)) Sette_ptext MDADDR2,RTRIM$(addr2$(i)) Sette_ptext MDADDR3,RTRIM$(addr3$(i)) Sette_ptext MDADDR4,RTRIM$(addr4$(i)) Sette_ptext MDPHONE,RTRIM$(phones$(i)) Sette_ptext MDRECNO,STR$(i) END SUB SUB ExtractInfo SHARED nname$,addr$(1),phone$ STATIC i LSET nname$=Gette_ptext$(MDNAME) FOR i=1 TO 4 LSET addr$(i)=Gette_ptext$(MDADDR1+i-1) NEXT i LSET phone$=Gette_ptext$(MDPHONE) END SUB ' Now the purely user interface routines SUB ClearDialog SHARED i,edit_handle SelectTree MAINDIALOG Sette_ptext MDNAME,"" FOR i=1 TO 4 Sette_ptext MDADDR1+i-1,"" NEXT i Sette_ptext MDPHONE,"" IF edit_handle THEN TopAWindow edit_handle END SUB SUB HandleFind SHARED commonobj,cur_record,edit_handle,find_handle,commonclose STATIC i,x,y IF commonobj=FDOK THEN i=FindRecord(Gette_ptext$(FDSTRING),cur_record) IF i>0 THEN cur_record=i DisplayRecord cur_record IF edit_handle THEN TopAWindow edit_handle : FullRedraw edit_handle ELSE junk=Newform_alert(ALERTNOTFOUND,1) END IF commonclose=0 ' redraw the exit button allowing for the 'outside' the object SelectTree FINDDIALOG Object_redraw find_handle,commonobj ELSE find_handle=0 END IF END SUB SUB HandleEdits SHARED nname$,addr$(1),phone$,cur_record,commonobj,commonclose,edit_handle SHARED find_handle STATIC Comm,i SelectTree MAINDIALOG Comm=commonobj commonclose=0 SELECT CASE Comm CASE MDNEW: ExtractInfo cur_record=AddRecord DisplayRecord cur_record CASE MDFIND: IF find_handle THEN TopAWindow find_handle ELSE find_handle=OpenFormWindow("Find name",win_name+win_close+win_move,FindDialog,FDSTRING,FDCANCEL,VARPTRS(HandleFind)) END IF SelectTree MAINDIALOG object_redraw edit_handle,MDFIND EXIT SUB CASE MDDELETE: IF cur_record=0 THEN junk=newform_alert(NOTHINGDEL,1) ELSE IF Newform_alert(DELETEWARN,1)=2 THEN DeleteRecord cur_record cur_record=0 DisplayRecord cur_record END IF END IF CASE MDPREVIOUS: i=PreviousRecord(cur_record) IF i>0 THEN cur_record=i DisplayRecord cur_record END IF CASE MDNEXT: i=NextRecord(cur_record) IF i>0 THEN cur_record=i DisplayRecord cur_record END IF CASE MDUPDATE: IF cur_record>0 THEN {ExtractInfo PutRecord cur_record ELSE junk=Newform_alert(NOTHINGUPDATE,1) END IF CASE MDCLEAR: ClearDialog cur_record=0 CASE MDEXIT: edit_handle=0 commonclose=-1 EXIT SUB END SELECT FullRedraw edit_handle END SUB SUB DummyProc END SUB SUB ProcessUserMenus(VAL cur_front,VAL item,VAL title) SHARED texth,wolines(1),lines$(2),TextWindows,cur_record,edit_handle,find_handle STATIC i,finame$,temp,id SELECT CASE item CASE MeAboutAddress: SelectTree AboutDialog junk=OpenFormWindow("About Address",win_name+win_close+win_move,AboutDialog,0,ABOUTOK,VARPTRS(DummyProc)) CASE MeReorganise: ReorganiseFile CASE MeEdit: IF edit_handle THEN TopAWindow edit_handle ELSE cur_record=0 edit_handle=OpenFormWindow("Edit Address List",win_name+win_close+win_move,MAINDIALOG,MDNAME,MDEXIT,VARPTRS(HandleEdits)) END IF END SELECT END SUB SUB jokeredraw END SUB mouse_detect_both=-1 StartProgram "XADDRESS.RSC",MENU,MEQUIT OpenFile ClearDialog xHGTloop CloseFile StopProgram ' Gold Fish example showing dragging icons REM $option uvgy,l10,# REM $include toolbox.bas REM $include newdesk.bas REM $include dialog.bas REM $include menu.bas 'Our actual program ' get the header file created with WERCS REM $INCLUDE WRSC.BH ' global variables DIM SHARED junk,deskflag,checked DIM SHARED edit$,radio clicks_enabled=1 SUB ProcessClicks(byval clicks,byval kstate,byval x,byval y) SHARED windx,windy,windw,windh SHARED desktree& STATIC found,newx,newy ' Debug "Clicks="+STR$(Clicks)+"kstate="+STR$(kstate)+"x="+STR$(x)+"y="+STR$(y) found=objc_find(desktree&,0,7,x,y) IF found>0 THEN graf_mouse 4,0 SelectTreeAddr desktree& graf_dragbox Getob_width(found),Getob_height(found),Getob_x(found),Getob_y(found), _ Getob_x(0),Getob_y(0),Getob_width(0),Getob_height(0),newx,newy Setob_x found,newx Setob_y found,newy graf_mouse 0,0 form_dial FMD_FINISH,0,0,0,0,Windx,Windy,Windw,Windh END IF Debug "found "+STR$(found) END SUB ' a routine to handle our particular dialog box SUB test_dialog STATIC dlog&,result SelectTree TestDialog Sette_ptext DEditable,edit$ SetButton DParent,radio result=HandleDialog(DEditable) IF result=DOK THEN edit$=Gette_ptext$(DEditable) radio=GetButton(DParent) END IF END SUB ' handle a given menu click SUB ProcessUserMenus(VAL cur_front,VAL item,VAL title) SHARED windx,windy,windw,windh SHARED menutree& STATIC temp& SELECT CASE item =MAbout junk=newform_alert(AAlert,1) =MCheckme checked=checked XOR 1 menu_icheck menutree&,MCheckme,checked =MDialog test_dialog =MInstall IF deskflag THEN deskflag=0 SetDesk -1 'reset it ELSE deskflag=-1 SetDesk NewDeskTop END IF END SELECT END SUB ' the main program starts here StartProgram "Wrsc.RSC",MENU1,MQUIT deskflag=0 ' get the screen size ' set default values for dialog box edit$="" radio=DRadio1 HGTloop StopProgram ' that's all folks Jdefint a-z rem $include toolbox.bas rem $include image.bas rem $option k100 DIM images(2,fd_size) LoadPicture "block.neo",1 DisplayImage 1,0,0hudefint a-z REM $option !g[& REM $option k100,y rem $include toolbox.bas rem $include image.bas rem $include window.bas rem $include imagwind.bas SUB ProcessKeys(BYVAL ascii$,BYVAL scan_code,BYVAL kstate) SHARED finished_flag,ImageWindows,wolines(1) STATIC handle2,finame$ SELECT CASE ascii$ CASE chr$(15): 'ctrl-o finame$="BLOCK.NEO" LoadPicture finame$,imagewindows handle2=OpenImageWindow(finame$,win_all-win_info) CASE chr$(17),"E": 'ctrl-q finished_flag=-1 END SELECT END SUB StartProgram "",0,0 keys_enabled=-1 InitWindowSystem DIM images(2,fd_size) HGTloop StopProgram defint a-z rem $include menutest.bh rem $include toolbox.bas rem $include menu.bas SUB ProcessUserMenus(BYVAL cur_front,BYVAL item,BYVAL title) SELECT CASE item CASE PlayTune: SOUND 1,15,10,3,20 sound 1,15,12,3,20 sound 1,15,8,3,20 sound 1,15,8,3,24 sound 1,15,3,3,40 Sound 1,0 END SELECT END SUB StartProgram "MENUTEST.RSC",MENU1,QUIT HGTloop StopProgram| CONST menu1%= 0 CONST quit%= 16 CONST playtune%= 17  RɴMENU1RQuitRPlaytuneQ{ |||||$||, 0 Desk File Your message here -123456 Quit Play tune    $ + 2 G \ ^ ` bdf h  o |defint a-z REM $option !g[& REM $option k100,y REM $include gold.bh rem $include toolbox.bas rem $include window.bas rem $include objwind.bas SUB ProcessKeys(BYVAL ascii$,BYVAL scan_code,BYVAL kstate) SHARED finished_flag STATIC handle1 SELECT CASE ascii$ CASE chr$(15): 'ctrl-o handle1=OpenObjectWindow("Toolbox Object",win_all-win_info,form2) CASE chr$(17),"E": 'ctrl-q finished_flag=-1 END SELECT END SUB StartProgram "GOLD.RSC",0,0 keys_enabled=-1 HGTloop StopProgram  ' Note that to use this program wyou will need to supply ' your own .IMG file REM $option !g REM $option k100,y REM $include gold.bh REM $include toolbox.bas REM $include image.bas REM $include menu.bas REM $include window.bas REM $include imagwind.bas REM $include dialog.bas REM $include filesel.bas SUB ProcessUserMenus(VAL cur_front,VAL item,VAL title) SHARED texth,ImageWindows STATIC i,finame$,temp,id,ext$ SELECT CASE item CASE MeAboutGold: junk=NewForm_Alert(ABOUTALERT,1) CASE MeLoad: finame$=FileSelect$ IF finame$<>"" THEN IF imagewindows THEN CloseImage imagewindows DECR imagewindows CloseAWindow texth END IF LoadPicture finame$,imagewindows texth=OpenImageWindow(finame$,win_all-win_info) END IF END SELECT END SUB StartProgram "GOLD.RSC",MENU1,MEQUIT InitFileSelector fspath$=LEFT$(fspath$,LEN(fspath$)-1)+"IMG" DIM images(2,fd_size) HGTloop StopProgramKdefint a-z REM $option !g[& REM $option k100,y rem $include toolbox.bas rem $include window.bas rem $include filesel.bas rem $include textwind.bas SUB ProcessKeys(BYVAL ascii$,BYVAL scan_code,BYVAL kstate) SHARED finished_flag,TextWindows,wolines(1) STATIC temp,finame$,texth,i SELECT CASE ascii$ CASE chr$(15): 'ctrl-o finame$=FileSelect$ IF finame$<>"" THEN ' treat as text LoadTextFile finame$,TextWindows,wolines(TextWindows) texth=OpenTextWindow(finame$,win_all-win_info) END IF CASE chr$(17),"E": 'ctrl-q finished_flag=-1 END SELECT END SUB StartProgram "",0,0 InitTextWindows 3,2000 keys_enabled=-1 expandtabsflag=-1 HGTloop StopProgram T CONST Menu1%= 0 CONST MAbout%= 8 CONST MQuit%= 17 CONST MCheckme%= 19 CONST MDialog%= 21 CONST MInstall%= 22 CONST TestDialog%= 1 CONST DOK%= 2 CONST DCancel%= 3 CONST DEditable%= 4 CONST DParent%= 5 CONST DRadio1%= 6 CONST DRadio2%= 7 CONST DRadio3%= 8 CONST NewDesktop%= 2 CONST AAlert%= 0  8IMenu18IM8MAbout8MQuit8MCheckme8MDialog8MInstall8TestDialog8D8DOK8DCancel8DEditable8DParent8DRadio18DRadio28DRadio38NewDesktop8AAlert;$H#T Desk File Other About WERCTEST...- Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 Quit Check me- Dialog box... Install desktop A Test Dialog Box OKCancelJUNKJUNKEditable text: _XRadio #1Radio #2Radio #3Tiny text...Floppy Disk[2][Simple Test Program][ OK ]DBDBD BD BD BD BD BDBDBG@@GDDDDDDDDDTDpIRj  2Q   &B   $ + 2   : N e z    -+ ? B %l u ~   Q4    (jjjz$zj.Address Book@XName: _XAddress:@X"_#X@X"_#X@X"_#X@X"_#X@XPhone: _XDeleteNewExitFindUpdateClearPreviousNext Desk File About Address-123456 Quit Q Reorganise R Edit EAddress Book Written using HiSoft BASIC 2by Dave NutkinsOK@X_XCancelOK[1][ Name not found][ Cancel ][3][ Really delete this| entry.][ Cancel | Delete ][1][ Nothing to Delete][ Cancel ][2][ Nothing to update.][ Cancel ]4V1Fal$$$$$H$$J n$$'$  c####   E  N  X  F U C P T  2  PP     P   . 0 2 468:K \! m  { '  NCO'jZ7 +PMainDialogPMDMDNameMDAddr1MDAddr2MDADdr3MDAddr4MDPhone MDDelete MDNew MDExit MDFind MDUpdateMDClearMDPreviousMDNextMDrecnoMENUMEMEFileMEAboutAddressMEQuitMEReorganiseMEEditAboutDialogADAboutOKFindDialogFDFDstringFDCancelFDOKAlertNotFoundDeleteWarnNOTHINGDELNOTHINGUPDATE+}*~ CONST MAINDIALOG%= 0 CONST MDNAME%= 2 CONST MDADDR1%= 4 CONST MDADDR2%= 5 CONST MDADDR3%= 6 CONST MDADDR4%= 7 CONST MDPHONE%= 8 CONST MDDELETE%= 9 CONST MDNEW%= 10 CONST MDEXIT%= 11 CONST MDFIND%= 12 CONST MDUPDATE%= 13 CONST MDCLEAR%= 14 CONST MDPREVIOUS%= 15 CONST MDNEXT%= 16 CONST MDRECNO%= 17 CONST MENU%= 1 CONST MEFILE%= 4 CONST MEABOUTADDRESS%= 7 CONST MEQUIT%= 16 CONST MEREORGANISE%= 17 CONST MEEDIT%= 18 CONST ABOUTDIALOG%= 2 CONST ABOUTOK%= 4 CONST FINDDIALOG%= 3 CONST FDSTRING%= 1 CONST FDCANCEL%= 2 CONST FDOK%= 3 CONST ALERTNOTFOUND%= 0 CONST DELETEWARN%= 1 CONST NOTHINGDEL%= 2 CONST NOTHINGUPDATE%= 3 '$include toolbox.bas '$include window.bas '$include menu.bas '$include xformdo.bas '$option y,k100 '$INCLUDE xfrmtest.BH mouse_detect_both=-1 startprogram "xfrmtest.rsc",menu4,menu_quit hgtloop stopprogram SUB processusermenus(VAL wind,VAL item,VAL mtitle) STATIC a$ SELECT CASE item CASE=m_test1 CALL do_box CASE=m_info a$="[0][ Xform_do demo ][ OK ]" junk=form_alert(1,a$) END SELECT END SUB SUB do_box STATIC obj,button,a,x,y,w,h selecttree form1 form_center tree&,x,y, w,h form_dial FMD_START,0,0,0,0,x,y,w,h xobjc_draw 0,10,0,0,0,0 junk=wind_update(1) DO obj=xform_do(obj1,but2,button) IF obj=num_but THEN a=VAL(gette_ptext$(num_but)) IF button=2 THEN INCR a ELSE DECR a IF a<0 THEN a=0 ELSEIF a>999 THEN a=999 END IF sette_ptext num_but,LTRIM$(STR$(a)) xobjc_draw num_but,0,0,0,0,0 END IF LOOP UNTIL obj=but1 OR obj=but2 junk=wind_update(0) form_dial FMD_FINISH,0,0,0,0,x,y,w,h exclob_state obj,mask_selected END SUB 666$6n-vxform_do DemoOKCancelRadioCairoHiSoft Boxtext123Click right buttonto increment orleft button todecrementHiSoftAVR@_ FTEXT:_ X Validation X@_ FTEXT:_ F Validation F@_ FTEXT:_ 9 Validation 9 xForm_do File Info...-123456 Quit ^Q Test Me ^T$23JRST\]^bcdwxy     *; FST  20O4C7 R>ID  %  F B  @#  # :# V#r# HA !   D%U%   V  `  g q      6 "Le FORM1LTITLELBUT1LBUT2LIBOXLRAD1LRAD2L NUM_BUTLHISOFTACTIVLOBJ1LOBJ2LOBJ3LMENU4LM_INFOLMenu_QUITLM_TEST1 !{* CONST FORM1%= 0 CONST TITLE%= 1 CONST BUT1%= 2 CONST BUT2%= 3 CONST IBOX%= 5 CONST RAD1%= 6 CONST RAD2%= 7 CONST NUM_BUT%= 11 CONST HISOFTACTIV%= 17 CONST OBJ1%= 20 CONST OBJ2%= 22 CONST OBJ3%= 24 CONST MENU4%= 1 CONST M_INFO%= 7 CONST Menu_QUIT%= 16 CONST M_TEST1%= 17  POPDEMO BAS  DPOPDEMO RSC  F8POPDEMO HRD  HPOPDEMO BH  IL'$option q80,y '$include toolbox.bas '$include menu.bas '$include objcext.bas '$include xformdo.bas '$include window.bas '$include objwind.bas '$include formwind.bas '$include popup.bas '$INCLUDE popdemo.BH SUB processusermenus(VAL topwin,VAL item,VAL title) SHARED myhandle STATIC res SELECT CASE item CASE mpop IF myhandle THEN TopAWindow myhandle ELSE myhandle=openformwindow(" Pop... ",&h0B,dialog,0,ok_but,VARPTRS(close_dialog)) END IF CASE mabout junk=form_alert(1,"[0][ Popup module demo | by Ofir Gal ][ OK ]") END SELECT END SUB FUNCTION get_pop_text$(BYVAL poptree,BYVAL popobj) STATIC oldtree& oldtree&=tree& selecttree poptree get_pop_text$=RTRIM$(LTRIM$(getob_spec$(popobj))) tree&=oldtree& END FUNCTION SUB close_dialog SHARED commonclose,myhandle,commonobj STATIC x,y,res$,res commonclose=0 SELECT CASE commonobj CASE=pop_but junk=objc_offset(tree&,pop_but,x,y) 'find object position res=popup(0,models_form,res,x,y) 'do the pop IF res THEN 'if there was a result res$=get_pop_text$(models_form,res) 'get the text sette_ptext pop_but,res$ 'display it in the main dialog setob_scut pop_but,LEFT$(res$,1) 'change the keybd shortcut END IF CASE=ok_but commonclose=-1 myhandle=0 END SELECT IF commonclose=0 THEN Object_Redraw myhandle,commonobj END SUB startprogram "POPDEMO.RSC",menu1,mquit xHGTloop stopProgram U\@\\@$@\,8 ST STE MegaSTE TT Falcon- Lynx Jaguar Popup File About...- 1  2  3  4  5  6  Quit ^Q Pop me... ^P Pop Me...OK3<<   A$ ) / 9 > G T %[  nn   d l ns ~      "  P @ O'= \4 *Le models_formLSTLSTELMegaSTELTTLFalconLLynxLJaguarLMENU1LmAboutLmquitLmpopLdialogLpop_butLok_but))>r8 CONST MODELS_FORM%= 0 CONST ST%= 1 CONST STE%= 2 CONST MEGASTE%= 3 CONST TT%= 4 CONST FALCON%= 5 CONST LYNX%= 7 CONST JAGUAR%= 8 CONST MENU1%= 1 CONST MABOUT%= 7 CONST MQUIT%= 16 CONST MPOP%= 17 CONST DIALOG%= 2 CONST POP_BUT%= 1 CONST OK_BUT%= 2 rem $option o-n- 10 PRINT "BYTE CALC Benchmark see May 85 issue" t=timer 20 NR=5000 30 A=2.718281828459045 40 B=3.141592653589794 50 C=1 60 FOR I=1 TO NR 70 C=C*A 80 C=C*B 90 C=C/A 100 C=C/B 110 NEXT I t=timer-t 120 PRINT "ERROR=";C-1 print "Took" t "seconds" ' this is an example of GEMDOS library usage. HiSoft 1987 ' the sub-program copies the filenames of files in the given directory ' into a string ' ' SCS ' ' updated for version 2 Oct 91 djn REM $option v 'variable checks on REM $option #+ 'No FNs in libraries DEFINT a-z LIBRARY "gemdos" DIM SHARED dta(22) 'our DTA DO 'the main program INPUT path$ IF LEN(path$)=0 THEN STOP -1 'just hit return to quit dirstr$="" dir2str path$,dirstr$ PRINT dirstr$ LOOP 'returns in targstr$ a list of files SUB dir2str(BYVAL pathstr$,targstr$) STATIC isitthere,olddta&,addr&,hold olddta&=fgetdta& 'get the old dta fsetdta VARPTR(dta(0)) 'this is where we want it isitthere=fsfirst(pathstr$,0) 'look for the file IF isitthere>=0 THEN 'some files available DO addr&=VARPTR(dta(15)) DO 'look for null byte hold=PEEKB(addr&) IF hold=0 THEN EXIT LOOP targstr$=targstr$+CHR$(hold) INCR addr& LOOP targstr$=targstr$+CHR$(13)+CHR$(10) 'add cr-lf isitthere=fsnext LOOP UNTIL isitthere<0 'is there another file END IF fsetdta olddta& 'if not restore dta and exit END SUB ,' $option b ' this program uses the operating system libraries to copy a single ' sided disk from drive a: to drive B: ' the following three lines specify the libraries which are needed ' HiSoft 1987 ' ' SCS ' library "BIOS","XBIOS" defint a-z cls locate 1,14 print "Disk Copier ";chr$(189);" HiSoft 1987 - written in HiSoft BASIC"; locate 3,19 print "copies a single sided disk from A: to B:"; srcd=0 'source drive number trgd=1 'target drive number gfm: locate 5,28 print "format target (y/n): "; ans$=inkey$ if ans$=="y" then dim fmtbuf(4608) 'dimension the format buffer print ans$; fm=1 elseif ans$=="n" then print ans$; fm=0 else goto gfm end if wpr: frmem&=fre("") 'figure out how many tracks can be buffered frmem&=frmem&-5120 ttb&=frmem&\4608 if ttb&>81 then ttb&=81 ttbi&=(ttb&*2304) dim trkbuf(ttbi&) 'this is the buffer locate 10,21 print "insert source in A: and target in B:"; ere1: locate 14,28 print "hit any key to continue"; repeat getkey 'use the BIOS to check if a key was pressed if FNbconstat(2)=-1 then exit getkey end repeat getkey nix&=FNbconin&(2) 'make sure no characters are buffered; call BIOS locate 14,28 print string$(23,32) strk=0 etrk=ttb&-2 do elf&=0 'the current array element for trk=strk to etrk 'the loop to read as much of the disk rdtrk trk,elf& 'as memory allows elf&=elf&+2308 'update element counter next trk elf&=0 for trk=strk to etrk 'writes contents of buffer if fm=1 then fmtrk trk 'format track if so desired wrtrk trk,elf& elf&=elf&+2308 next trk if etrk=79 then exit loop strk=etrk+1 'next set of tracks etrk=strk+ttb&-2 if etrk>79 then etrk=79 loop locate 14,28 print string$(23,32); locate 14,37 nix=FNbconout(2,27) nix=FNbconout(2,"p"%) print "DONE!"; nix=FNbconout(2,27) nix=FNbconout(2,"q"%) end sub rdtrk(tct,el&) shared errno,srcd,trkbuf(1) locate 14,28 print " reading track";tct; errno=FNfloprd(varptr(trkbuf(el&)),srcd,1,tct,0,9) 'XBIOS floprd call if errno<0 then call errorhndl end sub sub fmtrk(tct) shared errno,trgd,fmtbuf(1) locate 14,28 print "formatting track";tct;" "; errno=FNflopfmt(varptr(fmtbuf(0)),0,trgd,9,tct,0,1) 'XBIOS flopfmt call if errno<0 then call errorhndl end sub sub wrtrk(tct,el&) shared errno,trgd,trkbuf(1) locate 14,28 print " writing track";tct;" "; errno=FNflopwr(varptr(trkbuf(el&)),trgd,1,tct,0,9) 'XBIOS flopwr call if errno<0 then call errorhndl end sub sub errorhndl shared errno locate 14,30 print string$(3,32); nix=FNbconout(2,27) nix=FNbconout(2,"p"%) print "TOS error ";abs(errno);" "; nix=FNbconout(2,27) nix=FNbconout(2,"q"%) stop end sub rem Dumps out a file in hex and ASCII rem following line turns pause & break checks on rem $option pb deflng l,p,t ' define long integers defint a,i ' define integers ' returns a two-digit hex string given an integer def fnbhex$(h%) local a$ a$=hex$(h%): if len(a$)=1 then a$="0"+a$ fnbhex$=a$ end def ' returns an 8-digit hex string given a long integer def fnlhex$(h&) local a$ a$=hex$(h&): fnlhex$=string$(8-len(a$),"0"%)+a$ end def ' the actual program f$=command$ print "DUMP ";chr$(189);" HiSoft 1987 compiled in HiSoft BASIC" repeat main if f$="" then input "Filename, ? for DIR, or [Return] to quit";f$ if f$="" then stop -1 'return without waiting elseif f$="?" then files 'get a directory elseif not fexists(f$) then print "Error: Cannot find file ";f$ else open "i",#2,f$,2000 l=lof(2) p=0 repeat lineloop t=16: if p+16>l then t=l-p print fnlhex$(p);" "; a$=input$(t,#2) for i=1 to t print fnbhex$(asc(mid$(a$,i,1)));" "; next i print tab(58); for i=1 to t if asc(mid$(a$,i,1))>31 then print mid$(a$,i,1); else print "."; end if next i print p=p+16: if p>l then exit lineloop end repeat lineloop close #2 end if f$="" end repeat main  ' The Fast to HiSoft compiler HiSoft 1987 ' ' SCS ' ' 26 july 1.0 ' rem $option u,v,z 'underlines ok, variable checks, Zzzz mode rem $option n-,a-,o-,p- 'max speed library "gemaes","gemdos" 'these libraries are used defint a-z ' the table of the simple replacement keywords Fast BASIC,HiSoft BASIC ' data "ENDPROC","END SUB" data "ENDIF","END IF" data "REPEAT","DO" data "UNTIL","LOOP UNTIL" data "SWITCH","SELECT CASE" data "ENDSWITCH","END SELECT" data "HIDEMOUSE","MOUSE -1" data "SHOWMOUSE","MOUSE 0" data "DEFAULT","CASE ELSE" data "BEGINUPDATE","Dummy%=FNwind_update%(1)" data "ENDUPDATE","Dummy%=FNwind_update%(0)" data "CREATEWIND","FNwind_create%" data "FINDOBJECT","FNobjc_find%" data "FINDWIND","FNwind_find%" data "FSELECT","fsel_input" data "GROWBOX","graf_growbox" data "MOVEBOX","graf_movebox" data "SHRINKBOX","graf_shrinkbox" data "SLIDEBOX","FNgraf_slidebox%" data "TRACKBOX","FNgraf_watchbox%" data "WAITMSG","evnt_mesag" data "WAITTIMER","evnt_timer" data "DELDIR","RMDIR" data "DELFILE","KILL" data "DIR","FILES" data "FREE",FRE("") data "GETREC","GET" data "HOME","LOCATE 1,1" data "MAKEDIR","MKDIR" data "PUTREC","PUT" data "SETMOUSE","MOUSE" data "INKEY","ASC(INKEY$)" data "TIME24$(SYSTIME)","TIME$" data "DATEUS$(SYSDATE)","DATE$" data "" if peekw(systab)=4 then dummy=FNform_alert(1,"[3][This doesn't run in|low res][ Quit ]") system end if crlf$=chr$(13)+chr$(10) 'various values copyright$=chr$(189) dim srcsym$(100) 'dimension the symbol tables dim trgsym$(100) do 'build the symbol tables read temp$ if temp$="" then exit loop incr ctr srcsym$(ctr)=temp$ read temp$ trgsym$(ctr)=temp$ loop nkey=ctr 'return what's not used redim append srcsym$(nkey) redim append trgsym$(nkey) fil$=command$ m=peek(systab) 'get resolution window open 2,"Fast BASIC to HiSoft BASIC converter "+copyright$+" HiSoft 1987",110,20\m,418,362\m,1 if len(fil$)=0 then 'no filename was specified on the cmdlin fil$=FNselect_file$ end if do until fexists(fil$) 'if file not found but=FNform_alert(1,"[1][| "+fil$+" | not found ][ OK ]") fil$=FNselect_file$ loop mouse 2 'busybee open fil$ for input as #1 len=5120 'open source with some buffer space filel&=lof(1) filst$=input$(filel&,#1) 'read entire file close #1 dott=instr(fil$,".") mid$(fil$,dott,4)=".BAS" 'create target's extension open fil$ for output as #2 len=5120 'open target with some buffer space mouse 0 'arrow but=FNform_alert(1,"[2][| Do you want 16-bit or | 32-bit integers? ][ 16 | 32 ]") mouse -1 'no rodent (takes up too much time) if but=1 then intflg=0 else intflg=1 end if check_corrupt 'make sure all lines end with cr-lf print #2,"' ";fil$;" converted from Fast BASIC to HiSoft BASIC" print #2,"LIBRARY ""GEMAES""" locate 9,21 print "line"; done=-1 fp&=1 nix&=fre("") main: do 'this is the main prog tokoffs=FNgetnxtok if done then if tokoffs=0 then print #2,notaword$; elseif tokoffs>0 then print #2,trgsym$(tokoffs); end if if hcfl then print #2,holdchr$; end if done=-1 hcfl=0 loop terminator: close #2 mouse 0 'mouse is back john=FNform_alert(1,"[1][| All done!| |"+str$(lino)+" lines processed ][ OK ]") stop -1 'exit sub getnxlin 'get a line of Fast BASIC shared parslin$,ll,lp,fp&,crlf$,filel&,filst$,lino static cr& if fp& >= filel& then goto terminator '(slap on wrist) cr&=instr(fp&,filst$,crlf$) parslin$=mid$(filst$,fp&,cr&-fp&) fp&=cr&+2 incr lino if (lino and 7)=0 then 'don't always print (eats time) locate 9,25 print lino; end if ll=len(parslin$) lp=0 end sub DEF FNgetnxchr$ 'get a character from the line shared parslin$,word$,ll,lp,funcflag,nxchr$,wf,intflg,wl,hcfl,holdchr$ static quotct,nxchr,temp,chrfl,achr$ getachr: incr lp if lp > ll then exit def 'NOT EQUAL! chrfl=1 hcfl=0 nxchr=asc(mid$(parslin$,lp,1)) 'get the next character as integer if nxchr=""""% then incr quotct 'smart quoted strings select case nxchr 'integer comparisons are quicker case " "% if wl<>0 then wf=1 'new word hcfl=-1 holdchr$=chr$(nxchr) case 9 'tab print #2,chr$(9); chrfl=0 end select if (quotct and 1)=1 then goto after_select select case nxchr case "%"% if intflg=1 then nxchr="&"% else nxchr="%"% end if case "\"% nxchr="'"% case "("% wf=1 hcfl=-1 holdchr$=chr$(nxchr) case "="% if funcflag=0 then if wl<>0 then wf=1 hcfl=-1 holdchr$=chr$(nxchr) exit select end if end if if funcflag=1 then 'it's the end of a DEF FN if wl=0 then exit select call spcase_endef chrfl=0 exit def 'the routine did everything end if end if case "@"% call spcase_at exit def case "$"% if wl=0 then print #2,"&H"; chrfl=0 end if case "&"% nxchr="%"% case ":"% if wl<>0 then wf=1 hcfl=-1 holdchr$=chr$(nxchr) end if case "|"% nxchr="%"% end select after_select: if chrfl=0 then goto getachr Fngetnxchr$=chr$(nxchr) end def DEF FNgetnxwrd$ 'get a word shared parslin$,lp,ll,wl,wf,xwf,xword$ static word$,nxchr$,temp$ word$="" wl=0 wf=0 do nxchr$=FNgetnxchr$ if xwf then word$=word$+xword$ xwf=0 end if if wf<>1 then word$=word$+nxchr$ incr wl if wl=1 then  temp$=mid$(parslin$,lp,4) if temp$="PROC" then call spcase_proc exit def end if end if if lp >= ll then exit loop end if loop until wf=1 if word$="DEF" then call spcase_defs exit def end if FNgetnxwrd$=word$ end def DEF FNgetnxtok% 'see if it's a token shared crlf$,lp,ll,srcsym$(),notaword$,done,nkey static srch,word$,offs if lp >= ll then print #2,crlf$; call getnxlin end if word$=FNgetnxwrd$ if not done then exit sub for srch=1 to nkey 'hunt through symbol table if word$=srcsym$(srch) then 'the most used line in the prog FNgetnxtok=srch exit def end if next srch FNgetnxtok=0 notaword$=word$ end def ' all the special cases follow sub spcase_defs shared parslin$,ll,lp,wl,funcflag,done,funcname$ static temp$,nxchr$,rest$,name$,paren$,achr$ temp$=mid$(parslin$,lp+1,2) if temp$="FN" then print #2,"DEF "; funcflag=1 funcname$="" rest$="" do nxchr$=FNgetnxchr$ if nxchr$="(" then 'the VAR business paren$="(" do nxchr$=FNgetnxchr$ achr$=mid$(parslin$,lp-1,1) if achr$="," or achr$="(" then if mid$(parslin$,lp,3)="VAR" then nxchr$="" lp=lp+3 else paren$=paren$+"VAL " end if end if paren$=paren$+nxchr$ loop until nxchr$=")" goto 42 end if funcname$=funcname$+nxchr$ if lp > ll then exit loop loop 42 print #2,funcname$+paren$; done=0 else name$="" lp=lp+4 'skip over DEF do nxchr$=FNgetnxchr$ if nxchr$="(" then 'the VAR business paren$="(" do nxchr$=FNgetnxchr$ achr$=mid$(parslin$,lp-1,1) if achr$="," or achr$="(" then if mid$(parslin$,lp,3)="VAR" then nxchr$="" lp=lp+3 else paren$=paren$+"VAL " end if end if paren$=paren$+nxchr$ loop until nxchr$=")" goto 43 end if name$=name$+nxchr$ if name$="PROC" then name$="" if lp > ll then exit loop loop 43 print #2,"SUB "+name$+paren$; done=0 end if end sub sub spcase_endef shared funcname$,ll,lp,parslin$,done,funcflag static name$,nxchr$ print #2,funcname$; name$="" do nxchr$=FNgetnxchr$ if nxchr$=" " then exit loop elseif lp > ll then exit loop end if name$=name$+nxchr$ loop print #2,"="+name$ print #2,"END DEF"; funcflag=0 done=0 end sub sub spcase_at shared done,lp,ll,xwf,xword$ static nxchr$,name$ xwf=0 name$="" do nxchr$=FNgetnxchr$ select case nxchr$ case "$" name$=name$+"$" dolloop: nxchr$=FNgetnxchr$ if nxchr$=")" or nxchr$=" " or nxchr$="," or lp > ll name$="SADD("+name$+")"+nxchr$ xword$=name$ xwf=-1 exit sub else name$=name$+nxchr$ goto dolloop end if case " " name$="VARPTR("+name$+") " xword$=name$ xwf=-1 exit sub case ")" name$="VARPTR("+name$+"))" xword$=name$ xwf=-1 exit sub case "," name$="VARPTR("+name$+")," xword$=name$ xwf=-1 exit sub end select name$=name$+nxchr$ if lp > ll name$="VARPTR("+name$+")" xword$=name$ xwf=-1 exit sub end if loop end sub sub spcase_proc shared parslin$,lp,ll,done static name$,word$,nxchr$ name$="" lp=lp+3 'not 4 because getnxchr pre-increments do nxchr$=FNgetnxchr$ if nxchr$=" " then exit loop elseif lp > ll then 'NOT EQUAL! exit loop end if name$=name$+nxchr$ loop print #2,"CALL "+name$; if nxchr$=" " then print #2," "; done=0 end sub sub check_corrupt 'occasionally Fast BASIC produces shared filst$,filel&,holdst$,crlf$ 'bad ASCII files static nix&,hold&,where& locate 9,19 print "having a think..." hold&=1 do where&=instr(hold&,filst$,chr$(10)) 'check for lf if where&=0 then exit loop hold&=where&+1 if mid$(filst$,where&-1,1)<>chr$(13) then 'without cr holdst$=left$(filst$,where&-1) holdst$=holdst$+crlf$ filst$=holdst$+right$(filst$,filel&-where&) holdst$="" filel&=len(filst$) nix&=fre("") end if loop cls 'lazy end sub DEF FNselect_file$ static path$,name$,but,drv$,where path$=space$(64) 'set up buffer drv$=chr$(FNdgetdrv+"A"%) 'get current drive dgetpath sadd(path$),0 'get current path if left$(path$,1)=chr$(0) then 'add *.ASC path$=drv$+":\*.ASC" else path$=drv$+":"+path$ where=instr(path$,chr$(0)) path$=left$(path$,where-1) path$=path$+"\*.ASC" end if fsel_input path$,name$,but 'the file selector appears! cls 'naughty naughty if but=0 then stop -1 'cancel button where=instr(path$,"*") 'build the file name path$=left$(path$,where-1) FNselect_file$=path$+name$ end def rem $option n-o-a- print "All the old PCW Benchmarks..." dim times(8) ' to hold the times t!=timer FOR K=1 TO 10000 NEXT K t=timer-t:times(1)=t t!=timer K=0 z1: K=K+1 IF K<10000 THEN GOTO z1 t=timer-t:times(2)=t t!=timer K=0 z2: K=K+1 A=(k/k)*k+K-K IF K<10000 THEN GOTO z2 t=timer-t:times(3)=t t!=timer K=0 z3: K=K+1 A=K/2*3+4-5 IF K<10000 THEN GOTO z3 t=timer-t:times(4)=t t!=timer K=0 z4: K=K+1 A=K/2*3+4-5 GOSUB s4 IF K<10000 THEN GOTO z4 t=timer-t:times(5)=t goto skip1 s4: RETURN skip1: t!=timer K=0 DIM M(5) z5: K=K+1 A=K/2*3+4-5 GOSUB s3 FOR L=1 TO 5 NEXT L IF K<10000 THEN GOTO z5 t=timer-t:times(6)=t goto skip2 s3: RETURN skip2: t!=timer K=0 DIM M1(5) z6: K=K+1 A=K/2*3+4-5 GOSUB s6 FOR L=1 TO 5 M1(L)=A NEXT L IF K<10000 THEN GOTO z6 t=timer-t:times(7)=t goto snkip3 s6: RETURN skip3: t!=timer K=0 z7: K=K+1 A=K^2 B=LOG(K) C=SIN(K) IF K<10000 THEN GOTO z7 t=timer-t:times(8)=t t=0 for i%=1 to 8 print "PCW";i%,times(i%)/10 t=t+times(i%) next i% print "Average=";t/80 rem next line turns overflow, array checks and line numbers off rem $option a-o-n- defint a-z 10 PRINT "BYTE SIEVE, 7000 numbers done 5 times" t!=timer 20 SIZE=7000 30 DIM FLAGS(7001) for j=1 to 5 40 ACOUNT=0 50 FOR I=0 TO SIZE 60 FLAGS(I)=1 70 NEXT I 80 FOR I=0 TO SIZE 90 IF FLAGS(I)=0 THEN GOTO 170 100 PRIME=I+I+3 110 K=I+PRIME 120 IF K>SIZE THEN GOTO 160 130 FLAGS(K)=0 140 K=K+PRIME 150 GOTO 120 160 ACOUNT=ACOUNT+1 170 NEXT I next j t!=timer-t! 180 PRINT ACOUNT;"primes found" print "Took" t!/5 "seconds"  CONST Menu1%= 0 CONST MAbout%= 8 CONST MQuit%= 17 CONST MCheckme%= 19 CONST MDialog%= 21 CONST MInstall%= 22 CONST TestDialog%= 1 CONST DOK%= 2 CONST DCancel%= 3 CONST DEditable%= 4 CONST DParent%= 5 CONST DRadio1%= 6 CONST DRadio2%= 7 CONST DRadio3%= 8 CONST NewDesktop%= 2 CONST AAlert%= 0 } Menu1MMAboutMQuitMCheckmeMDialogMInstallTestDialogDDOKDCancelDEditableDParentDRadio1DRadio2DRadio3NewDesktopAAlert+$H#T Desk File Other About WERCTEST...- Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 Quit Check me- Dialog box... Install desktop A Test Dialog Box OKCancelJUNKJUNKEditable text: _XRadio #1Radio #2Radio #3Tiny text...Floppy Disk[2][Simple Test Program][ OK ]DBDBD BD BD BD BD BDBDBG@@GDDDDDDDDDTDpIRj  2Q   &B   $ + 2   : N e z    -+ ? B %l u ~   Q4    (' WERCS example program for HiSoft BASIC 2 ' this does not use the HiSoft GEM Toolkit DEFINT a-z ' 10k should be plenty to Leave, variable checks on, no window ' No FNs in libraries REM $option l10,v+,y+,u+,#+ LIBRARY "gemaes" ' the GEMAES.BH file must be accessable REM $INCLUDE GEMAES.BH ' get the header file created with WERCS REM $INCLUDE WRSC.BH ' global variables DIM SHARED junk,deskflag,menu&,finished,checked DIM SHARED screenx,screeny,screenw,screenh,edit$,radio FUNCTION object&(BYVAL tree&,BYVAL object) object&=tree&+object*ob_sizeof END FUNCTION ' an additional GEM call is needed as the built-in form_alert expects a ' BASIC-style string, not a pointer to a C-type string FUNCTION newform_alert(BYVAL button,BYVAL addr&) POKEW PEEKL(GB+8),button 'int_in POKEL PEEKL(GB+16),addr& 'addr_in GEMSYS(52) newform_alert=PEEKW(PEEKL(GB+20)) END FUNCTION SUB INITIALISE ' firstly load the resource file IF rsrc_load("WRSC.RSC")=0 THEN ' this alert can't be in the resource file of course.. junk=form_alert(1,"[3][Resource file error][ Quit ]") SYSTEM END IF ' now install the menu deskflag=0 junk=rsrc_gaddr(type_tree,Menu1,menu&) menu_bar menu&,1 ' get the screen size junk=wind_get(0,WF_WORKXYWH,screenx,screeny,screenw,screenh) graf_mouse 0,0 ' set default values for dialog box edit$="" radio=DRadio1 END SUB ' set or reset the desktop pattern SUB SETDESK(BYVAL newdesk&) junk=wind_set(0,wf_newdesk,PEEKW(VARPTR(newdesk&)),PEEKW(VARPTR(newdesk&)+2),0,0) ' cause the AES to re-draw the whole screen form_dial FMD_FINISH,0,0,0,0,screenx,screeny,screenw,screenh END SUB SUB DEINITIALISE IF deskflag THEN SETDESK(0) : deskflag=0 menu_bar menu&,0 junk=rsrc_free END SUB ' a general routine to produce a dialog box and handle interaction ' the return result is the exit object number FUNCTION handle_dialog(BYVAL d&,BYVAL editnum) STATIC x,y,w,h,but,t& form_center d&,x,y,w,h form_dial FMD_START,0,0,0,0,x,y,w,h form_dial FMD_GROW,x+w\2,y+h\2,0,0,x,y,w,h junk=objc_draw(d&,0,10,x,y,w,h) but=form_do(d&,editnum) form_dial FMD_SHRINK,x+w\2,y+h\2,0,0,x,y,w,h form_dial FMD_FINISH,0,0,0,0,x,y,w,h t&=object&(d&,but) IF PEEKB(t&+ob_type+1)=G_BUTTON THEN POKEW t&+ob_state,PEEKW(t&+ob_state) AND (NOT mask_selected) END IF handle_dialog=but END FUNCTION ' set a tedinfo record ' NOTE: does not handle complex templates SUB set_tedinfo(BYVAL tree&,BYVAL object,BYVAL newted$) STATIC t&,maxl,i t&=PEEKL(tree&+object*ob_sizeof+ob_spec) maxl=PEEKW(t&+te_txtlen)-1 '-1 for the null IF LEN(newted$) NA"j)I A W*j,Jf J-gRMJg"R< AfR&MRM Rf Gf Vf =fp#@JgN&IMaJf"JfB` _fj Pfd Bf^ PfX =fRYIJfLrpg:鉰<0e<<9dҀ`<Ae(<zd"<Fc<ae Ҁ`²$W`.Jfg&BN&IAp<}bB0,Ha(NL"@$ p lDep@)@4)I0"`BQ)I,`BQ ,Po2V@l$)IB"Y"XI#I2B"2D)I$H" XA"AJLfF" lDeT)AL ,80BAHAR@&,8HCBCHCFC׬8.I/ S// / ?<?<JNAO N ~NNX>`\O ,g/?<?<NMPO?<LNAJ =f8RNrtB0m| nҁ&ҁҁ҃҂`.g f Jg)AH NNu ,<",e ЀЀNu$e6A)HA)HA)HA()HA6)HAB)HpN Jg HxN xXOA)H6 <NJfHlHxNTHxN LO p)@\HlL//NfHx/,LN:HlVHlTHlRHlPHxBNBBN4O0B,dp)@XNu$elH8*o H@HH" Ht////Hx/N>0,PH2,RH4,TH6,VH.///x////HxNO8L Nu$e J\gBa|XOp)@\B/,LNp <Np$NPONuNV$e H?*n.. HnHnHnHn/ N0.H2.H4.H6.H.///x/////NZ0.HJjR2.HҀ0.HJjR4.HԀ0.H6.H8.H:.H.///z////HxNOT0.H2.H4.H6.H////Hx B/ N./ N,0.HJjR2.HҀ0.HJjR4.HԀ0.H6.H8.H:.H.///z////HxNd0.H2.H4.H6.H.///x////HxN2O`l rN  L N^NuNV$e H*n.. &n rN R u "P/ / -IN 4L(N^NuNV$e H*n.. &n rN  u "P/ / -IN L(N^Nu$e H*o./,/ rN :5Hžg2f rN  ` rN  rN :5H`L Nu$e . <. Q@g@ g2U@g8U@gPS@gR`HnBHxN.HxNO`p)@`lc/,`Hx/,LNrO `ba`\J\gB\BatXO`Hp)@\HnHxBN n1lP n1lR n1lT n1lV.a,O HHx//,LNLN^NuNV$e rJfNA)H6p4Nb0.r Af9| <NH0.H2.H//aBl <N&PO`N^Nu$e aaapNuNV .9@ . 9@ .9@ .9@ .9@ .9@ <|NN^NupaNVH*n&n .9@ . 9@ <xN g:* g6,*n g:.*n g:00,(HL(N^NupaNV .9@ . 9@ 9| <N.Bl n B0,(HN^NuNV)n6 . 9@ .9@ .9@ .9@ .9@ . 9@p@ЀNN^NupaNV . 9@ .9@ )n6p\NN^NuNV . 9@ .9@ )n6pTNvN^NuNV . 9@)n6pPNZN^NuNV .9@)n 6 <N:N^NuNV . 9@)n6pPЀNN^NuNV .9@ . 9@ .9@ .9@ .9@ .9@ . 9@ .$9@ .(9@pRЀNN^NuNV)n6pXЀN n 0* n0, n0. n000,(HN^NuNV)n 6 .9@pTЀNhN^NuA"P"3@H@3@ "psNBNuAC C C C Cx Nu paA" 0A"P"0<NBA(0HNu     !"#$%&'()*+,-./0123 456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}NVH/4..,./NXO*@ f p)@8p`:-H-gJ4gHzHxp?p@?NAO -gHxB/NO Jjp`&n g// /NO .`~-Kp@Ѐe^.,Dl. O ",$.p@Ѐm*A`:HxpH?NA\O.p@Ѐm$(؄c. m.</pH?NA\O*@ g-M (Hļd ` H" KCAN-@" ." (JfJg,// /NO `// /NO Rg -M&n` l$g/ pI?NA\O`|/Hx / NO *@-M f// /NO K-H`J " // //@,N^O f,HxHzF/NFO UfR ."$ &@Jf .쐮 .J@gp` L,N^Nu "paL fNu o"BL Q Qp$ NuWWf S$ NuNVH!$*l0` mN*U fKT`,pUf -.Jg//-/-N0O *U f` l@XH/pA?NA\ONL l@)P@J@f~KH`JUg0-H/NbXORXM?NAXONBUJ@gp`pL$N^NuH./ p)@@Jk nf<~p&(fCp?/ p=?NAPO,-H`FCp?/ p=?NAPO,`0~p&fCBg/ p //o/@?<@NATO` )_H2/.?o ?A?<BNATO`?/H?<?/B?<BNA/@2/ ?ABo>BBg?Hx?<BNAO rJWD?A NAO p0LNu   /"_` "lLJj$AD)@@|ClApfp)@8pNB@N /Jkp)@@Npa// "QS@t `| SAgU@c дgSAW  _ $NuWRSC .RSC[1][Resource file error][ Quit ] (  R t  M(_form_do __main_set_butH|ton _main _get_butHton _test_diH,alog __FPCsavHe _deinitiH alise _form_ceH hnter @_cradd__dseek@_VDIif @_AESif $_chkufb_initialHise _memchrt_onexit _wind_seH t _wind_geH lt @__redirH|ect _objc_drH aw __exit_exit_setdesk__dwriteD__disattHy _handle_Hmenu _graf_moH use ___start__XCEXITn_handle_Hevents_menu_baH r _set_tedHinfo _get_tedH?@ABCDEFGHIJKLMNOP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG  *+,-/1 >?@ B DEFGHI  LOW  !"#$%&'(,*+@PQRSTUVW ()239<=?HP        @  @  /  END FOR IF REPEAT SELECT PRINT STATIC SUB GOTO TO GOSUB AS READ ERROR LINE INPUT RESTORE NEXT EXIT ELSE ON RETURN REMAINDER DATA DIM SHARED LET THEN STEP REM PUT GET STOP POKE ERASE OPTION BASE OPEN WHILE WEND CLOSE WRITE VARPTR CALL FIELD DEFINT DEFLNG DEFSNG DEFDBL DEFSTR AUTO ELSEIF LSET RSET DEF SEG VAL CINT CLNG CSNG CDBL COMMAND$ INKEY$ MID$ INSTR LBOUND UBOUND INPUT$ SPACE$ STR$ STRING$ RIGHT$ LEFT$ ABS PEEK INT FIX SGN FRE RND STRIG VARPTRS POINT HEX$ OCT$ BIN$ CURDIR$ ENVIRON$ RINSTR MIN MAX GETCOOKIE LPRINT CHAIN COMMON NAME SWAP CLS FILES RANDOMIZE RUN PALETTE WIDTH WINDOW REDIM PRESET PSET RESUME LIBRARY BREAK USING APPEND RANDOM OFF ACCESS KEY TAB SPC OUTPUT CONST COLOR LOCAL INCR DECR DO UNTIL CASE LOOP FUNCTION DECLARE CDECL ALIAS BYVAL IS PRESERVE INTIN INTOUT PTSIN PTSOUT CONTRL GB SYSTAB SQR EXP TAN FREEFILE ATN SIN COS LOG LOG10 LOG2 EOF CVI CVL CVS CVD LEN ASC MKI$ MKL$ MKS$ MKD$ UCASE$ LCASE$ SADD LOF CHR$ ERR ERL CSRLIN TIME$ DATE$ TIMER INP LOC LPOS POS PEEKB PEEKW PEEKL STICK FEXISTS FORMATI$ FORMATL$ FORMATS$ FORMATD$ LTRIM$ RTRIM$ SPEEKB SPEEKW SPEEKL VDISYS CIRCLE PCIRCLE ELLIPSE PELLIPSE SOUND BEEP RESET PCOPY SYSTEM TRON TROFF CLEAR GOTOXY OUT LOCATE WAVE SCREEN BLOAD BSAVE POKEB POKEW POKEL RMDIR MKDIR CHDIR KILL CALLS ENVIRON SPOKEB SPOKEW SPOKEL CLEARW FULLW LINEF MOUSE FILL GEMSYS CLOSEW OPENW BAR OR AND XOR EQV IMP MOD NOT SKIP AP_VERSION% AP_COUNT% AP_ID% AP_PRIVATE% AP_PTREE% MN_SELECTED% WM_REDRAW% WM_TOPPED% WM_CLOSED% WM_FULLED% WM_ARROWED% WM_HSLID% WM_VSLID% WM_SIZED% WM_MOVED% WM_UNTOPPED% WM_ONTOP% AC_OPEN% AC_CLOSE% AP_TERM% AP_APTFAIL% AP_RESCHG% SHUT_COMPLETED% RESCH_COMPLETED% AP_DRAGDROP% SH_WDRAW% CH_EXIT% OB_NEXT% OB_HEAD% OB_TAIL% OB_TYPE% OB_FLAGS% OB_STATE% OB_SPEC% OB_X% OB_Y% OB_WIDTH% OB_HEIGHT% TE_PTEXT% TE_PTMPLT% TE_PVALID% TE_FONT% TE_JUST% TE_COLOR% TE_THICKNESS% TE_TXTLEN% TE_TMPLEN% IB_PMASK% IB_PDATA% IB_PTEXT% IB_CHAR% IB_XCHAR% IB_YCHAR% IB_XICON% IB_YICON% IB_WICON% IB_HICON% IB_XTEXT% IB_YTEXT% IB_WTEXT% IB_HTEXT% BI_PDATA% BI_WB% BI_HL% BI_X% BI_Y% BI_COLOR% AB_CODE% AB_PARM% PB_TREE% PB_OBJ% PB_PREVSTATE% PB_CURRSTATE% PB_X% PB_Y% PB_W% PB_H% PB_XC% PB_YC% PB_WC% PB_HC% PB_PARM% G_BOX% G_TEXT% G_BOXTEXT% G_IMAGE% G_PROGDEF% G_IBOX% G_BUTTON% G_BOXCHAR% G_STRING% G_FTEXT% G_FBOXTEXT% G_ICON% G_TITLE% MASK_NONE% MASK_SELECTABLE% MASK_DEFAULT% MASK_EXIT% MASK_EDITABLE% MASK_RBUTTON% MASK_LASTOB% MASK_TOUCHEXIT% MASK_HIDETREE% MASK_INDIRECT% MASK_3D% FL3DIND% FL3DBACK% FL3DACT% MASK_NORMAL% MASK_SELECTED% MASK_CROSSED% MASK_CHECKED% MASK_DISABLED% MASK_OUTLINED% MASK_SHADOWED% WIN_NAME% WIN_CLOSE% WIN_FULL% WIN_MOVE% WIN_INFO% WIN_SIZE% WIN_UPARROW% WIN_DNARROW% WIN_VSLIDE% WIN_LFARROW% WIN_RTARROW% WIN_HSLIDE% WIN_ALL% WF_NAME% WF_INFO% WF_WORKXYWH% WF_CURRXYWH% WF_PREVXYWH% WF_FULLXYWH% WF_HSLIDE% WF_VSLIDE% WF_TOP% WF_FIRSTXYWH% WF_NEXTXYWH% WF_NEWDESK% WF_HSLIZE% WF_VSLSIZE% WF_SCREEN% WF_COLOR% WF_DCOLOR% WF_OWNER% WF_BEVENT% WF_BOTTOM% END_UPDATE% BEG_UPDATE% END_MCTRL% BEG_MCTRL% MU_KEYBD% MU_BUTTON% MU_M1% MU_M2% MU_MESAG% MU_TIMER% TYPE_TREE% TYPE_OBJECT% TYPE_STRING% OB_SIZEOF% FMD_START% FMD_GROW% FMD_SHRINK% FMD_FINISH% LK3DIND% LK3DACT% INDBUTCOL% ACTBUTCOL% BACKGRCOL% AD3DVALUE% MENU_REGISTER% INTERSECTION APPL_READ APPL_WRITE APPL_FIND% APPL_XFIND% APPL_TPLAY APPL_TRECORD% APPL_SEARCH% APPL_GETINFO% EVNT_KEYBD% EVNT_BUTTON% EVNT_MOUSE EVNT_MESAG EVNT_TIMER EVNT_MULTI% EVNT_DCLICK% MENU_BAR MENU_XBAR% MENU_ICHECK MENU_IENABLE MENU_TNORMAL MENU_TEXT MENU_POPUP% MENU_ATTACH% MENU_ISTART% MENU_SETTINGS OBJC_ADD% OBJC_DELETE% OBJC_DRAW% OBJC_FIND% OBJC_OFFSET% OBJC_ORDER% OBJC_EDIT% OBJC_CHANGE% OBJC_SYSVAR% FORM_DO% FORM_DIAL FORM_ALERT% FORM_ERROR% FORM_CENTER FORM_KEYBD% FORM_BUTTON% GRAF_RUBBERBOX GRAF_DRAGBOX GRAF_MOVEBOX GRAF_GROWBOX GRAF_SHRINKBOX GRAF_WATCHBOX% GRAF_SLIDEBOX% GRAF_HANDLE% GRAF_MOUSE GRAF_MKSTATE SCRP_READ% SCRP_WRITE% FSEL_INPUT FSEL_EXINPUT WIND_CREATE% WIND_OPEN% WIND_CLOSE% WIND_DELETE% WIND_GET% WIND_SET% WIND_FIND% WIND_UPDATE% WIND_CALC% WIND_NEW RSRC_LOAD% RSRC_FREE% RSRC_GADDR% RSRC_SADDR% RSRC_OBFIX RSRC_RCFIX SHEL_READ% SHEL_WRITE% SHEL_GET FNSHEL_GET% SHEL_PUT SHEL_FIND% SHEL_ENVRN GDOS% CHANGE_HANDLE CVHANDLE% RESOLUTION% V_OPNWK V_CLSWK V_OPNVWK V_CLSVWK V_CLRWK V_UPDWK VST_LOAD_FONTS% VST_UNLOAD_FONTS VS_CLIP V_PLINE V_PMARKER V_GTEXT V_FILLAREA V_CONTOURFILL VR_RECFL V_BAR V_ARC V_PIESLICE V_CIRCLE V_ELLARC V_ELLPIE V_ELLIPSE V_RBOX V_RFBOX V_JUSTIFIED VSWR_MODE VS_COLOR VSL_TYPE VSL_UDSTY VSL_WIDTH VSL_COLOR VSL_ENDS VSM_TYPE VSM_HEIGHT VSM_COLOR VST_HEIGHT VST_POINT VST_ROTATION VST_FONT VST_COLOR VST_EFFECTS VST_ALIGNMENT VSF_INTERIOR VSF_STYLE VSF_COLOR VSF_PERIMETER VSF_UPDAT VRO_CPYFM VRT_CPYFM VR_TRNFM V_GET_PIXEL VSC_FORM V_SHOW_C V_HIDE_C VQ_MOUSE VQ_KEY_S VQ_EXTND VQ_COLOR VQL_ATTRIBUTES VQM_ATTRIBUTES VQF_ATTRIBUTES VQT_ATTRIBUTES VQT_EXTENT VQT_WIDTH VQT_NAME% VQT_FONTINFO VQ_CURADDRESS PTERM0 CCONIN& CCONOUT CAUXIN% CAUXOUT% CPRNOUT% CRAWIO% CRAWIO_& CRAWCIN% CRAWCIN_& CNECIN% CNECIN_& CCONWS CCONRS CCONIS% DSETDRV% CCONOS% CPRNOS% CAUXIS% CAUXOS% MADDALT& DGETDRV% FSETDTA SUPER& TGETDATE% TSETDATE TGETTIME% TSETTIME FGETDTA& SVERSION% PTERMRES DFREE DCREATE% DDELETE% DSETPATH% FCREATE% FOPEN% FCLOSE% FREAD& FWRITE& FDELETE% FSEEK& FATTRIB% MXALLOC& FDUP% FFORCE DGETPATH MALLOC& MFREE% MSHRINK% PEXEC& PTERM FSFIRST% FSNEXT% FRENAME% FDATIME INITMOUS SSBRK PHYSBASE& LOGBASE& GETREZ% SETSCREEN SETPALETTE SETCOLOR% FLOPRD% FLOPWR% FLOPFMT% MIDIWS MFPINT IOREC& RSCONF& KEYTBL& RANDOM& PROTOBT FLOPVER% SCRDMP% CURSCONF% SETTIME GETTIME& BIOSKEYS IKBDWS JDISINT JENABINT GIACCESS% OFFGIBIT ONGIBIT XBTIMER DOSOUND& SETPRT% KBDVBASE& KBRATE% PRTBLK VSYNC SUPEXEC PUNTAES FLOPRATE% BCONMAP& DMAREAD& DMAWRITE& NVMACCESS% BLITMODE% ESETSHIFT% EGETSHIFT% ESETBANK% ESETCOLOR% ESETPALETTE EGETPALETTE ESETGRAY% ESETSMEAR% JUNK% TREE& OBJECTADDR& OBJECT% SELECTTREEADDR T& SELECTTREE TREENO% FORMADDR& GETOB_HEAD% GETOB_TAIL% GETOB_SPEC& GETOB_STATE% GETOB_FLAGS% GETOB_TYPE% GETOB_NEXT% GETOB_X% GETOB_Y% GETOB_WIDTH% GETOB_HEIGHT% SETOB_STATE VALUE% SETOB_FLAGS SETOB_X SETOB_Y SETOB_WIDTH SETOB_HEIGHT SETOB_SPEC SPEC& EXCLOB_STATE FLAG_MASK% INCLOB_STATE CUROB_STATE% EXCLOB_FLAGS INCLOB_FLAGS CUROB_FLAGS% SETTE_PTEXT NEWTED$ CHARS% I% GETTE_PTEXT$ A$ GETOB_SPEC$ SETOB_SPEC_STR SPEC$ CONVERTALT% SCANCODE% A& RES% BUSYBEE BUSY% INITMENUSYSTEM TREENUMBER% EXITITEM% CLOSEALLIMAGES INITRESOURCEFILE NAME$ RESOURCE_LOADED% BYTE_ALIGN% X% SUPRESS_BYTE_ALIGN% WHICHWINDOW% AESHANDLE% WOHANDLE%( HOWMANYWINDOWS% ISMYWINDOW% WINDOWHANDLE% WINDOWMESSAGE CLOSEAWINDOW PROCESSUSERMENUS WIND% ITEM% TITLE% DO_MESSAGE CUR_FRONT% MESSAGETYPE% EXIT_ITEM% FINISHED_FLAG% MENUTREE& MESS%( CREATESHORTCUT% PROCESSCLICKS CLICKS% KSTATE% Y% PROCESSKEYS ASCII$ SCAN_CODE% HGTLOOP EV% KEY_PRESSED% CLICKS_ENABLED% KEYS_ENABLED% MENUS_ENABLED% STARTPROGRAM RESOURCEFILE$ WINDX% WINDY% WINDW% WINDH% STOPPROGRAM IMAGES_USED% ABORTPROGRAM DEBUG T! AES_VERSION% =` 1??1NN1]]`dd`kk1zz`````111`aa`ll1ww`1111```1```;;`RR`ee`tt````1``  1$$`??`RR1mm1111`  ``221==1PP`WW`^^1mm1`````````//122`99`<<`KK`ZZ1ee1ll`ww`1`1`1`1``1  11  111`111## 1.. 1==1HH 1WW1jj1}}11111111))1DD1KK1^^1ee1ll1ss1zz1111111111111111 1   1$$ 1//1BB1II 1PP1SS1bb1ii1tt 1 1 1 1 1 1 1`1  10_0__  _  _  _  _  _  _  _ " "1 ) )1 0 0 _ 3 3_ : :_ = =_ @ @_ C C_ F F_ Q Q_ T T0 [ [_ b b_ e e0 l l_ o o0 v v_ y y` | |0 1 ` ` ` ` ` _ _ _ ` _ `  _  _  0 $ $0 / /_ 6 6_ = =` H H` [ [0 b b` m m_ p p` { {0 0 0 _ _ _ 0 1 _ `  ` `  1 * *0 5 5_ < <_ W W_ f f_ i i0 | |` _ _ 0 _ 0 1 0 0 _ 0 0 0 _ _  _  _  0  0  0 $ $0 ' '_ 2 2_ 9 9_ L L_ _ _` r r_ y y_ _ _ _ 0 0 _ _ _ 0 0 _ _ _ _ _ _  _ _  _  _ _ ' '0 2 20 = =0 H H0 S S0 ^ ^0 i i0 t t0  0 _ 0 0 _ 0 _ _ 0_!0((0330660=A_HL_S__ff0ii0pp00_00  0  0 0$0++02:_==.PRG   /`, ew+t, V Ii#*PR  z >y@cmOD|bCSQu%Z M%x%F_ia  m o l1,C ap~ =?;)s:g fE<Z= #P@d\7?(d|G2  .}VY0"g{[6/V .A&!h7 t#!Fr^X9G)>S:& TZ0b3{qj )  kK1  ck&5O48 f 8eFy0r8 *]z Nq{2f ;L Jn'`K $ $^ vgH uW'G<CyU_n[UId(W~-QE " -mB-rx} ulT7w J/Q'M}p[P 4=b~B\4wo]hMK 3 ER2WXi3O^]B @+p"R  zD aj  < o  (H NvA+;nT q  ` 91X DS> .Jj9Lhc 5$Y   5kx *U l ?6:v6 Y IA eL!\| ts sNH_%.  ..  TWDM T  SHELL BAS  HGT1 BAS  \HGT1 RSC  SHELL HRD  USHELL RSC  RSHELL BH  HGT1 HRD # HGT1 BH % nTWDM BAS ( | .`Z$D:\HGT\TOOLBOX.BAS 1GVU# ]D:\HGT\GEMAES.BHBGUGUABAB_  0/)00//)0// )// )/0 #)// ")// !)// )// )// $)// %)// &)// ')0/i ")00/i !)00/i $)00/i %)00/i &)00/i ')00/j #)00// "i/)00// "i/)0// ")0// !i/)00// !i/)0// !)0/// / 0 (*2hh:h)0//0 (O. #.P)//O. #.P)0//*2hh:h)0//   .0 c +azD a A)0/+D<)+)0000/B+D$[3][Resource file not found][ Quit ]])+ )0/B+D )/BB/+DO+D)+)/)0000//B+D+D;0)+-+D <)+  <)-)000  0 //  B  S + D+D+ D<+D#  )+)+\D#  )+)++ D)++ D+D)+)+)00/B=+D+D)+)00/B/+DT+DI )00/)00//*2bh:*)0//0 )D:\HGT\WINDOW.BAS !"#$%&'()/ !"#$%&'()+)(D <)/01234///"#5B67B89:B;<=+6DT>+7DT?;0)+5OS 55N501558293:4;*<=/"#" " # #  "#"#/)@A0//BC5BBDEB89:B;<=FF+FD+ED+AD;0)++DD+@D;0)+q:F*BF2BB 8B8B 9B9B :B:B ;B;B <B<B =B=B :B55+5DQ5)+)+)00GHIJK//BCLBM+ID+IKDJK<L cJJL cI K +JDJL cKKL cI +KDK)+ HCBMKCCC BMJCCC)+)0NO/+ODN<Nc cO )+)0PH/BFQRMBSTB9<=/UVF+FDMq9FMUVVV T TUU S S+HD<FNQ U<=FNR V)+W)+)00XY/B<=ST9BMFQR/UVZ[F+FDUVVV T TUU S SZ<F[=F-Y[[ V[[ V[[ T[[ TZZ UZZ UZZ SZZ S)-Mq9F<FZQ U  S  S=F[R V  T  TW)+)00\0//]5]]0)00^UV// !_`BabcdMB8 !O !+UV !abcdD/_a c `b d  ab_`ab_`+DMq8e)+)+ !P)00W//UVUV^UV)00fUV/B;ghi<=/UV+D;0+;.D;0gh < i = )00e/BMFQRB9<=;/UVBMFM+FD;0MUVq9F+;F.D;0GQ<FUGR=FV)00jkl0m/B;/+;.Dj)00n/B;/+;.Dj)00/Bo/UVpqrp-p^ mnfe f UV+UVDf<UVfUV)+eP P X)-)00>/BSToB8<=:B;s9B67+0D7<778797:7;7<7=7s7STo/0  6 )00?//H[3][There are no more|windows available.| |Please close a window.][ OK ])0D:\HGT\TEXTWIND.BAS0tuv/Bwxyz{|B}~}uz} {} vw xy,~| )00/BzySTsBFQRQy SRzsF T)00/BMSTBz{sBwy<=/UVZBM+D;0MUVs+wDZ   UU Z Z)+= TV T+ zDz < S*B2 T+D+D{+<Dh )+<h{ )+<{)+:B)00/BFs{~z/BC*B2 +sBsFDsB:B~*BsF 2~zB zB*C2k{{B C{BC:C:BsF)001//B;s~}/01zzz+D~+~}D~ <;,s~ )+)+)0/B{/ N*84O78{PQ)00/Bx/BB*2h+ DB  x  x  m BB< #B)+:)0D:\HGT\DIALOG.BAS/i0 j0 4/0 )//)//UVUVUV U  V UV UV U  V UVUV+ZDp)+)0/hn)0/a)0//+Dp<p)+)0//p)D:\HGT\MENU.BAS0/B+D<)+)00/B/B+D;0+p Dq +D;0*B2B+ D+pBDB;0)+)+:Bh p-  ^  @)-)00/B)00/BB/HelpbUndoaBSDelSEscInsRHomeGClrG7Tab *2 F # 0:  # F # 0S  :-U\T)-+gD;)0/B/*2+ D ;)+:)0/B )0 ?N]dkzalw;Ret $?Rm 2=PW^m/29<KZelw#.=HWj})DK^elsz $/BIPSbit        " ) 0 3 : = @ C F Q T [ b e l o v y |    $ / 6 = H [ b m p {   * 5 < W f i |      $ ' 2 9 L _ r y    ' 2 = H S ^ i t !36AL_p$+:=pR GR 6MYg)L AX          \  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG  *+,-/1 >?@ B DEFGHI  LOW  !"#$%&'(,*+@PQRSTUVW ()239<=?HP        @  @  /  d.END FOR IF REPEAT SELECT PRINT STATIC SUB GOTO TO GOSUB AS READ ERROR LINE INPUT RESTORE NEXT EXIT ELSE ON RETURN REMAINDER DATA DIM SHARED LET THEN STEP REM PUT GET STOP POKE ERASE OPTION BASE OPEN WHILE WEND CLOSE WRITE VARPTR CALL FIELD DEFINT DEFLNG DEFSNG DEFDBL DEFSTR AUTO ELSEIF LSET RSET DEF SEG VAL CINT CLNG CSNG CDBL COMMAND$ INKEY$ MID$ INSTR LBOUND UBOUND INPUT$ SPACE$ STR$ STRING$ RIGHT$ LEFT$ ABS PEEK INT FIX SGN FRE RND STRIG VARPTRS POINT HEX$ OCT$ BIN$ CURDIR$ ENVIRON$ RINSTR MIN MAX GETCOOKIE LPRINT CHAIN COMMON NAME SWAP CLS FILES RANDOMIZE RUN PALETTE WIDTH WINDOW REDIM PRESET PSET RESUME LIBRARY BREAK USING APPEND RANDOM OFF ACCESS KEY TAB SPC OUTPUT CONST COLOR LOCAL INCR DECR DO UNTIL CASE LOOP FUNCTION DECLARE CDECL ALIAS BYVAL IS PRESERVE INTIN INTOUT PTSIN PTSOUT CONTRL GB SYSTAB SQR EXP TAN FREEFILE ATN SIN COS LOG LOG10 LOG2 EOF CVI CVL CVS CVD LEN ASC MKI$ MKL$ MKS$ MKD$ UCASE$ LCASE$ SADD LOF CHR$ ERR ERL CSRLIN TIME$ DATE$ TIMER INP LOC LPOS POS PEEKB PEEKW PEEKL STICK FEXISTS FORMATI$ FORMATL$ FORMATS$ FORMATD$ LTRIM$ RTRIM$ SPEEKB SPEEKW SPEEKL VDISYS CIRCLE PCIRCLE ELLIPSE PELLIPSE SOUND BEEP RESET PCOPY SYSTEM TRON TROFF CLEAR GOTOXY OUT LOCATE WAVE SCREEN BLOAD BSAVE POKEB POKEW POKEL RMDIR MKDIR CHDIR KILL CALLS ENVIRON SPOKEB SPOKEW SPOKEL CLEARW FULLW LINEF MOUSE FILL GEMSYS CLOSEW OPENW BAR OR AND XOR EQV IMP MOD NOT SKIP AP_VERSION% AP_COUNT% AP_ID% AP_PRIVATE% AP_PTREE% MN_SELECTED% WM_REDRAW% WM_TOPPED% WM_CLOSED% WM_FULLED% WM_ARROWED% WM_HSLID% WM_VSLID% WM_SIZED% WM_MOVED% WM_UNTOPPED% WM_ONTOP% AC_OPEN% AC_CLOSE% AP_TERM% AP_APTFAIL% AP_RESCHG% SHUT_COMPLETED% RESCH_COMPLETED% AP_DRAGDROP% SH_WDRAW% CH_EXIT% OB_NEXT% OB_HEAD% OB_TAIL% OB_TYPE% OB_FLAGS% OB_STATE% OB_SPEC% OB_X% OB_Y% OB_WIDTH% OB_HEIGHT% TE_PTEXT% TE_PTMPLT% TE_PVALID% TE_FONT% TE_JUST% TE_COLOR% TE_THICKNESS% TE_TXTLEN% TE_TMPLEN% IB_PMASK% IB_PDATA% IB_PTEXT% IB_CHAR% IB_XCHAR% IB_YCHAR% IB_XICON% IB_YICON% IB_WICON% IB_HICON% IB_XTEXT% IB_YTEXT% IB_WTEXT% IB_HTEXT% BI_PDATA% BI_WB% BI_HL% BI_X% BI_Y% BI_COLOR% AB_CODE% AB_PARM% PB_TREE% PB_OBJ% PB_PREVSTATE% PB_CURRSTATE% PB_X% PB_Y% PB_W% PB_H% PB_XC% PB_YC% PB_WC% PB_HC% PB_PARM% G_BOX% G_TEXT% G_BOXTEXT% G_IMAGE% G_PROGDEF% G_IBOX% G_BUTTON% G_BOXCHAR% G_STRING% G_FTEXT% G_FBOXTEXT% G_ICON% G_TITLE% MASK_NONE% MASK_SELECTABLE% MASK_DEFAULT% MASK_EXIT% MASK_EDITABLE% MASK_RBUTTON% MASK_LASTOB% MASK_TOUCHEXIT% MASK_HIDETREE% MASK_INDIRECT% MASK_3D% FL3DIND% FL3DBACK% FL3DACT% MASK_NORMAL% MASK_SELECTED% MASK_CROSSED% MASK_CHECKED% MASK_DISABLED% MASK_OUTLINED% MASK_SHADOWED% WIN_NAME% WIN_CLOSE% WIN_FULL% WIN_MOVE% WIN_INFO% WIN_SIZE% WIN_UPARROW% WIN_DNARROW% WIN_VSLIDE% WIN_LFARROW% WIN_RTARROW% WIN_HSLIDE% WIN_ALL% WF_NAME% WF_INFO% WF_WORKXYWH% WF_CURRXYWH% WF_PREVXYWH% WF_FULLXYWH% WF_HSLIDE% WF_VSLIDE% WF_TOP% WF_FIRSTXYWH% WF_NEXTXYWH% WF_NEWDESK% WF_HSLIZE% WF_VSLSIZE% WF_SCREEN% WF_COLOR% WF_DCOLOR% WF_OWNER% WF_BEVENT% WF_BOTTOM% END_UPDATE% BEG_UPDATE% END_MCTRL% BEG_MCTRL% MU_KEYBD% MU_BUTTON% MU_M1% MU_M2% MU_MESAG% MU_TIMER% TYPE_TREE% TYPE_OBJECT% TYPE_STRING% OB_SIZEOF% FMD_START% FMD_GROW% FMD_SHRINK% FMD_FINISH% LK3DIND% LK3DACT% INDBUTCOL% ACTBUTCOL% BACKGRCOL% AD3DVALUE% MENU_REGISTER% INTERSECTION APPL_READ APPL_WRITE APPL_FIND% APPL_XFIND% APPL_TPLAY APPL_TRECORD% APPL_SEARCH% APPL_GETINFO% EVNT_KEYBD% EVNT_BUTTON% EVNT_MOUSE EVNT_MESAG EVNT_TIMER EVNT_MULTI% EVNT_DCLICK% MENU_BAR MENU_XBAR% MENU_ICHECK MENU_IENABLE MENU_TNORMAL MENU_TEXT MENU_POPUP% MENU_ATTACH% MENU_ISTART% MENU_SETTINGS OBJC_ADD% OBJC_DELETE% OBJC_DRAW% OBJC_FIND% OBJC_OFFSET% OBJC_ORDER% OBJC_EDIT% OBJC_CHANGE% OBJC_SYSVAR% FORM_DO% FORM_DIAL FORM_ALERT% FORM_ERROR% FORM_CENTER FORM_KEYBD% FORM_BUTTON% GRAF_RUBBERBOX GRAF_DRAGBOX GRAF_MOVEBOX GRAF_GROWBOX GRAF_SHRINKBOX GRAF_WATCHBOX% GRAF_SLIDEBOX% GRAF_HANDLE% GRAF_MOUSE GRAF_MKSTATE SCRP_READ% SCRP_WRITE% FSEL_INPUT FSEL_EXINPUT WIND_CREATE% WIND_OPEN% WIND_CLOSE% WIND_DELETE% WIND_GET% WIND_SET% WIND_FIND% WIND_UPDATE% WIND_CALC% WIND_NEW RSRC_LOAD% RSRC_FREE% RSRC_GADDR% RSRC_SADDR% RSRC_OBFIX RSRC_RCFIX SHEL_READ% SHEL_WRITE% SHEL_GET FNSHEL_GET% SHEL_PUT SHEL_FIND% SHEL_ENVRN GDOS% CHANGE_HANDLE CVHANDLE% RESOLUTION% V_OPNWK V_CLSWK V_OPNVWK V_CLSVWK V_CLRWK V_UPDWK VST_LOAD_FONTS% VST_UNLOAD_FONTS VS_CLIP V_PLINE V_PMARKER V_GTEXT V_FILLAREA V_CONTOURFILL VR_RECFL V_BAR V_ARC V_PIESLICE V_CIRCLE V_ELLARC V_ELLPIE V_ELLIPSE V_RBOX V_RFBOX V_JUSTIFIED VSWR_MODE VS_COLOR VSL_TYPE VSL_UDSTY VSL_WIDTH VSL_COLOR VSL_ENDS VSM_TYPE VSM_HEIGHT VSM_COLOR VST_HEIGHT VST_POINT VST_ROTATION VST_FONT VST_COLOR VST_EFFECTS VST_ALIGNMENT VSF_INTERIOR VSF_STYLE VSF_COLOR VSF_PERIMETER VSF_UPDAT VRO_CPYFM VRT_CPYFM VR_TRNFM V_GET_PIXEL VSC_FORM V_SHOW_C V_HIDE_C VQ_MOUSE VQ_KEY_S VQ_EXTND VQ_COLOR VQL_ATTRIBUTES VQM_ATTRIBUTES VQF_ATTRIBUTES VQT_ATTRIBUTES VQT_EXTENT VQT_WIDTH VQT_NAME% VQT_FONTINFO VQ_CURADDRESS PTERM0 CCONIN& CCONOUT CAUXIN% CAUXOUT% CPRNOUT% CRAWIO% CRAWIO_& CRAWCIN% CRAWCIN_& CNECIN% CNECIN_& CCONWS CCONRS CCONIS% DSETDRV% CCONOS% CPRNOS% CAUXIS% CAUXOS% MADDALT& DGETDRV% FSETDTA SUPER& TGETDATE% TSETDATE TGETTIME% TSETTIME FGETDTA& SVERSION% PTERMRES DFREE DCREATE% DDELETE% DSETPATH% FCREATE% FOPEN% FCLOSE% FREAD& FWRITE& FDELETE% FSEEK& FATTRIB% MXALLOC& FDUP% FFORCE DGETPATH MALLOC& MFREE% MSHRINK% PEXEC& PTERM FSFIRST% FSNEXT% FRENAME% FDATIME INITMOUS SSBRK PHYSBASE& LOGBASE& GETREZ% SETSCREEN SETPALETTE SETCOLOR% FLOPRD% FLOPWR% FLOPFMT% MIDIWS MFPINT IOREC& RSCONF& KEYTBL& RANDOM& PROTOBT FLOPVER% SCRDMP% CURSCONF% SETTIME GETTIME& BIOSKEYS IKBDWS JDISINT JENABINT GIACCESS% OFFGIBIT ONGIBIT XBTIMER DOSOUND& SETPRT% KBDVBASE& KBRATE% PRTBLK VSYNC SUPEXEC PUNTAES FLOPRATE% BCONMAP& DMAREAD& DMAWRITE& NVMACCESS% BLITMODE% ESETSHIFT% EGETSHIFT% ESETBANK% ESETCOLOR% ESETPALETTE EGETPALETTE ESETGRAY% ESETSMEAR% JUNK% TREE& OBJECTADDR& OBJECT% SELECTTREEADDR T& SELECTTREE TREENO% FORMADDR& GETOB_HEAD% GETOB_TAIL% GETOB_SPEC& GETOB_STATE% GETOB_FLAGS% GETOB_TYPE% GETOB_NEXT% GETOB_X% GETOB_Y% GETOB_WIDTH% GETOB_HEIGHT% SETOB_STATE VALUE% SETOB_FLAGS SETOB_X SETOB_Y SETOB_WIDTH SETOB_HEIGHT SETOB_SPEC SPEC& EXCLOB_STATE FLAG_MASK% INCLOB_STATE CUROB_STATE% EXCLOB_FLAGS INCLOB_FLAGS CUROB_FLAGS% SETTE_PTEXT NEWTED$ CHARS% I% GETTE_PTEXT$ A$ GETOB_SPEC$ SETOB_SPEC_STR SPEC$ CONVERTALT% SCANCODE% A& RES% BUSYBEE BUSY% INITMENUSYSTEM TREENUMBER% EXITITEM% CLOSEALLIMAGES INITRESOURCEFILE NAME$ RESOURCE_LOADED% BYTE_ALIGN% X% SUPRESS_BYTE_ALIGN% WHICHWINDOW% AESHANDLE% WOHANDLE%( HOWMANYWINDOWS% ISMYWINDOW% WINDOWHANDLE% WINDOWMESSAGE CLOSEAWINDOW PROCESSUSERMENUS WIND% ITEM% TITLE% DO_MESSAGE CUR_FRONT% MESSAGETYPE% EXIT_ITEM% FINISHED_FLAG% MENUTREE& MESS%( CREATESHORTCUT% PROCESSCLICKS CLICKS% KSTATE% Y% PROCESSKEYS ASCII$ SCAN_CODE% HGTLOOP EV% KEY_PRESSED% CLICKS_ENABLED% KEYS_ENABLED% MENUS_ENABLED% STARTPROGRAM RESOURCEFILE$ WINDX% WINDY% WINDW% WINDH% STOPPROGRAM IMAGES_USED% ABORTPROGRAM DEBUG T! AES_VERSION% MYINTERSECTION% X1% Y1% W1% H1% X2% Y2% W2% H2% OUTX% OUTY% OUTW% OUTH% WOTSIMPLE% WOTOBJECT% WOTTEXT% WOTIMAGE% WOTFORM% OPENAWINDOW% WINDOWNAME$ WINDCOMP% PROCADDR& SLIDERMAXADDR& CLOSEPROC& ID% WINDOWSINITIALISED% MAX_WINDOWS% WOREDRAW&( WOSLIDERMAX&( WOCLOSE&( WOTYPE%( WOOFFX%( WOOFFY%( INITWINDOWSYSTEM NOMOREWINDOWS USERCLOSE% FORMCLOSE% J% K% USERCLOSE_ENABLED% FORMWINDOWSINITIALISED% COMMONI% ONESLIDER HORIZONTAL% TOTALSIZE% CURPOS% SIZE% TEMP& COMMONHANDLE% GETOFFSET% TOTALHEIGHT% WINDOWSLID COMMONMAXX% COMMONMAXY% CELLX% CELLY% W% H% FULLREDRAW WINDOWARROWED WHICH% NEWX% NEWY% RENAMEWINDOW BASICHANDLE% REDRAW XVDI% YVDI% COMMONX% COMMONY% COMMONW% COMMONH% UPDATESLIDERS CHANGEWINDOW WOOBJECTTREE&( WOBASEX%( WOBASEY%( DO_CURSOR WIN_HANDLE% MODE% TOPAWINDOW UNTOPAWINDOW MYAP_ID% MES_TYPE% TMP% ALIGN% WOTINDEX%( INITTEXTWINDOWS MAXFILES% MAXLINES% ALIGNTEXT% TABSIZE% MAXTEXTWIDTH% WOLINES%( LINES$( TEXTWINDOWSINITIALISED% MAXTEXTWINDOWS% TEXTWINDOWS% TEXTSLIDERMAX TEXTREDRAW EXPANDTABSFLAG% CURLINE% LINEBUF$ LINESTODO% FILE% MARGIN% EXPANDTABS TEXTCLOSE OPENTEXTWINDOW% LOADTEXTFILE INDEX% LINES% TEMPCH% SCE$ DEST$ CH% NEWJ% NEWFORM_ALERTADDR% BUTTON% ADDR& NEWFORM_ALERT% NUM% ALERTADDR& HANDLEDIALOG% EDITNUM% BUT% SETTEDNUMBER VALUE# GETTEDNUMBER# SETBUTTON PARENT% B% GETBUTTON% MAXSHORTCUT% RECORD A% C% O% T% SCSHORTCUTS% SCASCII%( SCCH%( SCOBJ%( SCTITLE%( CONSIDERSTRING OBJ% ST$ SCSPECVAL%( SCSPEC$( SCSPCOUNT% L% MODIFIER% RECORDSPECIAL SCANMENU OLDTREE& TYP% ALTCODE% ` 1??1NN1]]`dd`kk1zz``P```111`aa`ll1ww`1111```1```;;`RR`ee`tt````1``  1$$`??`RR1mm1111`  ``221==1PP`WW`^^1mm1`````````//122`99`<<`KK`ZZ1ee1ll`ww`1`1`1`1``1  11  111`111## 1.. 1==1HH 1WW1jj1}}11111111))1DD1KK1^^1ee1ll1ss1zz1111111111111111 1   1$$ 1//1BB1II 1PP1SS1bb1ii1tt 1 1 1 1 1 1 1`1  10_0__  _  _  _  _  _  _  _ " "1 ) )1 0 0 _ 3 3_ : :_ = =_ @ @_ C C_ F F_ Q Q_ T T0 [ [_ b b_ e e0 l l_ o o0 v v_ y y` | |0 1 k` ` ` ` ` _ _ _ ` _ `  _  _  0 $ $0 / /_ 6 6_ = =` H H` [ [0 b b` m m_ p p` { {0 0 0 _ _ _ 0 1 _ `  ` `  1 * *0 5 5_ < <_ W W_ f f_ i i0 | |` _ _ 0 _ 0 1 0 0 _ 0 0 0 _ _  _  _  0  0  0 $ $0 ' '_ 2 2_ 9 9_ L L_ _ _` r r_ y y_ _ _ _ 0 0 _ _ _ 0 0 _ _ _ _ _ _  _ _  _  _ _ ' '0 2 20 = =0 H H0 S S0 ^ ^0 i i0 t t0  0 _ 0 0 _ 0 _ _ 0_!0((0330660=A_HL_S__ff0ii0pp00_00  0  0 0$0++02:_==_pp !"#$%&'()_01234"#56789:;<=__0 BC5DE89:;<=F03GHIJKBCLM_RRO0aHFQRMST9<=UV0Y<=ST9MFQRUVZ[00]06UV !_`abcdM80=MUV0dUV;ghi<=0MFQR9<=;UV0kl0;0;0oUVpqr0RSTo8<=:;s9670UY0duvwxyz{|}~0zMySTsFQR0MSTz{swy<=UVZB0 )Fs{~zBC_4L01;s~}0[g{0rxB___UV0_0_00!AB0LX0[_0.PRG  % /`4, ewR+tQ, vVSIi#*PR |z 8>y@cZmOkD|bCSQu%.Z OM%x%F_ia- x m moM(l1Y,J CKapl~ = I?b;)s:g f?E<Z= #P@d\7?(d|G2#C ."}DnVsY0"\g{hf[6/V,.A&!Bh7  tA#!/Fr^X'{X9G)[ >S:& TZ0b3{qj )uc kK1* ck&5Oi048af 8eFy0r8 *]zNq{y2f ;VL Jn' P U`K $ !$^ dvgH uW'G<pCyU_n[UId(W~-:QE "G-mB-rx}q ulT7w7J/Q'M}@p[oFP 4=b~B\4w2o]h3NMK93 ER2W;wXi3O^]B @+p"HR  zD aj <j o  (W5H $ENLvA+;nT q  `^91X DS>1 .rJj9Lhzcg= 56$_T+Y   5kx~  *e U >l  ?`6&:v6 )Y I A]eL!\<}|t ts sNH_%REM The Shell program referred to in the REM HiSoft BASIC 2 tutorial. REM Needs the HGT.T pre-tokenised file (from the HGT folder) REM and its own .BH and .RSC files. REM $option k150,y REM $include shell.bh SUB ProcessUserMenus(VAL cur_front,VAL item,VAL title) SHARED texth,wolines(1),lines$(2),TextWindows,ImageWindows STATIC i,fi$,temp,id,curline$,Comm SELECT CASE item CASE MeAboutShell: junk=NewForm_Alert(AboutAlert,1) CASE MeShowTextFi: fi$=FileSelect$ IF fi$<>"" THEN LoadTextFile fi$,TextWindows,wolines(TextWindows) texth=OpenTextWindow(fi$,win_all-win_info) END IF CASE MeShowImageF: fi$=FileSelect$ IF fi$<>"" THEN LoadPicture fi$,imagewindows texth=OpenImageWindow(fi$,win_all-win_info) END IF CASE MeRunProgram: fi$=FileSelect$ IF fi$<>"" THEN Execute fi$,curline$ CASE MeSetCommandL: SelectTree CLine Sette_ptext Clcommandline,curline$ Comm=HandleDialog(CLcommandline) SELECT CASE Comm CASE ClOK: curline$=Gette_ptext$(CLcommandline) END SELECT END SELECT END SUB StartProgram "SHELL.RSC",MENU1,MEQUIT InitTextWindows 2,1500 DIM images(2,fd_size) expandtabsflag=-1 HGTloop StopProgramJ' Your first HGT program ' Displays a window with a text file and menu ' Needs the TWDM.T tokenised file and its own ' .BH and .RSC files. REM $option y,l10 ' Get the resource file header REM $include HGT1.BH CONST maxlines=200 ' The heart of the program. Handles all menu ' interaction. SUB ProcessUserMenus(VAL wind, VAL item, VAL title) SHARED Finished_Flag,MyWindow,wolines(1),whandle STATIC dum SELECT CASE item CASE menu_about SelectTree about dum=HandleDialog(0) CASE menu_quit SelectTree quit dum=HandleDialog(0) IF dum=qu_ok THEN Finished_Flag=-1 ELSE Finished_Flag=0 CASE menu_load SelectTree load dum=HandleDialog(0) IF dum=load_ok THEN LoadTextFile "HGT1.BAS",MyWindow,wolines(MyWindow) FullRedraw whandle END IF  END SELECT END SUB ' Initialisation. StartProgram "HGT1.RSC",menu1,-1 InitTextWindows 1,maxlines MyWindow=TextWindows whandle=OpenTextWindow("Your first GEM program",win_all-win_info) ' The main toolbox loop HGTLoop StopProgram X>>>$>OKYour first HGT programOKCancelQuit - are you sure? Desk File About A-123456 Quit Q Load LLoad some text?OKCancel'>?J_`  $  @C      a h o z        "% >  0 MENU10 ME0ME0MEDesk0MEFile0MERun0MEAboutShell0 ME10 ME20 ME30 ME40ME50ME60MEQuit0MEShowImageF0MEShowTextFi0MERunProgram0MESetCommandL0CLine0CL0CLCommandLine0CLOK0CLCancel0AboutAlert /$JR Desk File Run About Shell-123456 Quit Q Show Image File I Show Text File T - Run Program X Set Command Line C@ Command Line: _ XOKCancel[0][This is an example |Shell written using |HiSoft GEM Toolbox ][ OK ]B6 /   $ + 2   8 F [ ] _aceg| :.8) %;  CONST menu1%= 0 CONST me%= 0 CONST medesk%= 3 CONST mefile%= 4 CONST merun%= 5 CONST meaboutshell%= 8 CONST me1%= 10 CONST me2%= 11 CONST me3%= 12 CONST me4%= 13 CONST me5%= 14 CONST me6%= 15 CONST mequit%= 17 CONST meshowimagef%= 18 CONST meshowtextfi%= 19 CONST merunprogram%= 22 CONST mesetcommandl%= 23 CONST cline%= 1 CONST clcommandline%= 1 CONST clok%= 2 CONST clcancel%= 3 CONST aboutalert%= 0  Le aboutLab_okLab_textLquitLqu_okLqu_cancelLqu_textLmenu1Lmenu_aboutLmenu_quitLmenu_loadLloadLload_textLload_okLload_cancelԆ CONST about%= 0 CONST ab_ok%= 1 CONST ab_text%= 2 CONST quit%= 1 CONST qu_ok%= 1 CONST qu_cancel%= 2 CONST qu_text%= 3 CONST menu1%= 2 CONST menu_about%= 7 CONST menu_quit%= 16 CONST menu_load%= 17 CONST load%= 3 CONST load_text%= 1 CONST load_ok%= 2 CONST load_cancel%= 3 REM $include toolbox.bas REM $include window.bas REM $include textwind.bas REM $include dialog.bas REM $include menu.bas J.  ..  BIOS BIN - GEMAES BIN / GEMDOS BIN 2 GEMVDI BIN 4 HBASLIB BIN 7 B&STESOUNDBIN < XBIOS BIN @ LIBDEMO S C LIBRARY H E $MENU BIN H (GEMAES BH K ) FALCON BIN M ,5MINT BIN P .SPEEDO BIN R / !BIOSTEXTCODEmem_copy get_arraygetmpbrwabssetexc blockmove0 _BCONSTAT%  _BCONIN&  _BCONOUT% _%_& _TICKCAL%  _GETBPB&  _BCOSTAT%  _MEDIACH%  _DRVMAP% _KBSHIFT% 0 opa*+/ BgNM\Nu /0@g$/?/?Nu?/??///?/?<NMO>Nu/Nup`p(`p` p `p!`p-+o`r'` rs`r`rN;o`r `r /H@+@+o`JApapGa*+`(r0`rFApaa$`p,;o +oa*+A r`pOa*+`LpMa*+`Dp6+oa*+`6A paPpla*+`&Apa@pa*+`p;o"/HA+Aa*+Ar`&AEp"`4Qph"/`C2QNu>E"`2QNuA@p a+o /H@+@pa*+rA`A pCapK+o `8re`rdAp`$ri`rHAp`rI`rJAp`r3Apat0a*+>Nupo`p`pj`p`p"/HA+A`p5` pk`pg`pf;o`pm`A+HAX+HpxaCXx oa*+E o`,Apa+o+opy`vA+H Pa^p}ad o$o( f`*+rP`r| oa o`rQ` rn`r4;o oa*+a`AX+HSe`BNua*+AX+H` oa+o ;op"`  _Ha*+exA+Haz[aL/ N oBPNuzZ oa*+p d(a o a*+Afap0a*+g o0 o Efa oEX"JJf( S`*+ oa*+pdpxa$Se `Bp a*+>Nu+o`p7A00 0+oa o0 o0Nup8;o ;o+o a> o0NuCX I /$H@""/HA"C6420a*+C Q0 a0 a0 a0Nur#;o oa*+ m|Aa^`r;oAX+Hpa*+> o0 o0 o `;o0<a*+`+o +o /H@+@p$`+o+o +o+op%`;o ;o /H@+@p&`)!GEMDOSTEXTCODEdo_error get_array set_magic get_string gl_scratchcconwscconrssversiondfree dcreate$ddelete(dsetpath,fcreateBfopenFfdelete`fattrib~mshrinkpexecfsfirstBfrename\ 0PTERM0  _CCONIN&  0CCONOUT  _CAUXIN%  _CAUXOUT%  _CPRNOUT%  _CRAWIO%  _CRAWIO_&  _CRAWCIN%  _CRAWCIN_&  _CNECIN%  _CNECIN_& 00 _CCONIS%  _DSETDRV%  _CCONOS%  _CPRNOS%  _CAUXIS%  _CAUXOS%  _MADDALT&  _DGETDRV%  0FSETDTA  _SUPER&   _TGETDATE% * 0TSETDATE + _TGETTIME% , 0TSETTIME - _FGETDTA& /_% 0PTERMRES 10 _%_%_%_%_% _FCLOSE% > _FREAD& ? _FWRITE& @_% _FSEEK& B_% _MXALLOC& D _FDUP% E 0FFORCE F 0DGETPATH G _MALLOC& H _MFREE% I_%_& 0PTERM L_% _FSNEXT% O_% 0FDATIME W oa*+1HB1H, /?< NA\"FHNu opa*+|l/ ?< NA\Nu`?<0NATH@>Nu?/ opa*+/ ?<6NAPNut9`t:`t; oaP/?NA\>Nuz<`z=?/ oa2/?NAP>NutA`?/?/// ?<BNAO .Nu?/?/ o a/?<CNAO >Nu//// /<JNAO >Nua*+ԄNut oa oa o a䴼dgR$O w(/ a0B w( / a*+a w(/ a?7((?<KNAO.`*+a*+gSfBNua*+g@e`z?/ oa8/?<NNAP>NuE + o/ a o / a/<VNAO >Nua*+nr Nup@@n$"A + &SQ @  gQB RNua*+@}!GEMVDITEXTCODEcall_vdido_error get_array get_string make_stringgdos change_handlexcvhandle resolutionv_opnwkv_clswkv_opnvwkv_clsvwkv_clrwkv_updwkvst_load_fontsvst_unload_fontsvs_clipPv_plineH v_pmarkerDv_gtext v_fillarea@ v_contourfill~vr_recflLv_bar2v_arc v_pieslicev_circlev_ellarcv_ellpie v_ellipse.v_rbox<v_rfbox6 v_justified vswr_modevs_colorvsl_type vsl_udsty vsl_width vsl_colorvsl_ends0vsm_type vsm_height vsm_color vst_height vst_point vst_rotationvst_font vst_color vst_effects vst_alignment, vsf_interior vsf_style vsf_color vsf_perimeter vsf_updatD vro_cpyfm vrt_cpyfmvr_trnfm v_get_pixelvsc_formv_show_cv_hide_cvq_mouseDvq_key_slvq_extnd$vq_colorvql_attributesTvqm_attributesHvqf_attributesrvqt_attributes< vqt_extent vqt_widthvqt_name& vqt_fontinfo` vq_curaddressGU_%0_%_%0  00  000_%000 0 00 0000000000000000000000000000000000 0 0 000 00000 0 0 0 0 0 0 0_%0  0/pa*+BBe"Nua*+4/J orp;BBma/-+Ja+_Nu0;m`*+;oNu>-Nu?<NNT>NupNBT@VHNu ot%ro`0/;@@ /H@+@<;|"/HA o NTa*+TD;D0@ O/-+H UD;| r `2r o /H@+@<;|NTa*+;D0@ O/-+HSDeBQa6+_N\Nur `r`r o4/Bm;BBa/-+Ja+_Nur%Bmt oBma/-+Ja+_Nur /H@+@;|Bmtat oarAz$4Nurd`r o;P o t at o0-0;@t9 oa8"< -`xrtBmt oa /-+J o a+_Nupf;o;|t9"< ,`"p&t "<`p$t"<`p#trBmBm/?a4 oa"Ax4QAHA4QNu;o;|Bmpua o0 o0 o 0Nup`p;|"/HA+A@"/ `p`p;|;oH"/ HA+A<"/HA+A;|;@p ``p;oD;|"/HA+A`p;o<;|Bm`hp;|"/HA+A"/HA+ABm`Dp'`pl"/HA+A;|`BmBmp|a o0 o0 o 0xNuBmBm0<a o0xNup{BmBm`p`pe`p`p`pn+o+o`pw;|a>-xNupx`ryA H@+@;|` rm;|A+X+X;h4< P`T"/ HA+A-x o`*+0<a" o0x o0z o taAr4Q o0 otaAr4QNups;o;|a^`;|BmpaJ`6gSTARTUP3TEXT init_cont fatal_memorystart_old_keep O/ C0<HЈ",e*+ `*+STARTUP1TEXT init_cont fatal_memory start_leave O/ C0<HЈ",Іd*+ ,`*+STARTUP2TEXT init_cont fatal_memory start_keep O/ GЂe*+`*+DASTTEXTcall_gemio_init2 close_all gem_pinit init_more all_killsys real_stderrstart_da C0<HЈ,,e E`*+a*+;|vp a*+A`*+a*+I$ga*+`a*+a*+AX+Hpa*+`ACC ABORTED INIT_MEMTEXT mod_error stderr_conin io_initialise init_cont fatal_memory init_more0 base_page| init_finish min_stackЬ ЬЬ/// Bg?<JNAO Jf$E*+A8,Hp!!!.H HĐ"MBQd+@A+H+L|SE;EC@+I DX;D Nu _NT+K)O)N/NHz+_Nuv`*+Compiled with HiSoft BASIC Some code: Copyright (C) HiSoft 1987Hz?< NAa*+??F?F"/FN<+g <-fPN<.g<0e <:dBo?|Bo <:d<0eaG0ajNRo`Jf /k WeR<.f6Bo N<:d<0eanG0a$RoSo ` ooR߰<Dg <EfZ`N<+g <-f?|N<:d"<0e2/A0AA@GA0?AN` g oo8/o gadAC$Ia*+`ھ<&fN߰<HfBN<:d <0e2G0`"<Gd <Ae G7`<gd<aeGWaa&``H<BfN<2d:<0e4G0aaN`<OfN<8d<0eG0azaN`Jf0 /k eRdS|"` |"Ag ggfN/"g,Sf f" /H/@` e /a*+HPz./gLJ/gv?a*+:p`J/"f Jj a*+`J/gDJO$Nu%&!#HJf߯eNua a*+AC$IHa*+`*+ / a*+H PNuJf /Ѐe"ЀeЀe Ёe/@NuaAC$I`*+Jf /ЀeЀeЀe Ѐe/@NuaXoNuJf /ЀeЀe Ѐe/@Nua|VoNuJf /Ѐe/@Nua`RoNuJfaROHGJD[jDD<AB!zVB.T/zTBNd A"O$Ha*+JFg O"O$Oa*+`O JgCA$Ia*+HGPNu PRUSINGTEXTFFPSTR2must_iodo_error dbl_ascii pstr_length far_dcr_dest lowdbl_ascii ffp_to_double i32_to_double long_to_stringnew_temp_stringfar_dcr_free_if_ format_i16 format_i32 format_ffp` format_dblPU_INITPU_RESTh PU_SINGLE| PU_DOUBLE PU_STRING: G.ak>a*+ at` G>Hak(a*+ aVa> ma*+(-B;_>.`*+"m"( a*+  ɉ m` G.aXka*+ ` r ma*+( m HR m` GLa(jv"m Jj|-a*+ R` Ga(kNu"_?->/ /(<a*++I+H _Bm>+Ha*+Sk +DBaJNua -c4-rAf"f*p+@ m hr0R;ANu Ga*+a*++Da*Jf(-dC`xSka`Skr a`Nu|E`|DHaJgCXF;EDm"LHXa*+B-hLAtp gp*J-gd,-gRgSSJkf/g*t-`(R/ft+`4<+ Sg4< /g4<- Jj|a`JEk>RG`8~Jg~8ESDg(Ai"HtEسe"Jxo QSD<0Qtx<-gJk8HSfHDRDHDDHD+D -gRGJkf/g.t-RG`(R/ft+RG`4<+Sg4< /g4<-af-m`68Ggn <%a2` SDa(Qga(- EXFRE-g-aSFk.a-gSfr,aHDSf`HD8<`-g8-r.aSDk`-g<-ar+JEjDEr-aHYg"da$" *H HAaHEa P2IfhNu0`^AX"H$HJfSr-gmFH" Cزd"Ae0f0Br<:d`( 0gSr`"HR f1RrNurNupa m`*+p@2-JAj -fNu<_fajJAjr-aa\`ز<\fHaPv<\faDpNu< f&RCa4< g<\gr\anWr afV`r\aZ`v<!g&-<&g<#gd - m h$-b&<+f(<#g<*g<$f Rbg`Ta~` <$g<*ff` <.fܶ<#f~x&2-<.g.v<#g"xv<$gaf<$fa`v`aVaR<#g<.g<,fR`zREa(<#g<^f< - m h$-<<bD0f>RQaa|<^f a|`|Jf2-~<+g ~<-f~apNua*+H0->g0@pa*+L Nu -g @+H`LIFETEXTdo_error st_systabF gl_windidDdcr_free_if_tempdcr_cons_new_tem" _dcr_get_tempdcr_cons6dcr_dest@ pstr_length.dcr_io dcr_stringA0-JgPQa*+gBNu?a0@` Nu !INu("hNuCLEAR_TEMP_DCRSTEXTdcr_free_if_tempclear_temp_dcrsA0-a*+PHQNu DCR_LOCALTEXTgc_keeperase_a0 gc_release dcr_localdcr_kill" dcr_chain _x8a*+Sr//Q/-+O/N m( SPg Ha*+LQ m((+P`*+ DCR_TO_TMPTEXTdcr_destdcr_cons_new_tem dcr_to_tmp G("ha*+.Nu INIT_OLD_HEAPTEXT err_incon fatal_memory err_heap_full init_old_heap old_phase_DFACh+H,+HY+I0C - AX+@ +I+I,c*+A+H4Nu mX.-DS,-,"F*<& $X,Re^dZ(*gȅe؎ex$`:ȅ eb&ր*gR"&F܄ge>$SQdQd+FL+_/حd*+(Nut`*+t`*+t`*+t`*+ INIT_NEW_HEAPTEXT _initpool err_incon fatal_memory use_miniheap err_heap_full free_miniheapalloc_miniheapuncond_aux_list init_heapphase_CpHB+F <@"< tAa*+ <@rtAa*+ <ra*+g*+a*+ - AX`+@ a*+A +H4LNu mXH"m ^("ha*+SoRgSe(g`x"Dp!a*+.Nua*+H ^Jkga*+cR--`.Nua*+`a*+TRIMTEXTdcr_dest mid_rv_i32ltrimrtrim$ G-a*+ IJg0< fSf-.`*+ G-a*+Jg !< fSf-<.`*+STR_COPYTEXTdcr_destmem_copynew_temp_stringdcr_free_if_tempstr_copy G("ha*+ψa*+ h`*+STR_DARGTEXTst_strstr_dargE`*+STRING$TEXTmem_fillnew_temp_string string_i32(a*+a*+.NuSADDTEXTdcr_destdcr_free_if_tempsadd G.(`*+ RINSTRINGTEXTdo_error get_two_str rts_str_both rts_str_false rinstr_i32a*+ *-Jca*+Jg*+Sge*RIpH@U!Wgj`*+JkH`RI VfdLR`*+LSj`*+INSTRINGTEXTdo_error get_two_str rts_str_both rts_str_false instr_i32 *-Jca*+Jg*+b*+S/ Ř*k*+SpH@d4d0SWf*+JkH` VLgSj`*+ˉ`*+SWgd`*+JkH` Vf dL`LSj`*+a*+STR_COMPARISONSTEXTdcr_free_if_temp mosteq_streq_str>neq_strtgeq_strleq_strless_strgt_str rts_str_false` rts_str_trued rts_str_bothf get_two_str cmp_stringsafXgXSeTaaVf>d`8<ae <{dNuafgSetHB Vfd`z`z Ga*+ ^.`*+aJfgSetHB Vf֘d`ac`ad`a e`ab`aSe Se gNuJNu G&$P(<Ƅ VȐ"hNu STR_MINMAXTEXT cmp_stringsdcr_free_if_tempmin_strmax_str a*+n ^`*+a*+n G.`*+ LSET_RSETTEXTdcr_destmem_copydcr_free_if_templsetrset(aN/ I"Ja*+gp SQd G`*+a&"gSt Qd I"Ja*+ G`*+ ^&$P(<Ƅ GȐ"he(NuCODE_STRTEXTdcr_destdo_errordcr_free_if_tempcode_str Ga*+("P~gNua*+LENTEXTdcr_destdcr_free_if_templen_i32 Ga*+.Nu CHR_DOLLARTEXTdo_errornew_temp_stringchr_strxa*+.NuFREETEXTgarbage_collectdcr_free_if_tempfre_strfre_i16 Ga*+xa*+.-NuRGfHx?<HNA\.NuSTRING+TEXTmem_copy heap_allocatenew_temp_string get_string make_string make_cstring ("hNu/ a*+ _`*+/ @Jf(Sa*+. _`*+I16_DIVTEXT i16_divide >HǏNuI16_MODTEXTi16_mod0HiH@>NuI32_MODTEXTDIVS32i32_mod&a*+.Nu MULTIPLY_32TEXTMULS328MULU32 H@g(Jg$HAJ@gJAfHA`JAgH@HAJAf ށeNu~NuDNu$JnDJnDai JkJjDNuDIVS32TEXTDIVS32JgF //JjDJjDp"~ҁU@D@އeRQ jD jDNuNuIMPEQVTEXTi16_impi32_impi16_eqvi32_eqv0F@@Nu FNu0GFGNu FNuI16_COMPARISONSTEXTi16_geqi16_gti16_eqi16_neqi16_leqi16_less&^_HNu^]HNu^WHNu^fNu^\HNu^^HNu~NuI32_COMPARISONSTEXTi32_geqi32_gti32_eqi32_neqi32_leqi32_less&_HNu]HNuWHNufNu\HNu^HNu~NuSHIFTSTEXTi16_shli32_shli16_shri32_shr0h>Nu .Nu0h>Nu .NuINT_ABSTEXTabs_i16abs_i32JGjDGNuJjDNuINT_SGNTEXTsgn_i16sgn_i32JGg[HNuJ` I16_MINMAXTEXTmin_i16max_i16 0@o>Nu0@l>Nu I32_MINMAXTEXTmin_i32max_i32 o.Nu l.NuARRAYSTEXT MULU32gc_keepdcr_destdo_errormem_filloverflow gc_release heap_eraseheap_array_alloc arr_bound_err arr_bad_err dimension option_baseHelement_calculatV auto_dim_flagJeraseerase_a0dim_auto dim_auto2dim_i32Z elcalc_i32 dim32_autob dim32_auto2f elcalci16_d1 arr_redim_err Ga*+4)k2BHҁC. Nuv!`6FBH*6HÖk$n UDk>HǞkn"a*+ ևQ"`J` Ga*+JgF<fbxCifn4)C k2BCHUDk0BAҀQ8. NuJ-Jga*+P HxCSDt =QaL`a*+3a*+ a*+ a*+ a*+ FBH*&k趙nUDk.kھn"a*+ ևQ"` Ga*+JgN<fxCift4)C kJ^f2BCHUDkJ^f0BAҀQ8. NuHxCSDt -QaL` GJf@4-H/ x$Nr6ASAHDJDfHD0Bk"R@Q/ pga*+C2 AA ?H؁a*+222"8B2HR2 UAk0B22R@Q2prHASCd2`"Qd&_Nu2 4BSAA M BC p0 !Q&_ GJft4-H/ H/~$Nz6ESE"k\Ra*+ Q( pga*+C2 APA?H؁a*+222FY"."R: UEk"""Ra*+ Q(*`2 Ga*+g()f<fa*+B`*+Nu2) ~`*+LBOUNDTEXTdcr_dest arr_bad_err arr_bound_errlbound Ga*+Jg*+<f*+>)jFGNuUBOUNDTEXTdcr_dest arr_bad_err arr_bound_errubound ^a*+Jg*+<f*+JGo*+0)Gkg@@U@>)C HjFޑNuQNu CHANGE_ARRAYTEXTerasedcr_destdim_auto do_errormem_copy dim_auto2 dim32_auto dim32_auto2 _dcr_get_temp grow_arraygrow_array_i32 GJg*+/ I*+` GJg*+/ I*+a*+2Aifxa*+$G !j@B?/4)jFB G/N. Wa*+$I Ga*+"*e").6(_Jk)( Ja*+`*+ $" $"Sf`*+(_a*+   STATIC_ARRAYTEXTMULU32gc_keep arr_redim_err static_dimsml static_dimbig` ^Jf*+$M!J44BZ05@HR$  pgC5Cr g(`*+Nu ^Jf*+$M!J444 %@R$  pgC5Cr.a*+ ` RANGE_I16TEXT range_i160^8HmGn~Nu~Nu RANGE_I32TEXT range_i32 ^(mn~Nu~NuSWAPPINGTEXTswap_i16swap_i32 swap_dbl ^"G002Nu ^"G  "Nu ^"GL !iHNu SWAP_STRINGTEXTdcr_consdcr_destswap_str Ga*+H@ Va*+ Ga*+L ^`*+ARRAY+TEXTdcr_destdo_error get_array?a*+Jg0if$Ip0Nua*+ a*+RNDTEXTSNGADDSNGDIVINT2SNGsngfrac seed_rndfrnd_fnrnd_fn2Jgja*+` APp0`0AL0v=H@00vcH@00vsB@H@0.a*+,<Oa*+$~> a*+,<Oa*+,a*+$~> a*+,Ga*+`*+(*`Aua*+a*+Jg mNJg/a*+`AX/a*+"a*+JUgBJRgs_sstrgcontrlintinintoutxptsin<ptsoutvdiparcontrolrint_inint_outaddr_inaddr_out ws_handle gl_frontwind@ aes_global| aes_paramsZ menu_pointer vdi_handlescr_resPwh_menuApa+@JApa+@BApa+@FNuaAh/?<NNT@P+PF"o+_BTAh+HA*++H )i"eЩDiHesg AP |$+|Nua*+a`pAJg"hH瀀NLQNu mJpa mBpa mFp/??<NMPNuA*+/HNsA*+`A*+` IO_SYSTEMTEXTMULU32dcr_consdcr_destdo_errormem_copy chk_handle close_chan heap_allocateio_openio_doitXcheck_ctrl_keys lose_io_ram get_io_ram general_io low_bios_inVlow_bios_pending dos_error real_status real_outch gem_colour low_gen_fstrgD<dNJgJ|bDCXH瀀HAJgLH>a*+L`H?8(H o(aLLf0ApNupDNuH/2a*+f*0@"<g < g8H0 lNL LJNu"`r,HA,t,HB,"Lp`JgB<fp@`JfrAp`CB gB,>4>>>>ZQ"aapNuP"pNur,#pNupDNuB,B,#rarE`pNu|dp,@dAB#A B H`rarYaL8a`/ Jikrarba"W2)a2A ap"WJikrabrca\"_2)aA `LXpNu?AA,0-F|gS@gA 00Nu    H @rareaLx*&Iajff< gR< gL<g<g< eܺgHR/ at&_`JgSJ,gS,/ rar ara&_`a"p@Nu?,?<NMX<f lf-OfrpNupMNu?r aFr ax2< gp< g4R,,g,e lf< d<g<d<dp`0,<f< f ,#dR,#A???<NM\Jlg pNuB,`Rgp9Nu0,??<NMXrJfrpNuSgSgUgvSgpDNu&fvRBg/?<=NAJkbPOx(؃Aa\)C)C$)C 8?<?B?<BNA)@BoNAO |||9Dp)@@)@NuPH`t9+@TlAgf LNuF5LCKKBg/?<NAXOapNu`8,<d$ g A @N.V@(e|dA`^vp<gJf",g a@farrpNur)ApNuHl(/, ??<?NAO Jk)@gB$Nup>Nua ,$e agp>)@NuA(r0R<gR$pNua",g$S)AS$dBg?/?<BNAO JkavpNua|pDNuat?(,$gA($e(٬٬$a*+8Jg*)l$/ /??<?NA"/O Jk&ѬfHpNua < g4< g2R,,g(,d"B O | ApB,aXNuB,I? OpaTNuJg$//??<@NA$/O "kpgp=Nup"Nua  IJ,f6,Sev H x ggRQdAL0`r`Jg, I,< g< gReSf C`^v`SH @vapAaFLgNu fXp6Nufp6XNuaB$BSt QdBg?/?<BNA"/O f Hl(/,??<?NAO Jkgr)ApNuaB$Bg?/?<BNA"/O Jl |fZ/?<?B?<BNAO "Jk@g(*HEJEgpH@ @anf(SE`HE  |aZf ,B$A(aHfNu` f(Jj", )A R $,Ga*+"G ,A(NuXp6Nu?<?B?<BNAO /?<?B?<BNAO "&Bg?/?<BNAff$, `$/`$,"O pNua Tp6Nu< g,< gR,,g,e&,$d 8(R$pNuB,`?r ar a2`p2Nu",pNuPRT:AUX:MID:KBD:LST:CHCLOSETEXTdcr_dest close_all.io_close< chk_handleH@b0HCXAa*+g (IpLNuLp4Nu8<0DaQNuH@af Hp0a L LJNu lN IO_GOAWAYTEXT io_goawayno_memory_panic -f ?+|pha*++m+mNuBm;| Ap 0Q0BmpNBT@g$pMa*+;@p-PT@;@0<da*+0-f:pMa*+;@;|0<da*+0-fa*+Cannot open workstation;@;@Bn+mxrBmBmp&a*+;mjp;@;@m;@lBm;|Bm;|p'a*+Bm;|;|pa*+Bm;|Bmpa*+NuQQa*+ -gBm+@pa*+BBm;|pza*+a*+a pa*+`*+BmBmpea*+NupD`p4ONu/ H0@a*+ 0/|bCXHI o f"+|pha*+A`C1111/HC2"n"rpda*+kx6A(a*+9@;@@|B,B,#9m "o B2B.Jo g& Ia*+ a*+ R/ a*+)H."_Ha*+ B"l.;l;|+Ipia*+RmA+Hpia*+L 8A0P0000pea*+;|pha*+L@ASBSCHH`J-Qfaxp0,lj@C$"T#zT3zRa*aah|aa"A p f ;lN;|Va*+0Dp@#@")@(_NuHaF2R,;|;|HA+A ,Ь+@GNu0.a*+ H@|da*+zJBg :fz"WE)<:f`pa*+tERBJf|  Cp0m>a*+?</NATO/HmX?<NA\"o?</ ?<NNAP|g~J@kxAvC :###tg<.f< gt R`t Cp0m>a*+C[ -mf[tp0m>a*+?<ONATJ@fRDDfa*+x`a*+?<NAO Nu(?<NAO `*+ *.* MSDOS_THINGSTEXTdcr_destdo_error dos_error mod_error make_cstringdcr_free_if_tempmkdirrmdir"chdir&name*fexistsz convert_dosNkilldos_err get_drive_dircurdirv9 GEXaD/ ?NA\J@kNua*+v `*+v:`v;` GEXa ^EaHmX/ Bg?<VNAO `a*+p@dp:/ SDe Q)Ba*+"_Nua*+@ EX Ga~Bg/ ?<=NAPJ@k ??<>NAX~Nu GEXa/ ?<ANA\J@k`HmX?<ANA\J@g|fHNu Ga*+a*+ gEXa AX `*+JgS` / ?<NAT$_2A:BRA?/ ?<GNAPONuBLITTINGTEXTdcr_destdo_error no_rodent elcalc_i32 yes_rodent call_vdi_wsget_grafjput_graf rectinterX getput_elcalc get_graf2Z Ga*+JgD<f8pC2)@m$gA0)HjF-SAfa*+ -Nua*+ a*+ a*+ 0. n0.n"G"]e,0.n e2;@0HR@;@42-F3A;A80.ne2TI;@2ҁb+I,ED5555EDB44vAC,a*++mx+H+I;C;|;|pma*+`*+"^48LRD60;@8VЀb0A, H20AnaA0m`;@-zNu~NuMICETEXTcall_gemdo_error no_rodent yes_rodent call_vdi_wsdo_mousefn_mouselJGk|d;GpNa*+|N`*+B-N`*+QGVG0G>( GJf 09`@oNu|eYGG0G~(NuHz?<&NN\ONu| d:|dBmBm|gp|a*+G0;p>5Nu0<a*+>-xNuxa*+ PALLETTESTEXTdo_error gem_colour get_cookiepall_set( pall_resetpalletteA.` w` PU"wUPpa(k Gvt0-F>H 2aPLRCBfNu0-F|b.&<_VDOa*+fH@|f?+PCH p??<?<NM\NuA a*+fB0<apaa BNu?<"NNT @ANuH"xC g fTRjLNu THE_NOISETEXTDIVS32sound send_soundJ-frpa@82<aP=M "N8!k6|d/ rpa2<yA2<a"_AXSCC0! ig@2AEC@00!kz4!kvS@@@E 2rBH.&< a*+*LC|f 0C@0`pC00H@C@00!kg0S@fH@0aAXa p @aJfNu/?< NN\Nu???<`AgEKIjM1RgWN\}a}gunt={xRWAVETEXT send_soundwaveAXP"N0!kF@0!k<VA- VA- VA-0!k  @0!k  HHkGg SGfHGB`*+TRACETEXTio_doit add_deinitlong_to_string trace_inittron$troff0 trace_trapAa*+Hz,?<$?<NMP+@Nu/-`p@;@NuQNu o*J-f/HNs0-mg;@Ni#NaA`CXr2a*+]$ CX[0|p`*+SETTDTEXTdcr_destdo_errordcr_free_if_tempset_timeset_date      Ga*+a*+Jgpp a^6ghKJg8aTB0; aJJBgTBaD|e 1f& 9f>Upda*BPdBdZB??<+NAXONu )2f 0f``^<-g</g`J Ga*+a*+Jg6[Jg$<:f*pNAXNuF' D/(B?<E?<NMPNuBH瀄*xJ-j m Pp0ЀЀR/m L!NuCALLTEXTdcr_destmem_copynew_temp_stringdcr_free_if_tempcall_mc call_nullstr""N0gS@#Q ^H/ ?N\LxNu Ga*+Ra*+a*+/ Ga*+a*+. I"Ga*+BNuRUNFILETEXTfexistsdo_error io_goawayrunfilea*+5a*+JGgAX"m|C8fa*+A"m|C.I0<2QNHxzHzBg?<JNAO JfBHzHzBg?<KNAO??<LNAENVIRONTEXTdcr_destdo_errortos_free tos_malloc make_cstringdcr_free_if_temp environ_i16  environ_str6environVfind_envR m| h,NuaJGk SGgJfJf `*+ Ga*+a*+Sja*+aa` I2  g (=WJANuaak/ /(f ;gl`SgbRUaf((/ag^erHa*+L$_ /g`( R/`$@a8Bga`Ba:a*+"_ m|!I,NuRUatPOf/a< _` _$_< fp=QNu _$_aB"Ha6/a/Bg?<JNAO NuJfa"JfJfÈЁЄTNuJfgf`NuajaJfJg.Jg*"HVJAj<=g LJf`LNupNu COMMAND_STRTEXTfind_env pstr_lengthnew_temp_string command_str extract_hex$m|x*<gCxa*+fna$fbCxa*+fVJfJf  fRH`(JfJf/(Ua*+.$_6SCkfr aQNu<ae <{dNuE/ a*+$_  fRSfx&/ SeaQ"_.`*+pr<:d <0e.@0`"<Gd <Ae@7`<gd<ae @WҀ`NuARGV_PBP ST_MEMORYTEXTset_defseg_i32stpeek_wstpeek_lBstpoke_wfstpoke_l+GNu(-f"/Hz?<&NNO .Nu oHHNuބ/Hz` opNu G(-f/Hz` oB"O Nu(JfHz?<&NN\NuحHz` DNu D0HNu D/"OXNu(JfHz`SPOKETEXTspeekbspeekw speeklspokeb<spokew6spokel0Hz ` Hz `Hz?<&NN\O.Nu G0Nu G Nup GNuHz` Hz`Hz(` D Nu D0Nu DNu COOKIE_JARTEXTdcr_destdo_errordcr_free_if_temp get_cookie2 getcookie/ ^a*+a*+YfB O&aWH _ Nua*+ / Hx?< NA\(x/?< NA\O g ggX` (_Nu(_pNu START_DJNTEXTdjn_init open_defaultopen_djna*+A`*+CON: START_TOSTEXT open_defaultopen_tosGRA`*+CON: START_GEMTEXTgem_init open_windowopened_defaultopen_gema*+0|Jg*+0A4</va*+`*+ Compiled with HiSoft BASIC  OPEN_DEFAULTTEXTio_opendo_error open_defaultopened_default0<rtva*+f;H>;HDA0<rtva*+fNua*+DLST:OPEN2TEXTio_open mod_error far_dcr_dest get_chan_hashfar_dcr_free_if_open24H>a*+6 Va*+"0 I0a*+f ^`*+v`*+OPEN1TEXTio_doitio_open dcr_consdo_errorio_close mod_error scan_dcrs far_dcr_dest get_chan_hashfar_dcr_free_if_open1 close_chanp close_ms_all na*+SfXv<Igv<Ogv<Rgv<Af2HCt4>.a*+6 Va*+"0HC Ia*+f ^a*+T ^`*+a*+6v`*+a*+pa*+f4 fJ-g pra*+` f?. i a*+؇Ea*+ 0_`*+0|aSH0fNu<!g.<fH/"h*)g/ I<!fa PHSf _*Nu"hmlH(x"mpa*+ LNuVAR#TEXTio_doitfatal_iovarptr_fJGo0Gbpa*+f~(މNu~Nup4`*+CHAN#TEXTfatal_io get_chan_hashJGo |d0GNu0Gp4`*+ IO_CONTRLTEXT get_chan_hashchan_out_windowchan_out chan_outp;mD>Nua*+;G>Nu;|>Nu PRINT_OUTPUTTEXTio_doitmust_io far_dcr_destfar_dcr_free_if_ print_string print_slash print_comma print_spcX print_tabf Ga*+$0m>pa*+ G`*+p0m>a*+HA86HBrBDHAJAgHAJCgAcVB8SDpr a*+QNuJGo8SD0m>`JGkg.p0m>a*+gJBgHGJGgHBRBBdBSGHzCt0m>p`*+  PRINT_INTTEXTmust_iolong_to_string print_i16 print_i32 write_i16" write_i32$print_internalH"CX/ a*+ $ "_p0m>`*+H"CX/ a*+ _ -fS$ "H` PRINT_SINGLESTEXTFFPSTR2must_io print_ffp write_ffpa $p0m>`*+a  gS` rAXa*+CXA(NuPRDBLSTEXTmust_io dbl_ascii print_dbl write_dbl.CX Jj|-a*+ HT$CX0m>p`*+CXJj-a*+CX$ -fR` WRITE_STRTEXTmust_io print_string write_stringaa*+r"0m>p`*+ WRITE_COMMATEXTmust_io write_commar,0m>p`*+IO_INPUTTEXT io_doitmust_io mem_copy print_slash pstr_length far_dcr_dest get_chan_hashnew_temp_stringfar_dcr_free_if_parse_dbl_ignoreparse_ffp_ignoreparse_int_ignore input_endchan_in"chan_in_window, input_i16 input_i32 input_float input_dbl input_str input_line input_nocr m ,g~J-fa*+ Q m`*+a*+;G>Nu+W +G m;mD>a*+Jg 0m>p$a*+C$<0m>pa*+A, +HNu"m , If(xR<,g< fS+HJg fSfNuafa*+iJf>0BfNuafa*+iJf.Nuafa*+i.JfNuaxfa*+`x"m ,fn< g8<"g< gAR<,g< f` I<"g < gR`RJg 0 HfSf/S+Ia*+. _a*+ NuCt`C!tp0m>a*+ . ` ?Overflow ?Redo from start C/ xR  fa*+. _a*+ `. INPUT_FILETEXTio_doitdo_errorfatal_iomem_copy parse_dbl parse_ffp parse_intnew_temp_string inputf_string inputf_i16 inputf_i326inputf_fH inputf_dblZ inputf_line&<a`/ a*+. _a*+Nu&<aHa*+i 0Bf>NuDNu&<a*a*+i.Nu&<aa*+i.Nu&<aa*+NuJf (-a*++HaVf*+< g$m$jxg<"fva2f*+< g`< gL<@d  efRgJag`*0m>p`*+<gJfaf< g< g<,f( "m"iNuaƲ< gad`a*+af*+ m f (-a*++H$hx< gRDgag` az< gaaa*+. m ha*+Nu0m>p+`*+INKEYTEXTdo_errornew_temp_stringdo_inkey -gB`&x?<?<NMXJ@f xa*+.Nu/<NMXJ@g$-Og <fa*+M?xa*+.0NuxH@?a*+.0BNuINPUT_FUNCTIONTEXTmust_ionew_temp_string do_input_i32 new_inputfn bload_hash bsave_hash(:RGf:-D(a*+.0E$p`*+p$"^0^`*+p` STDERR_IOTEXTlong_to_string stderr_string stderr_conin& stderr_long2 real_stderrg,/ m fAN _`?/<NM\Nu/<NMXNuCX/ a*+B _` RANDOM_ACCESSTEXTmust_iodo_errorfatal_io far_dcr_cons far_dcr_dest get_chan_hash field_startdo_field&rput_d\rputhrget_dtrgetza*+;H>pa*+<f fBNua*+20m>pa*+$I G>Ha*+$-&ԇnC(p!(+B`*+rp(a*+`*+p("Se>`p)r`p)`p?`*+ DISC_COMMANDSTEXTio_doitio_openmust_iodo_errorio_close mod_error far_dcr_destfar_dcr_free_if_bloadbsaveZget_next_channel6/a2? Va*+0 I"tva*+f8p*a*+p"_$a*+a*+ ^`*+x0Dpa*+fRD|ca*+C>Nuv`*+//a? Va*+0 I"tva*+fp"_$a*+a*+ ^`*+ EOF_FUNCTIONTEXTmust_io get_chan_hashdo_eofdo_lofdo_loc.a*+pa*+.g~Nua*+p~a*+<fp*a*+.Nua*+p*a*+.NuENQUIRETEXTmust_ioposlposcsrlin0mDpa*+HB~BNu0|`0mDpa*+~ANuWIDTHSTEXTmust_io check_byte width_screen width_printer width_channel00^=` 0|`0mD4>a*+2p `*+ ST_SPECIALSTEXTcall_gemcall_vdi fn_contrlfn_intinfn_ptsin fn_intout fn_ptsoutfn_gb gemsys&vdisys,A.NuA`A<`Ax`A`AZ`0`*+0-`*+GRAPHICS_PROCSTEXTmust_iolinefellipsepellipsecolorgfill2gbar@pa"PNupaM NupaM NupaM Nu="N0mD`*+42p0mD`*+p aPNu EASY_GRAPHICSTEXTmust_iodo_errorclslocate$gotoxy p0mD`*+42 -PfARmja>SmjNupJGk gSGf4pa2g,jpaHB2RAJVjTNNuSA4j?pa42p`SBda*+IBM_GRAFTEXTmust_iopsetpset_r*presetpreset_r"|fSG42HHA24p"0mD`*+|fSG42mm`ON_ERRORTEXTdo_error mod_error check_byte resume_lineerr&erl,errorX onerr_off2 onerr_gotof on_error_0FJ-gB-&m(m.l,lNPa*+>-Nu>-Nup+@;@;@;@NuJ-g0-vBU`*+a*+p0v`*++HNu CHECK_ERRORTEXTclear_temp_dcrs check_onerrJgDJ-f>|g8|Mg2|Ng,|Og&X;D;mf;U/-BP+La*+NuMUST_IOTEXTio_doitfatal_iomust_ioa*+fNuX`*+HACKLIBTEXT io_goaway stderr_long stderr_conin stderr_stringstop_statement prog_abendbottom_of_screen6 fatal_error^ stop_quiet*system*~|f~`a"Ava*+a*+<f~a*+??<LNAALa*+0( AXBSa*+A4`*+AWa*+ _a*+JUgAYa*+r2a*+`~q Y Program terminated - press a key to exit pFATAL ERROR:  at line  SINGLE_ADDSUBTEXTcopy_sngSNGADDSNGSUBffp_addffp_sub,GgT klknf`@,k^g>k^g2k8<d,&B<ރeNuRid~S<Nu.NuJNu<oD&B<ރeNukgvgPk<<d&B꫞kBSbHGއ[kgNu~Nu<oD&.<`DgjD` SINGLE_DIVTEXTcopy_sngSNGDIV, ffp_divide .<ANuNu.<<Nuk~Nu,FfJfg(gvEDiBHGHFFkTiHGDL&:ƞHGHF6BŞd&BރSE&HCBGHEk:څS>:.gNu SINGLE_MULTTEXTcopy_sngSNGMUL ffp_times,gFg\EDviRE]B&HC(BHD؃BDHDHGHFHFބj gNuSiex@ބއdRgNu~NujJ<Nu SINGLE_SQRTEXTcopy_sngdo_errorSNGSQRa*+gXk dR HC6<(* <.< `(؄*√[Zc gRHCNu SINGLE_INTSTEXTcopy_sngSNG2INTk gBAkjDNu<Nu~NuBkjDDNufDJjNu SINGLE_LOGTEXTSNGADDSNGDIVSNGMULSNGSUBFFPHTHETFFPTNORMcopy_sngdo_errorSNGLOGSNGLOG2SNGLOG10ai,<;A`*+ai ,<[?`*+NuJgja*+H~<A,<A$a*+Ba*+,a*+gJCD<c~|*< A*+rt`䤚ܐ(&䣞j.XRQ~a*+gR.$|Ag(jDzG܆[..a*+XDxB΄,<Ca*+,.a*+$(< .BJkFD<c~䯾o$`D<c~DDl`z,g:TL~NuRB&(Jk ڄ܃QNuޘQNu INT_TO_SINGLETEXTcopy_sngINT2SNGI162SNGHz_Jg0jzDi&SbHGއ[Jj dRNu SINGLE_POWERTEXTSNGDIVSNGEXPSNGLOGSNGMULcopy_sngSNGPWR ffp_power SNGPWRINT6.<ANu,`*+,GBgJgJga*+Ha*+L8`*+4" <AJBjk&.NuJd.,a*+Nv JBg,.a*+Nv"`DBa,<AGa*+NvNu SINGLE_CMPTEXTcopy_sngFFPCMPJj Jjf NufNu COPYRIGHT_SNGTEXTcopy_sngMC68343 FLOATING POINT FIRMWARE (C) COPYRIGHT 1981 BY MOTOROLA INC. DOUBLE_INTSTEXTcopy_dbl i16_to_double i32_to_double double_to_i328HF~Jg*]lDvUt QCt壌JgGNuF"&g0pC2DC|m |4n"Q,gJlDk.Nu~DNu~Nu DOUBLE_CINTSTEXTIEEEAdd double_to_i32CI32_DBLCI16_DBLp"DjDG@AB|Ab DSGkUĆQ(k(j2xc 0D@`fc 0D@`D@@`D@@ԆӅdf UĆR@(fJk0<NuJkJkxAS@J[NuJkV` DOUBLE_MULTTEXTcopy_dbldbl_to_internaldbl_from_internaIEEEMult dbl_timesIntMult&LHa*+LHa*+v$OaO `*+HВR@,@L0 : 8 HB.ڄGHGH@EHE>߃8 < : HBކ,CޅCބC8HFHB: ؅C: ؅C: HA؅CHFHGDHGHDDHFCHF8*܄C8 ܄CHA8 ܄C86 HA؃vHECHEHFDHFHDDHECHE8ڄ"$&@H@@ JmS@|fJf JfS@LXNu DOUBLE_DIVIDETEXTcopy_dbldbl_to_internaldbl_from_internaIEEEDiv dbl_divideIntDiv*LH,.a*+LHa*+v$OaO `*+LD@؀ D(*H8x8pJff f0`&e0USjpRSfҎg0L JkS@|fJf JfS@Nu DOUBLE_SINGLETEXTcopy_dbl ffp_to_double double_to_ffpNa8 g0HGOGG,H@O@@HGBG p̀Nu|Nuއg HGNu gV H@H@@mH|lFJj@H@VHFNFr FJgdH@Ri H@.<H@Nu~NuDNu DOUBLE_CMPSTEXTcopy_dbldbl_eqdbl_neqLff~Nu~NuLff` DOUBLE_CMPTEXTcopy_dbldbl_to_internalIntCmp\dbl_less$dbl_leq,dbl_gt4dbl_geq<IEEECmpHdbl_mindbl_maxHa>LlLNuHa*LnNua]HNua_HNua^HNua\HNu"NPa*+HLa*+L8 f ffNuekD NuDNuj` DOUBLE_RANGETEXTIEEECmpcopy_dbl range_dblCa*+nLa*+m~MNu~MNuDBLMOSTTEXTdbl_subIEEEMult dbl_mosteqH"<> <a*+"F$GLa*+f_HNu DOUBLE_SQRTTEXTcopy_dbldo_errordbl_to_internaldbl_from_internadbl_sqra*+a*+Hz*+Jkz~v,<@@dR@/pf ffe"Jk `<@< l ` `Jk `<@< l ` <gLSJk `<@< l ` Jk,SJk `<@< l ` Rex`b"$&ކV JkS@Nu EASY_DOUBLESTEXTcopy_dblsgn_dbl dbl_minus JfJfXNuaGNuaJ[HGNu DOUBLE_FORSTEXTIEEEAddIEEECmp for_double next_double4"G#^#^ LH"#^) f a*+n\Nua*+lNu"GLLa*+NvHC)fa*+mNua*+nNuDBL_INCTEXTIEEEAdd2copy_dbldbl_incdbl_decpH@rt$GLa*+HNu <`DBLASCIITEXTIEEEDivIEEESubIEEEMultcopy_dbl double_to_i32 i32_to_doubledbl_to_internallong_unsigned_st dbl_ascii lowdbl_ascii/ aJEk6|d WAPd"HpEaf( "_NupaZD+r2a*+`DE" 4E|d ICP$ISESA Q<0Q.`paD-| d0` oE c I`S@f.RNuvgv I0<0QJf JfzvRNuH(I??<HA|aVe*AaNeAlaVo`A^a8ezAa@Ro`Aba$dABaBo`A,adPAa,So`LfNuLLa*+HNuLLHa*+LHNuGLLa*+a*+p0Jga*+La*+La*+HQKA$a~eJjPO:6"LLNu?@$@Y@@@È@jA.AcAׄAe B_B7HvBm@B0Bּ&4C k7CAyؠCv4WnUF؉<ҲDBLROUNDTEXTIEEEAddcopy_dbldblintdbltrunc Jj$&affNup"<`*+ H@H@er@e|Nur4@eNu|~NuULINTTEXTulong_to_internat"g pJk S@ҁ`0<vNu COPYRIGHT_DBLTEXTcopy_dblMC68341 FLOATING POINT FIRMWARE (C) COPYRIGHT 1981 BY MOTOROLA INC.DBL2STRTEXT dbl_ascii pstr_lengthnew_temp_stringmkstr_from_doublxa*+/ Jj|-a*+R _.a*+NuFLOAT_TO_STRINGTEXTFFPSTR2 pstr_lengthnew_temp_stringmkstr_from_ffpxa*+ψ  Ira*+("H Ga*+NuSTRING_TO_FLOATTEXT parse_dbl far_dcr_dest double_to_ffpfar_dcr_free_if_parse_dbl_ignore mkffp_fr_str parse_ffpparse_ffp_ignore Ga*+a*+ai. NuHa*+`Ha*+a*+i$LNuDBLSTRTEXT parse_dbl far_dcr_destfar_dcr_free_if_ str_to_double Ga*+a*+a*+ Nu SINGLE_CMPSTEXTFFPCMPffp_geqffp_gt ffp_eqffp_neq ffp_leq(ffp_less4,a*+_HNu,a*+]HNuWHNuVHNu,a*+\HNu,a*+^HNuSNG_MOSTTEXTSNGMULffp_sub ffp_mosteq"G,<7-a*+ωa*+ fn~Nu~Nu SINGLE_MINMAXTEXTFFPCMPmin_ffpmax_ffp ,a*+o.Nu,a*+mNu RANGE_FLOATTEXTFFPCMP range_ffp",a*+m .a*+n~Nu~Nu SGN_FLOATTEXTsgn_ffppJg[H>Nu FLOAT_QUICKTEXTSNGADDffp_incffp_dec,<A G.a*+i Nu,<`TIMER2TEXTSNGDIVINT2SNG read_timertimera*+.a*+Ca*+,`*+CINTSNGTEXTSNGADDSNG2INTCI16_SNGCI32_SNG,<@Jj<a*+h*+Nuai 0GgDNuSNGINTSTEXTSNGADDSNGSUBSNG2INTsngtrunc$sngint sngfrac,a G`*+&g aJjfNu,<`*+g @cre_c BNu~NuPADDTEXTPADXJPNORMrtvx2(4(6(8( |o864BA@`J@gHCv6BBHANuH0)hlH0)h|?ovx`J@ga`LL*jfcCD@` ԄӃdR@HLNuJfJgJk S@jHNu0<5@NuPMULTEXTPMPX,PDVXJfJg JfJfBBB|XONua/ 04R0(iR@5@&Oz////zL81P֣7CBCSHCԃ6BBHB҂ң7ABAQHAЁ'@\KUEjLJkSjjH&_NuaL/04R0(i5@LL xzJk SjjJk Rjj|?Eg҃тQJk SjjH0,NuPSQRTTEXTPADXPDVXPMPXPSQTX$ 3dJfJf1|NuHLJj ShjG$ <HG IA"O$Ka*+A"Ka*+?|| O"K$La*+Sk L$Ka*+Q(o(,fAla*+LO$L@6(CRCCHNuPTRIGTEXTPADXPDVXPMPXPNORMPATAN2dbl_to_internaldbl_from_internaDBLSINTDBLCOSDBLTAN4wz\,nND*   a*+/ a `H`VACE a*+A CE a*+ / AC E a*+AC E a*+`a*+/ a`H AC E a*+`ACEa*+ACTEa*+ A:CE a*+`TACE a*+A C2E a*+AC E a*+AC E a*+`a*+/ a@`A CE a*+O |?b|eLR@|fHL(_`*+,.O/OH|l H(O$NuACjEa*+L|o@?D@o6|!ldRBd Ro`@ dRAdRotHACE a*+ / AC Ea*+a*+ACE a*+ / AC Ea*+a*+B(B,B0B4B8B<|8I*+B/T/lJoj /4` ACEa*+|L4FH L(FHJoj ` / A4CE4a*+A(C E(a*+./\/\JokACEa*+RF|@f <"$,O$TNuPATANTEXTPATAN2ڢ!h4v=>Yպ/mۖ~Un]*wnSVU[rݹUV?wUUUUUꪪUU)U?????@ tC^ZgDATANTEXTPADXPDVXPMPXPNORMPATAN2PCORDAdbl_to_internaldbl_from_internaDBLATAN0  ڢ!h4a*+/ OHEa*+|oP/@ jBRJ@k A"Ja*+ |o I*+BFa*+`aXJokA"J a*+a*+J/ j `a2 |?c|dLR@|fHa*+O(_NuHACEa*+AC(Ea*+ /A CEa*+ACEa*+LNuCORDTEXTPADXPNORMPCORDAHO?FH/R/j/j BBBB BB|/|L0FH L$FHA0CE0a*+A$C E$a*+JojBof~A?|+."jT/"<HFvAbPmn d\HSC` ]HRCPng`\HSCPmg/|E+00,4jDBT/- B eR/.B //tC$JjJ(fB8X*x UeBޅ D0Q>HL|TNuHFo GbAp 5dSGfxA/|E+00|+ `d/ .gR :fR0`RR~1HGHG Ef (+VfR :f$ R ` h01f|+S /f S _ Eg0`LNuH.f 0tLNu,av"OE` 5e / ".gR :f0`|1RG$_ Eg0`<-gr |RE "0V|ddJFgJGn0D@F|dP` |>|dD`(.0D@S@e0`0S@fO$LNu0S@f0Gc.S@f`SFg .SFfSGE+00JGlDGT(| eR(G ` !STESOUNDTEXTCODE dmacontrol"dmasoundVmwout mastervolume leftvolume@ rightvolumedtreblebasssetmix000000000UHx?< NA.f B> NA.\O3Jg /?< NA\ONuHx?< NA.f B> NA.\O3 /A111 / A111Jg /?< NA\ONuHx?< NA.f B> NA.\O0/3$3"y$fJg /?< NA\ONuHx?< NA.f B> NA.\O2<tP0/J@kpB@jp@0<3$3"`Hx?< NA.f B> NA.\O2<@t(`Hx?< NA.f B> NA.\O2<`Hx?< NA.f B> NA.\O2<t0/@ `lHx?< NA.f B> NA.\O2<@`Hx?< NA.f B> NA.\O2/A`2A!XBIOSTEXTCODE get_array get_string setpalettefloprd4flopwr8flopfmtdmidiwsflopver`ikbdws nvmaccess 0INITMOUS  0SSBRK  _PHYSBASE&  _LOGBASE&  _GETREZ%  0SETSCREEN 0 _SETCOLOR% _%_%_%0 0MFPINT   _IOREC&  _RSCONF&  _KEYTBL&  _RANDOM&  0PROTOBT _% _SCRDMP%  _CURSCONF%  0SETTIME  _GETTIME&  0BIOSKEYS 0 0JDISINT  0JENABINT  _GIACCESS%  0OFFGIBIT  0ONGIBIT  0XBTIMER  _DOSOUND&   _SETPRT% ! _KBDVBASE& " _KBRATE% # 0PRTBLK $ 0VSYNC % 0SUPEXEC & 0PUNTAES ' _FLOPRATE% ( _BCONMAP& , _DMAREAD& * _DMAWRITE& +_% _BLITMODE% @ _ESETSHIFT% P _EGETSHIFT% Q _ESETBANK% R _ESETCOLOR% S 0ESETPALETTE T 0EGETPALETTE U _ESETGRAY% V _ESETSMEAR% W opa*+/ ?<NN\Nur`r ?/?/?/ ?/?/B//?NNO>Nur`?</Nu oa*+/ 0/ S@??< NNPNu oa*+/ 0/ S@??<NNPNu oa*+/ L H@/2<./NNO .Nu% opt l+,c+ * * HiSoft BASIC demo library HiSoft 1987 * version 1.1 * * SCS * * This library is an example of the procedure to follow when writing a user * library. These are several routines which use all of the features and * functions available to the user libraries. * * This library was written using DevpacST, the HiSoft assembly language * development system. include library.h the standard library include file library STUFF library name xref get_string external references  xref get_array xref make_string xref.l gl_scratch this is referenced off global! xdef setbit the names of the routines in the library xdef getbit xdef straint xdef baint xdef nullterm subdef int,vlng setbit takes an int and a long-variable fn_int int,lng getbit function returns an int subdef str,aint,lng straint takes a string, array of ints * and a long subdef aint,aint,lng baint takes 2 arrays of ints and a long subdef vstr nullterm takes a string-variable option 'uv' underlines & variable checks libstart the code follows * * This statement takes an int and a long as parameters and sets the bit * specified by the int in the long. * setbit move.l 4(sp),a0 pointer to the long move.l (a0),d1 the long to be set move.w 8(sp),d2 which bit? ext.l d2 paranoia bset.l d2,d1 set the bit move.l d1,(a0) return the value to the variable rts * * This function takes an int and a long and checks if the bit specified by * the int is set in the long. 0 is returned if not, -1 if the bit is set. * getbit move.l 4(sp),d1 the long to be tested move.w 8(sp),d2 which bit? ext.l d2 paranoia btst.l d2,d1 beq.s nope bit is cleared moveq #-1,tos set rts nope moveq #0,tos not set rts * * This routine copies a string into an array of integers. * * The descriptors of the string and array are passed, as well as the number * of bytes to be copied. Checks are made as to the length of the string and * array, as well as to the number of dimensions in the array. * * get_string is used to access the string, get_array to access the array * straint move.l 4(sp),d5 how many bytes to move move.l 12(sp),a0 string descriptor bsr get_string move.l a1,-(sp) save string address cmp.l d4,d5 is amount to move > string? ble.s oklen no move.l d4,d5 string isn't as long as he says oklen move.l 12(sp),a0 array descriptor moveq.l #1,d0 one dimension only bsr get_array cmp.l d4,d5 is source > target? ble.s oktrg1 no move.l d4,d5 target's not big enough oktrg1 move.l (sp)+,a1 pop string address subq.l #1,d5 dbf! shovel move.b (a1)+,(a2)+ dbf d5,shovel rts * * This routine copies bytes from an array of integers into seperate * elements of a target array of ints. * * This is useful if an array of ints has been used as a buffer, and the * byte data needs sorting out. Checks are made as to the length of the * source and target arrays, as well as to the number of dimensions in * the arrays. * * get_array is used to access the arrays * baint move.l 4(sp),d5 get the number of bytes to move move.l 12(sp),a0 the source array descriptor moveq #1,d0 only 1 dimension bsr get_array cmp.l d4,d5 check for size ble.s oksrc move.l d4,d5 oksrc move.l a2,-(sp) 1st element of source move.l 12(sp),a0 the target array moveq #1,d0 only 1 dimension bsr get_array cmp.l d4,d5 ble.s oktrg move.l d4,d5 it's not big enough oktrg move.l (sp)+,a1 pop source array subq.l #1,d5 dbf! shovel2 addq.l #1,a2 move.b (a1)+,(a2)+ dbf d5,shovel2 rts * * This routine takes a string, null terminates it, and returns the string * * Uses get_string, gl_scratch, make_string * nullterm move.l 4(sp),a0 get the descriptor bsr get_string cmp.l #128,d4 check for size blt.s oksiz moveq #127,d4 reduce size to fit oksiz lea gl_scratch(global),a0 move.l a0,a2 save address of copy move.w d4,d5 save string length subq.w #1,d4 subtract 1 for dbf loop move.b (a1)+,(a0)+ copy string dbf d4,loop move.l a2,a1 move.w d5,d4 clr.b 0(a1,d4.l) null-terminate string addq.w #1,d4 a byte was added move.l 4(sp),a0 the descriptor is needed bra make_string return the string to the variable & then * back to BASIC  IFD __G2 opt p+,c16+ ENDC * * LIBRARY.H include file for HiSoft BASIC HiSoft 1987 * * 30 Mar 88 changed for GENST2 compatibility * 5 May 93 inl_ macros added for inline trap calls * * Rules for HiSoft BASIC libraries * - * * Libraries be of the form: * * library NAME * * xref.l gl_scratch * all xrefs * xref get_string * * xdef test1 * then the user routine names * xdef test2 * * Note! -> xrefs and xdefs must be together before anything else * * subdef int,int * test1 subroutine that's passed 2 ints * fn_int int,int * test2 function that returns an int * * Note! -> The order of appearance *MUST* be the same as the xdefs * * libstart * after declarations before the code * * then your code... * * until there is no more or another library statement * * * get_string * * takes: a0 <- string descriptor * * returns: a1 <- address of string * d4.l <- length of string * * uses: a0,a1,d4 * * * get_array * * takes: a0 <- array descriptor * d0 <- number of dimensions the array should have * * returns: a2 <- address of first element in array * d4.l <- total length in bytes taken by array elements * * uses: a1,a2,d0,d4 * * * make_string * * takes: a0 <- string descriptor * a1 <- address of user copy of the string * d4.l <- length of string to be * * uses: d0-d4,a0-a2 * * * gl_scratch * * is a 128 byte buffer which may be used as workspace. It is used by BASIC * as the DTA, so be careful after Fsfirsts etc. This is the only space on * the heap that a library may use; if you need more, use the stack. * global equr a5 local equr a4 tos equr d7 tos2 equr d6 library macro module !\1 section CODE endm subdef macro dc.b 48,NARG+1 params \1,\2,\3,\4,\5,\6,\7,\8,\9 endm fn_int macro dc.b 95,'%',NARG+1 params \1,\2,\3,\4,\5,\6,\7,\8,\9 endm fn_lng macro dc.b 95,'&',NARG+1 params \1,\2,\3,\4,\5,\6,\7,\8,\9 endm fn_sng macro dc.b 95,'!',NARG+1 params \1,\2,\3,\4,\5,\6,\7,\8,\9 endm fn_dbl macro dc.b 95,'#',NARG+1 params \1,\2,\3,\4,\5,\6,\7,\8,\9 endm params macro ifnc '\1','' dc.b l_\1 endc ifnc '\2','' dc.b l_\2 endc ifnc '\3','' dc.b l_\3 endc ifnc '\4','' dc.b l_\4 endc ifnc '\5','' dc.b l_\5 endc ifnc '\6','' dc.b l_\6 endc ifnc '\7','' dc.b l_\7 endc ifnc '\8','' dc.b l_\8 endc ifnc '\9','' dc.b l_\9 endc endm array_mask equ 8 var_para_mask equ 16 l_int equ 1 l_lng equ 2 l_sng equ 3 l_dbl equ 4 l_str equ 5 l_aint equ l_int+array_mask l_alng equ l_lng+array_mask l_asng equ l_sng+array_mask l_adbl equ l_dbl+array_mask l_astr equ l_str+array_mask l_vint equ l_int+var_para_mask l_vlng equ l_lng+var_para_mask l_vsng equ l_sng+var_para_mask l_vdbl equ l_dbl+var_para_mask l_vstr equ l_str+var_para_mask libstart macro dc.b 0 even endm option macro string ifc \1,'' fail Bad param to Option mexit endc dc.b *-z\@+1 dc.b \1 z\@ endm inl_sub macro name,trapno,callno,paras dc.b *-z\@+1 dc.b ' ',48 dc.b '\1' dc.b ' ' dc.b \2,\3>>8,\3&$FF params \4,\5,\6,\7,\8,\9,\A,\B,\C z\@ endm inl_int macro name,trapno,callno,paras dc.b *-z\@+1 dc.b ' ',95 dc.b '\1','%' dc.b ' ' dc.b \2,\3>>8,\3&$FF params \4,\5,\6,\7,\8,\9,\A,\B,\C z\@ endm inl_lng macro name,trapno,callno,paras dc.b *-z\@+1 dc.b ' ',95 dc.b '\1','&' dc.b ' ' dc.b \2,\3>>8,\3&$FF params \4,\5,\6,\7,\8,\9,\A,\B,\C z\@ endm inl_sng macro name,trapno,callno,paras dc.b *-z\@+1 dc.b ' ',95 dc.b '\1','!' dc.b ' ' dc.b \2,\3>>8,\3&$FF params \4,\5,\6,\7,\8,\9,\A,\B,\C z\@ endm inl_dbl macro name,trapno,callno,paras dc.b *-z\@+1 dc.b ' ',95 dc.b '\1','&' dc.b ' ' dc.b \2,\3>>8,\3&$FF params \4,\5,\6,\7,\8,\9,\A,\B,\C z\@ endm inl_str macro name,trapno,callno,paras dc.b *-z\@+1 dc.b ' ',95 dc.b '\1','$' dc.b ' ' dc.b \2,\3>>8,\3&$FF params \4,\5,\6,\7,\8,\9,\A,\B,\C z\@ endm !MENUTEXTCODEcall_gemdo_errortos_free get_string tos_mallocmenu _&GNu -gBm+@pa*+ mBa*+ oa*+pvz SeX [fRaVSeL |fFaLSe@ ]f:`.Se4 [f.a2Se( |f"a(<]g Se \f`RSJf`6a*+RR (fSeRRSe<\g <]g<|fSRNu Ѓa*+H&HEX Ga*+d VNV OSQB(OaN^+K+K;|Rmpra*+G+gL;|pa*+.-Nu(-\] PP H*KAp&Q/ z|g8<[f;E4RE6&& B[&a$f7|6@B[66`7|(_;FD?;E;EREB[6/ &&B&& |MH/ ?RE&&B&6B[&~vJFfv<|fnMRE6&&B[&B[6RGaxf7|66@d6<]fJCjRCg/ I`(_6<47B _SE1ERE01C1G/Ag 1CA` _fF7| "_02LNup (@fRg<]g<|g <\gR`BDNu ' GEMAES.BH ' constant file for HiSoft BASIC ' use defint a-z and option u+ 'offsets in bytes for the global array CONST ap_version=0,ap_count=2,ap_id=4,ap_private=6,ap_ptree=10 ' constants for message types CONST mn_selected=10,wm_redraw=20,wm_topped=21,wm_closed=22,wm_fulled=23 CONST wm_arrowed=24,wm_hslid=25,wm_vslid=26,wm_sized=27,wm_moved=28 CONST wm_untopped=30,wm_ontop=31 CONST ac_open=40,ac_close=41 CONST ap_term=50,ap_aptfail=51,ap_reschg=57 CONST shut_completed=60,resch_completed=61,ap_dragdrop=63,sh_wdraw=72 CONST ch_exit=80 'offsets in bytes for OBJECT structure CONST ob_next=0,ob_head=2,ob_tail=4,ob_type=6,ob_flags=8,ob_state=10 CONST ob_spec=12,ob_x=16,ob_y=18,ob_width=20,ob_height=22 'offsets in bytes for TEDINFO structure CONST te_ptext=0,te_ptmplt=4,te_pvalid=8,te_font=12,te_just=16 CONST te_color=18,te_thickness=22,te_txtlen=24,te_tmplen=26 'offsets in bytes for ICONBLK structure CONST ib_pmask=0,ib_pdata=4,ib_ptext=8,ib_char=12,ib_xchar=14,ib_ychar=16 CONST ib_xicon=18,ib_yicon=20,ib_wicon=22,ib_hicon=24,ib_xtext=26 CONST ib_ytext=28,ib_wtext=30,ib_htext=32 'offsets in bytes for BITBLK structure CONST bi_pdata=0,bi_wb=4,bi_hl=6,bi_x=8,bi_y=10,bi_color=12 'offsets in bytes for APPLBLK structure CONST ab_code=0,ab_parm=4 'offsets in bytes for PARMBLK strucure CONST pb_tree=0,pb_obj=4,pb_prevstate=6,pb_currstate=8,pb_x=10,pb_y=12 CONST pb_w=14,pb_h=16,pb_xc=18,pb_yc=20,pb_wc=22,pb_hc=24,pb_parm=26 'OBJECT Types CONST G_BOX=20,G_TEXT=21,G_BOXTEXT=22,G_IMAGE=23,G_PROGDEF=24,G_IBOX=25 CONST G_BUTTON=26,G_BOXCHAR=27,G_STRING=28,G_FTEXT=29,G_FBOXTEXT=30 CONST G_ICON=31,G_TITLE=32 'Object flag masks CONST mask_none=0,mask_selectable=1,mask_default=2,mask_exit=4 CONST mask_editable=8,mask_rbutton=16,mask_lastob=32,mask_touchexit=64 CONST mask_hidetree=128,mask_indirect=256,mask_3d=&h600 ' 3D mask values CONST fl3dind=&h200,fl3Dback=&h400,fl3dact=&h600 'Object state masks CONST mask_normal=0,mask_selected=1,mask_crossed=2,mask_checked=4 CONST mask_disabled=8,mask_outlined=16,mask_shadowed=32 ' constants for wind_create bits CONST win_name=1,win_close=2,win_full=4,win_move=8,win_info=16,win_size=32 CONST win_uparrow=64,win_dnarrow=128,win_vslide=256,win_lfarrow=512 CONST win_rtarrow=1024,win_hslide=2048,win_all=&hfff 'constants for wind get and set CONST wf_name=2,wf_info=3,wf_workxywh=4,wf_currxywh=5,wf_prevxywh=6 CONST wf_fullxywh=7,wf_hslide=8,wf_vslide=9,wf_top=10,wf_firstxywh=11 CONST wf_nextxywh=12,wf_newdesk=14,wf_hslize=15 CONST wf_vslsize=16,wf_screen=17,wf_color=18,wf_dcolor=19,wf_owner=20 CONST wf_bevent=24,wf_bottom=25 'wind_update constants CONST END_UPDATE=0,BEG_UPDATE=1,END_MCTRL=2,BEG_MCTRL=3 ' message types for evnt_multi CONST mu_keybd=1,mu_button=2,mu_m1=4,mu_m2=8,mu_mesag=16,mu_timer=32 CONST type_tree=0,type_object=1,type_string=5,ob_sizeof=24 CONST FMD_START=0, FMD_GROW=1, FMD_SHRINK=2, FMD_FINISH=3 'objc_sysvar values CONST lk3dind=1,lk3dact=2,indbutcol=3,actbutcol=4,backgrcol=5,ad3dvalue=6 ' end of GEMAES.BH !FALCONTEXTCODE get_string gl_scratch dsp_loadprogBdsp_lodtobinaryU _VSETSCREEN%  _VSETMODE% X _MON_TYPE% Y 0VSETSYNC Z _VGETSIZE& [ 0VSETRGB ] 0VGETRGB ^ 0DSP_DOBLOCK ` 0DSP_BLKHANDSHAKE a 0DSP_BLKUNPACKED b 0DSP_BLKWORDS { 0DSP_BLKBYTES | 0DSP_MULTBLOCKS  0DSP_INSTREAM c 0DSP_OUTSTREAM d 0DSP_IOSTREAM e 0DSP_REMOVEINTERRUPTS f _DSP_GETWORDSIZE% g _DSP_LOCK% h 0DSP_UNLOCK i 0DSP_AVAILABLE j _DSP_RESERVE% k_% 0DSP_EXECPROG m 0DSP_EXECBOOT n_& 0DSP_TRIGGERHC p _DSP_REQUESTUNIQUEABILITY% q _DSP_GETPROGABILITY% r 0DSP_FLUSHSUBROUTINES s _DSP_LOADSUBROUTINE% t _DSP_INQSUBRABILITY% u _DSP_RUNSUBROUTINE% v _DSP_HF0% w _DSP_HF1% x _DSP_HF2% y _DSP_HF3% z _DSP_HSTAT% } 0DSP_SETVECTORS ~ _LOCKSND&  _UNLOCKSND&  _SOUNDCMD&  _SETBUFFER&  _SETMODE&  _SETTRACK&  _SETMONTRACK&  _SETINTERRUPT&  _BUFFOPER&  _DSPTRISTRATE&  _GPIO&  _DEVCONNECT&  _SNDSTATUS&  _BUFFPTR&  0VSETMASK //?/ oaHm +?<lNNO .Nua*+mxA +B0@SDQNu.o o aHm +?<oNNO .Nu!MINTTEXTCODE 0SYIELD  _FPIPE%  _FCNTL&  _FINSTAT&  _FOUTSTAT&  _FGETCHAR&  _FPUTCHAR&  _PWAIT&  _PNICE%   _PGETPID%  _PGETPPID%  _PGETPGRP%  _PSETPGRP%  _PGETUID%  _PSETUID%  _PKILL%  _PSIGNAL&  _PVFORK%  _PGETGID%  _PSETGID%  _PSIGBLOCK&  _PSIGSETMASK&  _PUSRVAL&  _PDOMAIN%  0PSIGRETURN  _PFORK%  _PWAIT3&  _FSELECT%  0PRUSAGE  _PSETLIMIT&  _TALARM&   0PAUSE ! _SYSCONF& " _PSIGPENDING& # _DPATHCONF& $ _PMSG& % _FMIDIPIPE& & _PRENICE& ' _DOPENDIR& ( _DREADDIR& ) _DREWINDDIR& * _DCLOSEDIR& + _FXATTR& , _FLINK& - _FSYMLINK& . _FREADLINK& / _DCNTL& 0 _FCHOWN& 1 _FCHMOD& 2 _PUMASK% 3 _PSEMAPHORE& 4 _DLOCK& 5 0PSIGPAUSE 6 _PSIGACTION& 7 _PGETEUID% 8 _PGETEGID% 9 _PWAITPID& : _DGETCWD& ; 0SALERT <!SPEEDOTEXTCODEcall_vdido_error get_array get_string make_stringv_bez_on v_bez_offv_set_app_buffv_bez> v_bez_fill@ v_bez_qualvqt_fontheader vqt_trackkern vqt_pairkern( vst_charmapNvst_kernlv_getbitmap_info vqt_f_extent(v_ftextv_ftext_offsetP v_getoutline vst_scratchH vst_error vst_arbpt vst_arbpt32 vqt_advancen vqt_advance32 vqt_devinfo v_savecache v_loadcache v_flushcache  vst_setsizeh vst_setsize32Fvst_skewB vqt_get_table6 vqt_cachesizeP v_wc_ftextv_wc_ftext_offse v_wc_gtextv_wc_justified_%000  0  0000000 0 00 0 00_%_&000_%_%_%_%_&_%0000 000;m`*+/pa*+BBe"Nua*+;BBa/-+Ja+_Nu;|`BmBmr ;Ap a>-xNu;o /H@+@pBm;|`rr `;| 4/ oCRBJ;BSBkvXTIQ4/ oadCx o0 o0 o ta2C$$Nu+| Bm;|2<c;oaN o0Nu+o0<Bm;|a ox8-Cx0$IS@k2`Cx`*+0<BmBma o  o Nu0<;o;o ;|`0<` 0<`0<;oBm;|aZ>-xNu0<;o;o Bm;|a6 o0x o0zNu0<;o aCx o 0 o0 o o o o o Nu2<;|;o <;o> oNTa*+;D0@ O/-+HSDeBQa+_N\Nu2<Bmt oa/-+J o a+_Nu2<;o <;o > oa*+$D;DB oaNA@JSBk Q o`bBm;| o4/;BBa;oA 0<a o0xNuBm;|0<;o+o`;|;oa>-xNu;|+oa.-xNuBm0<a o0 o0 o 0 o 0Nu0<+o;|Bmaba.-xNu0<`0<;oaaNu;o 0<a o  o Nu0<;o a o0 o`(2<Bm oa&>-xNu oa*+D;D0@2/NT O/-+H0UDeBQ0<a+_N\>-xNuBmBm0<a>-xNu0<BmBmaz o xNu0<;oa o xNupCR@Jhf;@Nur`2<;|;o <;o> oa`2<;o <;o > oa$@;@B oaA@JSBk Q`0C22p o ah0/;@@ /H@+@<;|;| r `` .  2..  BUILDLIBTTP W 3 CHECKST PRG Z 7HWCONVERTTTP ] JgKWCONVERTPRG b ]ZKWIMAGE PRG e pqRAMINST RSC h  WIMAGE RSC k "CTOBAS TTP m D)MON PRG p QPROFILE TTP t q_` ` aIB mA (A @߰|-PfP |-IfI a \B-AB-AB-AB-ABA mAApgB0B0Jg -fRgư< g߰<Lg2<Ag2<Sg2<PgD<Ig,<TgL<Qg:<ZgJA s` PPA`PA`PA`nI I `A P+HAA `PA`x`PA`nCg < g`.BINB/Aa\ _`( -Ag BA @`(HHV،,DIBB-AG B+pfxR-ApfjmA|A'NAaA aAapa,pf6a<f2 fJjBa<f fpf<fD<g<gpf,aJ`,a<f<gpf`B'N BBBBBBBBBk !f$'LSp JfJgJ 7@Bk@'LS<f<g<gvpfNAXpAQraApQ-Aa  J-Ag,AkaB/-B/?-A?<@NAO ?-A?<>NAXABg`6 )g/ "@a"_/ J) gA p)ڀa"Wzp)S@AQ equ $) f)a6) a0) a*) `a") a  "_ )g / "@an"_Nua< e^0Nurt1 g4 f./ 0HAS@dAC`ZBC "i H`aL"_RA<frRB< fNu<ffNu?`?AaH0aV/<d`rSAVfNu$`p 4 f 4XfP`pQ<dS@eQJgUBNu2pQA`pNuAA??/,B4 La _00Nu//?-A?<@NAO fNuA`DA`?<?B?<BNA(BoNAO / /??<?NAO ??<>NAXNuA`(o*l+LAAa<`?<da2J-AfHz(?< NA\J-Af?<NATO?<LNAJ-AfNuAH/?< NA\LNuH`t`H`tH@`H`tArQBAaLNu0123456789ABCDEF+HBASLIB.BINHBASIC.LIBHBASMALL.LIBHBASICTT.LIBHBASLIB.Igemdos bios xbios gemvdi gemaes menu falcon speedo mintvBUILDLIB 2.1 - BASIC Library Builder Copyright HiSoft 1987-93 File version 6 Finished OKFile not found Could not create output file Disc full or write error Resolving labels Writing Fatal error - was expecting byte Invalid truncation rule Fatal error - double defnFatal error - undefined labelFatal error - binary phasing Module : Imports: Exports: Length :Fatal error - libraries not consistentAbsolute import attempt Module 0 doesnt exist Reading : Building ASCII file ERROR - Invalid option Hit any key to exit...JBBmagic_version equ $ next_modnum equ $Nq(M`HZ&|x`Nqz8< 6< ><4<|(o*lNNH~N+| <5Nv&??JanFebMarAprMayJunJulAugSepOctNovDec2< NNv$ HiSoft CheckST Program version 1.2 2< N~=A .NN,N>-.<FN$N^-N,N>-.<FN$N^ G>=~DG^ ^0~=~=~Nd~DGNN>~NNv;This program is for use when reporting any bugs or problemsNXNN>~NNv;with HiSoft products. It reveals internal information whichNXNN>~ NNv8will enable us to identify any problems more accurately.NXN~=~=~NdBm Nd~NpNnNv5[0][ Compiled with | HiSoft BASIC| ][Quit| Print ]rNn~?A ./NrNO;G m g`XNqNPNNPNNPNNP~NA .NXN;| NdNPNNPNNPN~DGN`fNqNTJm f`.NqNP~N., NX~-N.,NXN`(NqN>~N., NX~-N.,NXNN\Nu`NqNTpNnA.-|.<@NN ^ A.-.,-~Hޞ G>NdNA.-A.-~H-A.Nv-~HDޞN-Nv.N-A.-~NNNpNnNvDOS version number:-NbNNrNnNvROM version number: -A.NrNnA./A ./NNO A.-NvROM created on : -.,-~Hޞ G~NdN-Nv NNA.-.,-~Hޞ G~NdN6N8 ^0A.-A.-A .-~=>,=~NN-Nv NNA.-A.-.,-~Hޞ G>NdNNpNnNvMagic number : $-.,-~ Hޞ G.NjNrNnA./A ./NNOA.-~DGH/.-~DGH/.-~DGH/.-NO ^ A.-.,-~Hޞ G. ^ A.-.,-~Hޞ G~ ^0>, G#g`$NqA.-NvAmericanN`Nq>, Gg`$NqA.-NvBritishN`|Nq>, Gg`$NqA.-NvDeutschN`JNq>, G3g`$NqA.-NvFrancaisN`NqA.-Nv?NA.-NvNationality : -A.NNpNnNvMemory :-N-><H&NNN-NvkNrNnA./A ./NNOA.-NvBlitter : N~DG?NTO=~^JGf`,NqA.-A.-NvYesNN`&NqA.-A.-NvNo NNA.-NvGDOS : NNJGf`,NqA.-A.-NvYesNN`$NqA.-A.-NvNoNNA./A./NPOA.-NvColourNN Gg`NqA.-NvMonoNpNnNvMonitor : -A.NrNnNvrNnA./A ./NNO NN\Nu~N O/0C0<HЈ",Іd䒆 Ь `H`// Bg?<JNAO JfLEA@,A0,Hp!!!.HA 0D"MBQ;@+F +LfSE;ED;D CaHNHz+_>?F?F"/FN<+g <-fPN<.g<0e <:dBo?|Bo <:d<0eaG0ajNRo`Jf /k WeR<.f6Bo N<:d<0eanG0a$RoSo ` ooR߰<Dg <EfZ`N<+g <-f?|N<:d"<0e2/A0AA@GA0?AN` g oo8/o gadAC$Ia9`ھ<&fN߰<HfBN<:d <0e2G0`"<Gd <Ae G7`<gd<aeGWaa&``H<BfN<2d:<0e4G0aaN`<OfN<8d<0eG0azaN`Jf0 /k eRdS|"` |"Ag ggfN/"g,Sf f" /H/@` e /a5VHPz./gLJ/gv?a3f:p`J/"f Jj a5`J/gDJ$Nu%&!#HJf߯eNua a4AC$IHa7"`7 / a4H PNuJf /Ѐe"ЀeЀe Ёe/@NuaAC$I`7Jf /ЀeЀeЀe Ѐe/@NuaXoNuJf /ЀeЀe Ѐe/@Nua|VoNuJf /Ѐe/@Nua`RoNuJfaR HGJD[jDD<AB!zVB.T/zTBNd A"O$Ha6JFg O"O$Oa6` JgCA$Ia7HHGPNu A ,0-JgPQa gBNu?a0@`  Nu !INu("hNu _x8aSr//Q/-+O/N m( SrPf Ha LQ m((+P`H+H+HY+I(+I$` - A䐈∓+I c+@LNuJk*"mg ɉRɉAH d+HNua`a $Ha JaNu/-BHa a`lG^pv.<"m AF"A$m $ QN m*g $ N E P`A"+I, U+@0NuNuSBeg"‡gf"`f$P(*SJg "‡g"`Qd`Nu$m X&m,Qd,m$(/ / / K R,I` (*X"Tb"eee$*ICʹd o( o- Y- XE` o oX- Y- E`d&^$^`*_& _"X$"X dG(H$S) $ce) $dNu m X.-0S,-"F*<& $X,ReV(*gȅe2؎e,$`8ȅ e^&ր*gR"&F܄ge@$SQdQd+FL+_/ح d(Nuafa,Memory exhaustedH/Gpvaar _a`SBe g"`Nu*<(I m ٭ ٭$$-0gRňX$`,Rd2Ho8 ^("ha@SoRgSe(`x"Dp!a*.NuaH ^Jk ga4c R--`.Nua`a G("hapψa h`HE`" Ga.Nu("hNu/ a _` H@g(Jg$HAJ@gJAfHA`JAgH@HAJAf ށeNu~NuDNu$JnDJnDai JkJjDNuJgF //JjDJjDp"~ҁU@D@އeRQ jD jDNuNu Ga4)k2BHҁC. Nuv!`:FBH*6HÖk&n"UDk>HǞkn"aևQ"`L` GaJgH<fZxCiff4)C k2BCHUDk0BAҀQ8. NuHxCSDt =QaL`a3a a a a FBH*&k趙nUDk.k־n"aFևQ"` GaJgV<fxCift4)C kJ^f2BCHUDkJ^fx0BAҀQ8. NuHxCSDt -QaL` GJf.4-4/ x$Nr6ASAHDJDfHD0BkR@Q/ pgaFC2 AA ?H؁a 222"8B2HR2 UAk0B22R@Q2prHASCd2`"Qd&_Nu2 4BSAA M BC p0 !Q&_ GJfb4-4/ H/~$Nz6ESE"kJRaQ( pga~C2 AA?H؁aD222FY"."R: UEk"""RapQ(*`0 Ga<f()aLB`&,<@Jj<a)h*Nuai 0GgDNu H@GA6a G@VGa GUU|vGa"D`$((*`A"a" Jvg mvNJga!`A a!"a"JUgAa!r2a"NuSe<dAa!AJg!JfS`LIBRARYSTARTUPOPENPEEK/POKEBLOAD/SAVESOUNDLOCATEINKEY$GEMDOSDIMARRAYBLITREDIMCVsMID$==MID$RIGHT$ASCINSTRPALETTEMALLOCMENUSCREENSQRTWINDOWJOYSTICKTIMEDATEMOUSELOG Y8 Runtime error at line in module on #A+HvNuA g<PdJfSfNuRETURN without GOSUBOut of DATAIllegal function callArithmetic overflowOut of memorySubscript out of rangeRedimensioned arrayDivision by zeroType mismatchString formula too complexRESUME without errorLine buffer overflowWrong number of dimensionsFIELD overflowInternal errorBad channel numberFile not foundBad file modeDevice I/O errorDisk fullInput past endBad record numberBad file nameToo many filesDevice unavailableDisk write protectedPath/file access errorPath not foundBREAK pressedFatal bus errorFatal address errorApa+@0Apa+@(Apa+@,NuaHm|9|rPJ-6fr(A|a>ra(rwa"Q"B,#`H Lpa#L (IL)HNu l p`&_|dVA``&FLLn0kN0SN0kNp*JgHP0SNL fS`NuzpgH P0SNL f < gR`"NupJgH P0kNL fS``<daTa@pNupDNu`aHz<d̰<g a"Ra`-5f -5fNuH?<?<NMXJ@gN/<NMX-5g<g,-5g*<f$/<NMX<g-5g<faM+@LNuJ,"gHrazrfatLNuHradrf,"aZLJNu<dA`HL.6H>HHHHd Q"aapNuP"pNuQ"pNur,#pNupDNuB,B,#rarE`pNu|dp,@dAB#A B H`rarYaL8a`/ Jikrarba"W2)a2A av"WJikrahrcab"_2)aA `RXpNuAAJ-6g -6gA0Nu    H @rareaLx*&I/ at&_< gT< gN<g <g< eںgHR/ a|&_`JgSJ,gS,/ rar ara&_`r ar a"p@Nu?,?<NMX<f lf -5frpNu?r aFr ax2< gp< g4R,,g,e lf< d<g<d<dp`0,<f< f ,#dR,#A???<NM\Jlg pNuB,`Rgp9Nu0,??<NMXrJfrpNuSgSgUg|SgpDNu&fvRBg/?<=NAJkb8>N?|NAJfPP0(<(؃Aa:)mV)C)C$)C |||9@p)@@)@NuPH`t9+@8lAgf LNuF5LCKKBg/?<NAXapNu`8,<d$ gA @N.T@(eа|dA``tp<gJf",gaBf atrpNur)ApNuHl(/, ??<?NAO Jk)@gB$Nup>Nua ,$e agp>)@NuA(r0R<gR$pNua",g$S)AS$dBg?/?<BNAO JkavpNua|pDNuat?(,$gA($e(٬a^8)l$Jg$/ /??<?NA"/O Jk$ѬfLpNua$< g4< g2R,,g(,d"B O | ApB,aXNuB,I? OpaTNuJg&//??<@NA$/O "Jkpgp=Nup"Nua  IJ,f6,Sev H x ggRQdAL0`r`Jg, I,< g< gReSf C`Zv`SH @vapAaBLgNu fXp6Nufp6XNuaB$BSt QdBg?/?<BNA"/O f Hl(/,??<?NAO Jkgr)ApNuaB$Bg?/?<BNA"/O Jl |fZ/?<?B?<BNAO "Jk@g(*HEJEgpH@ @ajf(SE`HE  |aVf ,B$A(aDfNu` f$Jj", R $,Ga"GA( ,NuXp6Nu?<?B?<BNAO /?<?B?<BNAO "&Bg?/?<BNAff$, `$/`$,"O pNua Tp6Nu< g,< gR,,g,e&,$d 8(R$pNuB,`?r ar a2`p2Nu",pNuPRT:AUX:MID:KBD:LST:H@b0HCAag (IpLNuLp4Nu8<0DaQNuH@af Hp0a L LJNu lN -f ?+mj+mnNuBm;| Ap 0Q0BmpNBT@g$pMa;@p-6T@;@0<da0-f:pMa;@;|0<da0-faCannot open workstation;@;@BX+m^\BmBmp&at;mTpm;@VBm;|Bm;|p'aJBm;|;|pa4Bm;|Bmpa NuQ7a -gBm+@paBBm;|pzaa0BmBmpeapa`6pD`p4ONu/ H0@a~0/|bCHI o f"+|phaADC1111/HC2"X"\pda|k(<6Aa9@;@&|B,B,#9m "o B2B.Jo g& IaRa" R/ a b)H."_HaB"l.;l;|+IpiaRmA+HpiaL 8A0P0000pea;|phaL@ASBSCHHJJ-7faxp0,T@C$"V#zV3zTapNu;|;|A+H+H;|A"    A"Nu0,2,l4,6mVA`6420ll@AH";|Bm;|p a\pNup;|;|;@LCBllH" H@+@p a pNup fpBm`0j 0,(RBg0,&/aLL a$0,(Bm;|;@papNuLCBBm;|llllH"papNu;|;|;|llH"pgaxpNup,@d$ATRBV0lld HpNupNuA$C p2!k0TQC$/ (IBm;|;\0<a;\0<a;\0<a;\0<a;\0<a(_pNu;l;|A1111pia;|phaL@ASBSCHJ-7fa2lfLHJajpNu0a:8ABX0 BL\R@RAHplafCFA33330Dp!`ahpa2)NuHJ-7f"A<+H+|;|0pagLNu40. a "N nM4vaf;H.Nuv`|d@0@Nua`0a`v0.at* E2 GaPpa"4|. ^Ta@p`0aP* E. Ga,pA$E00 pia|Nu0a(* E2 Gap`JgH RaLBala< RH`azL$HaئB"RNuJGk|dV;GpNa|4`B-4`|d4BmBmԾ|gp|aG0;p>5Nu0<a>-^Nu^aV/?<HNA\Jgf @Nu/?<INA\Jga*3a$a0|JgD0A4</va`. Compiled with HiSoft BASIC 0<rtvaf;H$;H.A0<rtvafNuaޮDLST:JGo |d0GNu0Gp4`x;m.$Nua;G$Nu;|$Nu Ga$0m$pat G`p0m$adHA86HBrBDHAJAgHAJCgAcVB8SDpr a4QNuJGo8SD0m$`JGkg.p0m$agJBgHGJGgHBRBBdBSGHzCt0m$p` g./ m fAN _`??<?<NM\Nu/<NMXNuCDjDG@AB|Ab DSGkUĆQ(k(j2xc 0D@`fc 0D@`D@@`D@@ԆӅdf UĆR@(fJk0<NuJkJkxAS@J[NuJkV`t"g pJk S@ҁ`0<vNuMC68341 FLOATING POINT FIRMWARE (C) COPYRIGHT 1981 BY MOTOROLA INC.,GgT klknf`@,k^g>k^g2k8<d,&B<ރeNuRid~S<Nu.NuJ}Nu<oD&B<ރeNukgvgPk<<d&B꫞kBSbHGއ[kgNu~Nu<oD&.<`DgjD`k gBAkjDNu<Nu~NuBkjDDNufDJjNuHz_Jg0jzDi&SbHGއ[Jj dRNuMC68343 FLOATING POINT FIRMWARE (C) COPYRIGHT 1981 BY MOTOROLA INC.rtvx2(4(6(8( |o864BA@`J@gHCv6BBHANuH0)hlH0)h|?ovx`J@ga`LL*jfcCD@` ԄӃdR@HLNuJfJgJk S@jHNu0<5@NuJfJg JfJfBBB|XONua/ 04R0(iR@5@&Oz////zL81P֣7CBCSHCԃ6BBHB҂ң7ABAQHAЁ'@\KUEjLJkSjjH&_NuaL/04R0(i5@LL xzJk SjjJk Rjj|?Eg҃тQJk SjjH0,NuHz ?<&NN\.:Nu Aj |On8@ &{8|<ACe CLdV>378 sf78@@@8A .|4VyNu ?<0NATH@>Nu;o oaa p4a>NuA<+HSe`BNupNBT@VHNu//// //?<NNO.Nu?<NNT.Nu?/?<@NNX.Nu8H(y`HNFHy ./</< N>N>jHy 8/</<N>N>jHy N/<'/<(N>N>jHy x/<&/<'N>N>jN>jHy /</<N>N>jHy /</<N>N>jpANAvNuNVHy /</< n//./. n//./.N2j?N57@*r2+*$&.c nB`\ n4+*RBHBBBHB""n n4+*TBHBBBHB""nR n4+*VBHBBBHB""nT nVBN^ _NNVpNA8 n(//.$/. /././.N3Hy /</< n//./. n//./.N2j?N5=@r2.$&.c8 n//./.Hy /</</././.N1` n4.RBHBBBHB"B n//./. n//. /./././.N1N^ _$NNV/9H n #H/9HA#H*yH-@ @g`(yH` @g`&.Jg*yH` *yHB`x @g`*yH`` @g`*yHB`J @g`*yH`2 @g`*yH` @g`*yH`*yH@rAf$(yH,@;@,@;@`*yHBm(yH,@;@*yHA//</<(yHHl/</<N3HnN|#H#HN^ _\NNV/9H n#H/9HA#H*yH-@ @g`(yH` @g`,*yH-Jg(yH` *yHB` @g`*yH` @g`*yHB`x @g`*yH`` @g`*yH`H @g`*yH`0N>jHy /</<N>#H#H`*yH@rAf"(yH@;@,@;@`*yHBm(yH@;@*yHA//</<(yHHl/</<N3HnN|#H#HN^ _XNNV/./<N>jN^ _XNNV-n -n n"nrpN?nR`N^ _PNGHHy */<:/<;N>N>jHkn/< /<,HkN.Z7|$JkfNp2+SAp@m??7@*2+*A snX//</<Hk/<d/<Hk"N,| k"oDHk?+"?<A`""O O O GHN&_Nu /N)"`HJk"f@2+*A snX//</<N>Hy f/< /< N>N>j2+"SAp@m??7@(2+*A snX//</<8+(H DA//< /<Hk,/<A,//<N>jHk,N02R@Qb02R@Q|NuUsage is: WCONVERT where gives the file(s) to convertDEF, DFN and RSD files may be convertede.g. wconvert mine.dfne.g. wconvert *.rsd.Warning: Unknown type foundDEFRSDHRDDFNSorry, can only convert DEF, RSD and DFN filesWConvert Command Line version 1.3 (c) Copyright HiSoft 1990 not found.Converting: *yHRmR RRR NA8RnRnRnRnRnNA8RnRnRnGObNuInvalid name %1Name %1 already exists - ignoredNA8GPNu o "oB0/g S@ Q _O N o "o0/gS@Q _O NRRnRnRkGQ&HkHkHkHkN(7@ | CNuNA8NA8Rn n,RP n,RPSnRnRnRnNVBkt4+ B(@v CfRk`r2+ Ah.@rAf`4Rk.@r Af`r2+ AnRk`r2+ AB(N^NuNA8RkRkRnNVA//</<N>Hy/</<N>N^NuNV n//. /.Hk/</<N3N^ _ NNVpNA8pNA8p(NA8/ GQ: n(//.$/. Hk/</<N3BkBkN kfjA"|2<pN?nf/././.NF`,A"|2<pN?nf/./. /.NJkcN`Jkf ``N`tN>j&_N^ _$NNVpNA8p NA8/ GQ:/.?< Hn/</<HnNHn/</<?<pn?N4 n //./. n//./. A//</<N~&_N^ _NNA8NV/ GQ: n//./. Hk/< n4H(*.n* n"."n6H$- n0R@ n0&_N^ _NRRNV/ GX0 nf NE|=@ ndt?.NJ@f`bNE-@HnzNE |(C~"Q0.|A@9(HnNFH-@?.N-@/.NE&_N^ _TNNV nR@t:Bf(U nN?A0|A?N` ? n :EH E g&/9H n 4BH B s#H*yHJmc-Jg.JgHmr2- / n 4?NF'@Jl$*yHBm +D7@#H``R +*yH4-H"l&Bm n 2?NEH'@'|` n 2?NEH'@` n 2?NEH'@ n 2AH AHs*yH8PDHDBDHD&/N;#H` n 2?NEH'@Jl +D7@`Bk&_N^ _\NNV/ GX0?./.?. NJkf + n0` n0&_N^ _ NNV/ GX0?./.?. NlJkf + n0` n0&_N^ _ NNA8NA8NA8NV/ GX0 n e" n2 b2. AH A g`\2. AH AHs6.PCHCBCHC$/N9/9H4. BH B s#H*yH:BmBmB-#H&_N^ _XNGX0r-p??7@2+AH A'02R@QNu@:*.*NV/ GY=|MBn=|BnBn/0.24.BfSn/./.?. ND` .t4. "Ё-@/.?.?. /.N/.0.n??. /.N&_N^ _ NNVp NA8/ GY nBPHnNE+/. NF=@Jng`R n2H&(.o`:"n n8H rNB$A"""2 nRPNF=@`&_N^ _NGY |-0CNuNVHn2. ZAH /N9*yH m"m 4H" /9H yH#H/9H m"m 6H$ P#H0+24-Bm(yH| `*yHn 0. *yHn2. SAp@m".0+@e&??7@ nt4+" 02R@Q".RA7A0+$.2Ab nt4+"B0+`&_N^ _NNVpNA8/ GY n//./././. /.<N7@&_N^ _NNA8NV/ GY n//./. N67@0. 24+Be`0. n24+Bc0+n =@2+n0. @e:??7@ n4+nHBBBHB""nz:+(02R@Q0+n7@0+$.2Ab nt4+"B&_N^ _NNVp NA8/ GY0.$.2Ac .=@ n //./.N<7@0.24+Bd Jnf nB`0.n24+Bc0+n=@2.nSA0.@e:??7@ n t4+""n:+nHEBEHE(02R@Q0.$. 2Ab nt4."B&_N^ _NNA8NA8NVpNA8pNA8/ GY n//./. NB7@0.24+Be 0+S@=@ n//./.N7@0.kR@7@Bk0+$.2Ab" n|<+*Cp@f 0+`b nv6+$@ n2+kHABAHA,Dg`Rk`Jkf` Sk`r".0R@`&_N^ _NNVpNA8p(NA8/ GYHy8/</< n(//.$/. $.$2RA?N=@0.$.$2AcBnHy8/</< n(//.$/. $.$2RA?NX=@0.$.$2AcBn0.24.Bc=nHy8/</< n(//.$/. $.$2RA?N=@0.$.$2AcBn0.24.Bc=nJnf, n//./././. /.<Nv=@`X n(//.$/. ?<2.RA?/./. /.Nh n//. /. n//./././. /.NZ&_N^ _$N\:/NV//< /<N>N>jpANAvNuNV/ GY n  f` .^//p02@0Nu0/lD@?@ _TN _0@NS@gVf JAgmJ`JNuNu _ am znNH@B@H@Nu>p02@0NuNFQN(NQNNQNNFQN @g,NVf _.IN! R _.IFfSNNfRN Am~>G@l7xARA'drNr _gRNДA _N RAQN Am$~>懾@l??0<`7x02Nup _HyHNgRACSNuACSNu @lpNu"_.HN PN Am~>懾@l??0<`F7x02Nug @0(` @ ("P$_gR (OgS!Q NO HgNz @oJ$//?< NAOHyH?< NAO N:HyH?< NAO2<0<QQ2 _?<NA _p HyHN/H@N NNu?@N 0NNuN NNu l0NW??<NAONu /lD/@ _XN//Nf"N "ANu//Nz"N*"ANu.HA/HGBGЇ.HGHAHGBGЇNu.HA/HGBGЇ.HGHAHGBGЇNu lD lD`NDNu lD`HA AfHA.B@H@H@HG>HG0NuHAe8B?<eRF`ЁeQ`eQ< SNupNu#ZV"(gT} g" gDopHyH |N "_.@!@/ //?<?<JNAO N"_.@/ Nu o0 @f #HNL @f#HN8 @f !yHN& @f0( WN"yH#H3@ iN _ON _ @NпZVn _p HyHN N _> N _> N _ B@H@N _ H@B@H@N o "oB0/S@m Q _O N o "o0/S@mQ _O N o "o0/S@m Q _O NvpNvpNvpNvpNvpNvpNvpNvpN~vpNvvp Nnvp Nfvp NjvpNVvpNZvpNRvpNJvpNBvpN.vpN&vp*Nvp+Nvp,Nvp-Nvp/Nvp0Nvp1Nvp6Nvp9Nvp:Nvp;NvpNv p?Nv p@NvpANvpBNvpCNvpENvpFN~vpGNvvpHNnvpINfv pJN^ _6 "$// ////??<KNAO,_&_NuvpLN.v $?//pNNvpONv pVN vpWN(_?NATN(_?NA@TNA" <NB _ONA"psNB _ONAG#H <"<ZxNCLNN N bNN-N?(N=N(fNN N8N HpANAvFORM MENU ALERT FrStringFrImageObject bject 0123456789ABCDEFCONAUXPRN not enough memory to runOut of rangeSet element out of rangestack overflow near  . .*H  ""       :  2&& . $ "&&4 *\6,fx<Z (,$ " B""F $42D $ $$   HZ( *D"|>  & 64T X.$  .R& ,F $v,VL8 6HB R>2 < dz","T<@P4^>$8  L>dV."$ L\:   F\. 6 2 VL ( 2$".j.H(  `H ,NE&NVpN?2Hy /</<AT//<?<Hy /<+/<,N1 @f N`#H#H`*yH@rAf"(yH@;@,@;@`*yHBm(yH@;@*yHA//</<(yHHl/</<N4`HnN#H#HN^ _XNGHN(?</JJfR+"`"OPHk2+&SAAHABAHA /N7/+0+&S@@?NLNHkh/<*yHAyHRyHQyKyHP#HN^ _XNR.NV/ GOP/./. /.<N&HnNhHn?<N|&_N^ _ NNV/ GOPB./.".\$.0?N n\//</<NnHn?<N&_N^ _XNRnNV/ GOP+Jg|HnNN&_N^Nu*yHRm*yHRmRnRnRnRnRnRnRnS+GOP |C~ "QNu"WERCS.LNGLANGUAGE ENDINITTREEOBJECTEXITSOURCE. expected afer SOURCE directiveINITIALFOLLOWSIGNIFICANCECASING Bad directive: Error reading .LNG file - no languageWERCS.INFGRNNu yT0 @RBNuGRNA`/ GRNN&_Nu /NDNu _02// /???<NMO,_&_Nu _2// /??<NMO,_&_Nu _2// /??< NMO,_&_Nu _2// /??<NMO,_&_Nu#RV#RZ?<NMO&yRZ yRVN#RV#RZ?<NMO&yRZ yRVN#RV#RZ?<NMO&yRZ yRVN#RV#RZ?<NMO&yRZ yRVN#RV#RZ?<NMO&yRZ yRVN#RV#RZ?<NMO&yRZ yRVN#RV#RZ?< NMO&yRZ yRVN#RV#RZ?< NMO&yRZ yRVN#RV#RZ?<NNO &yRZ yRVN?<NNTNu?<NNTNu?<NNTNu _$_// / ?<&NNO&_Nu#RV#RZ?<NNO &yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?< NNO&yRZ yRVN#RV#RZ?< NNO&yRZ yRVN#RV#RZ?< NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO&yRZ yRVN#RV#RZ?<NNO &yRZ yRVN#RV#RZ?< NNO&yRZ yRVN#RV#RZ?<!NNO&yRZ yRVN#RV#RZ?<"NNO&yRZ yRVN#RV#RZ?<#NNO&yRZ yRVN#RV#RZ?<$NNO&yRZ yRVN#RV#RZ?<%NNO&yRZ yRVNRn*yHRv*yHRvN?2Rn|Rn|RnzN?2N?2N?2N?2RnN?2N?2N?2NV/ GRb .7@r2. .N@'@ ./v6. "+N@"*'E kHV"n6+H$-kSkJgJkl".k n0r0+@n(D??7@ n4+H" 02S@Q&_N^ _NNV/ GRbJl| .D-@`B./.?./././. /.N.Jg> n4H(*.n* n"."n6H$- n0R@ n0&_N^ _NRRNV/ GRv nf NC=@ ndt?.NJ@f`bNC-@HnzNC |,TC~"Q0.|A@9,ZHnNDH-@?.N-@/.NC&_N^ _TNNV nR@t:Bf(U nN=A0|A?N` ? n :EH E g&/9H n 4BH B s#H*yHJmc-Jg.JgHmr2- / n 4?ND6'@Jl$*yHBm +D7@#H``R +*yH4-H"l&Bm n 2?ND&H'@'|` n 2?ND&H'@` n 2?ND&H'@ n 2AH AHs*yH8PDHDBDHD&/N9#H` n 2?ND&H'@Jl +D7@`Bk&_N^ _\NNV/ GRv?./.?. NJkf + n0` n0&_N^ _ NNV/ GRv?./.?. NlJkf + n0` n0&_N^ _ NN?2N?2N?2NV/ GRv n e" n2 b2. AH A g`\2. AH AHs6.PCHCBCHC$/N7/9H4. BH B s#H*yH:BmBmB-#H&_N^ _XNGRvr-p??7@2+AH A'02R@QNu@:*.*RkRkRkRkRkRkRkNV/ GS=|MBn=|BnBn//<@tBgRr2.$&. b0. nv6.$>2.3>@t\Bf 0.R@=@Rn`Bnr2.$&. bD nRnRm`N^ _ N/9HNV#H |0C~"QNCR@=@?.Hk>NDf=|>2.3>@tBf=n02S@Q n7c=|7=n=|Hy1/</<N=n2.SA3>@t\Bg0.\>RnHy1/</<N0.B3>0.|AS@@>N^#HNuGSNNu[ ][]Prompt box too big for screen OOPS%AcceptCancel:*.RSCNVpN?2/ GTT=|4=|=|=|Bn=n-n/".0+@e&??7@ nt4+" 02R@Q".RA7A0+$.2Ab nt4+"B0+`&_N^ _NNVpN?2/ GTZ n//./././. /.<N7@&_N^ _NN?2NV/ GTZ n//./. N67@0. 24+Be`0. n24+Bc0+n =@2+n0. @e:??7@ n4+nHBBBHB""nz:+(02R@Q0+n7@0+$.2Ab nt4+"B&_N^ _NN?2N?2N?2NVpN?2pN?2/ GTZ n//./. N:7@0.24+Be 0+S@=@ n//./.N 7@0.kR@7@Bk0+$.2Ab" n|<+*Cp@f 0+`b nv6+$@ n2+kHABAHA,Dg`Rk`Jkf` Sk`r".0R@`&_N^ _NN?2N?2\:/NV/p02@0Nu0/lD@?@ _TN _0@NS@gVf JAgmJ`JNuNu _ am znNH@B@H@Nu>p02@0NuNFQN(NQNNQNNFQN @g,NVf _.IN! R _.IFfSNNfRN Am~>G@l7xARA'drNr _gRNДA _N RAQN Am$~>懾@l??0<`7x02Nup _HyHNgRACSNuACSNu @lpNu"_.HN PN Am~>懾@l??0<`F7x02Nug @0(` @ ("P$_gR (OgS!Q NO HgNz @oJ$//?< NAOHyH?< NAO N:HyH?< NAO2<0<QQ2 _?<LNA _p HyHN/H@N NNu?@N 0NNuN NNu l0NW??<NAONu /lD/@ _XN//Nf"N "ANu//Nz"N*"ANu.HA/HGBGЇ.HGHAHGBGЇNu.HA/HGBGЇ.HGHAHGBGЇNu lD lD`NDNu lD`HA AfHA.B@H@H@HG>HG0NuHAe8B?<eRF`ЁeQ`eQ< SNupNu#U"(gT} g" gDopHyH |N "_.@!@/ //?<?<JNAO N"_.@/ Nu o0 @f #HNL @f#HN8 @f !yHN& @f0( WN"yH#H3@ iN _ON _ @NпUn _p HyHN N _> N _> N _ B@H@N _ H@B@H@N nRPn RnGUBkBkNuNV/ GU=|ZBn=|=|Bn-n -n/Nv p?Nv p@NvpANvpBNvpCNvpENvpFN~vpGNvvpHNnvpINfv pJN^ _6 "$// ////??<KNAO,_&_NuvpLN.v $?//pNNvpONv pVN vpWN(_?NATN(_?NA@TNA" <NB _ONA"psNB _ONAF(#H <ۄ"<VNAFN"NBN N pNDN0N="N;N,$N NNpAN?pdFORM MENU ALERT FrStringFrImageObject bject 0123456789ABCDEFCONAUXPRN| not enough memory to runOut of rangeSet element out of rangestack overflow near   "$<&  . .*H  "  "        "8  2&& . $ "&&4zZ .*0$6 " xX""lH $42D $ $& $$z   HZ( *D"|>   & 64T X.$  .R& ,F $v,VL8 6HB RZ2 B:  D*2J$ lD.j@ L\:  . 6 2 VL ( 2$".j.H( j> < `l NkNeHNeH?+NSpNQ7@NF07@pANeNuNVpNeHHy/</<A~h//<Hk Hk HkHkNVf7@r p??7@2+AH A1|02R@Q7|"Hk/< /<HkHk&/<6/<nNS<?<HkNQ7@<?<Hk NQ7@<?<HkNQ7@<N?<Hy$/<U/<VNH @fN |C~"Q |C~"QNuNV.Jgz? n :EH E g&/9n( n 4BH B s#n(*yn(Jmc-Jg.JgHmr2- / n 4?Nj,'@Jl$*yn(Bm +D7@#n(``R +*yn(4-H"l&Bm n 2?NjH'@'|` n 2?NjH'@` n 2?NjH'@ n 2AH AHs*yn(8PDHDBDHD&/NZ#n(` n 2?NjH'@Jl +D7@`Bk&_N^ _\NNV/ G{?./.?. NJkf + n0` n0&_N^ _ NNV/ G{?./.?. NlJkf + n0` n0&_N^ _ NNeHNeHNeHNV/ G{ n e" n2 b2. AH A g`\2. AH AHs6.PCHCBCHC$/NX/9n(4. BH B s#n(*yn(:BmBmB-#n(&_N^ _XNNV/ G{?<?./<Nj<-@?<?./<Nj<'@Jl +D7@p`$` ?<?./.Nj<-@ +`&_N^ _TNG{r-p??7@2+AH A'02R@QNu@:*.*NV/ G}0 .7@r2. .Nf'@ ./v6. "+Nf"*'E km"n6+H$-kSkJgJkl".k n0r0+@n(D??7@ n4+H" 02S@Q&_N^ _NNV/ G}0Jl| .D-@`B./.?./././. /.N.Jg> n4H(*.n* n"."n6H$- n0R@ n0&_N^ _NRR nRPn RnG}DBkBkNuNV/ G~$=|h=|=|BnBn=n=n//<@tBgRr2.$&. b0. nv6.$>2.3>@t\Bf 0.R@=@Rn`Bnr2.$&. bD nRnRm`N^ _ N/9n$NV#n$ |LpC~"QNiR@=@?.Hk>Nj\=|>2.3>@tBf=n02S@Q n7c=|7=n=|HyL/</<N=n2.SA3>@t\Bg0.\>RnHyL/</<N0.B3>0.|AS@@>N^#n$NuG~*NNu[ ][]Prompt box too big for screen OOPS%AcceptCancel:*.RSCNeHNeHRnRnNeHNeHRkRkRkNVpNeH/ G~Bk0+$. 2Ab( n|<+*Cp@gRk`0+`&_N^ _ NNVpNeH/ G~Bk0+$.2AbT6+*.8DbD np0+Fp@g& nt4+""nz:+(Rk`7k.Jg>".0+@e&??7@ nt4+" 02R@Q".RA7A0+$.2Ab nt4+"B0+`&_N^ _NNVpNeH/ G~ n//./././. /.<N7@&_N^ _NNeHNV/ G~ n//./. N67@0. 24+Be`0. n24+Bc0+n =@2+n0. @e:??7@ n4+nHBBBHB""nz:+(02R@Q0+n7@0+$.2Ab nt4+"B&_N^ _NNeHNeHNeHNVpNeHpNeH/ G~ n//./. N:7@0.24+Be 0+S@=@ n//./.N 7@0.kR@7@Bk0+$.2Ab" n|<+*Cp@f 0+`b nv6+$@ n2+kHABAHA,Dg`Rk`Jkf` Sk`r".0R@`&_N^ _NNeHNeH\:/NVpNeH/ G~Bnr2.$&. bL np0.,Dp @g, np02@0Nu0/lD@?@ _TN _0@NS@gVf JAgmJ`JNuNu _ am znNH@B@H@Nu>p02@0NuNFQN(NQNNQNNFQN @g,NVf _.IN! R _.IFfSNNfRN Am~>G@l7xARA'drNr _gRNДA _N RAQN Am$~>懾@l??0<`7x02Nup _HymNgRACSNuACSNu @lpNu"_.HN PN Am~>懾@l??0<`F7x02Nug @0(` @ ("P$_gR (OgS!Q NO mgNz @oJ$//?< NAOHyn?< NAO N:Hyn?< NAO2<0<QQ2 _?<LNA _p HymN/H@N NNu?@N 0NNuN NNu l0NW??<NAONu /lD/@ _XN//Nf"N "ANu//Nz"N*"ANu.HA/HGBGЇ.HGHAHGBGЇNu.HA/HGBGЇ.HGHAHGBGЇNu lD lD`NDNu lD`HA AfHA.B@H@H@HG>HG0NuHAe8B?<eRF`ЁeQ`eQ< SNupNu#"(gT} g" gDopHym |N "_.@!@/ //?<?<JNAO N"_.@/ Nu o0 @f #mNL @f#mN8 @f !ymN& @f0( WN"ym#H3@ iN _ON _ @Nпn _p HynN N _> N _> N _ B@H@N _ H@B@H@NvpNvpNvpNvpNvpNvpNvpNvpN~vpNvvp Nnvp Nfvp NjvpNVvpNZvpNRvpNJvpNBvpN.vpN&vp*Nvp+Nvp,Nvp-Nvp/Nvp0Nvp1Nvp6Nvp9Nvp:Nvp;NvpNv p?Nv p@NvpANvpBNvpCNvpENvpFN~vpGNvvpHNnvpINfv pJN^ _6 "$// ////??<KNAO,_&_NuvpLN.v $?//pNNvpONv pVN vpWN(_?NATN(_?NA@TNA" <NB _ONA"psNB _ONAl#n <"<Ng\NNNUNE,N#NN\NCvNNL`N4N0NNlN 0pANe^H+H-W+W-ClearFillVFlipHFlipLineDataMaskCopyANDORXORCoverZoomCancelHH $$DD FORM MENU ALERT FrStringFrImageObject bject CONAUXPRN0123456789ABCDEF |not enough memory to runOut o uf rangeSet element out of rangestack overflow near    "$<&\ ,6JB     b   8& (0rL .  0 <4  z        "((J8  ( "*$ *4",0 2($$P"..      (8 $ , b& 2(  l  "< >  "*T0(@ B2  2 F : : p "@ "2 4 D*2J$ lD.d\:   "2 F X H<" >:( $L 22 B: . 6 2 VL ( >".j.H( >  F^^^$^ " m:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_Xm:12345678.123_XMDrive: _:a0500Disk Size: ____K99991234Dir Entries: ____9999LOAD012345678901234567890123456789Save as: _PSAVEClear FilesCopied Files/Directories:EXITHiSoft Reset Proof Ramdisk 1.9LOAD DRIVERLoad info$3BQ`o~#2AP_n}"1@O^m|!0?N]l{ 9(!9  . J f       * F b ~ '  $&$ B'X ]& i+ 1 $! %& ^n$"Select Colours to use:Colour 0NoneDataMaskBothColour 1NoneDataMaskBothColour 2NoneDataMaskBothColour 3NoneDataMaskBothColour 4NoneDataMaskBothColour 5NoneDataMaskBothColour 6NoneDataMaskBothColour 7NoneDataMaskBothColour 8NoneDataMaskBothColour 9NoneDataMaskBothColour ANoneDataMaskBothColour BNoneDataMaskBothColour CNoneDataMaskBothColour DNoneDataMaskBothColour ENoneDataMaskBothColour FNoneDataMaskBothQuitOKEnter area to import000X ___999000Y ___999000Width ___999000Height ___999QuitOKUse MouseIconImage~~~~~~~pppUNppppUNppppUNppl;DE Zcd y      3<= R[\ qz{       HLU Y]f jn{ $ s($     FKP U       ejo  t           %!$"#$  &  '  ,(+)*+ '-< .  3/2 012 .4X 5  :69 78$9) 5.;t <  A=@ >>?C@H <MB C  HDG E]FbGg ClI J  OKN L|MN JP Q  VRUSTU QW X  ]Y\Z[\ X^ _  d`cabc _e f  kgjhij fl8 m  rnqopq! m&s+'0 %3T p        1    `)&|(o*l`Nqz8< 6< e><4<|NN*+|4N~-Nh N2< fNNh2< nNNh2< vNA f.N+G .- -~HNJGf` Nq~N~H+G .- -.- NJGf` Nq`NqA f.-.- -~HN-Nh NJGf` Nq`Nq.- -~Hޞ+G `Nq.- -A f.-Nh Nh+G A f.-.- -.- -~HDޞN2< nN.- +G `HNqpNA n.rN`A./N:NO+G .- -~HNJGf`@NqA n.2< ~NA n.-~H-.- -~HDޞN2< nN` NqA n.-Nh.HN2< ~NN$Nh Converting N>A ~.N>Nh to N>~H+G NhI-.- =A ~.-><Nn.- NT+G .- -.- N,.N-~ N-~ NNN2< N~H+G .- -~Hޞ+G pNA n.rN`A./N:NO+G A n.-Nh.SYMN2< NA n.-Nh.BHN2< vNN$A v.N>N~H+G NhO-.- =A v.-><Nn~H+G ~H-A .-~NNh+G .- Jf`,NqA .-~H-.- -~HDޞN2< N.- -A .-Nh/*Nh+G .- -~HNJGf` Nq`NqA .-A .-.- -.- -.- DޞNN2< N.- -A .-Nh*/Nh+G .- -~HNJGf`HNqN$NhWarning unterminated commentN>NA .N-~Hޞ+G A .-Nh'N-A .-.- -~Hޞ-.- -.- Dޞ-~HDޞNN2< N.- -~Hޞ+G `NqA .-A .-.- -A .N-.- Dޞ-~HޞNN2< NN$NhPass 2N>N~H+G .- -A .-Nh#defineNh+G .- -~HNJGf` Nq`8Nq.- N,A .-.- -.- -.- DޞNN>.- -~Hޞ+G A .-.- -~HNN=~ NJGf` Nq`Nq.- -~Hޞ+G `Nq.- N,NhCONST N>A .-.- -~Hޞ-.- -.- Dޞ-~HDޞNN>Nh%=N>A .-.- -~HNN=~ N~JGf` Nq`Nq.- -~Hޞ+G `Nq.- +G `Nq.- N,A .-.- -A .N-.- Dޞ-~HޞNN>NN$NhFinishedN>N`NqNT.,N+G A.-~H ^ .- -~HNJGg`Nq.,-.- -~HNNH+G .- -~.HNJGg` Nq` NqA.-.- ^ `FNq`(Nq.- -~\HNJGg` Nq` Nq`Nq.- -~HDޞ+G `XNq.,N\Nu~N O/0C0<HЈ",Іd⒆ Ь `H`// Bg?<JNAO JfLA@,A0,Hp!!!.HA 0D"MBQ;@+F +LTSE;ED;D Ca2Ho8 ^("hapSoRgSe(`x"Dp!aZ.NuaH ^Jk gadc R--`.Nua"`al G("hapψa h`HE`" *-JcaVJgbS/ Ř*bSS H@J@f2 H@J@f*SWfJkSH` VLfˉ`pH@SWgd`JkSH` VLfږd`aafXgXSeTaaVf>d`8<ae <{dNuafgSetHB Vfd`z`z Ga ^.`aJfgSetHB Vf֘d`ac`ad`a e`ab`aSe Se gNuJNu G&$P(<Ƅ VȐ"hNu Gal("P~gNua GaN.Nuxa.Nu H@g(Jg$HAJ@gJAfHA`JAgH@HAJAf ށeNu~NuDNu$JnDJnDai JkJjDNu^_HNu^]HNu^WHNu^fNu^\HNu^^HNu~Nu_HNu]HNuWHNufNu\HNu^HNu~Nu Ga4)k2BHҁC. Nuv!`:FBH*6HÖk&n"UDk>HǞkn"aևQ"`L` GaHJgH<fZxCiff4)C k2BCHUDk0BAҀQ8. NuHxCSDt =QaL`a3a a a a FBH*&knUDk.k־n"a2ևQ"` GaJgT<fxCift4)C kJ^f2BCUDkJ^fz0BAҀQ8. NuHxCSDt -QaL` GJf04-,/ x$Nr6ASAHDJDfHD0BkR@Q/ pgaC2 AA ?H؁a222"8B2HR2 UAk0B22R@Q2prHASCd2`"Qd&_Nu2 4BSAA M BC p0 !Q&_ GJfd4-,/ H/~$Nz6ESE"kLRaQ( pgaC2 AA?H؁aN222FY"."R: UEk"""Ra^Q(*`0 Ga<f()aB`0 H@GA.a G@VGa GUU|vGaf`z(*`A#a,JXg mXNJga`A a"a(IaLH?8(H o(aLLf0ApNupDNu8<0DaQNuH@af Hp0aL LJNuH/2apf0@"<g< g4H0 lNL LJNur,HA,t,HB,"Lp`JgB<fp@`JfrAp`H@b0HCAaRg (IpLNuLp4Nu lNCB g|9|rPJ-ffr(A|a>ra&rwa Q"B,#`H Lpa#L (IL)HNu l p` &_|dA`&Fn0kN0SN0kNp*JgHP0SNL fS`NuzpgH P0SNL f < gR`"NupJgH P0kNL fS``<dXaTta@pNupDNu`aHz<d̰<ga"Ba`-ef -efNuH?<?<NMXJ@gN/<NMX-eg<g,-eg*<f$/<NMX<g-eg<faM+@LNuJ,"gHraxrfarLNuHrabrf,"aXLJNu<dXA`rHL.6H>HHHHd Q"aapNuP"pNuQ"pNur,#pNupDNuB,B,#rarE`pNu|dp,@dAB#A B H`rarYaL8a`/ Jikrarba"W2)a0A at"WJikrafrca`"_2)a A `PpNuAAJ-fg -fgA0Nu    H @rareaLx*&I/ at&_< gT< gN<g <g< eںgHR/ a|&_`JgSJ,gS,/ rar ara&_`r ar a"p@Nu?,?<NMX<f lf -efrpNu?r aFr ar2< gj< g4R,,g,e lf< d<g<d<dp`0,<f< f ,#dR,#A???<NM\pNuB,`0,??<NMXrJfrpNuSgSgUg>SgpDNu&fvRBg/?<=NAJkb8>N?|NAJfPP0(<(؃AaJ)m)C)C$)C |||9@p)@@)@NuPH`t9+@hlAgf LNuF5LCKKBg/?<NAXapNu`8,<d$ gA @N.T@(e|dA``tp<gJf",gaBf atrpNur)ApNuHl(/, ??<?NAO Jk)@gB$Nup>Nua ,$e agp>)@NuA(r0R<gR$pNua",g$S)AS$dBg?/?<BNAO JkavpNua|pDNuat?(,$gA($e(٬a8)l$Jg$/ /??<?NA"/O JkbѬfLpNua$< g4< g2R,,g(,d"B O | ApB,aXNuB,I? OpaTNuJg&//??<@NA$/O "Jkpgp=Nup"Nua  IJ,f6,Sev H x ggRQdAL0`r`Jg, I,< g< gReSf C`Zv`SH @vapAaBLgNu fXp6Nufp6XNuaB$BSt QdBg?/?<BNA"/O f Hl(/,??<?NAO JkҰgr)ApNuaB$Bg?/?<BNA"/O Jl |fZ/?<?B?<BNAO "Jk@g(*HEJEgpH@ @ajf(SE`HE  |aVf ,B$A(aDfNu`> f$Jj", R $,Ga"GA( ,NuXp6Nu?<?B?<BNAO /?<?B?<BNAO "&Bg?/?<BNAff$, `$/`$,"O pNua Tp6Nu< g,< gR,,g,e&,$d 8(R$pNu!B,`?r ar a2`p2Nu",pNuPRT:AUX:MID:KBD:LST: -f ?.ab6 Va"0HC IaZf ^aT ^`a6v`a.paf fpra`0|aSH0fNuJGo |d0GNu0Gp4`j;mTRNua;GRNu;|RNu Ga>$0mRpa G`p0mRaHA86HBrBDHAJAgHAJCgAcVB8SDpr axQNuJGo8SD0mR`JGkg.p0mRaTgJBgHGJGgHBRBBdBSGHzCt0mRp` (a.p0mR$` g./ m fAN _`??<?<NM\Nu/<NMXNuCl/ aB _`apa.g~Nuap~a<fp*a.Nuap*a.Nu$mTEx/ a2$_  fRSfx&/ Se<ae <{dQ"_.`J\g6J-`f0|g*|Mg$|Ng|OgX;Db;md/-\B\P`NuafNuX`z~`&~|f~`Aaa<f~a??<LNAq Y8 Program terminated - press a key to exitA$a| _avJUgA&ajr2a`x pFATAL ERROR:  at line /-BHa a`lG^pv.<"m AF"A$m $ QN m*g $ N E P`A"+Iz U+@~NuNuSBeg"‡gf"`f$P(*SJg "‡g"`Qd`Nu$m X&mzQd,m$(/ / / K R,I` (*X"Tb"eee$*ICʹd o( o- Y- XE` o oX- Y- E`d&^$^`*_& _"X$"X dG(H$S) $ce) $dNu m X.-~S,-"F*<& $X,ReV(*gȅe2؎e,$`8ȅ e^&ր*gR"&F܄ge@$SQdQd+FL+_/ح d(Nuaainconsistent heap ptrs in garbage collectorH/GpvaaX _aL`SBe g"`Nu*<(I m ٭ ٭$$-~gRňX$`,RdMON(C) HiSoft 1993 o,hOZ(HC" ( ШШ^//Bg?<JNAO Jf< N0<VBQ-LP?<NNX|e@GWap `>/.?< NA?BB`, |"|6mH>`-n6>-n:BH6NuaZpJ.fa[/.?< NA\pQ??<LNA&x g ggX` NupNu j,JfJ(g&RJg Hgg`LpNuLJf`pNuH/<aZjXRf/<aZZX`LNuH?<?<aZ@XRf/<aZ0X<LNuaH/<aZXaL|Mg$|Kg|Pg|Hg|P2g |H8g< f>/<aYXRg2JLNurg ?H@2pNuH@<e<3d@ n0pNu?2`ְ<xe<dGpNu f @e6e:e>eBepNupNuHLfe dNu<NuG7|7n@`;J.gH@aQLNuakfa< gX<g|bg|qg<AeA4ggTH`JfAf&nN` .g&@ag`a?`a| .g&@<Zg<:ea`v0a?b`j/ Ga9GLa6$_A C p0QPPaAxaBaak<gag`aB`<Zgal`HzT kH|H8g4|Hg2|Pg0|P2g|Kg(|Mg&Jng< gXrNuNNNN N NkNuB kHNrNu<Ag@ <Bgr<Eg8<FgHP<Gg@H<LgC<Og,<Pg<Rg<SgB<TgH(<WgBNu/ vAM2aUa:fNJgJ$Lg<=fC $ SBa\fH(Ja ZLf /aA$aDJJnfa$&_NuaAj&_Nu)0e(< d"H@A00A`xߴ|gdpNuA$<Ag^A<DgT<Sg"<Mg<PfAL )Cg2 )cg*`)AH<Rg<PfA@.JgADpNu)0e<d@@@`AFpgn@f2/H߲fSfBgX0AO "pNuL"A`SSPDENDlBSSdDATA\TEXTTLJDld\T ` dR h l p tPCSRSPE BSDTXM0M1M2M3M4M5M6M7M8M9/ GJkfa&_Nua&_Nu+><g <g<gNu + ??a6`AKafNu/ vaSfa8rfbJg^ajg aTI `*tJg.<,f<?gB<*gN<=gT<-fJgZa0fJf,a?F$v"EaPLf &_pNua?0&_pNuaf/ a?(_v`Jfa?v`Jf|a?vt`a>"EaPlfaP`a6~fAK$`RP*aQ*Nu/ vAK!aRa7fZgVagI `.apalr=a7,r$a7&$araP"a a+g (@ra:a(4+va5naa>^&_Nu>BPf"kBHzJaOgONuAIntYaQfaN`AK$tYaQgSg@vL a2ak<g߲<Bg<Wg<Lg <Tg<IfA a3a(I Bx|a4*faK <Igd<Tg^B-Jf߲<Lg <Wf|`6|`2SLaf <Bg<Wg*`:`Jg<,gaP8I `A `4J. AGabgZ LJ. g a!4f`f SB. @ F a:`Bn `:aPraD n$hB(>8(@<g*G vg kNRK|<ga<IfF`z`R`Ƶe6e:dNu>eBdNuʲNu$n6Nu$n>Nu(D" ȁ؆$DSzJ. g `2af(J`jREgaf(JJgZ Kag fSf`F$L`` af(J`6REgaha f(JJg KaLgafSf`$L` n(FYd -L-L`-L .Ng-LRa` ` Tfag JJ. f2< gfHRSCg gL `L &n'JB7D@`< gaffHRSCgaRgL `(J`Z ga"JE a|Iʳ gE ahag*J/ QN/aUt,p. SC xA J. f6g< f`JgHS@VLg $_aa `(_`ag< f`JgHS@aV` n"ng$Ha J$Ia"Jga.`.<g GaMaLa)a2` nNuvAD(aKzAD,J.a:gZAD/J.a*gZAD2J.+agZ+AD9J.,a gzZ,`rVaPNv aDBn`aF:I a)faf<,fR-BafԴo-B$Baf$nafalrababB. x`aEI a)^fQJgFaPf-BBJg<,fa8fJfƴe-B$.f a\fR. BBara aK xB. `aEdI a(f$Jg`af<,f*afشopJg"<,f߲<Bgp<Wg<Lfp"R*R*:7|a'`Bahra ^a^B. xI a(`fJgaD La gaDX`aDRa'*nJ.gHn:af.* gSg anXm`Tm`Rm`aL`P*nJnfa&fQ*Qa.A;:aC`P*a a6Q*Qa.Jnf&NuE  gm lpNuE `pNuoNuJ.*jaf/ I x(DC.BS* gPS@g&L x"aJ~, afT\`JW x2aJP, atf.\`$B xaJ, aNf\| (_` HaJL( a|fJf`xPRGTTPTOSp.g<\g<.fC`SH g INua2$fBanaa1a1G B n .g/`/(,/ / ?<?<KNAOJj`p"aA `@\-@PPa*$nPPAT .dЮh}-@lA"HJf$Sg aP` g /?<INA\NuGtJkg?a44TQNuGtJkg?WPa)a 4TQNuB kHN`` ````NqrNu>+$kBaaSfNu$ a`$ a+?a2|+?a椔fafaa#SfNu+?RaxNuJg(axapgRar`a0 faXSfNuSBpNuRBpNu`f` ``"`:``p+?D@`p+?ѫBrNua!zp+?B$kBaDrNua!Hp+?ѫB2+SA$kBa rNu(kB|~zx+?L6`t?t nJgDRBF6a 6Nu ;`HNuFf+EfN6`NdRF`a<v+?aak?a~2<gF< g|HgIJ|Pg޲|Mg|Kg"<gJfPp0e<:e߲<Ae<Gdp7a`A afaf`  `Jg`A` af`BkH7G$LaL`b?a2<Eg?a|2`Dp+?SGdHa6L~a:`pp+?RGkf`SGHa*La`LRFa fRFCf@|`Jfp0r+EgrAH@J@NuSFeafSFd<SFafvSF`p`2+|Fe`Nuar=a T`=kPC~0rda @a :a$Q$ aaa|aQaaatapraa a a$iaahSnPg2R<8fra4.Jaf~a2Q8.Ja~a QrsaarpaaP$nDaEHz / ENuaQ>Nusspsfcdfcvbrmspispcacrcaarmmusrtctt0tt1crpsrpfpcrfpsrfpiaraT$`aJ$a$)`zA4arS frUataQNug`R`TXNZVC$DNu``` ````NqrNu$kB<+J+?ft a*f $ at`$ aa +?a gaar LfraRa4/ aa$_SfNuaPU'JBpNuaDT``` ``L`B``0+@HBpNu +BR$@<+aSf'JBrNu +BR$@Nuaa`aa3`$kB<+8+@SFaWfJFk a|aQNug " fg " fRSDpNupNu``2`F``d``$kB8+@ag/ a"a($_7D@'JBapNu$kB4+8+@SBaW`$kB8+@4+SBaLgFQ'JB7D@pNu$kB8+@4+SBa*g$Q/ aa$_a*$kB8+@a 'JB7D@pNug  fRDpNugnJ.^gkr2/ a`$_`4a*agH< g< g*< ga|`4+r+?SAFAA+?ka`/ a&$_aRDpNuaޠf$EaޖEfH*JQNa?$ML8NuTJNu R$@ahf:Ea^Ef,H*JQNa?L$M$ B zL8A xaQNur*`A+JgJfSfga`NuJgaS`Nur `r*ar*`r `Jng?HBa`?HBa4?Ja4? a4B; `Z0123456789ABCDEFEFA2tpve RdҘ`Jj P0ANAQ0N;B@'d / Pa0fJf Qp(_NuQp(_NuafJga6~pNua`A\BPApBPB.HaLJn\f Jnpf.NupNu+-*/()~#? =&|!^{}$%@'"\6TX\rflx~HLP.2A\0TX1za<f<eX<dP<fAp0XX!`0<gz<g<e6<d.<f0<g*<g"<g<g<g<f`$.L`~E+A\0<02`2plTX1`a `z`a>Ap0XX!<g|z`a<f<.fF߰<Bg<Wg<Lg,|`Z$BaVfF Bt`.f8$Ba@f0t4`f$$Ba,fVa$f B$Ap0XX!z` J.f|REa"`<g <g(H,E5A\0Jpga$`Un\ApYP0$0Nu20|NuApYPe0$0?C\UQ221<d Y`e0 0BCA21N20 XX!NuԀNuNu/aLg@NuĀNuNuNuNuNuWHHNu]`^`V`贀_`ⴀ\`FNuDNuH".Vg& nZeS`ePWQ$(ԮTLNut`H".Vg& nZTeS`ePWf$(`tLNu,JnDJnD&HCH@JCgH@`J@gHCH@ԀJjDNuJgJ,//JjDJjD|.pއUFDFЀeRQ,jD,jDBNupNuJk4<.g.<0e$<:e"<@e<[e<_g<ae<{epNupNuH`/ ~AgfJk`<gjt<:d<0d|~af0CtRBaxga\f$`/ a"_g(It`,~`:<=g~`.~ <g`~ `~ <>g <=fTG`YG _L`NutS~`<0e<:dԂ ЀЀԀ0ԁ<:d<0d~`DHtpGN``@`````d`v`Pp< gf g`nSe`0ep<djԂet0eN<e`F0eF< d@ReL0e&< e`AaX,Y8`2A$a '@8aa/@aЯ'@, /a +8'@4 O `/ I`Hk"/ XK"`&J.g<:g<\g cS`&WXKQBJ.gBB.&_X(_NuHpg8x8 ЀЄT-@JЀЀX/aL-@Fg @BSfrNu"nP$) .Xg @ . S@a`JNu( d, e  e$ gը B( (H W fAS@`PB( AQBPNuHJFg, nXJg$ g ( /a _g"AJ(gA`LNu"nF$.J,hH@a,HFLHFHjD܆܆ԂԂ.1hg G g Xf|`"HNuCh~NuHcJkagp` LNuJXgTeldJFfJ.f NuJ.fNue dH@J.k( n"g fLpNuJgl!@B` n"gܰfAB( lHa.HB"A LNuQ/abf( .f"aBf @ PNf ( Wa>gPXONu _pNuJXgdE^a(nX|IIg@Rg$, aaaaJ, gIRFkfa<g|aB`aaNuaaaaa n . (h(JTgJB"nHi/?<0NATO|d B/<K`/<KNAOJk&@"<Ү Ү Ү ғdA И И kC . Ю Se0Qd . Ser Qd k$r gհg<f`Ё` `tA ~"n"i(-IxQNuB.`pЮ Ю Ю Ю @JgJfP R @ gZf . gDTa-@Xg8 . ag.(. S nX"n"i(pЮ Ю QdNu` OЈ./H" afNH a&HLg< /X'@( HaR'H, '@8 LINE$g X,Y8`'@4 O `*Bg/?< .g @ hN`NAXNua @Nu/?<HNA\JNu@-I2=G 0Av6(4(=C>|dp2<`0<2<=@=A@=C@@RA=AJ=B:02-@6 npBBQd=CkH=@VS@H=@T0.FW@=@N0.TnHnR@=@JD@n>nS@H=@R|R||N||0.Ba2rHp@Fa N'HN +FgB +FfPL!|pcF'nLB0X>@faBka2`7na`aaaHGTLQNu/ GaGA pBXQLn$_a*PP`Van`NGt+Fg GTQNu .gfNu/ &@JkgQPa&_ kNa -KJkf<`$PP`6< .g&t| f6<CTJv0fQNuG0`Nu +>f 2. [A0+R@@e0+R@`Nu +>f0+S@|e?GaQQatAa0aHGPPaZaךA/0.Baz _GhtX?@H 2NLGT0QNuG7@7@nnR@=@HD@n>kH=@VS@H=@TnHnR@=@JD@n>nS@H=@RNu +>g +>f kNa fNuA af +>f kNaaNah`'BB`ָ +>f A agNu/ kNaa"$Rf4("kTBaa$`z/ na$_A p W| BA^'HHB+L~P/ (KG4,6,nJ,Fg0r0,Fa ,Ng @JfJgr2,RHAaar aAC p,>@ pa ,>f lNA&ar)a lNJg"J,Lg ,>g2< av lNAFaZ2< ab2,SA4,6,H0aL 2,laLSB6,a2,4,l6,ap&L(_Nug /a _`Nu0,l@dJfr H0aL RBNuTT ST0HHz*aQQaBkGJkgԬPPa`LNur2+p+>@NNu``(`F`nAZ'HHA nA|crA?NuAf'HH|Fd^AA&AA?NunA&dr<dr<erA?Aڰ'HHNu|?AL'HHNur@`<Jnf+F<g 0.BajNuNu=@B3aA<gx<f kNJgh/ vA a WBJ(Lg hNAF"Lfaga`6pJg LHaNL(ga`a&WPaJ+LgaVa6&_Nu?QQa(>QLJg2|L"kNAFp?WB )Fpcf#@FPLP`/ Gdp/a +N @ fJ( g4j (gHa*HIFaL?f" (faf`!A h f kNanG Q&_NuH"nL ( R$@m<+WFe/ agQ"_" LI`"_LI`aޖ"g.H಼crL0(" ha$L1A"!BNu|br INuAegS@ fQ fRNuD@S@  fTe@SAS`a kNaf`F +>fQQa kNaZfl +>gNu kNar +Ffr`L kN (g @`* fNu @ f` kN g @` (fNu @ (faX/QQa$ _/ (daJ _p"HR""Af7@RaPķWa`2+Fag ANagNuA a&nA a`/a kNJg afa"_aJgP !|pcF$.LaTNuJ._g .RfNuA`JgPaQg nRXH/a _Nu/*Hta _gNu-K-Kag -@V-HZpNuBVBZNu .VgGaNJkfa<` NuA BfA ~x`pA haf(Jg-BTaaZA afZG a .TA CX"И""И""}-@laaaaj$.Taa@`aaa`ΨJnf+>+FafNu kNR<cr<f<fg <fJgaJA`'HNh>a kNar'h Bh L(<f'hB7h"@h$?Nu/ kNkL +>@<g!kB `!kB1k@"k?$ _Nu/ <ax"_gV$H <BQ9 g4$i#H!Jg$)p<g p<g@!i )$@$1|"NuL g#Jf` g$/aRa _rNu/ Ia"WC&pWB! _"n!I!I!n!nZ!nVn%|Nu//(Jf / ha̦ _J(% _fa̘ _BBB(%1|"Nu (g-@-h-hZ-hVNu"Hg<:g<\f I`Nu<g<Nuva balf2Jg,A tg<,f(H/a: _g I a@`B NupNuAgafRa2f-K p-K-KS-K t`Nuva afJgt/aa VA $/afLB. .g @ ( gJf&@(($RXOP`a f ang&@ @aaCross-reference listFilenameDisassemblyMemoryRegisters Mon 3.10 HiSoft 1993Source ( ESC to abort Window start address?Goto line?[Return] Filename to loadSource file to loadExecutable file to loadCommand lineProgram terminatedRegister=valueCannot runIn ROM!It's odd!Cannot write!Too many breakpoints!Run until addr[,param n=*?-]Breakpoint addr[,param n=*?-]Expression to lockKill all breakpoints Y/N?HistorySearch for B/W/L/T/I? Printer not respondingEnter expressionSymbolsPREFERENCESScreen timer Y/N? Follow traps Y/N? Relative offsets Y/N? Ignore case Y/N? Ignore cartridge area Y/N? Symbol lengthStart at labelTop of RAMBDOS BreakpointCopy start,end,toFill start,end,withSet current drive/directorySave binary, filenamestart address,endRun: Go,Until,Instruction,Slow Watch Y/N? HelpDisassemble start,endRe-install exceptionsSave preferences Y/N? This version of Mon only works on a 68000 processor! Don't try loading any programs...Unrecognised screen modeQuery which portPort to write, valueSource line numbers N/D/H? Auto load source Y/N? Auto '_' or '@' prefix Y/N? Display ZAn in disassembly Y/N? Compare start1,end1,start2Memory areas matchExec file to use<,textaddr>MON.INFH/.XBX/ x K$MavfFTMHQNa hL f*C x<[g <?g< fXp-_X$ML8JNuQ*_UMp`-JLJ` lA <f/A f _` aE:f 1Q2J QJE:f !B1CpNu JapNupAf JhgpNuAHQpNurAa AHQNuJhgBh"P QJf2Nu-I=Q2JNuA6-HpBFAJQNu nCp Q D0J LCfA6-HNuE a|?aA'HHa ja`J|gx0zt`taːa8RQa˞A6(HEJgJgJ$g Jng(nr a8vaZ$azQa^r ava@$a`QaDra$aLa"ra4aDa8aǺara$a"a+? a0gaֲRa/ $\abaH$_afI6gJFfVNu/ /vaN _aʒ7|0+kI Bxa|f"axfJg aI `/a$&_pNuaz&_tNutnE;LnnBHCG B+Fa7|7kNu/a _aaI BxNu/ /LtvEa _a 0.@k _/"HJfC0 H7@ _`ɶ/ Caak<g< fa&_Nua*N`NuC?aak߲<Yg<Ng <g/f>a2<YNuJngx {xyxz .xpg@-@t=x@=xBx`1|@1~BqrJngs `Nu=|a6`=|a,`uvJngw 1@1BNu..Nq 8ffgNuJ.g=|(NuaFx@aFx@Nu-_-xA!NM!/.NuAG0gHh/??<NMP& _`QP=|=|@|Hz?<E?<NMP-@F-xAd!Hz?<!?<NM-@PNuG~0gHk/ ??<NMP&_`A(!Hzf?<!?<NMPNuAFG0gHh/??<NMP _`/.?<E?<NMP!/.?<!?<NMPNu\^  #$%&'()*+,//p`/p/,z'PH?-_<-_\6=_J-_L-ODOz?.Of($nLEafEafTpbWf-JL0`|g"/A6gA8gA(g _/p`8 _W?Ns/p `(/p` /p`/p`/p`/p`/p U/,z&PH?-_<-_=_J-_L-ODOzNh-H@/.8"nL< g4<g8||B0B."nL?aaaa22aŪP-_`JaJ0f.gA^Lgp nt (@<gn<gJ.g(agl nt (@||aPaha,a nt (@J.g.J<gJ`B.J`|I afJfJg nt (@x `Sfr` n0B0"P2J0.J@n4=@JjJ.g`HngpgzPaHfZHaL0(|g>|g(|gI HazLfTJfPJgL`R`DSg`<2Bhx `dx `^-nLaLx`N2p-@ n"P2Ja..Of$nLaf "JagJnJj^.OfV$nLafL0@J.g,|N@g:@|f0 nD! 1.JJ-x(L-HD`|N@g@|gQ.nD n@N`/.L?.JLNs0(@|N@g0.J@=@4-H02J`T2-Ha2J`|NuB//,z#J.g@/A'eAرd _QJ.gB.` _QJ.gB.`o 0.kS@fap=@/n,_ Nu/< aDX<NuaaCJ`H` z#L/< !xA6!NMX z#0!Lg J(fPNu hNBH瀀 z#0(k:J(f4/ f&/NhP _f"U z"1|B(LX`|og/hLNuJj6D-`.Jj-D`JAj-DA` a"fֲ d0Nu/PHAp` $/tp?fJgP²< o^02Q$NuA0g NutfhilscccsneeqvcvsplmigeltgtleAH.P Nubwl?dAH Nutst chg clr set 0Nu>B.ABR4XXfrASg`I xUeQa" BNuH@00NBSQNuA:EMaNu|*Tx 4brJ4xXHjpF6&8 d T6a#Jf2a `<g"a`2a,?<.-nQ?,2< iA4JBx?a0J.gJgPLAHNu@Nu2`0Nua,#2`aA`,usp G< e1 0Nu$<.gRa`z. xxd<jgV<pgNx=`Hzxa@,`Hzxa0,`D Ra?xla|<,pVQQ6[<daJgJg/6<aJg@pgnĸ<ffp|7Jg$SgNJf-J.Ng ĸ<ffp7NuSf"-J.Ng ĸ<ffp|6/` Jg`/SdSNu Ra<48< f2aD,x4a4|Nua$`zfzazxaOO0,dNuzxda< 2i,a`2Ia.d0," 4H҂Ү V`2IAaBx=`a.#2IIAfrab,x?`v0@2II<@g<Hg&<g2??Nuda",d`aa ,a`da,a`2Ig <ga\`S(bra `S(bsr g8<f|.l "ҍXM`|.s HHҍҮ V`2HU`a,d2II`lp 4xfa4JJg$-(aa@A(aa2)Nuda$,d`),-(aaƺ<fI x`02(aaAaD2IIa)+Nu)+,(aA:M` :::ZZZ R(cmpaaVxa,a2II`Aaa2xa,d`cmpAaada,x=`feora0@fTx`:0@|@g |Hg|fI x(exg `<g@a0@fxa,d2II`d2IIa,08<<`:MRapxa,a2II`2<g< aHaH2IIf#Afrav,d`dd`Ia  zx<`lAAв<fxrlpfrrNuaslsroro2`:CagNuI x>(/a| [ _"(0(|g4|g*|g?C pgQ..`*`=a]NuzxdaA |C@p Vf2A>I xfSL0gS@<"fQ gRM"Nustr_constantstring "42BYA`f a,`&a",Xg gH`RfSNu?NupaQdPpd0Nuzx=`x%a(|e?Nuxea,2II`z2a,x%z?TMa {>2I f a4`aB:2f Jfr a`a }Nu JAg0HA0Nud<e?`4x4gxlz` F2A4J<g<g,Sa x=z` *DBaz a :`@<etrapaT` Gg2baLg.l "ҍXM` 2HҍTM`2JAfTMnopNu>| d6A&0f @@@AggSLNu??feqogtogeoltoleoglorunuequgtugeultulenetsfseqgtgeltleglglenglenglnlenltngengtsnestA` L~xD0@@0;Af|.Nu #*16;@FJNSZaflquz~ % &??sincosmoveintsinhintrzsqrtlognp1etoxm1tanhatanasinatanhsintanetoxtwotoxtentoxlognlog10log2abscoshnegacoscosgetexpgetmandivmodaddmulsgldivremscalesglmulsubcmptstsmovessqrtdmovedsqrtsabssnegdabsdnegsdivsaddsmulddivdadddmulssubdsubaG?g?x 2Yaff60Xf*Nu2YA<gaF <g <e <gg a./`JfSdSLNufJfS`a Nufpcrfpsrfpiarmove&[<e <gmz`*av f f pQa0,zx4 fx`^aBzxla, f? f xf?aV<Nud<e?`pxAaJ Nupl`movem.` sfcdfccacrtcitt0itt1dtt0dtt1uspvbrcaarmspispmmusrurpsrpA`H2B   aza|`fa,A`vpsr|bf a`az gza2A|@g?2A|f? f:a, g fs`crpNu f ntcNua`PaXzaD2A|g?2A|f? f a$,tt g1Nu0Nua,x$`movegfdNu2YgVA@ab<g:<g<f aj,#2Aa g,`flusha|$fNuA.a  fw`r a2A| fZ`Hloadg$<g<g`8#2A`~`ASk fd`sfcNuA@a fw`r aa,#2Yaf< dNutest2Ag,a`:]S`~I`2<A?|0@|g?_a+Nufa,"`Nua,af+Nu<|gjtblpu gps gn:Eag?g?xda`2A?a:2A?a,2`6A aN2` lpstop #Nu-M2A4J<A` 4vtgzd`gjJgda`gVf(a -@E`0@@|f .Jgp 6$Nu(a)Nuga+Nug-.faEp;PNug2Hf aЁ-@EJXgV . Tg&TeJ\dD0H/Ra0Lga`.J.+g$<g0H/tJж $$aga`a`<H0X@<|<$<|(o*lNN~N;;B-6+| B+|6>`Nq~=~=~NNNHiSoft BASIC Profile Analyser N><NNN HiSoft 1987-92N~=~#=~NNN2.01NNf`NqNT.,N;GA.-~ ^0>- Ggl.,->-=~N@Nr;G>- G.g` NqA.->- ^0`,Nq`Nq>- G\g` Nq`NqSm`Nq>,N\Nu`4NqNTA.-., G>"m|. G. ^ .,N\Nu`rNqNT.-&+G".-"-.-.NzJGf`NqA.-~ ^0`2NqA.-.-"-~HN2N0-><HNJGf`@NqpNNInvalid debug headerrNA./NNO.-"-~Hޞ+G".-"-A.-.-"-~HN2N0-~H"N(ޞ-~Hޞ+G&.-"-~Hޞ+G"A.-.-"-~HN2N0+G*.-"-~Hޞ+G"A.-A.-.-"-~HDޞ-~HN2NA.-~ ^0>,N\NuA.-NNA.-A.NA.N-~HNJGf`Nq~=~=~NN!Program filename: [RETURN] exits NA.-NNNA.N-~HNJGf` Nq~N*A.-A.NNA./N.XO;G2Jm2f`,NqA.-A.-~=>-2=~DG^N@NA.-N.PRFN>NbJGf`tNqA.-N.PRFN>-~=~=><N4~NA.-NNA.NbJGf` Nq`NqA.-A.N`&NqA.-A.-N.PRFN>N~=~ =~NNA.NN not found; hit any key...NNJ-NNJGf` Nq`Nq~=~ =~NN~N$A.-NN`Nq~=~=~NNN Analysing: NA.-N.PRFN>N~2H-~ NNNfBm4Rm6>-6=>-4NPJGf`HNq>-4G;G4A.N>-4=A.v!N:A.N>-4=A.vAN:~N>-6"m. -N ^0>-6=A.vAN-N ^ ~N,JGf`XNq~N~ =Ax.-.<v!NA.-~=~=><N4~=~"m|. -~HN?<A./N\O?<-A./.-N\Oޞ?<-A./.-N\Oޞ-~Hޞ+G8~N>-.-8Dޞ+G.?<.-8/N\OA.-.-.-~N.NNA.-~=~N@-~HNNJGf`Nq~H+G"` Nq~H-A.-~NN+G".-"-~HΞJf`NqA". GRA". GR.-"+G&NJGf`0NqA.-NHBPRNJGf` Nq`VNq`JNqpNNNo profiling information foundrNA./NNO`|NqA.-.-"-~HN2N0+GDA.-.-"-~Hޞ-~HN2N0;GH>-H=A.6<N:>-H=A.v!N:>-H=A.v!N:.-"-~Hޞ+G"~=>-H=~AN`Nq.-"-A.-~NN+GJ>-=A.6<N-A.-.-"-.-J-.-"DޞN2NAJ. GR.-J-~HΞ-~HNJGf`NqAJ. GR.-J+G">-"m. -A.-.-"-~HN2N( ^0>-"m. -A.-.-"-~Hޞ-~HN2N( ^0.-"-~Hޞ+G"AN`NqN~N>-H=A.vAN:~=>-H=~A\N`"Nq>-\"m. G>;Gb>-\"m. G>;Gd~H+Gf;|j>-j"m. G>=>-bNHJGg`,NqRmj>-j=>-6NPJGf` Nq`Nq`Nq>-j"m. G>=>-dNfJGf`BNq.-f->-j=A.vAN G.ޞ+GfRmj>-j=>-6NPJGf`Nq>-\=A.vAN-.-f ^ A\N`Nq>-6=~N;Gp>-p=~NPJGf`*Nq>-pRG=>-6=~A\N`Nq>-\=>-pDG^;Gj>-j=~NPJGf`Nq>-j=A.vAN G.->-jmp=A.vAN G.NJGf`tNq>-j"m. ->-jmp"m. Nv>-j=A.vAN->-jmp=A.vANN>-j=>-pDG^;Gj` Nq` Nq`2NqA\N`Nq>-p=~N;Gp`Nq~=>-6=~A\N`4Nq.-r->-\=A.vAN G.ޞ+GrA\N`Nq~=~=~NNHow many lines [12]: NAv.-N ^0N mvg` Nq;| vN How many SUBs and FNs [8]: NAx.-N ^0N mxg` Nq;|xN Output to [CON:]: NA.-NNNA.N-~HNJGf`NqA.-NCON:NNhA.-~=~=><N4>-v=>-6NPJGf` Nq;m6v~NN LineN~N2NFileN~!N2NRoutineN~5N2NSamplesN~=N2N % Time UsedNNf~=>-v=~A\N`vNq>-\"m. G>;Gz?-zA~./A./NO ~N>-~Nx~N2A.N~=>-H=~AjN`Nq>-z=>-j"m. G>NH=>-z=>-j"m. G>Nf^JGf`(Nq~N~!N2>-j=A.6<NNAjN`Nq~N~5N2>-\=A.vAN G.Nz~-\=A.vAN G.-~dH"N(-.-rNH.NHLNN NNfA\N`Nq~NNf>-H=~N;Gp>-p=~NPJGf`2Nq>-pRG=>-H=~A\N`Nq>-\=>-pDG^;Gj>-j=~NPJGf`Nq>-j=A.vAN G.->-jmp=A.vAN G.NJGf`|Nq>-j=A.6<N->-jmp=A.6<NN>-j=A.vAN->-jmp=A.vANN>-j=>-pDG^;Gj` Nq` Nq`*NqA\N` Nq>-p=~N;Gp`Nq~NN NameN~$N2N Times SampledN~=N2N % Time UsedNNf>-x=>-HNPJGf` Nq;mHx~=>-x=~A\N`Nq~NN N>-\=A.6<NN~#N2>-\=A.vAN G.Nz~-\=A.vAN G.-~dH"N(-.-rNH.NHLNN NNfA\N`XNq~NNfA.-NCON:NJGf`bNqNJ-NNJGf` Nq`NqNN hit any key...NNJ-NNJGf` Nq`Nq~N*`NqNT>, Nx-~(HDޞ+G@.,/.-@-~Hޞ G>??<NPO+G<.-<-~HNJGf`FNqpNN TOS error: -.-rNA./NNO.-@-~Hޞ-., ^ .-@-~Hޞ-.-@-~$Hޞ G. ^ N\Nu`"NqNTN.,NNf~N*N\Nu`NqNT?<.-D-~Hޞ/N\ORm>-=>-NPJGf`dNq>-G ;GA.N>-=A.v!N:A.N>-=A.vAN:A.N>-=A.v!N:>-"m. -~H-~N.NN( ^0>-"m. G>=~NXJGf`NqSm`dNq>-=A.vAN-~H-~N.NN0 ^ >-"m . -~H-~N.NN( ^0`Nq?<~=A.vAN G.-~Hޞ/N\OA.-.-D-~=A.vAN G.Dޞ-~N.NNA.N>-=A.6<N:~=>-=~ANN`Nq>-N=A.vAN G.-~=A.vAN G.Dޞ-~Hޞ+GT.-T-A.-~NN+GX>-N=A.6<N-A.-.-T-.-X-.-TDޞN2NANN`dNqA.-NNN\Nu`NqNT;||>-|=>-NXJGf` Nq`>Nq>,=>-|RG"m. G>NnJGf` Nq`NqRm|`Nq., ->,=>-|"m . G>DG^ ^0.,->-|=A.6<NNN\Nu~N* O/ C0<HЈ",Іd Ь `H`// Bg?<JNAO JfLE0A@,A8,Hp!!!.HA HĐ"MBQd+@+F +LtSE;ED;D Ca&HNHz+_>?F?F"/FN<+g <-fPN<.g<0e <:dBo?|Bo <:d<0eaG0ajNRo`Jf /k WeR<.f6Bo N<:d<0eanG0a$RoSo ` ooR߰<Dg <EfZ`N<+g <-f?|N<:d"<0e2/A0AA@GA0?AN` g oo8/o gadAC$Ia9`ھ<&fN߰<HfBN<:d <0e2G0`"<Gd <Ae G7`<gd<aeGWaa&``H<BfN<2d:<0e4G0aaN`<OfN<8d<0eG0azaN`Jf0 /k eRdS|"` |"Ag ggfN/"g,Sf f" /H/@` e /a7HPz./gLJ/gv?a3:p`J/"f Jj a6`J/gDJO$Nu%&!#HJf߯eNua a6AC$IHa7b`7 / a6zH PNuJf /Ѐe"ЀeЀe Ёe/@NuaAC$I`7Jf /ЀeЀeЀe Ѐe/@NuaXoNuJf /ЀeЀe Ѐe/@Nua|VoNuJf /Ѐe/@Nua`RoNuJfaROHGJD[jDD<AB!zVB.T/zTBNd A"O$Ha7(JFg O"O$Oa7`O JgCA$Ia7HGPNu A0-JgPQagBNu?a0@` Nu !INu("hNuA0-aPHQNu _x8a,Sr//Q/-+O/N m( SrPf Ha LQ m((+P`H+H+HY+I(+I$C - A∓+I c+@LNuJk*"mg ɉRɉAH d+HNua`a$Ha JaNu/-BHaa`G^pv.<"m AF"A$m $ QN m*g $ N E P`A"+I, U+@0NuNuSBeg"‡gf"`f$P(*SJg "‡g"`Qd`Nu$m X&m,Qd,m$(/ / / K R,I` (*X"Tbf(f"eef)fe$*ICʹd o( o- Y- XE` o oX- Y- E`d&^$^`|*_& _"X$"X b(f)fG(H$S) $cef*f) $dNu m X.-0S,-"F*<& $X,ReZdV(*gȅe2؎e,$`8ȅ e^&ր*gR"&F܄ge@$SQdQd+FL+_/ح d(Nua La,String space corruptH/GpvaaB _a`SBefg"`Nu*<(I m ٭ ٭$$-0gRňX$`,Rd ^("haSoRgSe(g`x"Dp!a.Nua lH ^JkgaʘcR--`.Nua`a B G("hahψal h`&E` (aLa..Nu *-Jca\JgbS/ Ř*kSpH@d4d0SWfJkH` VLgSj`ˉ`SWgd`JkH` Vf dL`LSj`ha`afXgXSeTaaVf>d`8<ae <{dNuafgSetHB Vfd`z`z Ga8 ^.`0aJfgSetHB Vf֘d`ac`ad`a e`ab`aSe Se gNuJNu G&$P(<Ƅ VȐ"hNu Ga("P~gNuaj Ga.Nuxa.Nu("hNu/ a _`4/ @Jf(SaV. _` >HǏNu H@g(Jg$HAJ@gJAfHA`JAgH@HAJAf ށeNu~NuDNu$JnDJnDai JkJjDNu^_HNu^]HNu^WHNu^fNu^\HNu^^HNu~Nu_HNu]HNuWHNufNu\HNu^HNu~Nu Ga4)k2BHҁC. Nuv!`6FBH*6HÖk$n UDk>HǞkn"aևQ"`J` Ga^JgF<fbxCifn4)C k2BCHUDk0BAҀQ8. NuJ-6gaP HxCSDt =QaL`az3at an ah ab FBH*&k趙nUDk.kھn"a6ևQ"` GaJgN<fxCift4)C kJ^f2BCHUDkJ^f0BAҀQ8. NuHxCSDt -QaL` GJf@4-4/ x$Nr6ASAHDJDfHD0Bk"R@Q/ pga<C2 AA ?H؁a222"8B2HR2 UAk0B22R@Q2prHASCd2`"Qd&_Nu2 4BSAA M BC p0 !Q&_ GJft4-4/ H/~$Nz6ESE"k\RaQ( pgatC2 APA?H؁a<222FY"."R: UEk"""RalQ(*`2 Gag()f<fa8B`Nu2) ~`N ^Jf$M!J44BZ05@HR$  pgC5Cr Nu ^Jf\$M!J444 %@R$  pgC5Cr.a Nu ^"G002Nu ^"G  "Nu ^"GL !iHNu GaH@ Va GaL ^`?aJg0if$Ip0Nua a  H@GA8a G@VGa GUU|vGa` "(*`Aaa Jg mNJg/a`Av/a"aJUg0@e"X4`BH// aA_aN WaH"_  _Nup`Se<!dA/a*A*Jg JfS`Cx af aJNurNuLIBRARYSTARTUPOPENPEEK/POKEBLOAD/SAVESOUNDLOCATEINKEY$GEMDOSDIMARRAYBLITREDIMCVsMID$==MID$RIGHT$ASCINSTRPALETTEMALLOCMENUSCREENSQRTWINDOWJOYSTICKTIMEDATEMOUSELOGHEAPENVIRONGETCOOKIE__HISOFT__ Y8 Runtime error at line in module in file on #A+HNuA g<RdJfSfNuRETURN without GOSUBOut of DATAIllegal function callArithmetic overflowOut of memorySubscript out of rangeRedimensioned arrayDivision by zeroType mismatchString formula too complexRESUME without errorLine buffer overflowWrong number of dimensionsFIELD overflowInternal errorBad channel numberFile not foundBad file modeDevice I/O errorDisk fullInput past endBad record numberBad file nameToo many filesDevice unavailableDisk write protectedPath/file access errorPath not foundBREAK pressedFatal bus errorFatal address errorArray not dimensionedSub-program not presentxazGO.Nuxaha.Nu/$OXNuxaLGaGa.Nuxa:aGa.Nu Ga\eB$O.`XavaHGNuv`va,B$O.NuvaB$O,NuApa+@6Apa+@.Apa+@2NuaAh/?<NNT@<+P>"o+_B@At+HAH+H )$i(eЩJiNesg AV |$+|Nua fA aa`"epAJg"hH瀀NLQNu m6pa m.pa m2p/??<NMPNuA/HNsA`Ar`<dNJgJ|bDCH瀀HAJgLH>a@L`H?8(H o(aLLf0ApNupDNuH/2a lf*0@"<g < g8H0 lNL LJNu"`r,HA,t,HB,"Lp`JgB<fp@`JfrAp`CB gga6rarwaB,B,#`H Lpa#L (IL)HNu l p`&_|d`A`L&FVVn0kN0SN0kNp*JgHP0SNL fS`NuzpgH P0SNL f < gR`"NupJgH P0kNL fS``<daTta@pNupDNu`aHz°<dΰ<ga"Ba`-;f -;fNuH?<?<NMXJ@gN/<NMX-;g<g,-;g*<f$/<NMX<g-;g<faPM+@LNuQ"p`J,"gHrabrfa\LJNuJ,"gHraDre`<dA`>B,>4>>>>ZQ"aapNuP"pNur,#pNupDNuB,B,#rarE`pNu|dp,@dAB#A B H`rarYaL8a`/ Jikrarba~"W2)a2A an"WJikra`rcaZ"_2)aA `JXpNu?AA,0->|gS@gA 00Nu    H @rareaLx*&I/ ah&_< gR< gL<g<g< eܺgHR/ ar&_`JgSJ,gS,/ rar ara&_`a"p@Nu?,?<NMX<f lf -;frpNu?r aFr ax2< gp< g4R,,g,e lf< d<g<d<dp`0,<f< f ,#dR,#A???<NM\Jlg pNuB,`Rgp9Nu0,??<NMXrJfrpNuSgSgUgvSgpDNu&fvRBg/?<=NAJkbPOx(؃Aab)C)C$)C 8?<?B?<BNA)@BoNAO |||9Dp)@@)@NuPH`t9+@@lAgf LNuF5LCKKBg/?<NAXOapNu`8,<d$ g A @N.V@(e|dA``xp<gJf",g a@farrpNur)ApNuHl(/, ??<?NAO Jk)@gB$Nup>Nua ,$e agp>)@NuA(r0R<gR$pNua",g$S)AS$dBg?/?<BNAO JkavpNua~pDNuav?(,$gA($e(٬٬$a,8Jg*)l$/ /??<?NA"/O Jk&ѬfHpNua"< g4< g2R,,g(,d"B O | ApB,aXNuB,I? OpaTNuJg&//??<@NA$/O "Jkpgp=Nup"Nua  IJ,f6,Sev H x ggRQdAL0`r`Jg, I,< g< gReSf C`\v`SH @vapAaDLgNu fXp6Nufp6XNuaB$BSt QdBg?/?<BNA"/O f Hl(/,??<?NAO Jkgr)ApNuaB$Bg?/?<BNA"/O Jl |fZ/?<?B?<BNAO "Jk@g(*HEJEgpH@ @alf(SE`HE  |aXf ,B$A(aFfNu` f(Jj", )A R $,Ga"G ,A(NuXp6Nu?<?B?<BNAO /?<?B?<BNAO "&Bg?/?<BNAff$, `$/`$,"O pNua Tp6Nu< g,< gR,,g,e&,$d 8(R$pNuB,`?r ar a2`p2Nu",pNuPRT:AUX:MID:KBD:LST:H@b0HCAag (IpLNuLp4Nu8<0DaQNuH@af Hp0a L LJNu lN -f ?NAX~Nu GEDa/ ?<ANA\J@k`HmD?<ANA\J@g|fHNu Gaۤax gEDa AD `JgS` / ?<NAT$_2A:BRA?/ ?<GNAPONugR/?<HNA\OJgf @Nu/?<INA\Jga3a mt h,NuaJGk SGgJfJf `` GaaSjaxaa` I2  g (=WJANuaak/ /(f ;gl`SgbRUaf((/ag^erHa2L$_ /g`( R/`$@a8Bga`Ba:a"_ mt!I,NuRUatPOf/a< _` _$_< fp=QNu _$_aB"Ha6/a/Bg?<JNAO NuJfa"JfJfÈЁЄTNuJfgf`NuajaJfJg.Jg*"HVJAj<=g LJf`LNupNu$mtx*<gCxafna$fbCxafVJfJf  fRH`(JfJf/(Ua.$_6Skfr aQNu<ae <{dNuE/ aݺ$_  fRSfx&/ SeaQ"_.`زpr<:d <0e.@0`"<Gd <Ae@7`<gd<ae @WҀ`NuARGV_PBPG>A`CON:0<rtvaZf;H*;HfNuaDLST:4H>a`6 Va "0 I0af ^`v` naSfXv<Igv<Ogv<Rgv<Af2HCt4>.a6 Va׾"0HC Iaf ^aׂT ^`za06v`dapaf4 fJ-g pra` f?. i ab؇Ea0_`Z0|aSH0fNu<!g.<fH/"h*)g/ I<!fa PHSf _*Nu"hmlH(x"mpaLNuJGo0Gbpa2f~(މNu~Nup4`BJGo |d0GNu0Gp4`,;m<*Nua;G*Nu;|*Nu Ga֔$0m*pa> G`Zp0m*a.HA86HBrBDHAJAgHAJCgAcVB8SDpr aQNuJGo8SD0m*`JGkg.p0m*agJBgHGJGgHBRBBdBSGHzCt0m*p` H"CD/ a $ "_p0m*`H"CD/ a _ -fS$ "H`a $p0m*`Na  gS` rADaCDA(Nu m ,g|J- fabQ m`,a;G*Nu+W+G m;m<*a4Jg 0m*p$aC $<0m*paA , +HNu"m , If(xR<,g< fS+HJg fSfNuafa iJf>0BfNuafaiJf.Nuafa i.JfNuaxfaN`x"m ,fl< g8<"g< gAR<,g< f` I<"g < gR`RJg 0 HfSf/S+Ia. _`ؒCt`C!tp0m*a6.` ?Overflow ?Redo from start C / xR  far. _a6`0&<a\/ aX. _`&<aFai 0Bf>NuDNu&<a(aβi.Nu&<aai.Nu&<a` Jf (-a+HaVf┲< g$m$jxg<"fva2fp< g`< gL<@d  efRgJag`*0m*p`<gJfaf< g< g<,f( "m"iNuaƲ< gab`aaf m f (-a6+H$hx< gRDgag` az< gaaa. m h`0m*p+`r -gB`&x?<?<NMXJ@f xa.Nu/<NMXJ@g$-;g <fafM?xa֘.0NuxH@?aֆ.0BNu->-*:RGf:-*(af.0E$p`Bp$"^0^`6p`g,/ m fAN _`?/<NM\Nu/<NMXNuCD/ aB _`anpa.g~Nua\p~aҲ<fp*a.Nua@p*a.Nup0m<`42 -SmbNupJGk gSGf4pa2g,jpaHB2RAJVjTNNuSA4j?pa42p`SBda(Jg@J-f:|g4|Mg.|Ng(|Og"X;D;mf;U/-BP`^NuafNuX`߶~ƾ|f~`a"AvaaȰ<f~a:??<LNAALa0( ADBSanA4`fAWa^ _aXJUgAYaLr2av`~q Y Program terminated - press a key to exit pFATAL ERROR:  at line HF~Jg*]lDvUt QCt壌JgGNuF"&g0pC2DC|m |4n"Q,gJlDk.Nu~DNu~Nup"DjDG@AB|Ab DSGkUĆQ(k(j2xc 0D@`fc 0D@`D@@`D@@ԆӅdf UĆR@(fJk0<NuJkJkxAS@J[NuJkV`LH,.aLHa~v$OaO `LD@؀ D(*H8x8pJff f0`&e0USjpRSfҎg0L JkS@|fJf JfS@Nua8 g0HGOGG,H@O@@HGBG p̀Nu|Nuއg HGNu gV H@H@@mH|lFJj@H@VHFNFr FJgdH@Ri H@.<H@Nu~NuDNut"g pJk S@ҁ`0<vNuMC68341 FLOATING POINT FIRMWARE (C) COPYRIGHT 1981 BY MOTOROLA INC. Gaʐadai. NuHa^`Ha\ai$LNurtvx2(4(6(8( |o864BA@`J@gHCv6BBHANuH0)hlH0)h|?ovx`J@ga`LL*jfcCD@` ԄӃdR@HLNuJfJgJk S@jHNu0<5@NuJfJg JfJfBBB|XONua/ 04R0(iR@5@&Oz////zL81P֣7CBCSHCԃ6BBHB҂ң7ABAQHAЁ'@\KUEjLJkSjjH&_NuaL/04R0(i5@LL xzJk SjjJk Rjj|?Eg҃тQJk SjjH0,NuH?@.N"Op QOLNu(j (u@#< k:9/6ɿ2_2/ ,*(ԥ%C@"k( $P@  =nѷYŬG7ֿwp_Aܯ ٌ .BҴ$5ϐ|敔ȸw2œJ~ePm%tѸv z Jgkzއ[ Fnz Fml8DD/A p@<&0@ W.:BEHExHCڃHG6ڃdR:HEXOޅkއSFdRFv 8fi FgNu~NuJDk~HFJ<Nu~|ag*e -WHFag .fagnS<NuafVafdRFa~g .fatg Eg<ef0adge -WaTf8aNf DbE`JjDDDSN .fa(faeSF`&eeeևe ևeօe.NuzgLSg< g< g< g< g` +g -g 0e 9bDNuDNuDNuO// ?<JH>f~A?|+."jT/"<HFvAbPmn d\HSC`]HRCPng`\HSCPmg/|E+00,4jDBT/- B eR/.B //tC$JjJ(fB8X*x UeBޅ D0Q>HL|TNuHFo GbAp 5dSGfxA/|E+00|+ `d/ .gR :fR0`RR~1HGHG Ef (+VfR :f$ R ` h01f|+S /f S _ Eg0`LNuH.f 0tLNu,av"OE` 5e / ".gR :f0`|1RG$_ Eg0`<-gr |RE "0V|ddJFgJGn0D@F|dP` |>|dD`(.0D@S@e0`0S@fO$LNu0S@f0Gc.S@f`SFg .SFfSGE+00JGlDGT(| eR(G `BgNAr`r`lr`r`br`^r`Zr`r` oa1HB1H, /?< NA\"FHNu opaи|l/ ?< NA\Nu`r `jr?/?NAX.Nur`Vr`Rr`Nr`J//// ?<NAO .Nur`0r`@r `:r*` r+`r,`r-`r/`?<0NATH@>Nu?NAT.Nu//?/ ?<1NA?/ opa"/ ?<6NAPNut9`t:`t; oa/?NA\>Nuz<`z=?/ oa/?NAP>Nur>`&r?`r@//// ?/?NAO .NutA`?/?/// ?<BNAO .Nu?/?/ o an/?<CNAO >Nu?///?<DNAPO.NurE`?/?/?<FNA\Nu?///?<GNAPNurH`rI//?NA\.Nu//// /<JNAO >NuaԄNut oa oa o a䴼dgR$O w(/ a0B w( / aȰa w(/ a?7((?<KNAO.`aȈgSfBNuaxg@e`rL`?/ oaV/?<NNAP>NurO`ED o/ a o / a/<VNAO >Nu?/?/// ?<WNAO Nuanr Nup@@n$"AD &SQ @  gQB RNua@6H 4td`IUANIMATOR.ARJ                             K DATACOM II BBS 9600 Bps V32 MNP5 24/24 Fichiers MOD (+ de 35Mg)  DATA : 32-(0)71-47.22.86 Images GIF (Adults & Others) (+ de 15Mg)  SYSOP : Fabrice Groleau Toutes les nouveauts DP en jeux EGA/VGA SB FIDONET : 2:293/3206 Plus de 50 Messageries internationnales  VIRNET : 9:321/224 SysOp giga Fun & Craaazy  LINE NOISE : 17:5000/81 O DATACOM BBS 14.400 Bps V32b MNP5 24/24 CD-ROM avec 650 Mg de DP !!!  DATA : 32-(0)71-42.06.85 Toutes les messageries FidoNet ! SYSOP : Guy Moins Tout les nouveaux utilitaires MD-DOS ! FIDONET : 2:293/3202 Librairie Clipper, C, Dbase, etc ... VIRNET : 9:321/220 SysOp giga coool & Craaazy  LINE NOISE : 17:5000/82 O q`!U`3V u !;k(g!jBN1j9[|Cn7&%Uc6I~ʟ*S-Zd2Jtw*NZWYeϟj@iJM8xVIc 6 Z׭e,X]ys6fcb4+Ezn`wwuh>Ϡdrʶr%1`@}CMrv>ڜjH9@#w9#8sd??Ơ$$!v5̀[a:58Y{^Ƨ2o;KN*X#$P2A4g8Nk:%l'&73bJXu8k--mq$%ݷdZUo%RnK._K8uylb\;!1%}fĸϯW+]^Z|4z _+ٽs>,kR'U]xCR]jֲ]<T +ewQew4maeYF'UA(G!̫⋶3Bϫk (oͮ8x%lӘRBdR~q/^b:٠ ) :t ?^fu (=ߩF)fi%eBiRKzR'[nIIR Vcj.Y@qra+ IijbxXVG ", iZvi.lvh<>5thO'ן^zw'a:G&oON7G%y y޽^ys`yNkPԲ"?0jܢ Jt <&@ԝ(@xMi RN64FaBlM9U`_j]iϐjq-vj٬. PO5#`uE+j( r~*qeU<4[>ir[@&g~ۗNю(B*xEW:÷:cZh(P?c%Er],\#Npr(_ƂQ\Ae rm(P>>8OW"0Q7Uh;'AJivu0U>R3 MqM7mC6l1:^tt93 8js\|x$ Ja s s[{mƣ >FsaMt&U%ć طr1C̣V?PVgME%ѯfS۟&럆3L RCgIEXMn;Y"4%~jkM iiJ9Tߤ6`q05S"?.ð*p׷đE&er_jJm|fj՜5o4W[nHN'ӣzϿ5ƄLNPvG[@cF #7CߌfJab#AkEw 2᫥ Ƈme]l# 1rBu% FŃ|i8ul5J6߆׏:ɉ1TB<$X\>xxE jX^[[Ơk kv2X7r,~#({`0nT$NR9h[$lm8ll&ƉIy^y " 7JgF!ۀi^e+<%8YQKwP`\/ MXFp8ZN nM!h+ {KeQM>)^(Ɛ.TlL ["R+k,h!G2X.pQA;fq< 4i4IWJt'rB*,;-TOCܵC@3  @Ԥpvb!?iBtǤ}NWj̴;=M4L?`,4mX߯r ANIMATOR.DOC*uZz6њK Aaݪ%C;`cyw% aQHDc(8d桋ao0㔢:%!89|5Xo-g6F+gʍ$2]ACTrUlM&z-UTh!cW=@FJn^g|v?*[UZj7m\5!17mS! n#{dJ`,pwk|[ ANIMATOR.EXE8$8HxZ3mm(PA** EU( Җ)8qQիUN*mIj[z߯xd41P0 zl}x˻cGt@i]Zm 7q G|:4n^pQ ۾p{kn>
    Cg*R X V|5=:iis$7IiQھ>}942(hmsS{}7ZgA[lel/=`_;ZjP!rA;%WE*EZT)]Ge-7;(%r~!ԭ@fΥ9F[H|I ,f_3&R٠-KM1 VBaaw:E߆5>h4IA)Yj *0!г,LM7^E^:-"/QPtߚ5x3%.ev-˲iN.) Ǎy!/ c%W.pk\gUFlRi@0ϠvwMeS69/x]GG #2!ŴD>]; o]2M]+20oX ˩) F2{뮙'2l,ƮOM'"œ&KD\5Va?oxF΃n?auF+7+;pL.,{ u 1Q qFVۤ23=Sn3aaoIxiO3`$0P6 ՟1xoJX/"݀{J ft-@*X#B5-wTK;2~if]tl:[w#j6m Zh+ff]3K*q6yk Ԃd&.cTѹC q\1~hb\8o\L#<#S Ri<wz:Mi< g}7^a#A O)Nn-f[l]Uw]o0.Zn |jPI%d^_|í*Bi_ixg NrF7rKv򱲱C&8Sc9nG J_h̿Y,[-)^Ea RK?^.8rM_ևk HKULQ$[IzsChQX@꿡uiy,Ea~O*d% ۋO[1Ν *@jS|o-Q aT;n*XDI2Q|9dgz DɮIVf?[i1X˂n [wHr]ԣ7ՌJ1cz/';W+IB>)=_y'NַK7 뒛ڷ.6-WZL7Yaա^(MuR!Q Kqk)} l=]>?llOͿ n5JԬ9~{!3O"5` ^gN3i P3zú2G,HQP3>vdn̯) Z^f6̎'`+s3-_ |T 6{F+zxFB!b;Yo:A _y1k_DuZ8 @L<[&6\ W hh\K~Ik\R}B7fڂhUyvH^s Q-RH@g%L!vtyq~Dd\p9`ime*)+jYQfʺn?*>/?u'W˹͌nwcqy\;ϋcm}ODV_ue$c[-{dsHxǘ5==z-o'5˾ލsH3u\:jQɴW;a gGt“s:ˊ@L0?e| r:_)%% xAJ/BZn6_]%!Ga9r!b,sg;͚g$hrmKFcK+<v4OsVQCj &JP8mA^0[D͙937c.w,$)@IXNr~II;IN8k7f,Os]տ`w@Ӳؼqw,,)->cMhwfYִ{tН=Zmնr=$d$_%Nbc"<ֺFx7;H2LH> #i/V-jxDd p i:z7`C١i"2z̋3\D*?P2V3t샵QR ֚6Wh%-CyF~L"!GD#ԼQ_5nW]+ɣX1%cvgsFUc?E:ߤKrXKI4=3V eYFζȄՔ]ײYUddB['[M+Lt֒0b!S$#%p!az>#qpp6oyrW+a*?a]A͡xf-_K>qxs߱cPJih;Nyz#vN7n<>9\o u?W#ȸr;<8IkRxa>?KMPl/u!˫bxB4{#<Y!9s`a:P,-&X#|>-)K"%`h ` `.li AN9?gX#"v ͹k遍&riI9)!:nQ >MP{2iAe]$(=Uiyɼ퉲'-HIyx!PWT/xemliz y.(+OkR7,˛M+e?Pߋ¿ 𚹢R}p̆7Jw;Y#7íx#ݪF$wRY>;l^zvjL؈nҢhSH Q%$O!$>B):K~@uќޕs[4;NВ7 L$^R-^nΣ 3DAj"Pd@w4D+#j1O΅]~@AS~ww7- ŐJb&G-up&bKNr\"HU0IcPL<-Q! \8G"&] $^`B1Hf?7ʑ"9jt $CS: ^l, דd#no% ٢dB7E:<&3#*S&a (+3= g˴n.Y&S#tn;bP԰ZvU'U&n^gl~V緱c 5 ^{.ߏ;qF<7yzpʻ$Cˀ5QfҼtys[aɑ0ѺM8";1?&jI'=ڕڷ ^^Ca*jcѵ)aWlXI;Ʈb|v8oy*9zuf%od[C{J3忘]wzIU7}O_gARTF([7ui-ECD-aCZ _顾݉= HBE]4 vf@8FϾ/iuDԎƇOk~-ioٯSDlCQ r|,tDj QM; }m4{ZZLF?FX=Rۃk/2zCѴOhS$KEI#9Ǩbk3{kDB5Aj[2'tL_U2~&l0S1^^dOjHʔ7&mLګ9Ϝ8~amI(Aav#OGݟ:-xu3`S2%)HmcэQC[u?TN9?]-) ,7ZTM[{Fҙ?ࣇv,5(9pm\C?gxP_ʇI^eSCr$)"{bHvDюRI!lRvǖP*阔<ď ;GKzH#߰_=}< PH5sT}`Cպ>x J̷K.s6;?~1N]0Q~Zٞ T|ffLa6uJe .y"T-u|_@& >Y򊚍y CZ4σ ]A..S*-˶FtXC4C MvsHx-EvBlǨ Lz*7&VO8ۖ#M?'iOVK}e}+&b zO{4%l=F੷|b雒լ2jiӞ^FR;%yQw-C}/}.ҡ T\7B }k"{}Wz{M=i#Üht*!4 88s:撽&D[!5Y[=0./6vV_\>ŪdJKD'(d$&!Af*RLgE mG_H~M>rr׽yYl̿ۀ;iKMB*ȺXb [@30/ 309T3pI&N\ΖmZzv[Y.-r$6?qQ1x„I2Kt-Q;vSc1qŷ͵6jm=ne9PP0>Zvzޘ .T"$&_U_iuЧ@_n_ MvE T&u!6[J-Qa^H)p^y="wt^*t֜NBMe|J\\_ǒY|zcjenݛd3 삞˟hc3HI\p)\h3>VLj#W_  $:mhxʾ[G;_BzAyϑb|ŏ AW% 27߇{р?)00Jeeùa59sS ?~!Eo!H=ۭ%;ojty.M9ؓM"?H34n R-7vL+1,嘀_A*mJ6\ÅRNt{܇ re DZ}1Lf0VJ(1Fyu.mC*n{K1̾]Y^ r?/CqmVEe`<8ѫ1Ul/Yvq>1Q`:LŴb0ܩ a)E_O\t;yZRY5t.&D>*Ԩz[RK7B>9^ڥPEoO}X$ 7خ&ʫ:U_)cZ\r]3O1DᤅFDh[;$.?Jx~I& 32xI*Y:95+5W!COBog->HTjN,kY ]$ j-c7uK/˵qE|_ڦΕIp,Xs9f]k_75꾭}eNZtbY`^+Ic.аiqZM'M ])xHm0l"3^Sګmc%7`?؝!]:]p 4K%lRzapJ`?̈'$k98؆Z((a"w0[0Bl%T+Nf rxicSF wYmPAa<[1]B揉^yf4k ۬he+Vs iA|Wb9Nj[լ/ ߗA#''Դd6߈Hਕ%e*M=M@lmf-f&{ݔ7۰bBw5˂DChxY!:G]b٢S=RKN` Cj@8qqC=[L54)019-5i͎`I6Y~Ēd郑&RZ7Rs 1UmX.}pvg1a%wYQ|4Q_ CuR>`բN ;BBVfYպĭ2p5L$]yeUy#516a%.s#I =_6`Ɛ~!lsK.?}5)@ѽ( $jR=D/pJ>:%cIc0Kz@Xu nKkr SsbqXkzRj,O= Ħ(%>ǤNmF)ԅ<() jKRi71tȵUTHҧ;WgPᱢ |MLUgnv+Iv@i?9a`n;ZˣI ׼Ћ )'1ß>VwM9yTҭ:յ@˲\ԺQ8?|7b1Xb|Rp0 g#rCcxו Ӯm)a.c {\" oSMJS6V=ȫ|eff!:)Cdmgx}m<*(H8( F,:vVp 낽Q?>e)ym_ոW&$U6O?¬TO5yʴ'vh3 ղ*nƺ΄dZP`^Zs &:I݁%bn,yF2VI[r\b"Z yJգV5Ք\Pu-W1xϾaf[nkIeYDciE_E=e<>& Q5?;V?gJ?~{`6?)>1㴓>QQ!`H҉6^5S,$THTW6.pb*:$˘W4P΂uALP˜Y#=k-V ɯmO@m]I$N4{+*%6_+R𜟤WOJfAб :_{]C~|gO"Eo2!&|*+X&.&Y~Ă?7R?lR_K3a`?e{++q %r"]{t%.F^Br~$-zzyh*$3E̅)FמfAy*@%eS0:'^ b`/h=A\ۣE&n@^J1ni%ZOoԞ%xvKk!)~6`7qUKEDyI=5.$]a$AGnY}Nel a Nܷ0D$&S>Tْk *uMf$ܥ38F.ԅ~\+9BATb?oqsX67 K w`A5̪r5bn9.t&۞5\pck:7P0N <]!(2v./헫ЫxBkR.^Co]`%OKbb_39XZj@O ̈́a Qjve$xOFxK%nkV0H7Fx1LFaw S< ;Fћ\>Oڲ%zb٭ho_?3QNxtJ`xF?_rzˋ_[tc\#k^$(=|lY8q=CEZ۔[X1Kk0$<.`vˌyږey^R2%Jby2̡ynn[;"7MtkA茨Z+Jj7KU- !yNz7<\H=% X>ʰmۣ89,M7Jf[C88ոʳ)^I`+Rm/G"c6ñQZ0)htO9gt}YAO3[B:~v.yci E3rfvd|(\bV Ut"o<>=bķԄO_,]N$v4c_?8JEdgv -Tg OJ< ݲC-CP{^iVUTf.Y8 AICN,&ev ]|6Gy wy y2--Ոy_lnu)ixW[4GʹY 9*/ j6 g3dar7j$`#޽vX0g5] \3ϖeFnc_+svH1Ca]x$}v7n$0`6!R.G`eG-F#'KZNGۅ i+Hj`BNT!;@RT/6,p`a|, rW%h\%XsE,Ma%}9TR쨩|3>PySEӤ٢˩ DaHT! @Ƃ 5DMqj"a/\L ˫ᮬ|ЫP P'٠B_j@da89]OptZr>Zo'ۊ@S" vyM/{O*t*Ay}ni.VE9{Y瘨TW:M3QJ({u!brk T.Up;KPJkzgj+v櫓uU@kIJW:)kL.ZUO58{S⻥.⻧BCI|-ڨeM.VCkh)Esmof==wM0X}uy w>BvRH^֣gL{0xƨCA) M"KNB@wkQdUY#ޙ#_ Kg-Յu# L oJp vٿf>8hV$qAU:"-e'p _H_:S|ھmi͕yQn֋>p-zbpZ - DrUxb)Vމr]cU%܎x)Mu}!T[,$M-EIIKRODO]Dc\b-k̔!)+i CQy5_p|UE?/T.8{+sWdjHuN_y6nX=}0E5|n nf[ =a.cb V/jڠZt*% $;8.wm!8;ZRmAU+jzU li.W@|%7T նƩe;k7\O ѿBKQ%ph~#_U&$>=10_ZYAzo!G=֡͹v1L/:f/rlgg\;KfGqŏuKZF__DH đIX8,[j }?x?F4ax@v6z^i:o|akJS1>Zu/[,?PcnS8@rjV_Ԅ3cƗnvdǷHdEBxB}nN34Y@*8>gT _RlDwo5,!67L}F\m(`w'TrA֩2,]3Zcdgw^gZ~yZZ*|"CzVxMX=&^/#);`qAh#24D *JO*+Bk{4o9o&&}%oƶ0YO;ո {Ŭq2ٴ QwQoDHVK&g >[I?luԭꕆ+3#7Ao>މdYGRwkQ^6/dMԭtOT'g޷t,ITO܄QKj {4?r}0Qk=* #Ǚ>@/Pټߢ>=|{BJ}Q _#|`x]mhCR0aZWxn` >mmx+s l,yYЕ9H7V~Q^xLNqm8K277TQDUx955"+:{ 3. R, r1a}dCK#m޽dp]Oƴ 7̅ʞ(ۭF)<(t|3s1Hv50нbL7Z Z&~z)q({АAr7z;+L4TeXu] 4郋?G ^X `8n(4w_vN(jb` '0UһYJP6gtnkhTVc|@ð $F-W]vk 5;=FVLpw{czi0oKhr߶Xi#cTy#x1"_g=8/%_^NPLp.0=T$g}葖Wiꉧ7.b00px Nv(J'vȭԼX|Aߐ+_Hb p;*ދ@=z{@U$srH-M*z}E5=K h gX r$F×uſ'ׯp_5s( 0_a<̓"镟f(z*oo>z; ]b2p~'NmL|2 h@LREPkBEj "QLB`V vP(H8q:mƩEj 7۫I@B|1ޫ*ZܷP^qYFMw*0*`V&!t-8CQ$1b}^T,o^pcf9lK3 wF5e@`+ԋ$ѿM»؝([@PвZ&[͗scEA?ܷ?4X Xw .j^6V 5! ؊:ާ-eGb;ӪU uᖭYbx}p6MW6c1'Fm5R~dlSH(ޢd,'/ e*Xpp>KRjHBn>]>P2a옣SvW:(!i3xͩFR}B=.~4m'b:Ϸ4=<5^&{X2c9oMӭKze +=,=*Fph`1d/Y8c(bFʖ.iKű(6``.,SHYݶ)9W;J%PnQ^[!氠|J%jdQOZdʔ.:L?DRzW~7ޖo,]xԹ|@SiŢ}GɘaȰӣu%H11=(JG:8 /Kph\ve! UKІ yůOl~B.Z:͖o1 PBaȐ3l)P.B LU yqA"Y*&r*%&1Ls*,#0hy*;pQa(˷(>5TzF"Qo 3yŨBy,8M9Zn^tU ڍzXMCR>zI`QjrE ^^ .z p}PQtk"Ώ?}8sͥz__D)|72W{B٪~/ul[JSJڻ4qt]e}kl\0 l)*z & I#@HaBkg7eԥ^ڿh w^ߖ=g\*Fuuc>"|]A >F uUSqZ;: l>sfy!Π0\m!xC!2~2)(g2XsS_ԪQ_N:m8~>(슶F=HN|Vi/ w~T;π:=,-bHg?:O0}OP|@@n0T|QJ5ʵݸk_X=˿~O2OOt=|F7='b{߾hg:YIm M~3\]&k򚝚|]ybk k4١~[7W ӐH:T/ *M$4f֋/Wccn2}Wvenz~LJ#[2mRx9yp{*&o^rȐu%zh}OxK}/>D0+t|H^nkDneJFqBt%Rx+bx1uE5;A7rr ae-KxPP?oZ4+s&%1:W}nT2 _+)SlgCliS$]`EPfnp$K}|bϹC4$bsK\U?=1xq 5hl52ZtFegՃJΧ+~Z}=w3ƅHll>aIjۥP2K4ڡov_Di|Lm7!Dzk|E;gP_K^jc(? )?1I5 E"ߵNF+?JZ&nv{0StJ^;wPn G]֩` zCĞ!B(M%~ɏ_ x1mM lOzJWȫ3 * C6gdr(6!ˆHD"?oEH6J27HBb8Wu HJ*Yl㜙t?mpj[= r>G]G+(#={q=Wg:{_d+VdZK5r$ԷA3O-Ha0PX^1) 2U@ r3YסTc3qEĶjJuಽn:jOy)hܲ"A(8?q/ *KӭBJ/'4lHF aBrO]2ji:IKw%:Fnc5rw/`7^uag^6}lNliW;ȱlK{/e7Q`GMkIཆCP$N§&{A{_ߵ9_IVp_zcE];wqd(ReSRyF7J|%%5ݙ}R(D)ࢋl"3J%_D-|#nY]7B5EN"ޯ?VDnBk۪Mwayc C )ƹؤv鳱kGĭ󞲚 Q;dz>nm҄ci+Chzޛy(Fj'r6V8 ްB˒¿Z"+VVĭXr_&+TJLv6BF˩Q@E*їQ?2V;m ˁ_vmA@ gt y/e @xf?aD_C]MS5E!K]^yyzYS0y-ߘ~EhdƷ{{f%_/\fxNѹwDc(&׻#o! ʫHuޝeb>Ū@#͠2;ƽ{V?] !^rLCePQ43B E[Ҷ͖_*~u¾s=ʒ7^ñCser'-[[-P.y@cs.9ZI+:gY^稪3 /7N*Qw ) Yz<$nzrOV3ո% `F_/Ηw~$s @ŕR(*wZ*.kͣ;Yjz`7+JY0iaix_۲O2#Rȉ<[[.x,]B 8T%*|4baR s,cJ:Y%BMZr~]0KJL-(c:w̧Ra! #FH)j`!,y` XIڽ{]!0r{ %)ԹbƇt"޸@VCZGS&05tBKTq\rk\$Sԝ wp~ΜcKntuvfW`gb>S($a4&gyu-)|1=TtG_dW1u. @1p3ry_t)[6fa̐؄όL3OGLJQAٛn"畋?jL4*PBk=UiA3w*M vLVwPD;iQ|GY0QʄlȆm{&>r6.i\S]_aDn=P}3z\F'rqe6QUdQH $D"m+THS8ygI:0Z@z!L*ȶ?_SS\cL`Tlj"oM=%;8|Vt(˔Za`1 R@do?zf?~&ivW/M)HR9 FY#wEx%קdɕZl:$% - A> ] )^5*uPԢrPINgj_MF JXGGXbOFܧ_w+lx:[]}+ԅ2qyTsEwg;D%[*xV夌7pp&śF4QC0Jftz|,V78֪5fgGװ%-_L{H`TQ [ƛ ք~ kA b0fo,@!=R{I'O~rG`;^eErbqHu*Z:bbQ#M&,ӷ!}ӵӮ#;(Q٬gf[+|wJKttSI^5(+ܐZ5,Ba.) B꼉Δy{9$/az.z=6D?sk+T fotL.bU~$%.Пa ݬ>Rbkvy.*Zu!6FSO[d/|U#y ̑t'vjt*l#mWͥ ZI*&l^tbRAyH*~?M׵-Ş*]|d~W9LѝkAMp.-SZo]Eol?6+lH7 h|d& qÂsF A}VV~l&KD"^Gs1O6OqTykڠB"7\ T ZC&  D,~ie{Qjٖ|Q>7@hXZmR 2˚۞x`A];@͈Qf6<^:z@#;ͷrxj1˳4ab2Y hDٌS 0؞'A?|S9F`cRgMb?c5e2 LrJj;fHw*P5_u>f)g"1>W(e$gzd#1@9Ѥu%㒉@-*-#evU">sukGJeP3aLOFv;D%gCMѹ|tH~DlkD7KΑL8ta},>Qz!pH3C#2:`9Y Geo.[|t))-VY-mj' sajUG9Q÷a+J Ok4HD^-'Z%5L'ۧ) OOۑn+@vG}oٵn 46_1g3/`;Zq8ZO?&vK\wl0-tu!qG̠낯ANr\{)JEfgs򳵈1|rOG90iaOGYUGQNSh>ʯ?=ִ>k8"l?6x4L[6=#ޟˌM&Y(5:ѻ4}bܵJʚ$dm1Ly̟?Ξ?V#'ʄv*1K>S2Eq2AIdv“N,iO[0-zvm)#hG-`lxi+[g͚k&< !`g&J"_z^}Ɩ@ofQ]h^ȣ3882^M_Y $\<̒dauct*B0nFJ0i 1ɖz,b-YR\zv+%!Ydlf*~r b،ŷ Ұ;{Se9u:7"ʿ, Ɓ̬2H>@k$0Zrppޢ"o;,a-9NLŖڕ vth!Q +/љpAO~~U~7%?#QXrR1*(,od3~0@}ҧ(>ڿJ/2Dj*G(UVHvزF /쫞}8G]JvZ~?F ]3geRXld?!0Ķ6WR`)]_,{)>絺|bDwKQ'Z#cJAQN**5q؏'^CnHCQy_32{rR%'7njrj^Fd3sfc\=qYfOfw^jvqFΝ!嗈݅ND,BcI(c/l-%'i]OVsXR2NA5݀;Hjn͞]+X4v|j1s[lSg[iko=l B_W~ >ف1|ƫL}ydrP$9]Ä(xI>(Wfm+VG#J*D˴)4%#/eMY ({Hy#+WsW1#LY٩QANQb9XnݪvһTMign#T'Dɼl8R6+ <0!u+lڤdg; B?ةw^-?CsӦ|O=p LLT+͘ጼTBјTkor g -7(i̫cuͼ%͗݅<ȚAUK9G vgZI{(/1Ђ{ ljDC{+qP3g]tzs 6@5< MQEejۓki)K=n~&&s% TTAb֠~Gш|7 +)KUIE]*֧ŒQt@7oc[RTBi.M%W.W-KnW ݒ+< R7Y"6_]wnAlDQ믰= Ilơ`6TF7'Sc6x#Eʶ*p"ÉM 7zLB|SvFzzlCWR]ۙUhRڳ GNd+HpHac7y_jEf?o5DW`.X+Ur(<όf%fcuռv ԁ㎒?tGE>dC'S?#(A0M5/A7yͩoVIB/uĠNCƆAr}LF>m/9YVFO_:/,3z|OA};nPoU93)a l @K"Q@Ԍk &dyˏ[y9d fCeM@_ڛև *3)qvE0TȒn tX^iqmZڽe핏Uz)XzW\X[PK^@TxxS%?:]}|(<*\?cz\H K9t-;]IțXX/wok)&yc~ߖ(A!AG|s"5Cj @~!mJ}ŖB?`P0b6#z}d?c ᩶[ kG z9{^c ɘb0攢TXa%&fVW}C_9 ;V5J;ќS@/}ѭ5"h.2יc{:U:tcnM77 t Kck|࠶=]o3mWll5wi]>&z?~a߄ 68&Dg *A<#9mmch Cn+0ZX0M3e% j4)d?|Gޏa꯰>wcuswvd5#V|쏻 [oVrBݫJx.չP( i͆e/MYm76SUpb`|w g mc68k}mI[\Ul6֖Xn3MEnȱmci8{6| l0Q^Qa̪U)`RvLb0JYzb=9:D/^r~.9l~uoZvIܭ;ª'" {2jAȞ)>L̩} `ct]B.kiXfRV~| z7t*;5\n=ee]޵]e/VGۮЁ8Lۮeۮ|06^v9耘u: so9xT/?k~w}DRޯ >H^B6tW{YgiYҪLs!rV$ ҂gqћ߻z84s3c3#7OFk{˂]EmhG^v|Qѿ4 CǖM솏uQ9%惶qbVcruR;\㝭-0jR>1uoNDϳQ0!G>oβo7wPxPXuQ*V@&%~I^=N#jؖȷ_mdgщ^Af _d&W[쎝0u蹝nGkJx9؛6 >2oSpD0,n&x[*4*H@+퐄NlN>|= 䦾+;- 3T3ՓFʴ$.4,7PprBjC`j)y j5O1X=5؅}HJ!/ - P׮ rƕ^גYx$ҎK:V*Qw٢a(E=qp˅`isT 4IM0sd7]1s68˃?QO}|@=\Cw},Dr&49-xEN#1rʦU>w$$P;b3ЃYD9S5ppS"WL!plW=w;E``)9 ^DS!8 9E1k6bIIҝs"jSIٍL0NK>fI^$dFPZL6Ml-Z $YeԌ"Xf v_o[l[ ;'[xσ)Rv7e`cw'%30̥CN#XG decHG~gByde&'c8,YI7nN]|Qa5WǷGj 7&iazغMsiOw.)Y&wT4A,w+1Njύ;kv vߝ_ %#zW[?}CbM$UftFa*٫}̲|9A`ix7C궊?Օl{\v&iGYx|vk_ٸy]M{{(]F;BW59ɓАPYR{ֳ v9-tt^g=Ysj'g7!JKOB!8˓_(fe=Խ֣-=3>Y9͋naA& X`Cr@EN}~ o0]yI٥֜;^ˇ?\"=QЀ=j) t)JrwW;fW(Ef4 )B*WS8ixm*x?/˩/uRz[; H$Z:@T07WUwT_̺tljJBצc`*e+l4}ϴo_řyND76; V ϙDO"~kk'i1ĨڀeƥQ ZUC^. K0犁Ee*GVn^{eDZ;-!`ªN2?ڕj~7)rE=ʡ€^fzgj@`'pl BBS.COMU64\ _&c>Ⱦ&+nfGd>Z) "ҸJ `XSYK2,KpppE|ύJ*Ժp?}}ڨkQ;'x.>3" ޗ{,<%2n?'7ߛ٩->([|"/n'Rcf#D}A>ky|_k/ߟy;<}':t@c([BY aAZ)7Dr۸tkRz 0b Q`C haW\= U&ڸ}gp\+ʰ9許"]U+V(ʲ%YDp^ u3Ou W`MԠF0ng*[Kgi;y Azt<-Xq]k Š)}F` I qYuPBN@`V