+arcadeshopper Posted February 28, 2021 Share Posted February 28, 2021 i saw this video on youtube https://www.youtube.com/watch?v=0yKwJJw6Abs and i thought, i can totally do that on the TI.. so.. 10 D$="FF" :: FOR D=65 TO 65+8 :: D$="00"&D$ :: CALL CHAR(D,D$) :: NEXT D :: FOR B=1 TO 10 :: PRINT "F";"E";"D";"C";"B";"A";"A";"B";"C";"D";"E";"F";"G"; :: B=1 :: NEXT B i had to print each character individually to get the required screen movement.. Here's xbasic, and compiled.. WAVE is normal extended basic, -X is compiled but loads in extended basic, and -E is EA5 load. looks pretty slick compiled some small screen glitches likely because I'm running classic99 in Wine on a linux pc.. WAVE-X WAVE-E WAVE 16 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted March 1, 2021 Share Posted March 1, 2021 Very interesting. I like the trick with the FOR/NEXT loop. For me there is an interesting optical illusion. At first the waves scroll from bottom to top, but at some point they start scrolling from right to left! 1 Quote Link to comment Share on other sites More sharing options...
AtariNostalgia Posted March 1, 2021 Share Posted March 1, 2021 That's very impressive Greg!! Quote Link to comment Share on other sites More sharing options...
+TheBF Posted March 2, 2021 Share Posted March 2, 2021 I was never very good at these things and at first I couldn't see how to do this in Forth in one line. But I had an idea. Full disclosure in Camel99 I have to load the file that changes the system to Graphics mode which is the default in Basic but traditionally not in Forth. (I could put that in the START file and it would load when you start up Forth but you will have to give me that one or disqualify me as you see fit) I made use of the fact the characters 0 to 8 are undefined so I manually wrote the single line (FF) into each byte of each successive character pattern but bumped 1 byte forward on each character. I used a loop counting up and a loop counting down to emit the characters onto the screen and wrapped the whole thing up in BEGIN AGAIN. No GOTO in Forth. Type RUN and off it goes. It's not quite as fast as compiled BASIC but it's not bad. Thanks for the making an old man think Greg. HEX : RUN FF 841 800 DO DUP I VC! 9 +LOOP BEGIN 7 0 DO I EMIT LOOP 0 7 DO I EMIT -1 +LOOP AGAIN ; Classic99 QI399.025 2021-03-01 20-30-55.mp4 4 Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted March 2, 2021 Author Share Posted March 2, 2021 I was never very good at these things and at first I couldn't see how to do this in Forth in one line. But I had an idea. Full disclosure in Camel99 I have to load the file that changes the system to Graphics mode which is the default in Basic but traditionally not in Forth. (I could put that in the START file and it would load when you start up Forth but you will have to give me that one or disqualify me as you see fit) [emoji4] I made use of the fact the characters 0 to 8 are undefined so I manually wrote the single line (FF) into each byte of each successive character pattern but bumped 1 byte forward on each character. I used a loop counting up and a loop counting down to emit the characters onto the screen and wrapped the whole thing up in BEGIN AGAIN. No GOTO in Forth. Type RUN and off it goes. It's not quite as fast as compiled BASIC but it's not bad. Thanks for the making an old man think Greg. HEX : RUN FF 841 800 DO DUP I VC! 9 +LOOP BEGIN 7 0 DO I EMIT LOOP 0 7 DO I EMIT -1 +LOOP AGAIN ; Classic99 QI399.025 2021-03-01 20-30-55.mp4Cool! Sent from my LM-V600 using Tapatalk 2 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted March 2, 2021 Share Posted March 2, 2021 This will be the last one. I promise. I woke up this morning realizing (maybe just a little obsessive...) that erasing the character patterns for characters A..G was just a easy with the VFILL operation. Then you can change the patterns of those letters and just print out the letters. DUH! HEX : RUN FF A08 40 2DUP 0 VFILL BOUNDS DO DUP I VC! 9 +LOOP BEGIN ." ABCDEFEDCBA" AGAIN ; 6 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted March 3, 2021 Share Posted March 3, 2021 22 hours ago, TheBF said: I was never very good at these things and at first I couldn't see how to do this in Forth in one line. But I had an idea. Full disclosure in Camel99 I have to load the file that changes the system to Graphics mode which is the default in Basic but traditionally not in Forth. (I could put that in the START file and it would load when you start up Forth but you will have to give me that one or disqualify me as you see fit) I made use of the fact the characters 0 to 8 are undefined so I manually wrote the single line (FF) into each byte of each successive character pattern but bumped 1 byte forward on each character. I used a loop counting up and a loop counting down to emit the characters onto the screen and wrapped the whole thing up in BEGIN AGAIN. No GOTO in Forth. Type RUN and off it goes. It's not quite as fast as compiled BASIC but it's not bad. Thanks for the making an old man think Greg. HEX : RUN FF 841 800 DO DUP I VC! 9 +LOOP BEGIN 7 0 DO I EMIT LOOP 0 7 DO I EMIT -1 +LOOP AGAIN ; Had to try in fbForth 2.0: \ fbForth 2.0 HEX : RUN GRAPHICS 00 841 800 DO DUP I VSBW 9 +LOOP BEGIN 6 0 DO I EMIT LOOP -1 4 DO I EMIT -1 +LOOP AGAIN ; I made a change to >00 at the beginning because my system font has the early characters with all >FF. I also changed the loop parameters to parallel the string in the next example. ...lee 1 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted March 3, 2021 Share Posted March 3, 2021 12 hours ago, TheBF said: This will be the last one. I promise. I woke up this morning realizing (maybe just a little obsessive...) that erasing the character patterns for characters A..G was just a easy with the VFILL operation. Then you can change the patterns of those letters and just print out the letters. DUH! HEX : RUN FF A08 40 2DUP 0 VFILL BOUNDS DO DUP I VC! 9 +LOOP BEGIN ." ABCDEFEDCBA" AGAIN ; And, here it is in fbForth 2.0: \ fbForth 2.0 HEX : RUN GRAPHICS FF A08 40 OVER OVER 0 VFILL OVER + SWAP DO DUP I VSBW 9 +LOOP BEGIN ." ABCDEFEDCBA" AGAIN ; ...lee 3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.