home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / starlet / genienec / draw.doc < prev    next >
Text File  |  1979-12-31  |  13KB  |  335 lines

  1.                Graphics Drawing on the NEC Starlet
  2.  
  3.                          William H. Ball
  4.                             71735,505
  5.  
  6.  
  7. Introduction
  8. The DRAW.COM Interpreter
  9.  
  10. DRAW.CO═ i≤ ß graphic≤ drawinτ prograφ fo≥ thσ NE├ Starlet« Yo⌡ ì
  11. caε usσ thσ prograφ t∩ dra≈ picture≤ oε thσ Starlet'≤ screeε anΣ ì
  12. theε dum≡ thσ picturσ t∩ you≥ printer« DRAW.CO═ i≤ no⌠ ì
  13. interactive¼ bu⌠ i≤ ß "file-drawó prograφ tha⌠ load≤ you≥ ASCI╔ ì
  14. tex⌠ filσ oµ command≤ anΣ draw≤ thσ picturσ oε you≥ screen« Yo⌡ ì
  15. caε savσ you≥ picture≤ fo≥ late≥ use«  DRAW.CO═ feature≤ ove≥ 2░ ì
  16. command≤ fo≥ movinτ arounΣ thσ Starlet'≤ screeε anΣ creatinτ anΣ ì
  17. printinτ images« Thσ synta° i≤ simila≥ t∩ Microsof⌠ BASIC'≤ ì
  18. drawinτ commands.
  19.  
  20. With DRAW.COM you can:
  21.  
  22.      - addres≤ anΣ turε oε o≥ ofµ an∙ oµ thσ Starlet'≤ 61,44░ ì
  23.        pixels
  24.  
  25.      - draw lines between any two points on the screen
  26.  
  27.      - dra≈ boxes¼ circles¼ anΣ filleΣ boxe≤ o≥ circle≤ oµ an∙ ì
  28.        size
  29.  
  30.      - design your own character fonts for drawing
  31.  
  32.      - dump your picture to your Tandy or IBM graphic printer
  33.  
  34. Iµ yo⌡ can'⌠ wait¼ anΣ wan⌠ t∩ tr∙ thi≤ program¼ usσ thi≤ ì
  35. command:
  36.  
  37.      DRAW DEMO.DRW     or    DRAW DRAWME.DRW
  38.  
  39. anΣ hi⌠ thσ Returε key« You'l∞ seσ tha⌠ thσ Starle⌠ caε d∩ ì
  40. graphics just as well as its bigger brothers!
  41.  
  42. Thi≤ prograφ i≤ ß mini-interprete≥ tha⌠ take≤ you≥ ASCI╔ filσ oµ ì
  43. UPPERCAS┼ command≤ anΣ draw≤ picture≤ oε thσ Starlet'≤ screen« Iµ ì
  44. yo⌡ havσ ß Tand∙ o≥ IB═ graphiπ printer¼ yo⌡ caε dum≡ the screen ì
  45. t∩ you≥ printe≥ a⌠ an∙ poin⌠ iε thσ file« I'vσ limiteΣ thσ sizσ ì
  46. oµ thσ ASCI╔ filσ t∩ 500░ characters¼ bu⌠ yo⌡ caε changσ thi≤ ì
  47. defaul⌠ b∙ recompilinτ thσ program.
  48.  
  49. Your draw file must be specified on the command. For example,
  50.  
  51.      DRAW MYFILE.DRW
  52.  
  53. wil∞ loaΣ DRAW¼ theε loaΣ thσ specifieΣ ASCI╔ tex⌠ file« Iµ yo⌡ ì
  54. d∩ no⌠ specif∙ "MYFILE.DRW,ó DRA╫ wil∞ exi⌠ witΦ ß "filσ no⌠ ì
  55. specifiedó error« Iµ DRA╫ canno⌠ finΣ "MYFILE.DRW,ó i⌠ wil∞ exi⌠ ìèwitΦ ß "filσ no⌠ foundó error.
  56.  
  57. Screen Size
  58.  
  59. Thσ Starlet'≤ LC─ resolutioε i≤ 48░ dot≤ widσ (X-axis⌐ b∙ 12╕ ì
  60. dot≤ higΦ (Y-axis)¼ s∩ X'≤ valuσ caε bσ betweeε ░ anΣ 480« ┘ caε ì
  61. havσ ß valuσ oµ ░ t∩ 128« Aε x,∙ positioε oµ 0,░ i≤ thσ uppe≥ ì
  62. lef⌠ oµ thσ screen.
  63.  
  64.       0,0 ----------------------------------------- 480,0
  65.           |                                       |
  66.           |     The NEC's screen is a liquid-     |
  67.           |     crystal display of 480 dots       |
  68.           |     by 128 dots. The screen corners   |
  69.           |     are x,y positions.                |
  70.           |                                       |
  71.           |                                       |
  72.     0,128 ----------------------------------------- 480,128
  73.  
  74. Design Your Own Fonts
  75.  
  76. I'vσ als∩ includeΣ ß commanΣ yo⌡ caε usσ t∩ desigε you≥ owε ì
  77. characte≥ font≤ o≥ icons« Yo⌡ caε usσ ß matri° oµ u≡ t∩ 1╡ dot≤ ì
  78. widσ anΣ 1╡ dot≤ high« Thi≤ mean≤ yo⌡ caε fi⌠ abou⌠ 3▓ character≤ ì
  79. o≥ icon≤ iε thσ maximuφ sizσ acros≤ thσ screen¼ morσ iµ yo⌡ ì
  80. overla≡ them« Abou⌠ ninσ character≤ o≥ icon≤ wil∞ bσ a≤ higΦ a≤ ì
  81. thσ screen« Again¼ yo⌡ caε changσ thi≤ b∙ recompilinτ thσ ì
  82. program« Thesσ limit≤ arσ becausσ Small-├ caε onl∙ handlσ ì
  83. integers as large as 32,768.
  84.  
  85. Index of Commands
  86.  
  87. Here's a quick list of the commands and their syntax:
  88.  
  89. Abx,b1,b2,b3,...bx - draw a user-defined character or icon
  90.               Bx,y - draw a box to x,y
  91.                 Cn - set color to n
  92.                 Dn - move down n units
  93.             Fn,x,y - draw box to x,y and fill with color n
  94.                 Gn - move north east n units while plotting
  95.                 Hn - move south east n units while plotting
  96.                 In - move south west n units while plotting
  97.                 Jn - move north west n units while plotting
  98.                  K - wait for a keypress before proceeding
  99.                 Ln - move left n units while plotting
  100.               Mx,y - move to x,y
  101.               Nx,y - draw line to x,y
  102.                 Pn - dump screen to printer
  103.                 Rn - move right n units while plotting
  104.          Sx,y str" - move to approx x,y cursor pos and print str
  105.             Tx,y,r - draw a circle of radius r around x,y
  106.                 Un - move up n units while plotting
  107.             Vx,y,r - draw a filled circle of radius r around x,y
  108.                  X - XOR screen
  109.                  ; - ignore rest of line (used for comments)è                 $ - end of program, wait for keypress, quit
  110.  
  111. Thσ dra≈ filσ mus⌠ bσ aε ASCI╔ filσ createΣ b∙ you≥ edito≥ o≥ ì
  112. WordStar'≤ non-documen⌠ mode« Al∞ command≤ mus⌠ bσ iε uppercase« ì
  113. Excep⌠ fo≥ thσ single-lette≥ commands¼ al∞ command≤ mus⌠ bσ ì
  114. followeΣ b∙ aε integer« Yo⌡ ma∙ usσ an∙ characte≥ t∩ separatσ thσ ì
  115. x,∙ integers« ╔ usuall∙ usσ ß comma« Thσ ╙ command'≤ strinτ mus⌠ ì
  116. bσ separateΣ froφ thσ ∙ intege≥ b∙ ß space¼ anΣ mus⌠ bσ delimiteΣ ì
  117. by a quote mark. See the S command description.
  118.  
  119. Thσ Starle⌠ mus⌠ bσ iε thσ VT-10░ mode¼ becausσ somσ of thσ ì
  120. commands use that terminal's escape sequences.
  121.  
  122. Fo≥ specifiπ detail≤ concerninτ thσ commands¼ refe≥ t∩ thσ ì
  123. following information.
  124.  
  125. Command Syntax
  126.  
  127. $
  128.  
  129. Thi≤ characte≥ tell≤ DRAW.CO═ t∩ wai⌠ fo≥ ß keypress¼ clea≥ thσ ì
  130. screen, then quit and return to the MENU command line.
  131.  
  132. ;
  133.  
  134. Ignorσ thσ line¼ becausσ thσ tex⌠ i≤ ß comment« Yo⌡ caε usσ thi≤ ì
  135. commanΣ a≤ ß reminde≥ anΣ t∩ documen⌠ you≥ picture« Thi≤ commanΣ ì
  136. shoulΣ bσ thσ firs⌠ characte≥ oε ß line« Iµ yo⌡ havσ thi≤ commanΣ ì
  137. followinτ ß strinτ oµ drawinτ commands¼ don'⌠ usσ an∙ uppercasσ ì
  138. letters¼ o≥ DRAW.CO═ wil∞ interpre⌠ thσ comment≤ a≤ commands« Fo≥ ì
  139. example,
  140.  
  141.      ; THIS IS A COMMENT AND DRAW.COM WILL IGNORE THIS LINE
  142.      M240,128       ; move to the middle of the screen
  143.      
  144. Abx,b1,b2,b3,...bx 
  145.  
  146. Dra≈ ß characte≥ a⌠ thσ curren⌠ x,∙ positioε usinτ thσ specifieΣ ì
  147. characte≥ definition« The b° equal≤ thσ numbe≥ oµ binar∙ digit≤ ì
  148. anΣ y-axi≤ line≤ oµ thσ character¼ anΣ b▒ througΦ b° equal≤ thσ ì
  149. decima∞ valuσ oµ eacΦ oµ thσ y-axi≤ lines« Thi≤ commanΣ update≤ ì
  150. thσ curren⌠ x,∙ position« Iµ thi≤ sound≤ complicated¼ don'⌠ ì
  151. worry« Here'≤ aε examplσ t∩ hel≡ you« Fo≥ example¼ 
  152.  
  153.      A9,0,0,0,0,60,6,62,70,59
  154.  
  155. wil∞ dra≈ aε "aó oε thσ screen« Iµ yo⌡ looδ closely¼ you'l∞ seσ ì
  156. the "a" is not like the Starlet's. Here's what the command means.
  157.  
  158. 000000000           A - start definition of 9 lines, 0 for line 1
  159. 000000000                                            0 for line 2
  160. 000000000           the character is 9 dots wide     0 for line 3
  161. 000000000                                            0 for line 4
  162. 000111100   1111    <--                             60 for line 5
  163. 000000110      11      |                             6 for line 6è000111110   11111      |-- Look familiar?           62 for line 7
  164. 001000110  1   11      |                            70 for line 8 
  165. 000111011   111 11  <--                             59 for line 9
  166.  
  167. Usinτ thi≤ approach¼ yo⌡ caε desigε you≥ owε font≤ o≥ characters« ì
  168. Iµ you omi⌠ ß movσ (Mx,y⌐ commanΣ beforσ defininτ anΣ printinτ ì
  169. thσ letter¼ thσ letter≤ wil∞ bσ printeΣ alonτ ß vertica∞ axis« ì
  170. Doe≤ anyonσ ou⌠ therσ wan⌠ t∩ desigε ß cursor-controlleΣ fon⌠ ì
  171. editor┐ Usinτ binar∙ number≤ drive≤ mσ crazy.
  172.  
  173. Bx,y
  174.  
  175. Dra≈ ß box¼ usinτ ß diagona∞ froφ thσ curren⌠ x,∙ positioε t∩ ì
  176. x,y« Iµ thσ curren⌠ x,∙ positioε were 0,0 the command
  177.  
  178.      B480,128
  179.  
  180. woulΣ dra≈ ß bo° thσ sizσ oµ thσ screen« Nicσ fo≥ borders« Thi≤ ì
  181. command does not update the current x,y position.
  182.  
  183. Cn
  184.  
  185. Dra≈ usinτ thσ specifieΣ color¼ wherσ ε equa∞ ▒ fo≥ oε o≥ ░ fo≥ ì
  186. off« Iµ you'rσ jus⌠ starting¼ includσ "C1ó a≤ thσ firs⌠ commanΣ ì
  187. iε you≥ file« Thi≤ commanΣ doe≤ no⌠ affec⌠ thσ curren⌠ x,∙ ì
  188. position.
  189.  
  190. Dn
  191.  
  192. Move≤ dowε ε times¼ plottinτ ß do⌠ eacΦ time« Yo⌡ caε usσ thi≤ ì
  193. command¼ alonτ witΦ I¼ G¼ H¼ J¼ L¼ R¼ anΣ U¼ t∩ dra≈ character≤ ì
  194. too¼ bu⌠ ╔ prefe≥ thσ ┴ command« Thi≤ commanΣ update≤ thσ curren⌠ ì
  195. x,∙ position.
  196.  
  197. Fn,x,y
  198.  
  199. Dra≈ ß bo° froφ thσ curren⌠ x,∙ positioε oε ß diagona∞ t∩ thσ ì
  200. specifieΣ x,∙ position¼ anΣ usσ thσ specifieΣ colo≥ t∩ fil∞ thσ ì
  201. box« Thσ color¼ n¼ caε bσ ß ░ o≥ ß 1« Thi≤ commanΣ doe≤ no⌠ ì
  202. update the current x,y position.
  203.  
  204. Gn
  205.  
  206. Movσ north east ε units¼ plottinτ ß do⌠ alonτ thσ way« Thi≤ ì
  207. command updates the current x,y position.
  208.  
  209. Hn
  210.  
  211. Move south east n units, plottinτ ß do⌠ alonτ thσ way« Thi≤ ì
  212. command updates the current x,y position.
  213.  
  214. In
  215.  
  216. Move south west n units, plottinτ ß do⌠ alonτ thσ way« Thi≤ ì
  217. command updates the current x,y position.è
  218. Jn
  219.  
  220. Move north west n units, plottinτ ß do⌠ alonτ thσ way« Thi≤ ì
  221. command updates the current x,y position.
  222.  
  223. K
  224.  
  225. Wai⌠ fo≥ ß keypres≤ beforσ proceeding« Don'⌠ usσ thi≤ commanΣ iµ ì
  226. yo⌡ havσ XOR'Σ thσ screen« Thσ keypres≤ wil∞ bσ echoeΣ t∩ thσ ì
  227. screeε a⌠ thσ curren⌠ curso≥ (no⌠ x,y⌐ position¼ creatinτ ß holσ ì
  228. iε you≥ picture« Thi≤ commanΣ i≤ helpfu∞ iµ yo⌡ arσ testinτ ì
  229. portion≤ oµ you≥ dra≈ file« DRAW.CO═ wil∞ wai⌠ fo≥ ß keypres≤ a⌠ ì
  230. thσ enΣ oµ filσ a≤ ß default.
  231.  
  232. Ln
  233.  
  234. Movσ lef⌠ ε units¼ plottinτ ß do⌠ alonτ thσ way« Thi≤ commanΣ ì
  235. updates the current x,y position.
  236.  
  237. Mx,y
  238.  
  239. Movσ t∩ specifieΣ do⌠ position« Thi≤ commanΣ update≤ thσ curren⌠ ì
  240. x,∙ position¼ bu⌠ doe≤ no⌠ dra≈ ß linσ froφ thσ previou≤ x,∙ ì
  241. positioε o≥ plo⌠ ß do⌠ a⌠ thσ specifieΣ position« Usσ thi≤ ì
  242. commanΣ t∩ movσ arounΣ thσ screeε anΣ positioε fo≥ ß draw.
  243.  
  244. Nx,y
  245.  
  246. Dra≈ ß linσ froφ thσ curren⌠ x,∙ positioε t∩ thσ specifieΣ x,∙ ì
  247. position. This command does not update the current x,y position.
  248.  
  249. Pn
  250.  
  251. Dum≡ thσ screeε t∩ you≥ printer« Iµ ε equal≤ 1¼ thσ printe≥ i≤ ß ì
  252. Tand∙ printer« Iµ ε equal≤ 2¼ thσ printe≥ i≤ aε IB═ graphiπ ì
  253. printer.
  254.  
  255. Rn
  256.  
  257. Movσ righ⌠ ε units¼ plottinτ ß do⌠ alonτ thσ way« Thi≤ commanΣ ì
  258. update the current x,y position.
  259.  
  260. Sx,y str"
  261.  
  262. Movσ t∩ specifieΣ x,∙ positioε anΣ prin⌠ thσ string« Thi≤ commanΣ ì
  263. calculate≤ thσ curso≥ positioε b∙ dividinτ ° b∙ ╢ anΣ ∙ b∙ 8« Fo≥ ì
  264. example,
  265.  
  266.      S240,64 At center"
  267.  
  268. wil∞ movσ thσ curso≥ t∩ characte≥ 40¼ (24░ divideΣ b∙ ╢ equal≤ ì
  269. 40)¼ anΣ linσ ╕ (6┤ divideΣ b∙ ╕ equal≤ 8)« Thi≤ commanΣ i≤ no⌠ ì
  270. a≤ flexiblσ a≤ thσ ┴ command¼ bu⌠ i≤ faste≥ becausσ i⌠ use≤ thσ ì
  271. Starlet'≤ VT-10░ curso≥ positioninτ sequence« Thσ curso≥ positioε ìèi≤ calculateΣ b∙ intege≥ division¼ s∩ thσ ° anΣ ∙ value≤ wil∞ bσ ì
  272. roundeΣ down« Iµ yo⌡ omi⌠ thσ enΣ quote¼ thσ screeε wil∞ bσ ì
  273. cleareΣ anΣ you'l∞ receivσ aε erro≥ message« Thi≤ commanΣ doe≤ ì
  274. no⌠ updatσ thσ curren⌠ x,∙ position¼ bu⌠ i⌠ doe≤ updatσ thσ ì
  275. current cursor position.
  276.  
  277. Tx,y,r
  278.  
  279. Dra≈ ß circlσ oµ radiu≤ ≥ arounΣ thσ specifieΣ x,∙ position« Thi≤ ì
  280. command updates the current x,y position.
  281.  
  282. Un
  283.  
  284. Movσ u≡ ε units¼ plottinτ ß do⌠ alonτ thσ way« Thi≤ commanΣ ì
  285. updates the current x,y position.
  286.  
  287. Vx,y,r
  288.  
  289. Dra≈ ß filleΣ circlσ oµ radiu≤ ≥ arounΣ thσ specifieΣ x,∙ ì
  290. position. This command updates the current x,y position.
  291.  
  292. X
  293.  
  294. Thi≤ commanΣ XOR≤ thσ screen« Thi≤ mean≤ thσ blacδ dot≤ wil∞ ì
  295. becomσ whitσ anΣ thσ whitσ dot≤ wil∞ becomσ black« Thi≤ commanΣ ì
  296. does not affect the current x,y position.
  297.  
  298. A Note About DRAW.COM
  299.  
  300. Thσ prograφ doe≤ littlσ error-checking¼ s∩ bσ careful¼ o≥ yo⌡ ma∙ ì
  301. enΣ u≡ drawinτ picture≤ ofµ thσ Starlet'≤ screen.
  302.  
  303. You≥ picturσ filσ i≤ limiteΣ t∩ abou⌠ 5,00░ characters« WordSta≥ ì
  304. wil∞ tel∞ yo⌡ exactl∙ ho≈ largσ you≥ ASCI╔ filσ i≤ iµ yo⌡ d∩ ß ì
  305. ^Q├ t∩ g∩ t∩ thσ enΣ oµ thσ filσ iε thσ non-documen⌠ mode« ì
  306. DRAW.CO═ wil∞ exi⌠ witΦ aε erro≥ messagσ iµ you≥ filσ i≤ to∩ ì
  307. large« ╔ kep⌠ thi≤ sizσ smal∞ s∩ peoplσ withou⌠ NODE'≤ grea⌠ ì
  308. Datapaπ caε ruε thσ program« (Iµ yo⌡ tr∙ t∩ ruε ß prograφ large≥ ì
  309. thaε 31╦ oε thσ Starle⌠ wheε iε thσ 32╦ CP═ mode¼ you'l∞ ge⌠ ß ì
  310. "BaΣ Filσ Loadó error.⌐ Iµ yo⌡ ruε ou⌠ oµ room¼ tr∙ deletinτ thσ ì
  311. comments« Yo⌡ caε als∩ strinτ severa∞ command≤ oε eacΦ line« ì
  312. DRAW.CO═ see≤ you≥ prograφ a≤ onσ lonτ string¼ anΣ load≤ i⌠ int∩ ì
  313. memor∙ first¼ s∩ you≥ commanΣ linσ caε a≤ widσ a≤ 256 characters. 
  314.  
  315. Don'⌠ forge⌠ t∩ placσ thσ Starle⌠ iε thσ VT-10░ modσ viß thσ ì
  316. OPTIO╬ commanΣ froφ thσ MENU« Otherwise¼ thσ screeε wil∞ no⌠ bσ ì
  317. cleareΣ wheε DRAW.CO═ starts¼ anΣ escapσ sequence≤ wil∞ bσ echoeΣ ì
  318. t∩ thσ screen« DRAW.CO═ wil∞ reaΣ you≥ file¼ dra≈ thσ picturσ ì
  319. froφ you≥ commands¼ theε wai⌠ fo≥ ß keypress¼ clea≥ thσ screeε ì
  320. and quit.
  321.  
  322. Strangσ thing≤ ma∙ happeε iµ yo⌡ tr∙ t∩ definσ character≤ large≥ ì
  323. thaε 1╡ dot≤ widσ witΦ thσ ┴ command¼ or forge⌠ t∩ inser⌠ space≤ o≥ ì
  324. delimiter≤ wherσ the∙ shoulΣ bσ fo≥ eacΦ command« I'vσ kep⌠ ì
  325. error-checkinτ t∩ ß minimuφ t∩ kee≡ thσ prograφ small« Don'⌠ bσ ìèafraid to experiment though, and have fun!
  326.  
  327. Iµ yo⌡ woulΣ likσ thσ sourcσ codσ t∩ DRAW¼ anΣ ß dozeε othe≥ ì
  328. utilitie≤ written just for the Starlet, send $10 to:
  329.      
  330.      William H. Ball
  331.      4255 Ancona Court
  332.      Indianapolis, IN 46236
  333.  
  334.  
  335.