home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / telecomm / storm100 / recorder.bas < prev    next >
BASIC Source File  |  1993-11-03  |  2KB  |  48 lines

  1. 'This program records a series of user interactions and writes out.
  2. 'a basic program to play them back.
  3. 'It starts of by using the file selector to prompt you for a filename
  4. 'to record the macro under.
  5. 'l is the count of characters you have typed in.
  6. 'Type Control-U to finish
  7. 'Ignores the current prompt, starts with the line you type in.
  8. '
  9. '
  10. TERM OFF :first = 1
  11. l = 0:dq$ = CHR$(34):t = TIMER :REM Initialize variables.
  12. bas$ = SET$("STORM","Paths","Basic")
  13. IF LEN(bas$) = 0 THEN bas$ = "*.BAS"
  14. f$ = FSEL$(bas$,""):IF f$ = "" THEN END :REM Get filename from user.
  15. OPEN "w",#1,f$:PRINT #1,"TERM OFF"
  16. FAST ON :'Fast doesn't interfere with keyinput
  17. '
  18. Top:b$ = "":REM Holds current line user is typing
  19. '
  20. Loop:KEYINPUT a$:IF a$ = CHR$(13) THEN GOSUB Response:GOTO Top
  21. IF l = 0 AND first = 0 THEN pr$ = LTRIM$( PROMPT$(16))
  22. IF a$ >= CHR$(32) THEN l = l + 1:b$ = b$ + a$:GOTO Loop
  23. IF a$ = CHR$(8) THEN
  24.     IF l > 0 THEN b$ = LEFT$(b$, LEN(b$) - 1):l = l - 1
  25.     GOTO Loop
  26. ENDIF
  27. IF a$ = CHR$(21) THEN Finish:'Control-U ends
  28. IF a$ = CHR$(13) THEN GOSUB Response
  29. GOTO Loop
  30. '
  31. Finish:
  32. pr$ = PROMPT$(16):GOSUB DoWait:
  33. CLOSE #1
  34. FAST OFF
  35. END
  36. '
  37. Response:IF first = 1 THEN first = 0:GOTO Skip:REM First line skips prompt
  38. GOSUB DoWait
  39. Skip:IF b$ = "" THEN PRINT #1,"SEND" ELSE PRINT #1,"SEND ";dq$;b$;dq$
  40. l = 0:pr$ = "":t = TIMER :'record time of last response
  41. RETURN
  42. '
  43. DoWait:'Process WAIT statement.
  44. IF pr$ = "" THEN RETURN :'Avoid waiting for empty string
  45. PRINT #1,"WAIT ";( TIMER - t) * 2;",";dq$;pr$;dq$
  46. RETURN
  47.  
  48.