home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / compuserve / Basic / TOKENR.EAD < prev    next >
Text File  |  2006-10-19  |  5KB  |  93 lines

  1. 0 DIM C$(254),Y(200):: GOTO 32707 :: !@P-
  2. 32707 DISPLAY AT(1,1)ERASE ALL:"TOKEN/READ by B.A. Traver" :: DISPLAY AT(3,6):"I
  3. n purpose, TOKEN/READ":"is similar to my MERGE/READ"
  4. 32708 DISPLAY AT(5,1):"program published in the":"March 1984 issue of *THE":"SMA
  5. RT PROGRAMMER*."
  6. 32709 DISPLAY AT(9,6):"This program provides":"access to the actual tokens":"use
  7. d by a BASIC program and":"assists you in understanding"
  8. 32710 DISPLAY AT(13,1):"the meaning and use of those":"tokens." :: DISPLAY AT(16
  9. ,6):"MERGE/READ provided":"*sequential access* to the"
  10. 32711 DISPLAY AT(18,1):"program in merge format on":"disk; TOKEN/READ provides":
  11. "*random access* to the pro-":"gram in actual (you guessed"
  12. 32712 DISPLAY AT(22,1):"it) RAM.": :"(Press any key to continue.)"
  13. 32713 CALL KEY(0,K,S):: IF S=0 THEN 32713
  14. 32714 DISPLAY AT(1,1)ERASE ALL:"TOKEN/READ by B.A. Traver" :: DISPLAY AT(3,6):"B
  15. efore you can use this":"program you must first save"
  16. 32715 DISPLAY AT(5,1):"it to disk using the commandSAVE DSK1.TOKEN/READ, MERGE."
  17.  :: DISPLAY AT(8,6):"To use this program,"
  18. 32716 DISPLAY AT(9,1):"follow the following steps:" :: DISPLAY AT(11,6):"(1) Loa
  19. d the program":"you want to inspect into"
  20. 32717 DISPLAY AT(13,1):"memory in the usual way,":"i.e., OLD DSK1.PROGRAM." :: D
  21. ISPLAY AT(16,6):"(2) Merge this program"
  22. 32718 DISPLAY AT(17,1):"into memory with it, by":"means of the command MERGE  DS
  23. K1.TOKEN/READ."
  24. 32719 DISPLAY AT(21,6):"(3) RUN the merged":"program." :: DISPLAY AT(24,1):"(Pre
  25. ss any key to continue.)"
  26. 32720 CALL KEY(0,K,S):: IF S=0 THEN 32720
  27. 32721 DISPLAY AT(1,1)ERASE ALL:"TOKEN/READ by B.A. Traver" :: DISPLAY AT(3,6):"A
  28. ll you have to do is":"provide the line number of"
  29. 32722 DISPLAY AT(5,1):"the program line you want toinspect, and this program   d
  30. oes the rest!"
  31. 32723 DISPLAY AT(9,6):"CAUTION: If you provide":"a non-existent line number,":"y
  32. ou will get nonsense on thescreen."
  33. 32724 DISPLAY AT(14,6):"This is in accordance" :: DISPLAY AT(15,1):"with the old
  34.  saying in the  Army Computer Corps, ""G.I."
  35. 32725 DISPLAY AT(17,1):"Gee-Oh!"" (pronounced ""G.I.":"Joe"" with a slight accen
  36. t)!" :: DISPLAY AT(20,6):"(Soon available should"
  37. 32726 DISPLAY AT(21,1):"be a program upgrade which  allows output to printer.)":
  38.  :"(Press any key to continue.)"
  39. 32727 CALL KEY(0,K,S):: IF S=0 THEN 32727 ELSE DISPLAY AT(14,7)ERASE ALL:"INITIA
  40. LIZING...."
  41. 32728 FOR I=129 TO 254 :: READ C$(I):: NEXT I
  42. 32729 DISPLAY AT(12,10)ERASE ALL:"LINE?" :: ACCEPT AT(12,16):L :: DISPLAY AT(14,
  43. 9):"SEARCHING...." :: CALL FIND(L,J):: CALL PEEK(J,A1)
  44. 32730 FOR I=1 TO A1 :: CALL PEEK(J+I,A):: Y(I+2)=A :: NEXT I :: CALL CLEAR :: DI
  45. SPLAY AT(1,4):"ASCII CODE FOR LINE"
  46. 32731 IF L=65535 THEN 32748
  47. 32732 L1=INT(L/256):: L2=L-(L1*256)
  48. 32733 DISPLAY AT(1,24):STR$(L):: C=1 :: J=2
  49. 32734 S1=LEN(STR$(L1)):: DISPLAY AT(3,4-S1):STR$(L1)&" "&STR$(L1)&"*256" :: S2=L
  50. EN(STR$(L2)):: DISPLAY AT(4,4-S2):STR$(L2)&"  +"&STR$(L2)
  51. 32735 FOR I=3 TO A1+2
  52. 32736 R=I+2+2*(C-1):: IF I>40 THEN R=R-16 :: IF I>80 THEN R=R-16 :: IF I>120 THE
  53. N R=R-16
  54. 32737 J=J+1 :: DISPLAY AT(R,C+3-LEN(STR$(Y(I)))):STR$(Y(I))
  55. 32738 DISPLAY AT(R,C+3-LEN(STR$(Y(I)))):STR$(Y(I))
  56. 32739 IF Y(I-2)=201 THEN IF Y(I-1)=0 THEN DISPLAY AT(R,C+4):STR$(Y(I)):: GOTO 32
  57. 744 ELSE DISPLAY AT(R,C+4):"+"&STR$(Y(I)):: GOTO 32744
  58. 32740 IF Y(I-1)=201 THEN IF Y(I)=0 THEN 32744 ELSE DISPLAY AT(R,C+4):STR$(256*Y(
  59. I)):: GOTO 32744
  60. 32741 IF Y(I)>254 THEN DISPLAY AT(R,C+4):"*"
  61. 32742 IF Y(I)>128 AND Y(I)<255 THEN DISPLAY AT(R,C+4):C$(Y(I))
  62. 32743 IF Y(I)>31 AND Y(I)<128 THEN DISPLAY AT(R,C+4):CHR$(Y(I))
  63. 32744 IF J<20 THEN 32747
  64. 32745 C=C+14 :: J=0 :: IF C>16 THEN C=1
  65. 32746 IF I=40 OR I=80 OR I=120 THEN 32750
  66. 32747 NEXT I :: IF I=LEN(X$)+1 THEN 32750
  67. 32748 GOSUB 32752
  68. 32749 GOTO 32729
  69. 32750 GOSUB 32752
  70. 32751 IF I<>LEN(X$)+1 THEN 32747 ELSE 32731
  71. 32752 DISPLAY AT(24,3)BEEP:"PRESS ANY KEY TO GO ON"
  72. 32753 CALL KEY(0,K,S):: IF S=0 THEN 32753
  73. 32754 FOR CL=3 TO 24 :: DISPLAY AT(CL,1):"" :: NEXT CL :: RETURN
  74. 32755 !@P+
  75. 32756 A1,A,C,CL,I,J,K,L,L1,L2,R,S,S1,S2,N$,X$ :: CALL CLEAR :: CALL FIND :: CALL
  76.  KEY :: CALL PEEK
  77. 32757 DATA ELSE,::,!,IF,GO,GOTO,GOSUB,RETURN,DEF,DIM,END,FOR,LET,BREAK,UNBREAK,T
  78. RACE,UNTRACE,INPUT,DATA,RESTORE,RANDOMIZE
  79. 32758 DATA NEXT,READ,STOP,DELETE,REM,ON,PRINT,CALL,OPTION,OPEN,CLOSE,SUB,DISPLAY
  80. ,IMAGE,ACCEPT,ERROR,WARNING,SUBEXIT,SUBEND,RUN
  81. 32759 DATA LINPUT,,,,,,THEN,TO,STEP,",",;,:,),(,&,,OR,AND,XOR,NOT,=,<,>,+,-,*,/,
  82. ^,,""" """,,,EOF,ABS,ATN,COS,EXP,INT
  83. 32760 DATA LOG,SGN,SIN,SQR,TAN,LEN,CHR$,RND,SEG$,POS,VAL,STR$,ASC,PI,REC,MAX,MIN
  84. ,RPT$,,,,,,,NUMERIC,DIGIT,UALPHA,SIZE,ALL
  85. 32761 DATA USING,BEEP,ERASE,AT,BASE,,VARIABLE,RELATIVE,INTERNAL,SEQUENTIAL,OUTPU
  86. T,UPDATE,APPEND,FIXED,PERMANENT,TAB,#,VALIDATE
  87. 32762 SUB FIND(L,S)! Michael Riccio assisted with subprogram.
  88. 32763 CALL PEEK(-31952,A,B,C,D):: X=A*256+B-65536 :: Y=C*256+D-65536
  89. 32764 L1=INT(L/256):: L2=L-256*(INT(L/256)):: S=0
  90. 32765 IF X>Y THEN SUBEXIT
  91. 32766 CALL PEEK(X,A,B,C,D):: IF A<>L1 OR B<>L2 THEN X=X+4 :: GOTO 32765
  92. 32767 S=C*256+D-65537 :: SUBEND
  93.