home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / p / scdesign.bas < prev    next >
Encoding:
BASIC Source File  |  1994-07-13  |  6.1 KB  |  174 lines

  1. 10 PRINT CHR$(26)
  2. 20 WHILE A<>32:Z1=Z:READ Z,A:Z=Z1+Z:POKE Z+61440!,A:WEND
  3. 30 DATA 0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0
  4. 40 DATA 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,206,0,4,1
  5. 50 DATA 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1
  6. 60 DATA 2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,0,206,0,4,1,4,13,1,13,1,13
  7. 70 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
  8. 80 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
  9. 90 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,5,1,4,0,86,13
  10. 100 DATA 33,13,87,0,4,1,4,13,7,21,3,83,1,67,1,82,1,69,1,69,1,78
  11. 110 DATA 1,87,1,82,1,73,1,84,1,69,1,82,3,25,9,13,5,1,4,0,86,13,33,13
  12. 120 DATA 87,0,4,1,4,13,8,70,1,79,1,82,2,84,1,72,1,69,2,79,1,83,1,66
  13. 130 DATA 1,79,1,82,1,78,1,69,2,49,9,13,5,1,4,0,86,13,33,13,87,0
  14. 140 DATA 4,1,4,13,33,13,5,1,4,0,86,13,4,98,1,121,2,74,1,97,1,99
  15. 150 DATA 1,107,2,87,1,97,1,108,1,114,1,97,1,118,1,101,1,110,2,40
  16. 160 DATA 1,67,1,41,2,49,1,57,1,56,1,50,5,13,87,0,4,1,4,13,33,13,5,1
  17. 170 DATA 4,0,86,13,11,105,1,110,2,77,1,66,1,65,1,83,1,73,1,67,14,13
  18. 180 DATA 87,0,4,1,4,13,33,13,5,1,4,0,86,13,2,50,1,56,1,52,1,48,2,76
  19. 190 DATA 1,101,1,105,1,103,1,104,2,82,1,100,1,46,1,44,2,86,1,105
  20. 200 DATA 1,99,1,116,1,111,1,114,1,105,1,97,1,44,2,66,1,46,1,67,1,46
  21. 210 DATA 2,13,87,0,4,1,4,13,10,40,1,54,1,48,1,52,1,41,2,51,1,56
  22. 220 DATA 1,50,2,54,1,49,1,54,1,48,10,13,5,1,4,0,86,13,33,13,87,0
  23. 230 DATA 4,1,4,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
  24. 240 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
  25. 250 DATA 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13
  26. 260 DATA 1,13,5,1,4,0,206,0,4,1,2,1,2,1,2,1,2,1,2,80,1,82,1,69,1,83
  27. 270 DATA 1,83,2,65,1,78,1,89,2,75,1,69,1,89,2,84,1,79,2,66,1,69
  28. 280 DATA 1,71,1,73,1,78,3,1,2,1,2,1,2,1,2,1,4,0,206,0,2,0,2,0,2,0
  29. 290 DATA 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0
  30. 300 DATA 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,32,32
  31. 310 Y$=INPUT$(1)
  32. 320 '*****SCREENWRITER PROGRAM WITH GRAPHICS FOR THE OSBORNE 1
  33. 330 '*****
  34. 340 '*****           written by Jack Walraven (Oct 82)
  35. 350 '*****
  36. 360 '*****2840 Leigh Rd, Victoria, B.C., Canada (604) 474 1750
  37. 370 '*****
  38. 380 PRINT CHR$(26)
  39. 390 PRINT CHR$(26)
  40. 400 CLEAR
  41. 410 DIM PR$(100)
  42. 420 B=61440!:E=64383!
  43. 430 Z=B
  44. 440 C=83
  45. 450 RM=999:LM=999
  46. 460 SP=32
  47. 470 PRINT CHR$(26)
  48. 480 PRINT:PRINT
  49. 490 PRINT"CURSOR CONTROL AND ALPHA-NUMERICS
  50. 500 PRINT"Use the arrow keys to move the cursor to the
  51. 510 PRINT"desired position. The cursor will show what
  52. 520 PRINT"direction it will move. Use the alpha-numeric
  53. 530 PRINT"keys to lay out the screen format and message.
  54. 540 PRINT
  55. 550 PRINT"GRAPHICS! Use the ESC key to produce the graphic
  56. 560 PRINT"you desire. Use the TAB key to continue drawing
  57. 570 PRINT"that graphic in the direction you indicated with
  58. 580 PRINT"the arrow keys.
  59. 590 PRINT"When your design is completed, hit the ENTER
  60. 600 PRINT"key. The program will then read (PEEK) your
  61. 610 PRINT"design in video memory, write a BASIC program
  62. 620 PRINT"and save it in a sequential file, which you
  63. 630 PRINT"can then MERGE with any of your programs (just
  64. 640 PRINT"make sure that the line numbers don't overlap).
  65. 650 PRINT:PRINT:PRINT"press any key to begin
  66. 660 Y$=INPUT$(1)
  67. 670 PRINT CHR$(26)
  68. 680 INPUT "ENTER THE BEGINNING LINE NUMBER (default is 1): ";LN
  69. 690 PRINT CHR$(26)
  70. 700 IF LN=0 THEN LN=1
  71. 710 INPUT "INCREMENT BETWEEN LINE NUMBERS (default is 1): ";IC
  72. 720 PRINT CHR$(26)
  73. 730 IF IC =0 THEN IC=1
  74. 740 INPUT "FILE NAME without .ext (default is TEST): ";F$
  75. 750 IF F$="" THEN F$="TEST"
  76. 760 F$=F$+".BAS"
  77. 770 PRINT CHR$(26)
  78. 780 '*****remove cursor from screen
  79. 790 POKE Z+128,SP
  80. 800 POKE Z,C
  81. 810 '*****wait for keyboard input
  82. 820 A$=INKEY$:IF A$="" THEN 820
  83. 830 '*****check if input is arrow key
  84. 840 IF A$=CHR$(13)  THEN POKE Z,SP:GOTO 1390
  85. 850 IF A$=CHR$(11) THEN C=94:GOTO 1030
  86. 860 IF A$=CHR$(10) THEN C=118:GOTO 1110
  87. 870 IF A$=CHR$(12) THEN C=62:GOTO 1190
  88. 880 IF A$=CHR$(8) THEN C=60:GOTO 1290
  89. 890 A=ASC(A$)
  90. 900 IF X>31 THEN X=0
  91. 910 '*****check if input is graphic
  92. 920 IF A=27 THEN A=X:X1=X:X=X+1:POKE Z,A:GOTO 820
  93. 930 IF A=9  THEN A=X1
  94. 940 Z1=Z-61440!:IF C=62 AND (Z1-50)/128=INT((Z1-50)/128) THEN POKE Z,A:GOTO 820
  95. 950 IF C=60 AND Z1/128=INT(Z1/128) THEN POKE Z,A:GOTO 820
  96. 960 POKE Z,A
  97. 970 IF C=94  AND Z-127>B THEN Z=Z-128:GOTO 820
  98. 980 IF C=118 AND Z+128<E THEN Z=Z+128:GOTO 820
  99. 990 IF C=62 AND Z+1<E THEN Z=Z+1:GOTO 820
  100. 1000 IF C=60 AND Z>B THEN Z=Z-1:GOTO 820
  101. 1010 GOTO 820
  102. 1020 '*****cursor up routine
  103. 1030 IF Z-128<B THEN 820
  104. 1040 IF C1<>C THEN 1070
  105. 1050 POKE Z,SP
  106. 1060 Z=Z-128
  107. 1070 C1=C
  108. 1080 POKE Z,C
  109. 1090 GOTO 820
  110. 1100 '*****cursor down routine
  111. 1110 IF Z+128>E GOTO 820
  112. 1120 IF C1<>C THEN 1150
  113. 1130 POKE Z,SP
  114. 1140 Z=Z+128
  115. 1150 C1=C
  116. 1160 POKE Z,C
  117. 1170 GOTO 820
  118. 1180 '*****cursor right routine
  119. 1190 IF Z+1>E THEN 820
  120. 1200 IF C1<>C THEN 1240
  121. 1210 Z1=Z-61440!:IF Z1=RM THEN 820
  122. 1220 POKE Z,SP
  123. 1230 Z=Z+1
  124. 1240 C1=C
  125. 1250 Z1=Z-61440!:IF (Z1-50)/128=INT((Z1-50)/128) THEN RM=Z1
  126. 1260 POKE Z,C
  127. 1270 GOTO 820
  128. 1280 '*****cursor left routine
  129. 1290 IF Z-1<B THEN 820
  130. 1300 IF C1<>C THEN 1340
  131. 1310 Z1=Z-61440!:IF Z1=LM THEN 820
  132. 1320 POKE Z,SP
  133. 1330 Z=Z-1
  134. 1340 C1=C
  135. 1350 Z1=Z-61440!:IF Z1/128=INT(Z1/128) THEN LM=Z1
  136. 1360 POKE Z,C
  137. 1370 GOTO 820
  138. 1380 '*****read (peek) screen and write BASIC program
  139. 1390 CU=1
  140. 1400 PR$(CU)=STR$(LN)+" PRINT CHR$(26)":CU=CU+1:LN=LN+IC
  141. 1410 PR$(CU)=STR$(LN)+" WHILE A<>32:Z1=Z:READ Z,A:Z=Z1+Z:POKE Z+61440!,A:WEND
  142. 1420 CU=CU+1:LN=LN+IC
  143. 1430 N2=0
  144. 1440 FOR N=0 TO 2816 STEP 128
  145. 1450    FOR N1=N TO N+50
  146. 1460        Z=N1+61440!
  147. 1470        T%=PEEK(Z)
  148. 1480        IF T%=32 THEN 1560
  149. 1490        POKE N1+61440!,127
  150. 1500        Z%=N1-N2
  151. 1510        Z$=MID$(STR$(Z%),2):T$=MID$(STR$(T%),2)
  152. 1520        IF LEN(PR$)<50  THEN PR$=PR$+Z$+","+T$+",":GOTO 1550
  153. 1530        PR$(CU)=STR$(LN)+" DATA "+PR$+Z$+","+T$
  154. 1540        CU=CU+1:LN=LN+IC:PR$=""
  155. 1550        N2=N1
  156. 1560    NEXT N1
  157. 1570 NEXT N
  158. 1580 IF PR$="" THEN 1600
  159. 1590 PR$(CU)=STR$(LN)+" DATA "+PR$+"32,32"
  160. 1600 CU=CU+1:LN=LN+IC
  161. 1610 PR$(CU)=STR$(LN)+" Y$=INPUT$(1)
  162. 1620 '*****save file to disk
  163. 1630 OPEN "O",#1,F$
  164. 1640 FOR N=1 TO CU+1
  165. 1650    PRINT #1,PR$(N)
  166. 1660 NEXT N
  167. 1670 CLOSE #1
  168. 1680 PRINT CHR$(26)
  169. 1690 PRINT:PRINT "YOUR DESIGN: ";F$;"  HAS BEEN SAVED TO DISK.
  170. 1700 END
  171. N)
  172. 1660 NEXT N
  173. 1670 CLOSE #1
  174. 1680