Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

552 Excellent

About almightytodd

  • Rank
  • Birthday 01/31/1960

Profile Information

  • Custom Status
    Infrequent Poster
  • Gender
  • Location
    Orlando, Florida
  • Interests
    Professional programmer (C++, C#, SQL, BASH script)
    Guitar player
    Blues harmonica

Recent Profile Visitors

18,924 profile views
  1. Such a tragic loss. His legacy will live on in his writings and his engineering projects. I will think of him each time I use my Legacy Engineering joystick and my Flashback 2; and when I read "Atari - Business is Fun" that he co-wrote with Marty. Condolences to his family.
  2. Hi George! I recently discovered the trs80gp emulator and wanted to come here to AtariAge and share with everyone that after years of searching for a usable TRS-80 emulator, I've finally found one! So of course, I did a search first to see if anyone else had mentioned it, and imagine my surprise to find the author active in these forums! WOW!!! The TRS-80 Model I holds a special place in my heart, because although there was no way as a 17 year old that I could talk my family into buying one (...at over $2,000 of today's dollars), I went down to my local Radio Shack, bought a beginning TRS-80 BASIC book (I think it was Level 1... ...not sure), and then spent a few Saturdays at Radio Shack trying to type in programs on their demo machine. The first computer I actually OWNED was a Timex/Sinclair 1000, which also made use of the Z80 CPU. I enjoyed that for several years, and I now continue to explore BASIC programming using the EightyOne emulator, which features display scan lines and other video effects that really bring nostalgia in to the emulation experience. If only I could find a decent TRS-80 emulator with similar features... ...and now I have! Here's a screenshot of my desktop while running your fine emulator with appropriate wallpaper... I'm a software engineer at Walt Disney World now, and those early experiences with machines like the TRS-80 and the Sinclair had a definite influence on the direction of my career. The second computer that I owned was a TRS-80 Color Computer 2, by the way, but it just didn't seem to have the same kind of charm as these earlier models. Thanks again for your efforts in creating, well, it's just the BEST TRS-80 emulator I've ever seen! My discovery of this has been a real bright-spot during COVID-19 lock-down and spending my days working from home. Thank you! Thank you!
  3. If poor decisions lead to your death; because you don't believe in Darwinism...  that IS Darwinism...

    1. _The Doctor__

      _The Doctor__

      lol, and if you put grain and nuts in a box, rodents spontaneously whisk into existence... as he so famously stated... yeah, hafta say... Darwin created a movement of folks who follow him and his theories and they may take themselves out in an act of support to prove he and they weren't mistaken... which is good for those of us who know better ! Less Darwin award recipients in the future after the spike... flattening the curve just spreads out the award recipients...

  4. Planet Patrol This game adds to the challenge with the sun going down so you only see your enemies when you fire. I also like that it solves the "portrait orientation" problem that many arcade ports suffer by rotating the orientation 90 degrees and limiting the side-to-side (...or up-and-down) area of the screen. This seems more "fair" than a game like "Breakout", where the arcade game is squashed down to landscape orientation, and the ball flies at crazy angles that are just about impossible to handle once the ball is traveling at the higher speeds.
  5. This is good: I think we need a separate category for vector-graphics games... So many great B & W raster arcade games... ...it's too hard to choose just one.
  6. It's all good... chill...

  7. Thank science and the collective responsible behavior of the American Public that this Pandemic hasn't been as catastrophic as it could have been...

    1. Keatah


      I'll thank science. But the American Public? They're still pretty stupid with stuff like this. Impatient and worried about other stuff.

    2. _The Doctor__

      _The Doctor__

      That virus is pretty smart... it doesn't exist if you march down the street hand in hand with no mask or having it dangling under your chin, just so long as you yell scream and shout while throwing, breaking and burning stuff it will skip over you! Just don't try doing anything else... or it will seek you out and destroy you!     Hopefully we've enough herd immunity we don't have to bear this getting out of hand again.

  8. Fascinating! Do you have some sample code you could post to demonstrate this technique?
  9. I am amused... ...just for fun I modified my Fibonacci sequence program above to also print the PEEK of the ERR_SP as discussed above with each iteration. I then ran it on the "stock" ZX81 with 1Kb of RAM... and it ran out of memory just before printing the stack-pointer value on the 40th ITERATION!! What are the odds? (Error code 4 at line 1060)
  10. Thank you so much for that! I am constantly in awe of the brilliance that I find in the forums here. I re-configured my EightyOne emulator to a stock ZX81 with one Kb of RAM. The BASIC and operating system are stored in an 8Kb ROM. It seems to me that the Model 1 TRS-80 had a 4Kb ROM? Can anyone confirm? Anyway, here's a simple program to PEEK at the RAM addresses of the system variables, which start at the end of ROM. I modified my code from the example on page 136 of the Timex Sinclair 1000 manual. Using a "GOTO" the program runs happily for at least 4,000 iterations. Switching to a GOSUB in line 1040, the situation changes dramatically... The program stops with error code 4 (out of memory). I then execute a "PRINT N" command which returns 270, suggesting that the GOSUB stack has consumed all of the memory in 270 iterations (...unless the value of "N" has been corrupted). I looked up the ASM source code for the ZX81 ROM here: https://www.tablix.org/~avian/spectrum/rom/zx81.htm#L0EB5 If I'm reading this right, the GOSUB routine uses the "error stack pointer - ERR_SP" to store the return address for each GOSUB call at Hex address 4002: ;; GOSUB L0EB5: LD HL,($4007) ; sv PPC_lo INC HL ; EX (SP),HL ; PUSH HL ; LD ($4002),SP ; set the error stack pointer - ERR_SP CALL L0E81 ; routine GOTO LD BC,$0006 ; I experimented with PEEKing memory location 16,386 during each iteration, which I believe corresponds with Hex value 4002. Please point out any glaring errors in my thinking. THIS IS WHY I'M POSTING HERE! During my various experiments, I found that the starting address of this stack pointer varied with the length of my program, and then decremented two-bytes with each iteration. I found one case where it wrapped around zero (...this was before I had reduced my RAM from 16k to 1k in the emulator) and it started over at 255. Another interesting phenomenon I observed, is that once I had blown out memory space during a test run, the program wouldn't list fully anymore, and if I tried running it repeatedly, it would run out of memory in fewer iterations each time (...13, and then 3). The only remedy for this condition was a reboot, and then I'd have to type my program back in again. I could also save state in the emulator, and then reload it with an additional constraint that a snapshot will only load to an emulation model with the same memory model. From my computer science days in college, I believe heap-space grows upwards while stack-space grows down? This stuff is all very interesting to me. I'm tempted to try some additional experimenting with the Altirra emulator or the BeebEm for the BBC Micro, since those computers used the 6502 CPU instead of the Z80 in the Sinclair.
  11. I'm inspired to do some testing to see just how deep the recursion can potentially go... Updates to follow.
  12. My apologies for hijacking the topic on LOGO programming on the TI 99/4A computer. I think it's best to continue the conversation in this new thread. I was browsing the Rosetta Code website when I stumbled upon this Recursive example of the Fibonacci sequence on the Sinclair Z81. 10 INPUT N 20 LET A=0 30 LET B=1 40 GOSUB 70 50 PRINT B 60 STOP 70 IF N=1 THEN RETURN 80 LET C=B 90 LET B=A+B 100 LET A=C 110 LET N=N-1 120 GOSUB 70 130 RETURN I was quite surprised to see how similar it was to my second attempt at demonstrating recursion in BASIC using a subroutine. ...a quick style note: I prefer to start BASIC Programs with line 100 - allowing for a zeroth line number for a remark naming the program. This also allows for 99 lines of code without any changes in indentation of the line numbers - retaining ten lines between each for the insertion of other lines. I prefer to number all subroutines in the thousands; creating a visual "break" between the "Main" routine and the subroutines. In the Fibonacci example above, the sequence is not created; rather the nth Fibonacci value is returned based on input "N". I find it much more interesting to present the sequence, so I have modified the Rosetta Code example to display the sequence from 1 to 40 (an arbitrary value). Here's what I came up with: Another Sinclair ZX81 example from Rosetta Code is very interesting: 10 INPUT N 20 PRINT INT (0.5+(((SQR 5+1)/2)**N)/SQR 5) This one also displays only the nth number, so here it is reworked to display the sequence up to the 40th iteration: The output of this example is identical to the Recursive solution. I have to say, playing around with this stuff using the EightyOne emulator is such a joy. The BASIC language commands are all laid out for me on the keyboard with a single button-press for each keyword; which means no typos. The syntax is checked as each line is entered and a new line of code isn't added to the listing until it is syntactically correct. Each line of a listing can be selected for editing, including the line numbers, which is extra helpful for moving things around and repeating code lines that differ only by one or just a few characters.
  13. Isn't it a better practice to have labels on a line by themselves? It looks odd to me to have a label followed by commands and operands... ...just sayin'
  • Create New...