-
Content Count
3,419 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by jedimatt42
-
Using ESP8266 WiFi microcontroller as Serial Internet Modem
jedimatt42 replied to jedimatt42's topic in TI-99/4A Computers
will do! It does have some 'server' connection modes. But it doesn't generate 'RING' and I don't think it responds to ATA. Server mode might act more like auto answer... I'll experiment with that and see. I can hear you thinking about using it for the hosting side of the BBS. An interesting aspect of it, is that it supports multiplexing multiple connections over the one serial port. For a BBS client, I'm obviously taking steps to turn that off. But theoretically, you could rewrite some BBS hosting software to understand the indicators for data coming from different client channels, and sending packets of data out directed at those specific client channels again. In this mode, everything coming in starts with +IPD and some connection number, and meta data about the data, then the data. The outgoing data is sent with AT+CIPSEND=<channel>,<length>,<data>.... It would require very differently designed BBS hosting software, but you could service multiple callers with one serial port. These chips are also completely reprogrammable. They have extensions to the Arduino dev SDK to target them if you want to replace the firmware completely. -
I have, after a false start, succeeded in getting my TI to telnet into heatwavebbs.com using a little wifi adapter I've built out of two basic components: 1) An Adafruit Huzzah ESP8266 breakout board ~ $10 - https://www.adafruit.com/products/2471 2) A Female Serial MAX232 adapter ~ $3 $10 - http://www.amazon.com/gp/product/B00OPTOKI0 https://goo.gl/photos/o8BiFAQg3hute4ma6 ( I can't seem to attach photos this weekend... but here is the google album. ) The MAX232 board is a simple serial to ttl converter. The ESP8266 chip is a growingly popular SoC that has an available firmware that lets you simply communicate to the internet with AT+ commands. To use like a modem, you have to update the firmware to the latest, and then use the 'transparent' mode, which lets all received data through to the chips serial out, and passes all input from serial to the other end. The cheaper raw ESP8266 chips can be had for less than $5. But the first one of those I bought had defective ram. And then to make it come close to working, I still had to build a little board with some pull up resisters to control the boot mode. And to update the firmware I would would have had to build out even more. By going with the Adafruit breakout board, it is easily flashed to the latest firmware with an FTDI USB cable. You can test it with that cable on a PC to get a feel for it, and configure a sufficiently slow bps for connecting to the TI. Then I wired up the TX, RX, and power for the MAX232. Conveniently, the Adafruit board regulates voltage, and makes 3.3v available. So I simply have a USB cord connected to provide power, and the MAX232 borrowing power off the Adafruit, and TX and RX wired up between the boards. The Adafruit board duplicates the VIN, and TX and RX for the FTDI cable, so I can still tinker with it on the PC if I need to flash it again or whatever. I had to configure it down to 2400 bps to work well on the TI. Later I'll try hooking up the RTS & CTS for hardware flow control, and then maybe I can do 9600 bps. AT Commands are interesting. ( I'm using firmware version 0.50 for the ESP8266 ) AT+UART_DEF=2400,8,1,0,0 Sets the serial mode to 2400 bps, 8n1, and no flow control. AT+CWMODE=1 Puts the thing in client or 'station' mode, instead of access point mode. AT+CWJAP="myssid","mypassword" join an access point. Use AT+CWJAP_DEF="myssid","mypassword" to store it for default power state. AT+CIPMODE=1 sets up transparent mode, otherwise everything comming back gets prefixed with +IPD AT+CIPMUX=0 turns off multiplexing. required for transparent mode. AT+CIPSTART="TCP","heatwavebbs.com",9640 opens the connection, and stuff you receive starts to show up. AT+CIPSEND Opens up your outgoing communication so you can interact with the BBS. Theoretically, you can press "+++" to get out of CIPSEND mode, and back to the AT mode... but I haven't been able to yet.. the reset button on the board works well enough instead. If you can get back to AT mode, then you'd close the connection with AT+CIPCLOSE I need to get a little case for it, add a power switch, and add the hardware flow control ( that's just hooking up two more wires, and reconfiguring the UART on the ESP8266 ) TELCO worked ok. I just saw a thread with the TELCO manual today, so I'll have to look and see if the auto-dialing can be made to work. It is nice that this chip's firmware does DNS lookup. Oh, you have to configure your terminal program to send CR/LF when you press enter, or else the chip will ignore you. I hope someone else finds this useful... [email protected]
-
Is there any reason that the HDX DSR board can't just be a couple eproms? Does it use the RAM at runtime for buffers?
-
I grew up in the county outside Bremerton WA, USA, near the Puget Sound Naval Shipyard. In 1984, I was 11, and took to the computer like it was the essence of life. My father actually bought the TI to try and get my older brother interested, but that failed, largely because his friends had C64s and they couldn't share. I found one kid at school that had a TI, but when I wrote a game and tried to share it with him, he had no idea how to load a basic program from anything... So, to him it was a cartridge based video game console. I did luck into a neighbor that was interested in programming on the TI. It was one of my friends, older brother's... We wrote a Transformers ( the robot toys ) database. We'd go to the local stores with a notepad, write down all the statistics on the back of the retail packaging ( it had something like a baseball card of stats on it. ) And then go code them into this database, with a little graphics to indicate a thing or two. That was my first joint programming effort, until I ran into the same guy again actually in college. My father was a smart guy though. We had all of these computer user groups in the Puget Sound area, there was a group for the commodore 8bits, the amigas, the atari 8bits, the atari st folks, the PCs, and the apple II users... So every month my father would drag me down to the Kitsap TI users group. When it started to fail, he took it over. I am the center of the universe, so I'm pretty sure he did all of that to make sure I had support. My father and I each had our own TI setups. I'm pretty sure, in the end, we were our own user's group. Shortly after I moved out, he retired his Geneve setup. I've gotta say "Thanks Dad!" Not that he'll ever read this. I should probably get off the computer and call him I really enjoy hearing how Opry99er, and Buck are building a relationship that involves the TI, as well as Ksarul and his boys... That's pretty cool! [email protected]
-
It is hinkey, but I've always had good success just taking the twisted PC cable, and untwisting, then squeezing it all back together with my hands... I'm all for the right tool for the right job though... This search works well on amazon: 34 pin ribbon cable lots of options that will work quite well. [email protected]
-
Sweet! That ties the explanations about sprites and COINCALL back to reality for me. Thanks again for the help... I was able to work around each of those issues, and get the first basic game I ever wrote, ported to fbForth. That was a great exercise for me. Now I can learn some tricks like multi-layered sprites, and many others, to make it into the game I want it to be. ( The American Grand Prix is tomorrow, hopefully that will be inspiring - if the rain stops ) I believe I saw automotion appear to mutate character definitions after switching to TEXT ( 40 column ) mode as well. I didn't think of this as a bug at the time, as it is so easy to do something like create a word say, 'DEVMODE' that stops motion and sets the text mode I want... And I couldn't particularly tell how much initialization the mode commands intend to be responsible for. As for Ω's concern about an obsoleted printed manual, it would be great to get the added resident words in as an Addendum PDF. I like my reference material in physical form too, mostly so I can step away from the desk when I'm studying. https://goo.gl/photos/56AM8opJVGbGBbHX9 <-- There is a picture of my fbForth spiral bound book. [email protected]
-
Yep, that is the case. 1 up for every 4 left. Does forth have a signed-int16 to signed-byte conversion word? It seems that you are trying to take care of that in words that expect signed bytes, but numbers on the stack are always treated as int16. The JOYST routine through me for a loop too... The output vectors are signed bytes ( -4 is represented as 252 ) so it quite naturally fed the inputs of the MOTION word, until I tried to multiply the value. You could probably teach us about some conversion words that would be handy in these situations. [email protected]
-
The next block word turns out to be very nice. With my LOADALL, or THRU, a typical code-test cycle would have me FORGET my first word in block 1, and then perform a 1 LOAD, which would call LOADALL. If I wanted to go faster, but was changing something on block 5, I'd FORGET the first word on that block, and then 5 LOAD 6 LOAD... But by using '-->' at the end of each block that continues on to the next, I can FORGET and then load the lowest block that was edited, and the rest follow. Very cool. [email protected]
-
So could this have been caused by my starting with sprite number 1, instead of 0. ? I started this project by coding some XB, and then I'm porting that to practice forth. I'll run that experiment when I get home. I love the feedback. Is it acceptable to follow a pattern of no stack effects if there should be none? And thanks for the pointer to GOTOXY, my implementation of .AT was going to get me in trouble, and wasn't working right anyway I did not know this. I was wondering how horrible it was for me to do what I was doing loading several blocks... What are some best practices in this area? Multiple block management seems like it will get complicated soon. I like to initialize properly as much as I can, and intended to migrate to JOYST so keyboard support would be for free, but I started with JCRU cause I was being lazy first. Gameplay is horrible In the XB version I wrote in '84 after a crash, it just resets, and keeps looping... no scoring or anything game-ish. So I was trying to port that first, before making it better. Hopefully I'll make it a lot better. I have actually updated it to reset to initial positions, cause that is what my childhood version did All the help is massively appreciated, and I love the feedback. Thanks so much! [email protected]
-
What kind of battery life do you get out of the CR2032 powering the SRAM on the HDX DSR board? I know I've seen pictures of nicely placed switches to power off that SRAM when it gets corrupted. I've been experiencing that corruption preventing boot regularly, so I just pulled the battery, and just have to reload each session. I'm sure I'll tire of that and wire a good switch in copying Ω's disk drive drawer technique... But in the meantime, what has your experience been with battery life?
-
That was it... DELALL sets all the sprites patterns to 0, but with my magnified sprites, some magic invisible sprites are tripping the COINCALL. So I defined character patterns 0 - 3, to all 0000s, and COINCALL behaved as I would expect. I still feel like that means I'm not initializing the unused sprites correctly... Now I read a little further in the Lee Stewart book, and it suggests I should move the sprite pattern table so it doesn't overlap with the normal pattern table in Graphics mode... Would that have saved me this issue? or would I still have to have made sure that sprite pattern 0 - 3 is all zeros?
-
Ok, I've found that my sprite numbering is off... I've straightened that out... so now I have sprites 0 the driver, and 1 through 7 the cars. and I'm supposed to use 7 + 1 for the #MOTION... so that wasn't the problem... It is the CONTROL word in block 5 that is confusing me. COINCALL is just returning -1 all the time, which as a flag is true. Do I need to redefine characters 0 - 3 since I'm in '2 magnify' mode?
-
Ok, I am performing GRAPHICS, then DELALL, then creating a driver sprite, and 7 rival sprites. This code currently, experiences coincidence immediately in the 'CONTROL' loop and terminates. But if I change block 5 word SHOWLIVES to end with "30 22 .at", then things loop around. I think I just spotted my error, block 4... Do loop end values are not inclusive, so I'm looping from 2 to 9 to create the enemie cars, which creates sprites 2 through 8. but then I set 9 in motion... which should probably be 8... ? ## BLOCK: 1 ( TITLE SCREEN ) : .AT ( X,Y -- ) SWAP 32 * + CURPOS ! ; : ALLCOLOR ( F,B -- ) DUP SCREEN 15 0 DO OVER OVER I COLOR LOOP DROP DROP ; : TITLE GRAPHICS 1 13 ALLCOLOR 5 7 .AT ." FORMULA-TI RACING" 9 8 .AT ." MATTHEW SPLETT" 10 11 .AT ." 1984,2015" 20 6 .AT ." PRESS FIRE TO BEGIN" ; : WAITFIRE BEGIN 1 JCRU 1 = UNTIL ; ( LOAD OTHER BLOCKS ) : LOADALL 7 2 DO I LOAD LOOP ; LOADALL ## BLOCK: 2 ( CAR PATTERNS) BASE->R HEX : RACECAR 03C7 CFFF CFCC 0B0B 68 SPCHAR 0B0B 0FCF CFFF C7C4 69 SPCHAR C0E3 F3FF F333 D0D0 6A SPCHAR D0D0 F0F3 F3FF E323 6B SPCHAR ; : CURBS FBF5 FBF5 FBF5 FBF5 6C CHAR DFAF DFAF DFAF DFAF 6D CHAR ; R->BASE ## BLOCK: 3 ( DRAW TRACK ) : DRAWTRACK CLS CURBS 1 15 ALLCOLOR 5 0 24 108 VCHAR 25 0 24 109 VCHAR ; ## BLOCK: 4 ( ADD SPRITES ) : SPRSETUP DELALL 2 MAGNIFY ; : DRIVER 121 160 13 104 1 SPRITE ; : RNDSPEED ( --n ) 10 RND 3 + ; : ENEMIES 9 2 DO 17 I 20 * + 9 I 3 + 104 I SPRITE 0 RNDSPEED I MOTION LOOP 9 #MOTION ; : GOCARS RANDOMIZE SPRSETUP RACECAR DRIVER ENEMIES ; ## BLOCK: 5 ( CONTROL LOOP ) 5 VARIABLE LIVES : SHOWLIVES 2 2 .AT LIVES @ . ; : CRASH -1 LIVES +! SHOWLIVES ; : CONTROL 0 JMODE ! 5 LIVES ! SHOWLIVES BEGIN COINCALL IF CRASH ENDIF LIVES @ 1 < UNTIL ; ## BLOCK: 6 ( LAUNCH GAME ) : DEVMODE 0 #MOTION TEXT ; : GAME TITLE WAITFIRE DRAWTRACK GOCARS CONTROL DEVMODE ; ." Enter GAME to begin." ( I wrote a little groovy/java code to create this block dump )
-
Also, COINCALL doesn't behave like I would expect. Is the cursor a sprite? do I need to disable it? I suspect this because I have repeating overlapping sprites with motion going on, and the collisions are almost never detected. But when I started printing out the flag from COINCALL, quite lazily with just a 'DUP .', then I started getting lots of collisions detected even through my intended sprites were not in collisions at the time. If I move the cursor by doing something like 32 8 * 23 + CURPOS ! then that issue goes away, but doing that seems really fishy.
-
Are there already tools that list blocks in fbForth to DV80 files? I could probably do something with 'sed' on the ?windows? box hosting my hdx drive, but wondered if there was already something out there... I saw the thread on using Intellij for editing forth files, which would imply moving the code to and from pc text files... I want to be able to commit any of my code to git in a reasonable manner, while actually using the TI for as much of the workflow as is reasonable.
-
http://www.copyright.gov/title17/ The software industry has been doing unnecessary things around copyright for so long, that despite what the law says, it is becoming necessary. Regarding the Atariage bit... Does this website claim copyright over any works posted here?
-
This all caused me to buy a CC-40, just cause they are available. I actually brought one of those with me to school everyday my senior year in high school. It was my first mobile device.. Back then I taught it how to do all the hard work for my physics class. I didn't go to any dances The fun part was it arrived, and I got to try and explain why I wanted it to my wife...
-
Now you can breach the subject of internet security, identity theft, and privacy...
-
What do you do with obsolete cartridge guts?
jedimatt42 replied to Omega-TI's topic in TI-99/4A Computers
I looked for ya, but didn't spot you...maybe I left too early... -
What do you do with obsolete cartridge guts?
jedimatt42 replied to Omega-TI's topic in TI-99/4A Computers
Oh, and I wouldn't recycle them just yet. I was out at PRGE today, and something was very clear. Cartridges survive. Someday after the internet apocalypse, these systems that use solid state software, will still have software being traded. I saw about 1 shoebox of Atari 8 bit cartridges, enough 2600 cartridges to drown in. And of course tons of various generations of nintendo and sega cartridge wars. CD's were still being traded, although consumers were taking the precautions of checking for scratches. But magnetic media didn't last. Oh, I saw one 4A black and silver for sale, and one 4A beige for sale. Very little in the way of classic computing, even though those systems sank or swam by their game titles (that last part is just my uneducated opinion) Anyway, it doesn't seem right to recycle our cartridge innards for scrap metal just yet. I remember as a kid, I found a bare 2600 cartridge board in the street. It had been run over, and was muddy. I cleaned it up, and plugged it in, and was shocked then, that it worked. I don't think I ever knew what that game was called, as it didn't have a title screen. -
What do you do with obsolete cartridge guts?
jedimatt42 replied to Omega-TI's topic in TI-99/4A Computers
That is crazy impressive recognition! I thought those chips looked familiar myself. I've only only stolen shells from 2 carts, and didn't remember what they were. Plugged it in, and sure enough that was it. Looking at grom only boards, TI impresses me. Those groms seemed like such a strange thing to do. But the proprietary chip simplifies the boards so much. I have one other board bare... 4 groms: CD2020ANL, CD2021ANL, CD2022NL, CD2023NL, with rom CN19310N Anyone recognize that? [email protected] -
Alex Kidd on Miracle Island - Playable Demo
jedimatt42 replied to TheMole's topic in TI-99/4A Development
Ok, nevermind about the 'redo' suggestion... The fire button works just fine there. I think you mentioned that somewhere already. -
Alex Kidd on Miracle Island - Playable Demo
jedimatt42 replied to TheMole's topic in TI-99/4A Development
I got 1150 before dying on the bat. TheMole, this is really great! Playing on my little TI. It makes me soo happy. The the new .bin burnt nicely and works on my little old TI video chip. For more than a decade, I've played around with retro emulation (as a user). I've been aware of Alex Kidd by name, but never gave it a go. Now the TI can feel some of that platformer love.. The outlines on the main character and dangerous enemies look great. It makes them pop. I get a little sprite ghosting I think when I get to close to the first scorpion, and punch. But given the layered sprites, it doesn't create playability issues like say, burgertime... where invisible pickles kill you. This is truly great! 1 thing would be cool ( if this isn't just cause I have my keyboard all 'in-progress' ) if you implemented REDO after the RIP screen That would be useful. Having a platformy game like this on the TI... I never imagined... It makes me so happy to see on my real iron! My wife must think I'm crazy. [email protected] -
Alex Kidd on Miracle Island - Playable Demo
jedimatt42 replied to TheMole's topic in TI-99/4A Development
Confirmed, I have no F18A.
