home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 5 / ctrom5b.zip / ctrom5b / PROGRAM / DIVERSEN / TIPI2A / HELPCONT.TPI < prev    next >
Text File  |  1994-09-13  |  5KB  |  303 lines

  1.  
  2. define menu
  3. # ( -- choice)
  4. # ( valid$ -- )
  5. # Returns the chosen key or 0 if the user escapes from this menu
  6.  0 cursor
  7.  ucase$
  8.  27 chr$ swap$ +$
  9.  begin
  10.   inkey$ ucase$ # valid$ key$
  11.   len instr *
  12.   dup
  13.   if dup drop$ endif drop$
  14.  until
  15.  1 -
  16.  1 cursor
  17. enddef
  18.  
  19. define wait
  20.  begin key until cls
  21. enddef
  22.  
  23. begin cls
  24.  |
  25.  |   ╔══════════════════════════════════════════╗
  26.  |   ║ C O N T R O L    I N S T R U C T I O N S ║
  27.  |   ╠══════════════╦══════════════╦════════════╣
  28.  |   ║              ║              ║            ║
  29.  |   ║ [A] BEGIN    ║ [H] ENDCASE  ║ [O] LEAVE  ║
  30.  |   ║              ║              ║            ║
  31.  |   ║ [B] CASE     ║ [I] ENDCASE$ ║ [P] LOOP   ║
  32.  |   ║              ║              ║            ║
  33.  |   ║ [C] CASE$    ║ [J] ENDIF    ║ [Q] OF     ║
  34.  |   ║              ║              ║            ║
  35.  |   ║ [D] DEFAULT  ║ [K] ENDOF    ║ [R] OF$    ║
  36.  |   ║              ║              ║            ║
  37.  |   ║ [E] DEFAULT$ ║ [L] ENDOF$   ║ [S] UNTIL  ║
  38.  |   ║              ║              ║            ║
  39.  |   ║ [F] DO       ║ [M] IF       ║ [T] WEND   ║
  40.  |   ║              ║              ║            ║
  41.  |   ║ [G] ELSE     ║ [N] INDEX    ║ [U] WHILE  ║
  42.  |   ╚══════════════╩══════════════╩════════════╝
  43.   "abcdefghijklmnopqrstu" menu dup
  44.    cls
  45.    case 0 of endof
  46.         1 of
  47. |
  48. |   BEGIN
  49. |
  50. |   Data Stack:   --
  51. |   String Stack: --
  52. |
  53. |   Starts a BEGIN UNTIL loop. When TIPI encounters
  54. |   an UNTIL, it will branch back to the BEGIN if
  55. |   the value on the data stack is FALSE.
  56. |
  57.     wait
  58.    endof
  59.    2 of
  60. |
  61. |   CASE
  62. |
  63. |   Data Stack:   --
  64. |   String Stack: --
  65. |
  66. |   Begins a CASE structure.
  67. |
  68.     wait
  69.    endof
  70.    3 of
  71. |
  72. |   CASE$
  73. |
  74. |   Data Stack:   --
  75. |   String Stack: --
  76. |
  77. |   Begins a CASE$ structure.
  78. |
  79.     wait
  80.    endof
  81.    4 of
  82. |
  83. |   DEFAULT
  84. |
  85. |   Data Stack:    n --
  86. |   String Stack:    --
  87. |
  88. |   Used within a CASE structure to cover any cases
  89. |   not dealt with by previous OF clauses.
  90. |
  91.     wait
  92.    endof
  93.    5 of
  94. |
  95. |   DEFAULT$
  96. |
  97. |   Data Stack:        --
  98. |   String Stack:   a$ --
  99. |
  100. |   Used within a CASE$ structure to cover any
  101. |   cases not dealt with by previous OF$ clauses.
  102. |
  103.     wait
  104.    endof
  105.    6 of
  106. |
  107. |   DO
  108. |
  109. |   Data Stack:     N --
  110. |   String Stack:     --
  111. |
  112. |   Begins a DO loop. Processing continues until a
  113. |   LOOP instruction is encountered. The loop will
  114. |   be executed N times.
  115. |
  116.     wait
  117.    endof
  118.    7 of
  119. |
  120. |   ELSE
  121. |
  122. |   Data Stack:     --
  123. |   String Stack:   --
  124. |
  125. |   Used within IF ELSE ENDIF constructs.
  126. |
  127.     wait
  128.    endof
  129.    8 of
  130. |
  131. |   ENDCASE
  132. |
  133. |   Data Stack:     --
  134. |   String Stack:   --
  135. |
  136. |   Ends a CASE structure.
  137. |
  138.     wait
  139.    endof
  140.    9 of
  141. |
  142. |   ENDCASE$
  143. |
  144. |   Data Stack:     --
  145. |   String Stack:   --
  146. |
  147. |   Ends a CASE$ structure.
  148. |
  149.     wait
  150.    endof
  151.    10 of
  152. |
  153. |   ENDIF
  154. |
  155. |   Data Stack:     --
  156. |   String Stack:   --
  157. |
  158. |   Ends an IF ELSE ENDIF construct.
  159. |
  160.     wait
  161.    endof
  162.    11 of
  163. |
  164. |   ENDOF
  165. |
  166. |   Data Stack:     --
  167. |   String Stack:   --
  168. |
  169. |   Ends an OF clause in a CASE structure.
  170. |
  171.     wait
  172.    endof
  173.    12 of
  174. |
  175. |   ENDOF$
  176. |
  177. |   Data Stack:     --
  178. |   String Stack:   --
  179. |
  180. |   Ends an OF$ clause in a CASE$ structure.
  181. |
  182.     wait
  183.    endof
  184.    13 of
  185. |
  186. |   IF
  187. |
  188. |   Data Stack:     n --
  189. |   String Stack:     --
  190. |
  191. |   If n is non-zero, instructions up to the next ELSE
  192. |   or ENDIF will be executed. If n is zero,
  193. |   instructions up to the next ELSE or ENDIF will
  194. |   be skipped.
  195. |
  196.     wait
  197.    endof
  198.    14 of
  199. |
  200. |   INDEX
  201. |
  202. |   Data Stack:      -- index
  203. |   String Stack:    --
  204. |
  205. |   Copies the current DO LOOP index value to the
  206. |   data stack.
  207. |
  208.     wait
  209.    endof
  210.    15 of
  211. |
  212. |   LEAVE
  213. |
  214. |   Data Stack:      --
  215. |   String Stack:    --
  216. |
  217. |   Sets the current INDEX value to one, thus
  218. |   ensuring the current DO LOOP will be ended on
  219. |   this itteration.
  220. |
  221.     wait
  222.    endof
  223.    16 of
  224. |
  225. |   LOOP
  226. |
  227. |   Data Stack:      --
  228. |   String Stack:    --
  229. |
  230. |   Closes a DO LOOP construct. Decrements INDEX and
  231. |   loops back to the DO if INDEX > 0, otherwise
  232. |   exits the loop.
  233. |
  234.     wait
  235.    endof
  236.    17 of
  237. |
  238. |   OF
  239. |
  240. |   Data Stack:      m n --
  241. |   String Stack:        --
  242. |
  243. |   Must be used within a CASE structure. If m is
  244. |   equal to n, the instructions following the OF
  245. |   will be executed until an ENDOF is encountered.
  246. |
  247.     wait
  248.    endof
  249.    18 of
  250. |
  251. |   OF$
  252. |
  253. |   Data Stack:            --
  254. |   String Stack:    a$ b$ --
  255. |
  256. |   Must be used within a CASE$ structure. If a$ is
  257. |   equal to b$, the instructions following the OF$
  258. |   will be executed until an ENDOF$ is encountered.
  259. |
  260.     wait
  261.    endof
  262.    19 of
  263. |
  264. |   UNTIL
  265. |
  266. |   Data Stack:          N --
  267. |   String Stack:          --
  268. |
  269. |   Branches back to BEGIN if N is FALSE, otherwise
  270. |   continues.
  271. |
  272.     wait
  273.    endof
  274.    20 of
  275. |
  276. |   WEND
  277. |
  278. |   Data Stack:            --
  279. |   String Stack:          --
  280. |
  281. |   WEND branches back to a previous WHILE.
  282. |
  283.     wait
  284.    endof
  285.    21 of
  286. |
  287. |   WHILE
  288. |
  289. |   Data Stack:          n --
  290. |   String Stack:          --
  291. |
  292. |   If n is not equal to zero, instructions between
  293. |   the WHILE and the WEND will be executed. WEND
  294. |   will branch back to the WHILE. If n is equal to
  295. |   zero, execution branches to then next instruction
  296. |   following the next WEND.
  297. |
  298.     wait
  299.    endof
  300.    endcase
  301.    not
  302. until
  303.