home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib27a.dsk / MARCH.1986 / LIST.CREATE.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  113 lines

  1. 10  REM  *******************************
  2. 20  REM  *        LIST.CREATE          *
  3. 30  REM  *       BY J.R. VOKEY         *
  4. 40  REM  *       COPYRIGHT 1986        *
  5. 50  REM  *     BY MICROSPARC, INC.     *
  6. 60  REM  *     CONCORD, MA  01742      *
  7. 70  REM  *******************************
  8. 80  REM  =================================
  9. 90  REM             Initialize
  10. 100  REM =================================
  11. 110  TEXT : HOME 
  12. 120  PRINT  CHR$(4)"BRUN PROCOMREC"
  13. 130 HMEM =  PEEK(116) *256: HIMEM: HMEM
  14. 140 USER = HMEM +4 *256 +215
  15. 150 BUFFER = HMEM +5 *256:STRTBUF = BUFFER: REM  USER command buffer
  16. 160  PRINT : PRINT "LOADING USER-LIST";
  17. 170  REM =================================
  18. 180  REM    Word Substitution Macros
  19. 190  REM =================================
  20. 200  READ CMD$: REM  Get word macro name
  21. 210  DATA  ERROR
  22. 220  DATA  "PRINT PEEK(218)+PEEK(219)*256": REM  LINE NUMBER OF LAST ERROR
  23. 230  REM 
  24. 240  REM        (DATA statements for other word macros go here)
  25. 250  REM 
  26. 260  DATA  //: REM  End of word macros
  27. 270  FOR WHILE = 0 TO 1: REM  While NOT end-of-words DO
  28. 280  REM        Add CTRL-H (BS) to delete word
  29. 290  FOR I = 1 TO  LEN(CMD$):CMD$ = CMD$ + CHR$(8): NEXT I
  30. 300  REM         Get macro code
  31. 310  READ MACRO$
  32. 320  REM         Construct macro
  33. 330 MACRO$ = CMD$ +MACRO$
  34. 340  REM         Stuff into buffer
  35. 350  GOSUB 1020
  36. 360  REM         Get next word-macro
  37. 370  READ CMD$:WHILE = (CMD$ = "//")
  38. 380  NEXT WHILE
  39. 390  REM  =================================
  40. 400  REM        Key Substitution Macros
  41. 410  REM  =================================
  42. 420  READ MACRO$: REM  Get key macro
  43. 430  DATA  *CALL-151,<LOAD,>SAVE,=CATALOG,@HOME,":POKE33,33",+TEXT
  44. 440  REM 
  45. 450  REM         (DATA statements of other key macros go here)
  46. 460  REM 
  47. 470  DATA  //: REM  End of key macros
  48. 480  FOR WHILE = 0 TO 1: REM  While NOT end-of-keys DO
  49. 490  REM         Assign key macro to CMD$ with <BS>
  50. 500 CMD$ =  LEFT$(MACRO$,1) + CHR$(8)
  51. 510  REM         Construct macro
  52. 520 MACRO$ = CMD$ + MID$ (MACRO$,2)
  53. 530  REM         Stuff into buffer
  54. 540  GOSUB 1020
  55. 550  REM         Get next key macro
  56. 560  READ MACRO$:WHILE = (MACRO$ = "//")
  57. 570  NEXT WHILE
  58. 580  REM  =================================
  59. 590  REM        Completion Commands
  60. 600  REM  =================================
  61. 610  READ MACRO$: REM  Get completion command
  62. 620  DATA  BLOAD,BSAVE,BRUN,CREATE,OPEN,CLOSE,WRITE,CATALOG,POSITION,APPEND,CHAIN,FLUSH,PREFIX
  63. 630  DATA  "D$=CHR$(4)
  64. 640  REM 
  65. 650  REM  (DATA statements for other completion commands go here)
  66. 660  REM 
  67. 670  DATA  //: REM  End of Completion commands
  68. 680  FOR WHILE = 0 TO 1: REM  While NOT end-of-Completion DO
  69. 690  REM         Stuff command into buffer
  70. 700  GOSUB 1020
  71. 710  REM         Get next Completion command
  72. 720  READ MACRO$:WHILE = (MACRO$ = "//")
  73. 730  NEXT WHILE
  74. 740  REM  =================================
  75. 750  REM               Messages
  76. 760  REM  =================================
  77. 770  READ MACRO$: REM  Get message
  78. 780  DATA  "?HELP:!PRODOS COMMAND RECOGNITION!BY J.R. VOKEY!COPYRIGHT 1986 MICROSPARC, INC.!!<CTRL-A> - RECOGNITION ON COMMAND!<CTRL-Z> - AUTOMATIC RECOGNITION!USE <CTRL-A> TO CANCEL AUTO-MODE"
  79. 790  REM 
  80. 800  REM         (DATA statements of other messages go here)
  81. 810  REM 
  82. 820  DATA  //: REM  End of messages
  83. 830  FOR WHILE = 0 TO 1: REM  While NOT end-of-messages DO
  84. 840  REM         Append <CANCEL> to MACRO$
  85. 850 MACRO$ = MACRO$ + CHR$(24)
  86. 860  REM         Stuff message into buffer
  87. 870  GOSUB 1020
  88. 880  REM         Get next message
  89. 890  READ MACRO$:WHILE = (MACRO$ = "//")
  90. 900  NEXT WHILE
  91. 910  REM  =================================
  92. 920  REM          Save USER list
  93. 930  REM  =================================
  94. 940  REM         Set USER vector
  95. 950 STRTBUF = STRTBUF -1: POKE USER +1,STRTBUF/256: POKE USER,STRTBUF - INT(STRTBUF/256) *256
  96. 960  REM         SAVE USER-list
  97. 970  PRINT  CHR$(4)"BSAVE COMREC.USER,A"STRTBUF +1",L"BUFFER -STRTBUF
  98. 980  REM         Inform USER
  99. 990  PRINT : PRINT : PRINT "PROCOMREC AND USER-LIST ARE LOADED"
  100. 1000  PRINT : PRINT "TYPE: ?HELP <CTRL-A> FOR HELP"
  101. 1010  END 
  102. 1020  REM  =================================
  103. 1030  REM          Buffer Stuffer
  104. 1040  REM  =================================
  105. 1050  FOR I = 1 TO  LEN(MACRO$)
  106. 1060  REM         Convert ! --> <CR>
  107. 1070 CHAR$ =  MID$ (MACRO$,I,1): IF CHAR$ = "!"  THEN CHAR$ =  CHR$(13)
  108. 1080  POKE BUFFER, ASC(CHAR$) +128 *(I =  LEN(MACRO$))
  109. 1090 BUFFER = BUFFER +1
  110. 1100  IF BUFFER >(HMEM +9 *256 -1)  THEN  PRINT  CHR$(7)"BUFFER OVERFLOW - PROGRAM TERMINATED": POP : END 
  111. 1110  NEXT I: PRINT ".";
  112. 1120  POKE BUFFER,0: REM  Mark EOL
  113. 1130  RETURN