home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / F / PWAIDS.ARK / PWCONFG3.BAS < prev    next >
BASIC Source File  |  1989-09-27  |  4KB  |  174 lines

  1. rem This is a homegrown version of the PWCONFIG program.
  2. rem Chip Weems 5/18/83; $lines added 4/10/84 by Don Davis
  3.  
  4. $lines
  5. var num, I, J = integer
  6. var abyte, cursor, fill, tabs, indent, clock, ldelay, hdelay, fsize = char
  7. files D, D, S(1), S(1)
  8.  
  9. print "You should have a copy of your old PW.SWP file on the"
  10. print "disk in drive A and a disk without a PW.SWP file (but"
  11. print "enough empty space to hold the new one) in drive B."
  12. print "You should also have read and understood the section"
  13. print "entitled 'Your Personal Preferences for Perfect Writer'"
  14. print "in appendix A of the Perfect Writer manual."
  15. print
  16. print "When you are ready to continue, press RETURN.  Press any"
  17. print "other key to exit back to the operating system."
  18. input abyte
  19. if abyte<>chr(0DH) then
  20.    call 0
  21.  
  22. create "B:PW.SWP"
  23. open #3; "A:PW.SWP"
  24. open #2; "B:PW.SWP"
  25.  
  26. print
  27. repeat
  28.    begin
  29.    print "Enter size of swap file in K (64 is normal)";
  30.    input num
  31.    if (num<24 or num>248) or num<>int(num/8)*8 then
  32.       begin
  33.          print
  34.          print "File size must be between 24 and 248 (inclusive)"
  35.          print "and a multiple of 8.  On the Kaypro II the practical"
  36.          print "maximum is 128, and the absolute maximum is 152."
  37.          print
  38.       end
  39.    end
  40. until (num>=24 and num<=248) and num=int(num/8)*8
  41. let fsize = chr(num)
  42.  
  43. repeat
  44.    begin
  45.    print "Enter initial display line for cursor (10 is normal)";
  46.    input num
  47.    if num<1 or num>24 then
  48.       begin
  49.          print
  50.          print "The cursor display line must be in the range"
  51.          print "1 through 24."
  52.          print
  53.       end
  54.    end
  55. until num>=1 and num<=24
  56. let cursor = chr(num)
  57.  
  58. repeat
  59.    begin
  60.    print "Enter fill column (65 is normal)";
  61.    input num
  62.    if num <1 or num>79 then
  63.       begin
  64.          print
  65.          print "The fill column must be in the range"
  66.          print "1 through 79."
  67.          print
  68.       end
  69.    end
  70. until num>=1 and num<=79
  71. let fill = chr(num)
  72.  
  73. repeat
  74.    begin
  75.    print "Enter tabs spacing (8 is normal)";
  76.    input num
  77.    let tabs = chr(num)
  78.    if num<1 or tabs>=fill then
  79.       begin
  80.          print
  81.          print "The tab spacing must be greater than 0"
  82.          print "and less than the fill column."
  83.          print
  84.       end
  85.    end
  86. until num>=1 and tabs<fill
  87.  
  88. repeat
  89.    begin
  90.    print "Enter indent column (0 is normal)";
  91.    input num
  92.    let indent = chr(num)
  93.    if num<0 or indent>=fill then
  94.       begin
  95.          print
  96.          print "The indent column must be 0 or greater,"
  97.          print "but less than the fill column."
  98.          print
  99.       end
  100.    end
  101. until num>=0 and indent<fill
  102.  
  103. repeat
  104.    begin
  105.    print "Enter CPU clock speed (4 is normal)";
  106.    input num
  107.    if num<=0 or num>32 then
  108.       begin
  109.          print
  110.          print "The clock speed should be in the range"
  111.          print "1 through 32.  For the standard Kaypro II"
  112.          print "it is 2.  For the enhanced clock Kaypro II"
  113.          print "it is 5.  For the Kaypro 10 it is 4."
  114.          print
  115.       end
  116.    end
  117. until num>0 and num<=32
  118. let clock = chr(num)
  119.  
  120. repeat
  121.    begin
  122.    print "Enter delay count (300 is normal)";
  123.    input num
  124.    if num<=0 or num>32000 then
  125.       begin
  126.          print
  127.          print "The delay count should be in the range"
  128.          print "1 through 32000, although the range 100"
  129.          print "through 1000 is recommended."
  130.          print
  131.       end
  132.    end
  133. until num>0 and num<=32000
  134. let ldelay = chr(num - (int(num / 256) * 256))
  135. let hdelay = chr(int(num / 256))
  136.  
  137.  
  138. print "Building swap file part 1."
  139.  
  140. for I = 0H to 74H
  141.    read #3; abyte
  142.    write #2; abyte
  143. next I
  144.  
  145. print "Building swap file part 2."
  146.  
  147. for I = 75H to 7CH
  148.    read #3; abyte
  149. next I
  150. write #2; cursor, fill, tabs, indent, clock, ldelay, hdelay, fsize
  151.  
  152. print "Building swap file part 3."
  153.  
  154. for I = 7DH to 3FFH
  155.    read #3; abyte
  156.    write #2; abyte
  157. next I
  158.  
  159. print "Building swap file part 4 (this will take awhile)."
  160.  
  161. let abyte = chr(0)
  162. for I = 1 to fsize
  163.    for J = 0H to 3FFH
  164.       write #2; abyte
  165.    next J
  166.    print I;"K";chr(0DH);
  167. next I
  168.  
  169. close #2
  170. close #3
  171. print "Done."
  172. end
  173. r delay count (300 is normal)";
  174.