Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

382 Excellent

About kenjennings

  • Rank
  • Birthday 07/01/1966

Contact / Social Media

Profile Information

  • Custom Status
    Me + sio2pc-usb + 70 old floppies
  • Gender
  • Location
    Florida, USA
  • Interests
    C programming, computer graphics, unix/linux, retro gaming, Atari 8-bits and Amiga
  • Currently Playing
    atasm -- Mac/65 with all the joy and none of the line numbers.
  • Playing Next
    atasm (Mac/65) Is there any better "game"?

Recent Profile Visitors

11,581 profile views
  1. Links to the articles in both ANTIC and ANALOG are here: The BASIC code to set up the synthesizers is the same for both. (Same data lines, same control/status lines), so it appears they are identical.
  2. I was wondering.... since you have four character sets. And you use a different characterset per line, but repeat the usage six times... 0 1 2 3 0 1 2 3 . . . Wouldn't it be the same as just using one character set for six contiguous lines before switching character sets... 0 0 0 0 0 1 1 1 1 1 1 . . . Then there are fewer DLIs that need to change the current CHBAS. Thanks, Ken
  3. The ship from the Asteroids arcade game screams Atari. (Not necessarily Atari 8-bit)
  4. Side by side in opposite directions....... I can't think of a way to do that in hardware. Maybe I lack imagination. Pretty sure that would have to be done the hard way by actually drawing/updating the screen memory itself. Maybe shifting images through a character set. Either way it is still brute force code churning through memory.
  5. I love Aldi's. That's the only place in South Florida that carries awesome groceries from Germany. (My kid had to explain family heritage for a school project, and we spent days looking for a place to buy spaetzle.)
  6. There's also the duck-boy in Escape From Epsilon...
  7. I like the player from Mountain King, wearing the crown. But, I'm like one of five people left alive who like that game.
  8. Yet another bad branch condition. Reassembled and re-uploaded. It does not change the addresses for routines above.
  9. That's the one I was thinking of. I was bored at work and ported this to the PC and updated it to sort and draw filled triangles. Pretty sure that disk is gone. Then Turbo Silver came out on the Amiga and I stopped trying to write my own graphics software.
  10. Of course it was broken. I realized in the middle of the day that the DEC and flag checks for decrementing the length were a broken, stupid idea. Rebuilt. https://github.com/kenjennings/Atari-CheepTalk USR(39680) is the CheepTalkInit routine for BASIC. USR(39728, ADR(STRINGVARIABLE), LEN(STRINGVARIABLE) ) is the CheepTalkSpeech routine for BASIC to pass the address and length of the phoneme string to the VBI. PEEK(39883) is a status byte that BASIC can check to see if the VBI is busy running the speech.
  11. Just about done with V3. Cut out a number of the ridiculously fast speed levels, so it is playable by mere humans with retired old people reflexes. Last thing I'm working on it some weird screen flash when the frog reaches the safe beach at the top of the screen. It doesn't crash, and it doesn't do the glitch every time. But I need to find it for OCD reasons. It's a pretty game but gets boring quickly. Gameplay is intentionally limited to the scope of the original Pet game on purpose. If I feel motivated to continue on to V4 that will add new things not done in the prior versions -- other hazards, more animated things, etc.
  12. I did a first pass at a simple BASIC interface for a VBI driver to run the speech synthesizer. It assembled (remarkably, first time), but I can't test this myself. (No physical Atari available and no working CheepTalk). About 270 lines of assembly. Any bets on if it actually runs? Code is here. https://github.com/kenjennings/Atari-CheepTalk The code is assembled at $9B00 (39680) through $9BC8 (less than one page.) That is the page before the default GRAPHICS 0 display list for a 40K (or more) Atari running 8K Atari BASIC. (Boot up with BASIC, go to DOS, binary load the AtariCheepTalk.xex file, then it should be in memory, and you can return to BASIC. [I think].) USR(39680) is the CheepTalkInit routine for BASIC. It will set up the PIA port, and it will attach the VBI. USR(39728, ADR(STRINGVARIABLE), LEN(STRINGVARIABLE) ) is the CheepTalkSpeech routine for BASIC to pass the address and length of the phoneme string to the VBI. The routine will sit and wait for the the VBI to finish sending a string to the speech synthesizer before loading up the address for the new string. (Therefore, one string of phonemes at a time. Do not modify/rebuild a string that is currently being serviced by the VBI.) PEEK(39876) is a status byte that BASIC can check to see if the VBI is busy running the speech. 0 means the VBI is not servicing a speech string. nonzero (2) means it is busy sending a string.
  13. Buried on a disk somewhere. I don't recall the vertical blank driver being very involved. Keep a list of pointer to strings to send to the device, the number of bytes to send, and the current pointer. Given the time to pronounce each phenome only one byte needs to go to the port each VBI at most. I recall the only trick was that between hitting the bit to write to the port and then writing a value, the Atari had to do several NOPs for timing or the synthesizer would not get the value and then it would be saying gibberish. I could probably retool this if I can find some time to look at the magazines' BASIC code to write the port.
  • Create New...