home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / discutils / _m_z / procopy / !CopyLog / copylog (.txt) < prev   
Encoding:
RISC OS BBC BASIC V Source  |  1996-09-11  |  2.8 KB  |  103 lines

  1.  > ProCopy Logfile tools
  2. A_$="1.30, Sept 1996"
  3.   Temporary program only - full Wimp app with options eventually (!)
  4.   When run this will concatentate and sort any
  5.   ProCopy logfiles in it's Logs sub-directory.
  6. 263874:
  7. '"Error "+
  8. )+" : "+
  9. $+" line "+
  10. (B_%)+" in file":
  11. *fx 229,27
  12. -&8000:D_%=
  13. E_%&2000,F_% 16:
  14. 12,12,"<ProCopyLog$Dir>",E_%,200,0,&2000,0
  15. ,,,H_%:
  16. H_%=0
  17. '"No Logfiles found!":
  18. '"Procopy Logfile Tools - "+A_$:
  19. '"Please select -":
  20. "   1.  Sort by disc name":
  21. "   2.  Sort by number of copies"':
  22. :I_%=
  23. I_%=27
  24. (I_%>48
  25. I_%<51):
  26. "Program terminated":
  27. "Sorting by disc name"'
  28. "Sorting by number of copies"'
  29. 263872:J_%=E_%
  30.  - Load the file and expand lines to 20 chars with number of copies
  31. K_%=1
  32. H_%:T%=J_%!20:J_%+=24:N%=J_%:
  33. ?J_%>13:J_%+=1:
  34. :?J_%=13:L_$="<ProCopyLog$Dir>."+$N%:
  35. 8,17,L_$
  36. F%,,,,M_%:N_%=
  37. O_(M_%*5+&2000)-256:P_%=N_%-&8000:
  38. N_%<0
  39. 0,"Not enough RAM to process file "+$N%:
  40. "Processing file "+$N%;:
  41. 8,16,L_$,D_%,0:Q_%=(D_%+M_%+7)
  42. 3:R_%=Q_%:S_%=D_%:T_%=S_%+M_%:B_%=0
  43. S_%<T_%:
  44. !S_%=&20202020
  45. S_%>T_%-42 S_%=T_%
  46. S_%+=40
  47. :U_%=R_%:B_%+=1:
  48. ?S_%>31:?R_%=?S_%:S_%+=1:R_%+=1:
  49. R_%<U_%+19:?R_%=32:R_%+=1:
  50. :?R_%=10:R_%+=1:S_%+=1:
  51. R_%>N_% N_%=
  52. O_(P_%+&2000)-256:P_%=N_%+&8000:
  53. N_%<0
  54. 0,"Not enough RAM to process file "+$N%
  55.  - Sort the list
  56. <;V_%=(R_%-Q_%)
  57. 20:J%=Q_%:
  58. 79,V_%,D_%
  59. (3<<30),4,0,Q_%,20
  60.  - concatentate the list
  61. S_%=Q_%:R_%=Q_%:B_%=0:T_%=V_%*20+Q_%:W_%=
  62. X_(S_%):Y_%=W_%:$T_%="                    ":
  63. S_%<T_%:S_%+=20:B_%+=1:
  64. (!R_%=!S_%)
  65. (R_%!4=S_%!4)
  66. (R_%!8=S_%!8)
  67. W_%+=
  68. X_(S_%):Y_%+=W_%
  69. :$(R_%+13)=
  70. "        "+
  71. (W_%),6):R_%?19=10:R_%+=20:
  72. 4:R_%!J%=S_%!J%:
  73. :W_%=
  74. X_(R_%):Y_%+=W_%
  75.  no need to do any more
  76. $R_%="             ------"+
  77. (10)+"Total discs "+
  78. "         "+
  79. (Y_%),7)+
  80. 10:R_%+=
  81. ($R_%):
  82. 8,10,L_$,&FFF,0,Q_%,R_%:J_%=(J_%+4)
  83. " - Done":
  84. 263873:
  85. '"Finished":
  86. Z_:V_%=(R_%-Q_%)
  87. 79,V_%,D_%
  88. (3<<30),a_%,0,Q_%,20:
  89. X_(p%):p%+=18:
  90. ?p%=32:=1
  91. ?p%<>32:p%-=1:
  92. 33,10,p%
  93. ,,F%:=F%
  94. O_(b_%):
  95. 262380,C_%+b_%,-1
  96. e%<(C_%+b_%):=
  97. :=e%+&8000
  98. a_%&400:
  99. 2:P%=a_%:[OPT c_:.d_;enter with r0, r1 = pointers to objects:stmfd r13!,{r4,r5};store r4,r5:add r0,r0,#19;point to end of line:ldrb r4,[r0,#-1]!;get lsd in r4:ldrb r3,[r0,#-1]!:mov r3,r3,lsl#6
  100. orr r4,r4,r3:ldrb r3,[r0,#-1]!:mov r3,r3,lsl#12:orr r4,r4,r3:ldrb r3,[r0,#-1]!:mov r3,r3,lsl#18:orr r4,r4,r3:ldrb r3,[r0,#-1]!:mov r3,r3,lsl#24:orr r4,r4,r3:add r1,r1,#19;point to end of line:ldrb r5,[r1,#-1]!;get lsd in r5
  101. ldrb r3,[r1,#-1]!:mov r3,r3,lsl#6:orr r5,r5,r3:ldrb r3,[r1,#-1]!:mov r3,r3,lsl#12:orr r5,r5,r3:ldrb r3,[r1,#-1]!:mov r3,r3,lsl#18:orr r5,r5,r3:ldrb r3,[r1,#-1]!:mov r3,r3,lsl#24:orr r5,r5,r3:cmp r5,r4:ldmfd r13!,{r4,r5}
  102. mov pc,r14
  103.