home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / desktop / outlnwimp_1 / !WimpPatch / !Runimage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1995-11-21  |  7KB  |  59 lines

  1.  Patch for windowmanager version 3.16 to allow the use of outline fonts
  2.  instead of the system font. Must be used in conjunction with "OutLineWimp"
  3.  module.
  4.  version 4.7NT - 27th June 1995
  5.  Written by Andrew Sellors for RISC OS 3.1
  6.  This program is Shareware, see the !Help file for details
  7.  Unregistered Version
  8. " at line ";
  9.  E%&8C*&400:
  10.  S%3*&400:Z%=
  11. E:M%=!(Z%-4):W%=Z%+M%:
  12. A%=Z%:B%=E%:C%=M%:
  13. 1?(E%+77)=43:$(E%+79)=
  14. $,5,&B):?(E%+90)=41:
  15. 8,&A,"<WimpPatch$Dir>.^.NewWimp",&FFA,,E%,J%:
  16. 2:P%=E%+&3D18:[OPTE:.v:]:P%=E%+&741C:[OPTE:B o:.Jy:]:P%=E%+&7618:[OPTE:STMFD&D!,{2,4,5}:]:P%=E%+&7640:[OPTE:TST1,#64:BEQ k:BNE x:]:P%=E%+&7670:[OPTE:.F:]:P%=E%+&77A0:[OPTE:B e:MOV0,0:.Cy:]:P%=E%+&7934:[OPTE:B I:]:P%=E%+&7948:[OPTE:.U
  17. LDR&E,[&C,#80]:]:P%=E%+&9554:[OPTE:B Py:.a:]:P%=E%+&973C:[OPTE:B T:.Zy:]:P%=E%+&967C:[OPTE:B O:.P:MOV5,#0:]:P%=E%+&969C:[OPTE:BL N:]:P%=E%+&9754:[OPTE:BL N:LDMIA&D!,{0,1,5}:]:P%=E%+&A2E0:[OPTE:.h:]:P%=E%+M%:L%=E%+&8C*&400:[OPTE:.I
  18. STMFD&D!,{0-3,5-&A}:MOV6,1:MOV&A,2:SWI A:SWI &6008A:MOV1,2:MOV5,#0:.w:LDRB3,[1,5]:CMP3,#32:ADDGE5,5,#1:BGE w:MOV7,5:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:SWI &60085:MOV1,2:SWI &60088:SWI W:TST8,#4:BLNE G:MOV4,1:MOV0,#784:ADD0,0,#&B:
  19. 6,6,0:CMP6,0
  20. LDMNEFD&D!,{0-3,5-&A}:BNE U:CMP4,5,LSL#4:MOVLT4,5,LSL#4:LDMFD&D!,{0-3,5-&A}:B U:.N:STMFD&D!,{0,1,3-5,7,8,&A,&E}:SWI A:SWI &6008A:MOV&A,2:MOV7,5:TST1,#1:TSTNE1,#256:BLNE l:MOV1,2:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:SWI &60085:MOV1,2:SWI &60088
  21. SWI W:TST8,#4:BLNE G:MOV2,1:LDMFD&D!,{0,1,3-5,7,8,&A,pc}:.l:STMFD&D!,{&E}:LDR1,C:BL L:CMP1,#32:LDMCCFD&D!,{pc}:ADR2,S:STRB1,[2]:MOV1,#0:STRB1,[2,#1]:MOV1,2:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:MOV5,#1:SWI &60085:MOV1,2:SWI &60088:MUL 2,1,7
  22. LDMFD&D!,{&E}:LDMFD&D!,{0,1,3-5,7,8,&A,pc}:.Py:LDR1,[2,#8]:STR1,C:LDR1,[2],#4:B a:.T:LDR1,[2,#8]:STR1,C:LDR1,[2],#4:B Zy:.C:&0:.L:STMFD&D!,{2-4,&E}:MOV3,1:MOV4,#0:MOV2,#68:CMP3,#1:BLGE h:LDREQB4,[3],#1:TEQEQ4,#92:LDREQB4,[3]:MOV1,4:LDMFD&D!,{2-4,pc}
  23. .O:STMFD&D!,{0-6}:MOV4,1:MOV1,2:MOV5,#0:.R:LDRB3,[1,5]:CMP3,#32:ADDGE5,5,#1:BGE R:MOV2,&E:MOV6,1:MOV&B,#4096:CMP&B,&E,ASR#4:BLT Y:SWI A:SWI &6008A:TST4,#1:TSTNE4,#256:BLNE q:MOV1,2:SWI &60089:MOV1,6:MVN3,#&80000000:MVN4,#0:SWI &60085:MOV&E,5
  24. LDMFD&D!,{0-6}:B P:.Y:MOV&E,&E,ASR#4:LDMFD&D!,{0-6}:B P:.q:STMFD&D!,{&E}:LDR1,C:BL L:CMP1,#32:LDMCCFD&D!,{pc}:MOV&B,2:ADR2,S:STRB1,[2]:MOV1,#0:STRB1,[2,#1]:MOV1,2:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:MOV5,#1:SWI &60085:MOV1,2:SWI &60088:CMP1,#1
  25. MOVLE&E,#0:BLE K:MOV2,&B:MOV&E,#0:MOV3,1:.V:CMP3,2:ADDLE&E,&E,#1:ADDLE3,3,1:BLE V:.K:LDMFD&D!,{&B}:LDMFD&D!,{0-6}:B P:.k:MOV3,4:LDMFD&D!,{4,5}:STMFD&D!,{6-&C,&E}:MOV&C,3:SWI A:TST1,#256:
  26. Q8,#&C:MVNNE8,#-&10000000:MOV7,#0:MOV1,2:.n:LDRB3,[1,7]
  27. CMP3,#32:ADDGE7,7,#1:BGE n:CMP7,8:MOVGT7,8:MOV3,4:SUB4,5,#22:MOV2,#16+256+&80:MOV5,#0:MOV6,#0:CMP&C,#32:BCS _:SWI W:MOV&C,8:TST8,#1:BEQ J:SUB8,7,#1:MOV&A,#0:.p:LDRB9,[1,8]:.D:CMP9,#32:ADDEQ&A,&A,#1:CMP9,#&8B:BEQ Q:CMP9,#94:BEQ Q:CMP9,#70:BEQ b
  28. CMP9,#40:BEQ g:.Sy:CMP8,#1:SUBGT8,8,#1:BGT p:.J:TST&C,#2:BLNE X:TST&C,#4:SWIEQ &60086:BLNE B:LDMFD&D!,{6-&C,&E}:B F:.g:SUB8,8,#1:LDRB9,[1,8]:CMP9,#&A0:BNE D:B y:.b:SUB&B,7,8:CMP&B,#1:BEQ Sy:CMP&B,#4:BGE J:.Q:SUB8,8,#1:LDRB9,[1,8]:CMP9,#32:BNE D
  29. CMP&A,#0:BNE J:.y:MOV9,7:MOV7,8:TST&C,#4:SWIEQ &60086:BLNE B:ADD1,1,8:SUB7,9,8:MOV8,3:TST&C,#2:BLNE X:STMFD&D!,{1,2,4-7,&A}:MOV&A,1:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:MOV5,7:SWI &60085:MOV1,2:SWI &60088:TST&C,#4:BLNE G:MOV3,9,LSL#4:SUB3,3,1
  30. ADD3,3,8:LDMFD&D!,{1,2,4-7,&A}:SWI A:TST&C,#4:SWIEQ &60086:BLNE B:LDMFD&D!,{6-&C,&E}:B F:._:CMP7,#0:BEQ My:ADR1,S:STRB&C,[1]:MOV&C,#0:STRB&C,[1,#1]:MOV8,7:MOV7,#1:STMFD&D!,{0-5}:SWI &6008A:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:MOV5,#1:SWI &60085
  31. MOV1,2:SWI &60088:MOV9,1:LDMFD&D!,{0-5}:.m:SWI &60086:ADD3,3,9:SUBS8,8,#1:BGT m:.My:LDMFD&D!,{6-&C,&E}:B F:.X:CMP7,#0:
  32. Qpc,&E:STMFD&D!,{0-4,7,&E}:CMP7,#20:LDMGEFD&D!,{0-4,7,pc}:SUB2,7,#1:.u:LDRB0,[1,2]:CMP0,#&8B:BEQ f:CMP2,#0:SUBNE2,2,#1:BNE u
  33. LDMFD&D!,{0-4,7,pc}:.f:ADR3,S:MOV0,#0:STRB0,[3,7]:SUB7,7,#1:MOV4,#0:.c:CMP2,4:
  34. Q0,&C,LSR#3:LDRNEB0,[1,4]:STRB0,[3,4]:CMP4,7:ADDNE4,4,#1:BNE c:LDMFD&D!,{0-4,7}:ADR1,S:LDMFD&D!,{pc}:.S:="12345678901234567890":=0:ALIGN:.B:CMP7,#0:
  35. Qpc,&E
  36. STMFD&D!,{0-9,&E}:.s:CMP7,#0:LDMEQFD&D!,{0-9,pc}:MOV8,#0:.d:LDRB9,[1,8]:CMP9,#&80:BEQ Z:CMP9,#&83:BEQ Z:CMP9,#&84:BEQ Z:CMP9,#&88:BEQ Z:CMP9,#&89:BEQ Z:CMP9,#&8A:BEQ Z:CMP9,#&8B:BEQ Z:ADD8,8,#1:CMP8,7:BNE d:SWI A:SWI &60086:LDMFD&D!,{0-9,pc}:.Z
  37. MOV9,7:CMP8,#0:BEQ r:MOV7,8:SWI A:SWI &60086:STMFD&D!,{1,2,4,5,6}:MOV6,3:SWI &6008A:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:MOV5,7:SWI &60085:MOV1,2:SWI &60088:ADD3,6,1:LDMFD&D!,{1,2,4,5,6}:ADD1,1,7:.r:SWI H:MOV7,#1:SWI &60086:STMFD&D!,{1,2,4,5,6}
  38. MOV6,3:SWI &6008A:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:MOV5,7:SWI &60085:MOV1,2:SWI &60088:ADD3,6,1:LDMFD&D!,{1,2,4,5,6}:SUB7,9,8:SUB7,7,#1:ADD1,1,#1:B s:.G:CMP7,#0:
  39. Qpc,&E:STMFD&D!,{0,2-&A,&E}:SWI H:SWI &6008A:MOV9,1:MOV8,#0:.`:LDRB6,[&A,8]
  40. CMP6,#&80:BEQ M:CMP6,#&83:BEQ M:CMP6,#&84:BEQ M:CMP6,#&88:BEQ M:CMP6,#&89:BEQ M:CMP6,#&8A:BEQ M:CMP6,#&8B:BEQ M:.j:ADD8,8,#1:CMP8,7:BNE `:MOV1,9:LDMFD&D!,{0,2-&A,pc}:.M:ADD1,&A,8:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:MOV5,#1:SWI &60085:MOV1,2
  41. SWI &60088:ADD9,9,1:B j:.x:LDMFD&D!,{0,3}:TST1,#256:
  42. Q3,#&C:MVNNE3,#-&10000000:.z:SUBS3,3,#1:LDRCSB0,[2],#1:CMPCS0,#32:BCC Ay:CMP4,#32:MOVCS0,4:SWI &20000:BVC z:.Ay:SWIVC &20100+&D:B F:.e:ADR0,Fy:STMFD0!,{2-7,&A,&B}:MOV&B,0:MOV&A,1:SUB4,2,#22
  43. LDMFD&D!,{0,1}:MOV7,1:MOV1,0:STMFD&D!,{1,7}:SWI A:SWI &6008A:STMFD&D!,{1,2,4,5}:MVN2,#&80000000:MVN3,#&80000000:MVN4,#0:MOV5,7:SWI &60085:MOV1,2:SWI &60088:MOV3,7,LSL#4:SUB3,3,1:MOV3,3,ASR#1:ADD3,3,&A:LDMFD&D!,{1,2,4,5}:MOV2,#16+256+&80:MOV5,#0
  44. MOV6,#0:SWI &60086:MOV0,&B:LDMFD0!,{2-7,&A,&B}:LDMFD&D!,{0,1}:B Cy:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:&0:.Fy:.o:STMFD&D!,{1-3,&E}:TST1,#64:BNE i:TST1,#-&1000000:
  45. Q1,#2:
  46. Q2,#7:BEQ Ey:MOV4,1:MOV1,4,LSR#28:MOV2,4,LSR#24:
  47. 2,2,#&F
  48. TST4,#&200000:MOVNE3,2:MOVNE2,1:MOVNE1,3:TST4,#32:CMPEQ1,#9:
  49. Q1,#1:TST4,#32:CMPEQ1,#&D:
  50. Q1,#1:.Ey:BL v:.i:LDMFD&D!,{1-3,&E}:TST1,#1:B Jy:]:J%=P%:
  51.  F%,E$:
  52. 30,18,"WindowManager"
  53. ,,,Z%:F%=Z%+(Z%!20):E$=
  54. $F%,16,5):
  55.  E$<>"3.16 "
  56. "Error Incorrect module version number / already patched. WimpPatch only works with WindowManager v3.16"
  57. 2:P%=S%:L%=S%+3*&400:[OPTE:STMFD&D!,{0-4,&E}:MOV4,#0:.t:LDR3,[0,4]:STR3,[1,4]:CMP2,4:ADDGT4,4,#4:BGT t:LDMFD&D!,{0-4,pc}:]:
  58. Z:A=&496C0+&20000:W=&496C1+&20000:H=&496C9+&20000:Wy=&496CA+&20000:By=&496CB+&20000:
  59.