Jump to content

jedimatt42

Members
  • Content Count

    3,419
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by jedimatt42

  1. You could just encode the R,C together and read a second value for the character code V. If R=24, C=32 & V = 65, you could use 33 as the shifting factor ( the largest value of either R or C + 1 ), and get (24*33)+32=824.. and then a second value of V... So DATA 824,65 which you would read back as: READ N,V::R=INT(N/33)::C=N-(R*33), then CALL HCHAR(R,C,V) you could also double pack if the numbers all fit.... If R=24, C=32 & V=65, pack R & C as above, to get 824, then use another shifting factor that is again your largest value of V + 1 (I'll use 101 since I thought I saw 100 in the code somewhere) So, R&C encoded is 824, shifted ( 824 * 101 ) = 83224, then add V. where if V is 65, the 3 values encoded together are: DATA 83289 That's one less character in the code ( the comma for the two is gone ) I'm not sure if that extra effort will make a difference or not depends on how much you save, you'll have to trade it for extra decoding: READ N::L=INT(N/101)::V=N-(L*101)::R=INT(L/33)::C=L-(R*33) For data values like this, With packing results like DATA 83289, you can get a DATA statement with 19*3=57 items in it. Or 19 sets of CALL HCHAR triplets per line. With packing results like DATA 824,65 you can get a DATA statement with 14*(2+1)=42 items in it. Or 14 sets of CALL HCHAR triplets per line. I've typed in lines like DATA 84000,84000,84000,84000.... and get 19 values in before line to long. and DATA 840,65,840,65... to compare the other. I'm really supposed to be making a presentation for work... Why is reasoning this out so much fun? One more thought. You can make things even smaller if you examine the data set instead of generalizing. like for R & C we know they are rows and column coordinates, so you can use 33 as a factor, since the max column value is 32. But... you can kick it into crazy if you encode a position in a range with a base offset... For instance, if your actual max( R, C ) is 25, and your actual min( R, C ) is 12, you could consider all the coordinates in a range from 1 to 13. so you could use a factor of 14, but have to add the base (in my example the 12) in during decoding. I'm probably off by one somewhere here, I'll have to try it out... Anyway, if you make your numbers smaller, you can get more on a DATA line too. This might work particularly well for the ascii codes, so a much smaller factor can be used when shifting the encoded R&C value over.
  2. So does anyone know what the actual line length limits are in XB? There is the input buffer limit, that can then be exceeded by editing a line. Then, it seems some lines hit there limit shorter than others, like it is encoding tokens into a byte code. With 4 character numbers in a data statement, the line length limit seems to be about 115 characters. And with the little numbers it seems to be about 117 characters. This is commuter train math based on inaccurate inputs. So this seems to be mostly bound to line length. But it is raising my curiosity because the data lines are so much shorter than the code lines. Has anyone dug out the details before? [email protected]
  3. If you are talking about Iwantgames:) 's Texas, then I agree, there are about 7 vertical streaks of '!' characters that could be drawn first, and then filled in around with all the detailed graphics. If you Alt-4 break the program, it becomes apparent when XB still shows the layout, but reverts the character set for programming. Also, 2 of those chunks could be filled in as 1 by letting the '&' and the '.' write over it later. That very well may be more efficient than grouping by repeating character codes, because after you do those '!', the only character that repeats is the '#' [email protected]
  4. I recently learned that you can leave trailing '0's off in the CALL CHAR pattern definitions. XB will automatically fill the definition out to the right with zeros for you. So, "00007CFEFEFEFEFE003C7EFFFF7E3C00FEFEFEFEFEFEFEFEFEFEFE7C00000000" from line 4, can be "00007CFEFEFEFEFE003C7EFFFF7E3C00FEFEFEFEFEFEFEFEFEFEFE7C" Also, did you see what Tursi did to squish my data? I think you can get 44 bytes in a single DATA line that way. Instead of DATA 5,14 for your R,C values, you would pre-compute (R*256)+C, and put that value in the DATA statement. Then after performing something like READ N to get the squished bytes, you deconstruct them again. R=INT(N/256)::C=N-R. I imagine this gets messy if any values of R are greater than 127, but both our cases don't have that issue. Right now, with the small values, the DATA statement is holding about 34 bytes per line. Now, I recognize you need triplets, not tuples. But do you? If you drew all of your 33s then all of your 34s, and so on, you could possibly pull them out of the data and into a loop.. I preceeded my coordinates with a tuple of count,asciicode and then the list of R,C locations for that asciicode. btw: I like the theme of yours It looks good.
  5. Title: XmasLights Story: Too many bytes for Christmas, until the Harmlesslion crunches them. Programmers: Jedimatt42 & Tursi 1 CALL CLEAR::CALL SCREEN(15)::CALL COLOR(2,7,16,10,11,15,11,13,15,12,7,15)::G$="001C3E7F7F7F3E1C"::CALL CHAR(104,G$,112,G$,120,G$) 2 K$=RPT$("03071CF0",3)::CALL CHAR(42,"2854AA54AA5428",43,"2050A85020",44,"205020",45,K$)::FOR I=1 TO 8::C=INT(RND*226)+1 3 CALL SPRITE(#I,42,16,3,C,9,3,#I+8,43,16,2,C+13,7,2,#I+16,44,16,1,C+27,5,1)::NEXT I::CALL VCHAR(6,3,45,7) 4 CALL VCHAR(6,7,45,7)::READ M::FOR I=1 TO M::READ N::L=INT(N/256)::C=N-L*256::FOR J=1 TO L::READ N::Y=INT(N/256):=N-Y*256::CALL VCHAR(Y,X,C)::NEXT J::NEXT I 5 FOR I=1 TO 8 STEP 2::CALL CHAR(45,SEG$(K$,I,16))::CALL COLOR(11,4+I,15,12,14-I,15)::NEXT I::GOTO 5 6 DATA 10,616,1283,1287,880,1796,2053,1798,2424,2569,2570,2571,2572,2315,2314,2825,3082,3083,1904,2318,2574,2830,3086 7 DATA 2575,2320,2577,1912,2323,2579,2835,3091,2580,2325,2582,3184,2328,2584,2840,3097,3098,2843,2587,2331,3099,3355 8 DATA 3610,3609,3440,3592,3849,4105,4362,4619,4875,5132,3596,3851,4107,4617,4873,5128,3192,4366,4622,4878,5134,4367 9 DATA 4624,4880,5136,4369,4626,4882,5138,2672,4375,4631,4887,5143,4630,4373,4628,4884,5141,4886,2680,4380,4379,4378 10 DATA 4633,4890,4891,5148,5403,5402,5401
  6. Oh, I like that! Reminds me when I was a kid and my best friend and I would always try and stay on the sled together. Nice!
  7. Oh, that is brilliant! I love it! And thank you so much! This is a great technique. I'll get it over to the entries thread then [email protected]
  8. Well, I've never tried to code small before so this was a fun challenge... Regrettably my concept fails to fit. But I want to share it anyway... I could and may change the message to fit, but that isn't what I was going for. This isn't an actual entry, since it doesn't meet the criteria. But I enjoyed doing this. First time I've used DATA and READ. Title: XmasLights Story: Too many bytes for Christmas Programmer: Matthew Splett 1 CALL CLEAR::CALL SCREEN(15)::CALL COLOR(2,7,16,10,11,15,11,13,15,12,7,15)::G$="001C3E7F7F7F3E1C"::CALL CHAR(104,G$,112,G$,120,G$) 2 K$=RPT$("03071CF0",3)::CALL CHAR(42,"2854AA54AA5428",43,"2050A85020",44,"205020",45,K$)::FOR I=1 TO 8::C=INT(RND*226)+1 3 CALL SPRITE(#I,42,16,3,C,9,3,#I+8,43,16,2,C+13,7,2,#I+16,44,16,1,C+27,5,1)::NEXT I::CALL VCHAR(6,3,45,7) 4 CALL VCHAR(6,7,45,7)::READ M::FOR I=1 TO M::READ L,C::FOR J=1 TO L::READ Y,X::CALL VCHAR(Y,X,C)::NEXT J::NEXT I 5 FOR I=1 TO 8 STEP 2::CALL CHAR(45,SEG$(K$,I,16))::CALL COLOR(11,4+I,15,12,14-I,15)::NEXT I::GOTO 5 6 DATA 10,2,104,5,3,5,7,3,112,7,4,8,5,7,6,9,120,10,9,10,10,10,11,10,12,9,11,9,10,11,9,12,10,12 7 DATA 11,7,112,9,14,10,14,11,14,12,14,10,15,9,16,10,17,7,120,9,19,10,19,11,19,12,19,10,20,9,21,10 8 DATA 22,12,112,9,24,10,24,11,24,12,25,12,26,11,27,10,27,9,27,12,27,13,27,14,26,14,25,13,112,14,8 9 DATA 15,9,16,9,17,10,18,11,19,11,20,12,14,12,15,11,16,11,18,9,19,9,20,8,12,120,17,14,18,14,19,14 10 DATA 20,14,17,15,18,16,19,16,20,16,17,17,18,18,19,18,20,18,10,112,17,23,18,23,19,23,20,23,18,22 11 DATA 17,21,18,20,19,20,20,21,19,22,10,120,17,28,17,27,17,26,18,25,19,26,19,27,20,28,21,27,21,26 12 DATA 21,25 [email protected]
  9. As I have demonstrated, I'm not the most forum savvy individual. But what I've seen that works best for pinned topics are indexes, and lists, such as the developer resources topic, which is pinned. The .bin topic, is a nice new edition that fits that. The only other thread floating around that looks like it should be pinned to me, is the 'toxic lists' thread, http://atariage.com/forums/topic/241978-ti-99-resources-lists/ It provides that index to many things TI. Schmitzi, the other threads you highlighted as candidates, you also demonstrated that pinning isn't necessary for them. The popularity searches make them easily accessible automatically. I made a suggestion somewhere else here regarding more pinning, but after getting a better feel for it, there aren't many threads that meet that index of things criteria that I would require of pinned threads. The high score, and photos thread are exempt from that criteria, because they are clearly declaring community values. [email protected]
  10. Here is a contrasting environment Iwantgames setup looks like a monument, where my setup looks like a disaster zone. There is a little star-wars shrine like behavior going on in the background. I keep thinking I'll get all this super tidy, and pretty. But this is reality. On the left is the PEB keeping eye on most of the star-wars legos. On the right side, is the gaming PC that I haven't used to play a game since I grabbed a TI this summer. It's now the TI's hdx drive, the oscilloscope, eprom burner, and winter space heater. The PC can access the 40" screen, but usually just uses the little one on the right. The TI gets the 40" screen. The F18A cured the jitters I was having. Those jitters had quite a bit of travel on that screen. The little blue fan behind R2-D2 actually went into the PEB last weekend. The goal here is to get the USB-TI-Keyboard adapter in the console, then hook a usb-kvm up and share the little keyboard on the right. Although I'm growing increasingly fond of the wireless keyboard that is in front of the TI. [email protected]
  11. I use joystick 1 when I play.
  12. It's Christmas time fun... You might have fun doing that in RXB even if it doesn't qualify for the compilation or competition. I'd love to see those techniques put to use and I bet others would love to see what can be done too! [email protected]
  13. If you are into imaginative thought: could 3 flex cable cards be made to run 2 PEBs on 1 TI?
  14. That is an interesting question. But I highly doubt it. Looking at this: http://www.mainbyte.com/ti99/speech_peb/speech_peb.htmlwhich is not exactly the RAVE99 adapter, you can see that things are only partially provided. Looking at this: https://www.pinterest.com/pin/24418022949668911/ you can plainly see that the rave99 board is also not fully wired. [email protected]
  15. I agree. The creator of the USB Host mini ships with the 3.3v going to the USB +5 VBUS output, but I cut that trace and provide the TI's powersupply +5v to the USB VBUS. This is where I attempted to follow the USB Host mini howto page and provide some substantial capacitance at the VBUS. It is proving unstable. I'll go read the MAX3421E datasheet. I keep having this nagging feeling, I need to learn to do surface mount, and skip this USB Host mini. It takes around a month to get one, or you go the knock-off route, which seems questionable. As unstable as it is, once it is up and running, I'm able to use it all day long. But ignoring that USB handshake if you will for power, sounds like a good place to narrow in on why my adapter's boot up is unpredictable. Thanks! I am not driving the usb bus with anything from the TI keyboard connector. Those lines are just going to digital gpio lines on a "Teensy 3.1.", I power the Teensy off the +5v on the TI power supply, and that powers the USB Host mini board off of it's 3.3v power output. The 3.3v is disconnected from the USB +5 VBUS with an exacto-knife. And the +5v VBUS is fed again off the TI power supply. It seemed reasonable except for the part where I am not switching the VBUS on request. Thanks! That should give me a lot to chew on.
  16. Oh, right. I get it now. The quotient from each pass of the loop is the input into the next pass at the loop, with only the last quotient left on the stack. Thanks! [email protected]
  17. I'm trying to get a grip on the ISR support in fbForth. Looking at the example in chapter 10.2 of the fbForth manual, the definition of DOWN seems odd, in that ALLOT doesn't leave anything on the stack. So I'm trying to better understand why the UP and DOWN, and the asymmetry.. The example goes like this ( From Lee's book ): 0 VARIABLE TIMER : UP 100 ALLOT ; : DOWN -100 ALLOT DROP ; : DEMO UP 1 TIMER +! TIMER @ (s:1) (value of timer) PAD DUP 5 + (s:3) (value of timer, pad, pad + 5) DO (s:1) (value of timer) 0 10 U/ (s:2) (rem, quot) Timer gets coerced to a couple with the zero? and then remainder is our digit SWAP 48 + (s:2) (quot, ascii digit) I C! (s:1) (quot) -1 +LOOP (s:1) (quot) (is this leaking with every loop iteration then?) PAD 1+ SCRN_START @ 5 VMBW (s:1) (quot) DOWN ; (s:0) ( now drop cleaned up our straggling quotient from the earlier division. ) And then DEMO is installed as the ISR. I've annotated the code above with (s:n) where n is the number of items on the stack logically at the end of that line. I'm sure there is some funny business with interpretting that across the DO loop... but that shouldn't matter for this conversation. I've annotated what I think is on the stack at each step as well. I think that the DROP shouldn't be in the DOWN definition, but should be in the end of the +LOOP, cleaning up the unused quotient with each iteration. Is that correct? The UP and DOWN routines seem to be about creating a safe buffer for rendering the character string. So was shifting the use of 100 as the value to shift PAD based on PAD usage in this routine, or PAD usage in whatever code might have been interrupted by the ISR? All insights appreciated. [email protected]
  18. Here are some cool enough items: http://www.zazzle.com/tunnels_of_doom_tee_shirts-235227526719364224 http://www.zazzle.co.uk/alpiner_tees-235992507554885578 http://www.redbubble.com/people/hordak87/works/12871487-the-wumpus-hunt-is-about-to-begin?grid_pos=2&p=t-shirt It is probably safe to adopt this one now: http://www.redbubble.com/people/halfjim/works/2937920-alex-kidd?grid_pos=121&p=t-shirt This one looks good for thanksgiving: http://www.redbubble.com/people/hordak87/works/12871622-eaten-by-the-wumpus?grid_pos=4&p=t-shirt I have this one: http://www.cafepress.com/mf/66046719/tunnels-of-doom_tshirt T-shirts are always something I offer up to those forced to get me gifts... [email protected]
  19. Thanks for clarifying that. I had totally misunderstood that I must have 'heard what I wanted to hear' instead of listening in that part of your video on the GromConfig tool. [email protected]
  20. I'm using a Gotek. With firmware from the same guy as the Lotharek drives. Formatting has never worked for me. So I use TiImageTool java app on PC to create a blank sector image, then I convert that to hfe with the hxc desktop software. Once there, TI software can read and write just fine, and rename the disk too. There was a thread on the hxc2001 forums about formatting on TI that never seemed to be resolved. Does anyone if formatting on the Lotharek drives works on TI now? Somewhere we must have a DSR rom image dumper? If aftyde had that, the image could be diffed against each of the available mod images. I'm assuming you already opened up the controller board and looks at the labels on the eproms? I'm pretty sure mine came labelled. ( I didn't burn them myself )
  21. Clocks.. Hmm, any plans to support the HDX1.TIME clock? I've heard a couple strategies for keeping time in the minesweeper thread, so I imagine initializing time from the whole PAB dance doesn't hurt too much. Also I remember the UberGrom can expose a real-time clock that Tursi made easy to read. Are any of those in play? Oh, the tick goes away if you go into the editing options and back. But you probably already know that. And, any quick tips on what JIMS is? I saw that when saving. I think it was a choice of BOOT or JIMS. Is that how you create chainable menus? And the answer can be wait for the docs. [email protected]
  22. This is nice! I've loaded the menu right up... First glance, on my system I see a strange back-tick character in menu option 'B'... Also, it doesn't seem to save the color selection. But it does save the menu configs. But this is pretty cool! Thanks! [email protected]
  23. I am specifically curious if anyone has ever adapted that to in console? Or is there still an opportunity there?
×
×
  • Create New...