MSGID: <10meres$3gco0$1@dont-email.me> f8ba16e0   
   REPLY: <2defa22e.331.fidonet_cbm.1.138.397@vk3heg.net> 6ea2d250   
   PID: PyGate 1.5.11   
   TID: PyGate/Linux 1.5.11   
   CHRS: ASCII 1   
   TZUTC: 1100   
   REPLYADDR 0xcafe@directbox.com   
   REPLYTO 3:633/10 UUCP   
   Grant Weasner schrieb:   
   > If I had just put:   
   > 10 list   
   > 20 goto 10   
   > it wouldn't work because list executes something like a run-stop first.   
      
   This works silmilarily as your program for me: The programm lists itself and   
    then stops. I wonder why.   
   I tested this with vice and yapesdl.   
      
   I'll try to comment your program:   
      
   Lines 5 to 9 copies the BASIC keywords to k$() array.   
   5 print "initializing...": dim k$(255): rp=41111   
   6 for t=124 to 255: w$="": rem --- fill the cache ---   
   7 b=peek(rp): w$=w$+chr$(b and 127): rp=rp+1   
   8 if b<128 goto 7   
   9 k$(t)=w$+" ": if rp < 41581 then next t   
      
   The BASIC program starts at 2049, this is the addres of the first line;   
   clear the screen   
   10 ad = 2049: print chr$(147)   
      
   The next BASIC line number is at this address   
   20 nx = peek(ad) + 256 * peek(ad+1)   
      
   This is the end of the program   
   30 if nx = 0 then end   
      
   Get the BASIC program line number and print it   
   40 ln = peek(ad+2) + 256 * peek(ad+3)   
   50 print ln; " ";   
      
   Loop from line's start of text to end of line   
   60 for i = ad + 4 to nx - 2   
      
   Get a byte. If its value less than 128 then it is a character, print it   
   70 c = peek(i): if c < 128 then print chr$(c);: goto 100   
      
   It is a BASIC token, lookup in keywords table and print it.   
   80 print k$(c);   
      
   Loop end; print an empty line; next BASIC line address; restart loop   
   100 next i: print: ad = nx: goto 20   
      
   Best regards,   
   Tilmann.   
   --    
   Wo sich noch Bit und Byte gute Nacht sagen.   
      
   --- PyGate Linux v1.5.11   
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)   
   SEEN-BY: 18/200 105/81 106/201 128/187 129/14 305 153/7715 154/110   
   SEEN-BY: 218/700 226/30 227/114 229/110 112 134 206 307 317 400 426   
   SEEN-BY: 229/428 452 470 664 700 705 266/512 280/464 291/111 292/854   
   SEEN-BY: 320/219 322/757 342/200 396/45 460/58 633/10 267 280 384   
   SEEN-BY: 633/418 420 422 2744 712/848 770/1 902/26 5020/400 5075/35   
   PATH: 633/10 280 229/426   
      
|