Jump to content

Search the Community

Showing results for tags 'ti 99/4a'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Atari Systems
    • Atari General
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Atari VCS
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
    • Atari Portfolio
  • Classic Consoles
    • Classic Console Discussion
    • ColecoVision / Adam
    • Intellivision / Aquarius
    • Bally Arcade/Astrocade
    • Odyssey 2 / Videopac
    • Vectrex
    • Nintendo Entertainment System (NES) / Famicom
    • Super Nintendo Entertainment System (SNES) / Super Famicom
    • Sega Genesis
    • 3DO Interactive Multiplayer
    • Dreamcast
    • SMS High Score Club
    • TG-16/PC Engine High Score Club
  • Classic Computing
    • Classic Computing Discussion
    • Apple II Computers
    • TI-99/4A Computers
    • Commodore 8-bit Computers
    • Commodore Amiga
    • Tandy Computers
  • Modern Consoles
    • Modern Gaming Discussion
    • Sony Playstation 5
    • Xbox Series S/X
    • Atari VCS (Redirect)
    • Nintendo Switch
    • Microsoft Xbox One
    • Sony PlayStation 4
    • Microsoft Xbox 360
    • Sony Playstation 3
    • Nintendo Wii / Wii U
  • Gaming General
    • Gaming General Discussion
    • Arcade and Pinball
    • Emulation
    • Hardware
    • Prototypes
    • Gaming Publications and Websites
    • International
  • Marketplace
    • Buy, Sell, and Trade
    • Auction Central
    • Wanted
    • Free Games and More
    • User Feedback Forum
  • Community
  • Community
    • Events
    • Show Us Your Collection!
    • Member Blogs
    • High Score Clubs
    • Poll Forum
    • Contests
    • User Groups
    • AtariAge News Discussion
    • User Submitted News
  • Game Programming
    • Homebrew Discussion
    • Programming
    • Hacks
  • Site
    • Announcements
    • Forum Questions and Answers
    • AtariAge Store Discussion
    • Site and Forum Feedback
    • Rarity Guide
    • Archived Forums
  • PC Gaming
  • The Club of Clubs's Discussion
  • I Hate Sauron's Topics
  • 1088 XEL/XLD Owners and Builders's Topics
  • Atari BBS Gurus's Community Chat
  • Atari BBS Gurus's BBS Callers
  • Atari BBS Gurus's BBS SysOps
  • Atari BBS Gurus's Resources
  • Atari Lynx Programmer Club's CC65
  • Atari Lynx Programmer Club's ASM
  • Atari Lynx Programmer Club's Lynx Programming
  • Atari Lynx Programmer Club's Music/Sound
  • Atari Lynx Programmer Club's Graphics
  • The Official AtariAge Shitpost Club's Shitty meme repository
  • The Official AtariAge Shitpost Club's Read this before you enter too deep
  • Arcade Gaming's Discussion
  • Tesla's Vehicles
  • Tesla's Solar
  • Tesla's PowerWall
  • Tesla's General
  • Harmony/Melody's General
  • Harmony/Melody's CDFJ
  • Harmony/Melody's DPC+
  • Harmony/Melody's BUS
  • Harmony/Melody's CDFJ+
  • ZeroPage Homebrew's Discussion
  • Furry Club's Chat/RP
  • PSPMinis.com's General PSP Minis Discussion and Questions
  • PSPMinis.com's Reviews
  • Atari Lynx 30th Birthday's 30th Birthday Programming Competition Games
  • 3D Printing Club's Chat
  • Drivers' Club's Members' Vehicles
  • Drivers' Club's Drives & Events
  • Drivers' Club's Wrenching
  • Drivers' Club's Found in the Wild
  • Drivers' Club's General Discussion
  • Dirtarians's Members' Rigs
  • Dirtarians's Trail Runs & Reports
  • Dirtarians's Wrenching
  • Dirtarians's General Discussion
  • The Green Herb's Discussions
  • Robin Gravel's new blog's My blog
  • Robin Gravel's new blog's Games released
  • Robin Gravel's new blog's The Flintstones Comic Strip
  • Atari Video Club's Harmony Games
  • Atari Video Club's The Atari Gamer
  • Atari Video Club's Video Game Summit
  • Atari Video Club's Discsuuions
  • Atari Video Club's Concerto Games
  • Atari Video Club's AVC Games
  • Star Wars - The Original Trilogy's Star Wars Talk
  • PlusCart User's Bug reports
  • PlusCart User's Discussion
  • DMGD Club's Incoming!
  • DASM's General
  • AtariVox's Topics
  • Gran Turismo's Gran Turismo
  • Gran Turismo's Misc.
  • Gran Turismo's Announcements
  • The Food Club's Food
  • The Food Club's Drinks
  • The Food Club's Read me first!
  • The (Not So) Official Arcade Archives Club's Rules (READ FIRST)
  • The (Not So) Official Arcade Archives Club's Feedback
  • The (Not So) Official Arcade Archives Club's Rumor Mill
  • The (Not So) Official Arcade Archives Club's Coming Soon
  • The (Not So) Official Arcade Archives Club's General Talk
  • The (Not So) Official Arcade Archives Club's High Score Arena
  • Adelaide South Australia Atari Chat's General Chat & Welcome
  • Adelaide South Australia Atari Chat's Meets
  • Adelaide South Australia Atari Chat's Trades & Swaps
  • KC-ACE Reboot's KC-ACE Reboot Forum
  • The Official Lost Gaming Club's Lost Gaming
  • The Official Lost Gaming Club's Undumped Games
  • The Official Lost Gaming Club's Tip Of My Tounge
  • The Official Lost Gaming Club's Lost Gaming Vault
  • The Official Lost Gaming Club's Club Info
  • GIMP Users's Discussion
  • The Homebrew Discussion's Topics
  • Hair Club for Men's Bald? BEGONE!
  • Alternate Reality's Topics
  • Board games, card and figure games's Topics
  • please delete's Topics
  • StellaRT's Topics

Blogs

  • BinaryGoddess' Blog
  • Albert's Blog
  • MegaManFan's Blog
  • Ed Siegler's Blog
  • FireTiger's Blog
  • Atari Rescue Group's Blog
  • EricBall's Tech Projects
  • liquid_sky's Blog
  • Cybernoid's Blog
  • Lost Blog
  • shep's Blog
  • Trey's Blog
  • Boo
  • Kepone's Blog
  • Beware of Kiwi
  • Fun in the beer mines
  • PacManPlus' Blog
  • Atari 8-bit Moria port
  • Tim's Blog
  • Mindfield's Chewy-Centered Blog
  • The Long Dark Teatime of the Soul
  • TP's Blog
  • Adam Sessler's Brutally Honest Blog
  • Shut Up and Play Yer Atari
  • None
  • Atarinvader's Blog
  • Atari 8-bit archiving
  • Brunobits' Blog
  • ATARIeric's Blog
  • wrenchien's Blog
  • Trade-N-Games' Blog
  • wapchimp's Blog
  • Shared Words
  • Bastard's Blog
  • homerwannabee's Blog
  • Haydn Jones' Blog
  • The World According To Yuppicide
  • How I did It
  • Buck's Blog
  • atwwong's Blog
  • 1
  • sandmountainslim's Blog
  • Atari Jaguar Projects + More
  • StanJr's Blog
  • Schmutzpuppe's Blog
  • Bullitt's Blog
  • panda_racer's Blog
  • Inky's Blog
  • Lauren's Place
  • DanBoris' Tech Blog
  • atariauctions' Blog
  • Planet Bob
  • CSIXTY4.com
  • Robin Gravel's Blog
  • lestergame
  • Duke 4ever's Blog
  • Atari Haiku Blog
  • An7ron
  • glitch's Blog
  • Coleco-Atari Era
  • Kenfused's Blog
  • Ralph3's Blog
  • nester's one star gaming
  • Halt and Catch Fire
  • lizard's Blog
  • Laner's Classic Gaming Blog
  • Page 6
  • keilbaca's rants
  • SirWilliam's Blog
  • Birdie3's blog
  • MattG/Snyper2099's Blog
  • madmjennifer's Blog
  • Ablogalypse Now
  • Endless Quest
  • Greenious' Blog
  • wookie's Blog
  • Justclaws' Blog
  • VTAtari's Blog
  • SID CROWE TESTING THE blog softwareeee
  • Dutchman2000's Blog
  • Famicoman's Blog
  • scogey's Blog
  • Retro Gaming Obscuria
  • atarifan49's Blog
  • Chronogamer
  • flavoredthunder's Blog
  • Shernand's Blog
  • Robert M's Blog
  • albaki's Blog
  • BTHOTU's Blog
  • Zach's Projects
  • BuzzTron-451's Blog
  • The Occasional Coder
  • Joystick Lunatic Software on AtariAge
  • Zander's Blog
  • The randomness that is Mr. 8-bit/16-bit.
  • bluetriforce's Blog
  • ubikuberalles' Blog
  • Worm Development Blog
  • Eight Bit's Blog
  • mos6507's Blog
  • phaxda's Blog
  • potatohead's Blog
  • Mountain King's Blog
  • The Southsider
  • The World is Flat?
  • brianwolters' Blog
  • Bidouille's Blog
  • Zybex/Atariware Blog
  • JagDiesel's Palace 2
  • Sega_master's Blog
  • Deep into the Mind Game
  • Bob's Blog
  • Rockin' Kat's Blog
  • Push Me, Pullman
  • (Insert stupid Blog name here)
  • dgob123's INTV Blog
  • Random Terrain's Tetraternarium
  • Odyssey Development Corner
  • Pacmaniax
  • GPD Comics Blog
  • sergiomario's Blog
  • prorobb's Blog
  • Days Atari Events
  • gamester1's Blog
  • Shannon's Blog
  • Mord's Blog
  • liquidcross.com - blog
  • MIPS HEAVY INDUSTRIES
  • MayDay Today
  • javiero's Blog
  • Great Exploitations
  • Monster Angriff's Blog
  • Draikar's Blog
  • Random Acts of Randomness
  • TROGBlog
  • hex65000's Blog
  • Being Of The Importance Of Shallow Musing.
  • daclmi's Blog
  • 2600 in 2006
  • Sayton's Blog
  • For whom it may concern
  • Osbo's Blog
  • ataridude81's Blog
  • Wiesbaden Gaming Lab
  • SpiceWare's Blog
  • The Upward Spiral
  • Web-Frickin'-Log
  • Starosti 8bitového grafika
  • WWW.BUYATARI.TK
  • commodore & atari :)'s Blog
  • Dusk2600's Blog
  • GAMEBOT
  • Lynx 20 years
  • Songbird Productions
  • SpaceInvader's Blog
  • Retro point of view
  • VampyricDreams666's Blog
  • le geek's nonsense
  • Hardcore's Nostalgia
  • 4old-times-sake's Blog
  • shadow460's Blog
  • AtariJr's Blog
  • Memoirs of an X register
  • maximebeauvais' Blog
  • atari2600land's Blog
  • .:maus:.
  • PAM1234's Blog
  • Nabuko's Den
  • Paranoid's Blog
  • Culmins Development's Blog
  • Atari Joe's Flippin' Sweet Blog
  • When Robots Attack
  • Flack's Daily Smack
  • Jboypacman's Blog
  • neonesmaster's Blog
  • Classic Stories
  • Bruce Tomlin's Blog
  • Beetle's Blog
  • 5-11under's Blog
  • EricDeLee's Blog
  • TunnelRunner's Blog
  • jaymz887's Blog
  • fojy-harakiri's Blog
  • Shroo-man's Blog
  • Ataria51's Blog
  • Mr. Pac-Man's Blog
  • JellE's Dwelling
  • Gaming With Rogmeister
  • Pengwin's Blog
  • neotokeo2001's Blog
  • Arcade's Blog
  • R. Jones' Blog
  • payman84ce's Blog
  • Awed Thoughts
  • super mario 64 level editor
  • Christos' Blog
  • atari_collector's Blog
  • imtron's Blog
  • My Vintage Game collection
  • classicgamingguy's Blog
  • HP Atari King of Michigan's Blog
  • Unknown arcade titles from Fighter17
  • Ain't got time for no Jibbajaba
  • Wickeycolumbus' Blog
  • Ramblings of a moron
  • HatNJ's Blog
  • BlogO
  • ELEKTROTECK
  • bf2k+'s Blog
  • ParaJVE's Blog
  • Cody Rushton's blog
  • It's my life!
  • Bakasama's Blog
  • Dennis V's Blog
  • RaRoss' Blog
  • Collecting Demos
  • Dave Neuman's Blog
  • Borntorun's Blog
  • warren798's Blog
  • Tweety's Blog
  • -^CB^-'s Game Reviews
  • seekingarobiejr's Blog
  • revival studios
  • bust3dstr8's Blog
  • Rom Hunter's Blog
  • Shark05's Blog
  • Lord Helmet's Blog
  • ryanez1's Blog
  • kit's Blog
  • Burma Rocks
  • Bubsy Bobcat Fan Blog
  • Habaki's Blog
  • Dan's Road to 2600 nirvana
  • wccw mark's Blog
  • Hornpipe2's Blog
  • Phantom's Blog
  • Piggles' Blog
  • Dino Dash Derby
  • games_player's Blog
  • 1982VideoGames' Blog
  • Cabbage Patch Kids! Lookin' Great!
  • Confessions of an Aging Gamer...
  • theking21083's Blog
  • retrogeek's Blog
  • Liveinabin's scribbles
  • Cimerians' Blog
  • CollectorVision Blog
  • Ransom's Random Posts
  • www.toyratt.com's Blog
  • RonPrice's Blog
  • s0c7's Blog
  • doyman's Blog
  • DJTekid's Blog
  • EG's code blog
  • kiwilove's Blog
  • 8 Bit Addiction
  • Playing With History
  • simonh's Blog
  • Zereox's Blog
  • Draconland
  • chris_lynx1989's Blog
  • Phuzzed's Blog
  • 7800 NZ's Blog
  • Gamera's Reviews: E.T Coming Soon!
  • Iwan´s Irrational!
  • seemo's Blog
  • The Eviscerator Series
  • Noelio's Blog
  • 480peeka's Blog
  • For Next
  • Take 'Em To The Woodshed
  • bankockor Blog
  • Kelp Entertainment
  • 2600 Fun Blogs
  • PinBlog
  • IHATETHEBEARS' BLOG
  • Atari Fan made Documentary
  • Flashjazzcat's Blog
  • THE 1 2 P's Demo/Import/Gaming Blog
  • STGuy1040's Blog
  • enyalives' Blog
  • Mirage1972's Blog
  • blogs_blog_286
  • The Word Of Ogma
  • GC's blog
  • nanobug's monument of geekiness
  • dogcorn's Blog
  • I Can't Think of a Catchy Title
  • please help and share story
  • ivop's Blog
  • what is the chicago basment
  • Cheat Blog
  • zeropolis79's Blog
  • My video game library
  • the.golden.ax's "Oh my Blog"
  • ValuGamer
  • wolfpackmommy's Blog
  • Z80GUY's Blog
  • jwierer's Blog
  • kroogur's Korner
  • Verbal Compost
  • Frizo's Collecting Adventure!
  • Old School Gamer Review
  • ...
  • Rybags' Blog
  • BDW's Blog
  • tweetmemory's Blog
  • toptenmaterial's Blog
  • grafix's Bit Mouse Playhouse
  • S1500's Blog
  • hackerb9's blog
  • EricBall's Tech Projects (PRIVATE)
  • MagitekAngel's Blog
  • I created this second blog on accident and now I can't figure out how to delete it.
  • keilbaca's Blog
  • TestBot4's Blog
  • Old School Gamer Review
  • The Mario Blog
  • GideonsDad's Blog
  • GideonsDad's Blog
  • GideonsDad's Blog
  • Horst's Blog
  • JIMPACK's Blog
  • Blogpocalypse
  • simonl's Blog
  • creeping insanity
  • Sonic R's Blog
  • CebusCapucinis' Blog
  • Syntax Terror Games
  • NCN's Blog
  • A Wandering Shadow's Travels
  • Arjak's Blog
  • 2600Lives' Blog
  • 2600Lives' Blog
  • Kiwi's Blog
  • Stephen's A8 Blog
  • Zero One
  • Troglodyte's Blog
  • Austin's Blog
  • Robert Hurst
  • This Is Reality Control
  • Animan's Blog Of Unusual Objectionalities
  • Devbinks' Blog
  • a1t3r3g0's Blog
  • The 7800 blog
  • 4Ks' Blog
  • carmel_andrews' Blog
  • iratanam's Blog
  • junkmail's RDE&P Blog
  • Lynxman's FlashCard Blog
  • JagMX's Blog
  • The Wreckening
  • roberto's Blog
  • Incagold's Blog
  • lost blog
  • kurtzzzz's Blog
  • Guitarman's Blog
  • Robert @ AtariAge
  • otaku's Blog
  • otaku's Blog
  • revolutionika's Blog
  • thund3r's Blog
  • edweird13's Blog
  • edweird13's Blog
  • That's what she said.
  • Hitachi's Blog
  • The (hopefully) weekly rant
  • Goochman's Marketplace Blog
  • Marc Oberhäuser's Blog
  • Masquane's AtariAge Blog
  • satan165's Dusty Video Game Museum
  • lazyhoboguy's Blog
  • Retail hell (The EB years)
  • Vectrexer's Blog
  • Game Maker to Game Dev
  • Retro Gaming Corporation
  • Hulsie's Blog
  • Tr3vor's Blog
  • Dryfter's Blog
  • Why Are You Even Reading This?
  • Xuel's Blog
  • GamingMagz
  • travelvietnam's Blog
  • pacmanplayer's Blog
  • TheLunarFox's Blog
  • caver's Blog
  • Atari 2600 for sale with 7 games 2 controllers
  • A Ramblin' Man
  • toiletunes' Blog
  • Justin Payne's Blog
  • ebot
  • Markvergeer's Blog
  • GEOMETRY WARS ATARI 2600
  • LEW2600's Blog
  • Pac-Man Vs Puck-Man's Blog
  • Bri's House
  • Les Frères Baudrand's Blog
  • Secure Your E-Commerce Business With ClickSSL.com
  • raskar42
  • The P3 Studio
  • Bydo's Blog
  • defender666's Blog
  • TheSSLstore - SSL certificates Validity
  • Chuplayer's Blog
  • pacman100000's Blog
  • POKEY experiments
  • JPjuice23's Blog
  • Gary Mc's Blog
  • arkade kid's Blog
  • MaXStaR's Blog
  • SUB HUNTER in A8
  • ScumSoft's Blog
  • The Social Gamer
  • Ping. Pong. Ping. Pong.
  • kgenthe's Blog
  • mapleleaves' Blog
  • Dallas' Blog
  • bfg.gamepassion's Blog
  • Esplonky's Blog
  • Fashion Jewellery's Blog
  • Gabriel's Blog
  • CJ's Ramblings
  • Dastari Creel's Blog
  • dobidy's Blog
  • dragging through the retro streets at dawn
  • Please Delete - Created by Accident
  • Nerdbloggers
  • Algus' Blog
  • Jadedrakerider
  • Appliciousblog.com
  • frederick's Blog
  • longleg's Blog
  • Brain droppings...
  • Sandra's blog
  • Bastelbutze
  • polo
  • VectorGamer's Blog
  • Maybe its a Terrible Tragedy
  • Guru Meditation
  • - - - - - -
  • The 12 Turn Program: Board Game Addiction and You
  • Tezz's projects blog
  • chonglily's Blog
  • masseo1's Blog
  • DCUltrapro's Blog
  • Disjaukifa's Blog
  • Vic George 2K3's Blog
  • Whoopdeedoo
  • ge.twik's Blog
  • DJT's High Score Blog [Test]
  • Disjaukifa's Assembly Blog
  • GonzoGamer's Blog
  • MartinP's Blog
  • marshaz's Blog
  • Pandora Jewelry's Blog
  • Blues76's Blog
  • Adam24's AtariAge Blog!
  • w1k's Blog
  • 8-bit-dreams' Blog
  • Computer Help
  • Chris++'s Blog
  • an atari story
  • JDRose
  • raz0red's Blog
  • The Forth Files
  • The Forth Files
  • A.L.L.'s Blog
  • Frankodragon's Blog Stuffs
  • Partyhaus
  • kankan313rd's Blog
  • n8littlefield's Blog
  • joshuawins99's Blog
  • ¡Viva Atari!
  • FujiSkunk's Blog
  • The hunt for the PAL Heavy Sixer
  • Liduario's Blog
  • kakpu's Blog
  • HSC Experience
  • people to fix atari Blog
  • Gronka's Blog
  • Joey Z's Atari Projects
  • cncfreak's Blog
  • Ariana585's Blog
  • 8BitBites.com
  • BrutallyHonestGamer's Blog
  • falcon_'s Blog
  • lushgirl_80's Blog
  • Lynx Links
  • bomberpunk's Blog
  • CorBlog
  • My Ideas/Rants
  • quetch's Blog
  • jamvans game hunting blog
  • CannibalCat's Blog
  • jakeLearns' Blog
  • DSC927's Blog
  • jetset's Blog
  • wibblebibble's Basic Blog
  • retrovideogamecollector's Blog
  • Sonny Rae's Blog
  • The Golden Age Arcade Historian
  • dianefox's Blog
  • DOMnation's Blog
  • segagamer99's Blog
  • RickR's Blog
  • craftsmanMIKE's Blog
  • gorf68's Blog
  • Gnuberubs Sojourn Dev Journal
  • B
  • iesposta's Blog
  • Cool 'n' Crispy: The Blog of Iceberg_Lettuce
  • ahuffman's Blog
  • Bergum's Thoughts Blog
  • marminer's Blog
  • BubsyFan101 n CO's Pile Of Game Picks
  • I like to rant.
  • Cleaning up my 2600
  • AnimaInCorpore's Blog
  • Space Centurion's Blog
  • Coleco Pacman Simulator (CPMS)
  • ianoid's Blog
  • HLO projects
  • Retro Junky Garage
  • Sega Genesis/Mega Drive High Score Club
  • Prixel Derp
  • HuckleCat's Blog
  • AtariVCS101's Blog
  • Tales from the Game Room's Blog
  • VVHQ
  • Antichambre's Blog
  • REMOVED BY LAW AUTHORITY
  • Synthpop Universe
  • Atari 5200 Joystick Controllers
  • Top 10 Atari 2600 Games
  • Is Atari Still Cool?
  • Buying Atari on Ebay
  • matosimi's Blog
  • GadgetUK's Blog
  • The StarrLab
  • Scooter83 aka Atari 8 Bit Game Hunters' Blog
  • Buddpaul's Blog
  • TheGameCollector's Blog
  • Gamming
  • Centurion's Blog
  • GunsRs7's Blog
  • DPYushira's Entertainment Blog
  • JHL's Blog
  • Intellivision Pierce's Blog
  • Manoau2002 Game and Vinyl Blog
  • Diamond in the Rough
  • Linky's Blog
  • flashno1's Blog
  • Atari 2600 Lab
  • jennyjames' Blog
  • scrottie's Blog
  • Draven1087's Blog
  • Omegamatrix's Blog
  • MegaData Manifesto
  • Selling Atari on Ebay.
  • Unfinished Bitness
  • TI-99/4A Stuff
  • eshu's blog
  • LaXDragon's Blog
  • GozAtari8
  • Bio's Blog of Randomness
  • Out of the Pack
  • Paul Lay's Blog
  • Make Atari 2600 games w/o programming!
  • Rudy's Blog
  • kenjennings' Blog
  • The Game Pit
  • PShunny's Blog
  • Ezeray's Blog
  • Atari 2600 game maps
  • Crazy Climber Metal
  • Keith Makes Games
  • A virtual waste of virtual space
  • TheHoboInYourRoom's Blog
  • Msp Cheats Tips And Techniques To Create You A Better Gamer
  • Tursi's Blog
  • F#READY's Blog
  • bow830
  • Gernots A500 game reviews
  • Byte's Blog
  • The Atari Strikes Back
  • no code, only games now
  • wongojack's Blog
  • Lost Dragon's Blog
  • Musings of the White Lion
  • The Usotsuki Crunch
  • Gunstar's Blogs
  • Lesles12's Blog
  • Atari Randomness
  • OLD CS1's Blog
  • waterMELONE's Blog
  • Flickertail's Blog
  • Dexter's Laboratory Blog
  • ATASCI's Blog
  • ATASCI's Blog
  • --- Ω ---'s Blog
  • mourifay's Blog
  • Zsuttle's gaming adventures
  • Doctor Clu's Space Shows
  • TWO PRINTERS ONE ADAM
  • Atari Jaguar Game Mascots
  • Learning fbForth 2.0
  • splendidnut's Blog
  • The Atari Jaguar Game by Game Podcast
  • Syzygy's Story Blog
  • Atarian Video Game Reviews
  • Caféman's Blog
  • IainGrimm's Blog
  • player1"NOT"ready's Blog
  • Alexandru George's Blog
  • BraggProductions' Blog
  • XDK.development present Microsoft Xbox One Development
  • Song I Wake Up To
  • Jeffrey.Shamblin's Blog
  • Important people who shaped the TI 99/4A World
  • My blog of stuff and things
  • David Vella's Blog
  • Osgeld's Blog
  • CyranoJ's ST Ports
  • InnovaX5's Blog
  • Star_Wars_Collector
  • Alp's Art Blog
  • Excali-blog
  • STGraves' Blog
  • Retro VGS Coleco Chameleon Timeline
  • Geoff Retro Gamer
  • Geoff1980's Blog
  • Coleco Mini
  • Coleco Mini
  • 7399MGM's Blog
  • 7399MGM's Blog
  • doubledragon77's Blog
  • Ballblogɀer
  • pitfallharry95's Blog
  • BawesomeBurf's Blog
  • Fultonbot's Atari Blog
  • Dmitry's Blog
  • Kaug Neatos Crash Bandicoot Bandwagon
  • lexmar482's Blog
  • vegathechosen's Blog
  • Atari 2600JS
  • Doctor Clu's Dissertations
  • schmitzi's Blog
  • BNE Jeff's Blog
  • AverageSoftware's Development Blog
  • FireBlaze's Blog
  • Atarimuseum.nl
  • Vorticon's Blog
  • TurkVanGogH GameZ's Blog
  • bow830's Blog
  • Arcade Attack - Retro Gaming Blog
  • MrRetroGamer's Blog
  • GG's Game Dev, Homebrew Review, Etc. Log
  • dazza's arcade machine games
  • Alcor450's Blog
  • The Outback
  • -^CroSBow^-'s Hardware Videos
  • Captain's Blog
  • Memoirs of a Novelty Account
  • newcoleco's Random Blog
  • Second-Hand Shop
  • Doctor Clu's BBS Trotter
  • Lunar eclipse of the mind
  • simon2014's Blog
  • PhilipTheWhovian's Blog
  • Troff the Shelf
  • jacobus Indev
  • Pac & Pal for the Atari 2600 fan project
  • drawscreen then reset
  • Retrogaming Ramblings
  • G-type's Blog
  • Blog o' Buttons
  • DarQ Massacres' Atari 2600 collection
  • FireStarW's Blog
  • Bobbety_F's Blog
  • Rose-Tinted Recollections
  • Young Guy Experiencing Atari
  • Gray Defender's Blog
  • atasciiview
  • 2600 games worse then E.t
  • ZippyRedPlumber's Blog
  • game_escape's Blog
  • Jackel192's Blog
  • The UAV Blog
  • MykGerard
  • OS9Dude's Blog
  • FPGA video game console
  • darryl1970's Blog
  • Funkmaster V's Gettin' Hip with tha Atari 7800
  • AtariMI1978's Blog
  • AtariMI1978's Blog
  • vidak's Blog
  • 8-bit Computer System Colors in Food Coloring
  • WebSiteRing
  • The Best Assembly Computer
  • As time goes by ...
  • Atari 2600 Collection Bulk Box/ Cartridge Sale
  • T.R.A.S.H Blog
  • goodlasers' Blog
  • GauntletKing2878's Blog
  • My Inner Geek
  • A Raccoon's Retrocade Romp - AA Edition
  • homeboy's Blog
  • ThatAtomCat's Blog
  • Hawk's Blog
  • Bryan's Random Stuff
  • Developing Atari Programs on the Atari 800
  • Eltigro's Blog
  • Memories Limited to 640KB
  • my journey to completing the entire Atari libaray
  • Roblox
  • Question for Homebrew publishers
  • zilog_z80a's Blog
  • Return of the Bobcat
  • deepthaw's Blog
  • Little bit of this and little bit of that
  • Shannon's Blog
  • DoctorSpuds Reviews Things
  • Atari Portfolio Page On Facebook
  • azure's Blog
  • The Atari Kid
  • Alien Isolation Blog
  • Atari_Ace's Blog
  • AtariAdventure's Blog
  • AtariCrypt
  • acsabo's Blog
  • Bioshock Text adventure
  • AtariAdventure Reviews
  • Infinite Warfare Specialist
  • Karl's Blog
  • Bjorkinator's Babbles
  • DZ-Jay's Random Blog
  • CX40Hero's Blog
  • Heroes & Shadows Dev Blog
  • Empty
  • GoldLeader's Blog
  • Adventures in CC65
  • CS2X C# on Atari
  • pboland's Blog
  • Matts's Blog
  • orrko8791's Blog
  • orrko8791's Blog
  • Revontuli's Blog
  • Not Steve's Blog
  • Not Steve's Blog
  • SPACE ROANOKE
  • My life
  • skycop's Blog
  • cessnaace's Blog
  • Omegasupreme's Blog
  • Atari 2600 A/V Mods Wiki
  • Mike Harris' Blog
  • Skwrl63's Blog
  • sometimes99er
  • Mallard Games Development Blog
  • Regaining an Obsession
  • Psi-5
  • The Atari Journals
  • Herovania
  • TBA
  • Bluejay Records Co.
  • Running On Fumes
  • Mozartkügel's Midnight Retro Development
  • Alcadon
  • baktra
  • Flojomojo's Simple Mind
  • MarkO
  • Lazydead's Loose Ends
  • OldSchoolRetroGamer's Bloggy Nonsense
  • Magmavision After Dark
  • My Homebrew Devlog
  • BUBSY Blogs [blank]
  • Too young for Atari, too old for XBox
  • KC-ACE Blog
  • Brown Altitude Bar
  • Bubsy TV Pilot Wiki
  • Poltergeist
  • Projektstunde
  • bluejay's corner of random shit
  • SpornyKun
  • alex_79's Blog
  • Atari Label Reproduction/ Relabeling
  • Ephemeral
  • My opinion and story about Atari 2600
  • Sony PlayStation 5/PS5™ Development Kit (Dev Kit) for SALE
  • Delete
  • Superkitten
  • Doublediwn
  • Reindeer Flotilla
  • Intellivision hacks (.cfg files)
  • My Experience Learning 68k Assembly
  • My Atari Projects
  • Writing is hard
  • My Atari 2600 Collection
  • Jodi C. Kirby's blog
  • Power outage a few days ago
  • Sony PlayStation 5/PS5™ Development Kit (Dev Kit) for SALE
  • xNeoGeo1982Blogx
  • The Ivory Tower Collections 7800s
  • Incognito Atari 800 step by step pictorial install tutorial/guide including ATR swap button mod
  • Cree's Stories
  • Testing
  • NeonPeon's (Mark W's) Adventures in programming for Vectrex
  • Stories from the -: ITC :-
  • Gameboy & dress up games
  • BRP's random dev journaling
  • My PC-Engine/TurboGrafx-16 Projects
  • Ivory Tower Technical Notes
  • Programming a game..
  • Games People Play
  • Atari 8-bit Memories, Ideas, and Active Projects
  • WEATHER REPORT
  • Biff's Blasts
  • Programming Journey
  • CREE BENNET DOESN'T CARE
  • Mark W Plays Old Games on a Thursday
  • 35 Years, 9 Months and 16 Days in the Life Of...
  • IntellivisionRevolution's Blog
  • Atari BBS Gurus's News
  • On Duty's Blog
  • The official Robin Gravel's club's Archive
  • Bowling's Blog
  • Lawnmover's Blog
  • Null's null
  • Null's Blog
  • KC-ACE Reboot's KC-ACE Reboot Blog
  • Wizzy's Concept and Theme
  • Wizzy's Form
  • Wizzy's Moodboard
  • Wizzy's Space
  • Wizzy's Magical objects
  • Wizzy's Progress
  • Wizzy's At home
  • Wizzy's Halloween
  • Wizzy's Equipping
  • Wizzy's Mentor
  • Wizzy's World
  • Wizzy's Trials
  • Wizzy's Characters
  • Alternate Reality's Blog

Calendars

  • AtariAge Calendar
  • The Club of Clubs's Events
  • Atari BBS Gurus's Calendar

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website


Facebook


Twitter


Instagram


YouTube


eBay


GitHub


Custom Status


Location


Interests


Currently Playing


Playing Next

  1. Looking for a busboard (thin white strips that are soldered to the board) that would have been removed from the black and silver TI 994/A. I currently am searching for the longest rail that is nearest the RAM and ROM.
  2. In Skyfox for the Apple II, if you press Ctrl-G after you select your level a Space Invaders game will load up for you to play. This type of thing is a little more common with modern games I imagine because space isn't as big of a concern. But this got me thinking, what other hidden games are there for any of the classic computers? I'm guessing this wasn't real common, but there must be some others. I know there were a few games in Commodore 64 loaders, but what I'm more interested in are the ones that are truly hidden.
  3. The ELF computer, which first made its appearance in August 1976 in the Popular Electronics magazine, was a very basic experimenter's board based on the RCA CDP1802 CPU, a rather obscure processor primarily used in embedded systems by the likes of the DOD and NASA. It's main advantage was its simplicity of interfacing and ease of programming. Needless to say that the ELF developed a large following as many hobbyists built their own boards from scratch using the published details in the magazine, and several companies sprung up offering upgraded versions of it. Here's the original article: PopularElecELF.pdf A modern iteration of it is the so-called Membership Card designed by Lee Hart, which reduces the ELF to the size of an Altoids tin, adds 32K of memory (as compared to the original 256 bytes) and replaces the hexadecimal display with a row of LEDs. It also conveniently incorporates a DB25 connector with the computer signals routed to it for easy interfacing. In fact, it is still being developed and sold here. The ELF is programmed by entering CDP1802 machine language in binary using the 8 data switches, and as you might imagine this could become extremely tedious for long programs and very error prone, not to mention the horrendous debugging process using just this set up. Incidentally, I did write a basic monitor for the ELF which could help alleviate the difficulty of program development called ELFMON, and it can be found on the attached disk, but it was still clunky at best. Happily, there was a far better way to go about programming the ELF, using a full-fledged computer to write the program in 1802 assembler, assemble it, and transfer it directly to the ELF using the DB25 connector. And while this could be done using any computer, I decided to do it using the TI 99/4A computer. Essentially it became a retrocomputing project inside another retrocomputer! ? The way to go about this is to place a byte on the data lines of the ELF's connector (pins 2-9), toggle the ELF's input switch using pin 1 to store the byte in the ELF's memory, then repeat the process for the rest of the instructions. Clearly, the TI's parallel port would be ideal for this, so I created an adapter cable to connect it to the ELF. The pinout is as follows: TI PIO ELF DB25 1 -------------------->1 2 -------------------->2 3 -------------------->3 4 -------------------->4 5 --------------------->5 6 -------------------->6 7 -------------------->7 8 -------------------->8 9 -------------------->9 12 ------------------->14 From there, it was just a matter of software. The ELF program can written directly on the TI using any one of the available text editors, with the following format: <label><opcode><operand><comment> Each part needs to be separated by a single space. The label is optional and can be up to 6 alpha-numeric characters, the opcode cannot exceed 4 characters, the operand cannot exceed 7 characters, and the comment is optional and of arbitrary length. When referring to a label in the operand field, the label needs to be preceded by a *. Register numbers should be entered as a single hex digit from 0 to F. Numbers should be entered as either 2 or 4 digit hex digits from 0 to F preceded by a >. For example F is entered as >0F. B41 is entered as >0B41. Finally, the last opcode of the program should be the reserved word END . If the formatting is wrong, then the assembler output will be wrong as well! Once the program is typed in, it should be saved in the standard TI DV/80 format. I wrote a primitive CDP 1802 assembler in Rich Extended Basic (RXB) which is my favorite interfacing language because it has facilities to access hardware at the low-level. The assembler is sloooooooooow, but hey it beats flipping switches! The operation of the assembler is self-explanatory: just follow the prompts. Below is a listing of the program: //1802 ASSEMBLER FOR ELF MEMBERSHIP CARD //BY WALID MAALOULI //JANUARY 2020 //VERSION 0.1 CALL CLEAR OPTION BASE 0 DIM REFTABLE$(100),HEX$(16),REFADR(100) RESTORE HexData FOR I=0 TO 15 READ HEXVALUE$:: HEX$(I)=HEXVALUE$ NEXT I CRU=2432 !RS232 CRU OF >1300 DIVIDED BY 2 PRINT " CDP 1802 ASSEMBLER" PRINT " WALID MAALOULI - JAN 2020" PRINT::PRINT::PRINT::PRINT //GET SOURCE FILE ON ERROR InputSource InputSource: INPUT "ENTER SOURCE FILE PATH: ":SOURCE$ OPEN #1:SOURCE$ ON ERROR STOP PRINT::PRINT "1- SEND HEX FILE TO ELF" PRINT "2- ASSEMBLE FILE" PRINT::INPUT FCTN IF FCTN=1 THEN SendELF PRINT::PRINT "ENTER DECIMAL START ADDRESS:" INPUT OFFSET PRINT::PRINT "SELECT OUTPUT OPTION:" PRINT "1- LIST TO SCREEN" PRINT "2- SEND TO PRINTER" PRINT "3- SAVE TO FILE" PRINT "4- SEND TO MEMBERSHIP CARD" PRINT GetOutputSelect: INPUT OUTSEL IF OUTSEL<>1 AND OUTSEL<>2 AND OUTSEL<>3 AND OUTSEL<>4 THEN GetOutputSelect IF OUTSEL=2 THEN OPEN #2:"PIO",OUTPUT IF OUTSEL=4 THEN SendELF IF OUTSEL<>3 THEN StartAsm ON ERROR InputSource1 InputSource1: PRINT INPUT "ENTER SAVE FILE PATH: ":DEST$ OPEN #2:DEST$,OUTPUT ON ERROR STOP GOTO StartAsm SendELF: PRINT PRINT "PREPARE ELF TO RECEIVE DATA:" PRINT PRINT "1-CONNECT CABLE" PRINT "2-LOAD AND CLR SWITCHES DOWN" PRINT "3-READ SWITCH UP" PRINT "4-ALL DATA SWITCHES UP" PRINT PRINT "PRESS ANY KEY WHEN READY" CALL KEY("",0,K,S) IF FCTN=2 THEN StartAsm //TRANSFER HEX FILE TO ELF TransferHex: IF EOF(1) THEN CLOSE #1:: PRINT:: PRINT "TRANSFER COMPLETE!":: STOP LINPUT #1:LINE$ PRINT LINE$ HVAL$=SEG$(LINE$,6,2) CALL HEXDEC(HVAL$,DECVAL) GOSUB SendByte IF SEG$(LINE$,9,1)="" OR SEG$(LINE$,9,1)=" " THEN TransferHex HVAL$=SEG$(LINE$,9,2) CALL HEXDEC(HVAL$,DECVAL) GOSUB SendByte IF SEG$(LINE$,12,1)="" OR SEG$(LINE$,12,1)=" " THEN TransferHex HVAL$=SEG$(LINE$,12,2) CALL HEXDEC(HVAL$,DECVAL) GOSUB SendByte GOTO TransferHex //START OF ASSEMBLY StartAsm: LINE=OFFSET RPOINT=0 PASS=1 PRINT::PRINT "FIRST PASS"::PRINT //READ LINE FROM FILE ReadLine: TEMP$="" TEMP1$="" LINPUT #1:LINE$ IF PASS=1 THEN PRINT SEG$(LINE$,1,19) IF PASS=2 THEN SkipLabel LABEL$=SEG$(LINE$,1,6) FOR I=1 TO LEN(LABEL$) IF SEG$(LABEL$,I,1)<>" " THEN TEMP1$=TEMP1$&SEG$(LABEL$,I,1) NEXT I LABEL$=TEMP1$ SkipLabel: OPCODE$=SEG$(LINE$,8,4) IF SEG$(OPCODE$,1,1)=">" AND PASS=1 THEN OPRNUM=0:: GOTO FirstPass IF SEG$(OPCODE$,1,1)=">" THEN HEXVAL$=SEG$(OPCODE$,2,2):: OPRNUM=0:: OPERAND$="":: GOTO FoundLabel FOR I=1 TO LEN(OPCODE$) IF SEG$(OPCODE$,I,1)<>" " THEN TEMP$=TEMP$&SEG$(OPCODE$,I,1) NEXT I OPCODE$=TEMP$ OPERAND$=SEG$(LINE$,13,7) IF SEG$(OPERAND$,1,1)<>">" THEN NotNumber OPERAND$=SEG$(OPERAND$,2,LEN(OPERAND$)-1) TEMP$="" FOR I=1 TO LEN(OPERAND$) IF SEG$(OPERAND$,I,1)<>" " THEN TEMP$=TEMP$&SEG$(OPERAND$,I,1) NEXT I OPERAND$=TEMP$ NotNumber: IF OPCODE$="END" AND PASS=2 THEN PRINT:: PRINT "ASSEMBLY COMPLETE!":: CLOSE#1:: IF OUTSEL=3 THEN CLOSE #2:: STOP ELSE STOP IF OPCODE$="END" THEN RESTORE #1:: PASS=2:: LINE=OFFSET:: PRINT:: PRINT "SECOND PASS":: PRINT:: GOTO ReadLine //ASSEMBLE LINE IF PASS=2 THEN SearchData IF RPOINT=49 THEN PRINT "REFERENCE TABLE FULL!":: STOP IF LABEL$<>"" THEN REFTABLE$(RPOINT)=LABEL$:: REFADR(RPOINT)=LINE:: RPOINT=RPOINT+1 SearchData: IF SEG$(OPCODE$,1,1)="A" THEN RESTORE AData IF SEG$(OPCODE$,1,1)="B" THEN RESTORE BData IF SEG$(OPCODE$,1,1)="D" THEN RESTORE DData IF SEG$(OPCODE$,1,1)="G" THEN RESTORE GData IF SEG$(OPCODE$,1,1)="I" THEN RESTORE IData IF SEG$(OPCODE$,1,1)="L" THEN RESTORE LData IF SEG$(OPCODE$,1,1)="M" THEN RESTORE MData IF SEG$(OPCODE$,1,1)="N" THEN RESTORE NData IF SEG$(OPCODE$,1,1)="O" THEN RESTORE OData IF SEG$(OPCODE$,1,1)="P" THEN RESTORE PData IF SEG$(OPCODE$,1,1)="R" THEN RESTORE RData IF SEG$(OPCODE$,1,1)="S" THEN RESTORE SData IF SEG$(OPCODE$,1,1)="X" THEN RESTORE XData ReadData: READ OPC$,HEXVAL$,OPRNUM IF OPC$="XXX" THEN PRINT:: PRINT "INCORRECT OPCODE IN LINE ";LINE:: STOP IF OPC$<>OPCODE$ THEN ReadData IF (OPRNUM>0 OR OPRNUM=-1) AND OPERAND$=" " THEN PRINT:: PRINT "MISSING OPERAND IN LINE ";LINE:: STOP IF OPCODE$="INP" THEN OPERAND$=HEX$(VAL(OPERAND$)+8) IF OPRNUM=-1 THEN HEXVAL$=SEG$(HEXVAL$,1,1)&SEG$(OPERAND$,1,1):: OPERAND$="" IF SEG$(OPERAND$,1,1)<>"*" OR PASS=1 THEN FoundLabel OPERAND$=SEG$(OPERAND$,2,LEN(OPERAND$)-1) TEMP$="" FOR I=1 TO LEN(OPERAND$) IF SEG$(OPERAND$,I,1)<>" " THEN TEMP$=TEMP$&SEG$(OPERAND$,I,1) NEXT I OPERAND$=TEMP$ FOR I=0 TO 49 IF REFTABLE$(I)<>OPERAND$ THEN NextEntry CALL HEX(REFADR(I),OPERAND$) IF OPRNUM=1 THEN OPERAND$=SEG$(OPERAND$,3,2) GOTO FoundLabel NextEntry: NEXT I PRINT "LABEL NOT FOUND IN LINE ";LINE:: STOP FoundLabel: IF PASS=1 THEN FirstPass CALL HEX(LINE,HEXLINE$) ASMLINE$=HEXLINE$&" "&HEXVAL$&" "&OPERAND$ PRINT ASMLINE$ IF OUTSEL=4 THEN ElfSend IF OUTSEL=2 OR OUTSEL=3 THEN PRINT #2:ASMLINE$ GOTO FirstPass ElfSend: CALL HEX(HEXVAL$,DECVAL) GOSUB SendByte IF OPRNUM<=0 THEN FirstPass IF LEN(OPERAND$)>2 THEN OPR1$=SEG$(OPERAND$,1,2):: CALL HEX(OPR1$,DECVAL):: GOSUB SendByte:: OPERAND$=SEG$(OPERAND$,3,2) CALL HEXDEC(OPERAND$,DECVAL) GOSUB SendByte FirstPass: IF OPRNUM=-1 THEN OPRNUM=0 LINE=LINE+OPRNUM+1 GOTO ReadLine //OPCODE DATABASE AData: DATA ADC,74,0 DATA ADD,F4,0 DATA ADI,FC,1 DATA AND,F2,0 DATA ANI,FA,1 DATA XXX,XX,0 BData: DATA B1,34,1 DATA B2,35,1 DATA B3,36,1 DATA B4,37,1 DATA BDF,33,1 DATA BN1,3C,1 DATA BN2,3D,1 DATA BN3,3E,1 DATA BN4,3F,1 DATA BNF,3B,1 DATA BNQ,39,1 DATA BNZ,3A,1 DATA BQ,31,1 DATA BR,30,1 DATA BZ,32,1 DATA XXX,XX,0 DData: DATA DEC,20,-1 DATA DIS,71,0 DATA XXX,XX,0 GData: DATA GHI,90,-1 DATA GLO,80,-1 DATA XXX,XX,0 IData: DATA IDL,00,0 DATA INC,10,-1 DATA INP,60,-1 DATA IRX,60,0 DATA XXX,XX,0 LData: DATA LBDF,C3,2 DATA LBNF,CB,2 DATA LBNQ,C9,2 DATA LBNZ,CA,2 DATA LBQ,C1,2 DATA LBR,C0,2 DATA LBZ,C2,2 DATA LDA,40,-1 DATA LDI,F8,1 DATA LDN,00,-1 DATA LDX,F0,0 DATA LDXA,72,0 DATA LSDF,CF,0 DATA LSIE,CC,0 DATA LSKP,C8,0 DATA LSNF,C7,0 DATA LSNQ,C5,0 DATA LSNZ,C6,0 DATA LSQ,CD,0 DATA LSZ,CE,0 DATA XXX,XX,0 MData: DATA MARK,79,0 DATA XXX,XX,0 NData: DATA NOP,C4,0 DATA XXX,XX,0 OData: DATA OR,F1,0 DATA ORI,F9,1 DATA OUT,60,-1 DATA XXX,XX,0 PData: DATA PHI,B0,-1 DATA PLO,A0,-1 DATA XXX,XX,0 RData: DATA REQ,7A,0 DATA RET,70,0 DATA XXX,XX,0 SData: DATA SAV,78,0 DATA SD,F5,0 DATA SDB,75,0 DATA SDBI,7D,1 DATA SDI,FD,1 DATA SEP,D0,-1 DATA SEQ,7B,0 DATA SEX,E0,-1 DATA SHL,FE,0 DATA SHLC,7E,0 DATA SHR,F6,0 DATA SHRC,76,0 DATA SKP,38,0 DATA SM,F7,0 DATA SMB,77,0 DATA SMBI,7F,1 DATA SMI,FF,1 DATA STR,50,-1 DATA STXD,73,0 DATA XXX,XX,0 XData: DATA XOR,F3,0 DATA XRI,FB,1 DATA XXX,XX,0 //Hexadecimal numbers HexData: DATA 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F //SEND DATA TO ELF ROUTINE SendByte: CALL IO(3,1,CRU,1) !TURN ON RS232 CARD CALL IO(3,1,CRU+7,1) !TURN ON RS232 LED CALL IO(3,1,CRU+2,1) !SET HANDSHAKE OUT LINE TO HIGH CALL IO(3,1,CRU+1,0) !SET PIO PORT TO OUTPUT CALL LOAD(20480,DECVAL) !PLACE BYTE ON PIO PORT CALL IO(3,1,CRU+2,0) !CYCLE THE HANDSHAKE OUT LINE CALL IO(3,1,CRU+7,0) CALL IO(3,1,CRU+2,1) !TURN RS232 LED OFF CALL IO(3,1,CRU,0) !TURN OFF RS232 RETURN The attached disk contains the assembler called ELFASM as well as 3 programs for the ELF. I use the extension _S to indicate that this is the text source file which contains the assembly language code as well as the program instructions, and the _HEX extension to indicate that this is the assembled hexadecimal version of the program suitable for downloading to the ELF. Feel free to use your own extensions as you see fit. ELFMON is the ELF monitor program I mentioned earlier CYLON is a small demo of the Cylon Eyes effect on the ELF's LED's (a.k.a Battlestar Galactica) HILO is a small game where you have to guess a random computer picked number with as few guesses as possible ELFASM can assemble a source file and then output it to the screen, to a file in HEX format, to the parallel printer, or transfer it to the ELF directly using the adapter cable. You can also load a previously assembled HEX file and transfer it to the ELF without the need of assembling it. And here's a video of the entire project. As is usual with my hobby projects, it is highly unlikely anyone else will find this useful outside of myself, but hey, it was a great learning experience ELF.dsk
  4. As some of you know, I am constantly experimenting with interfacing the TI 99/A computer to the real world, and I am very fond of using the parallel port for that purpose because it is very easy to interface and program. That said, that kind of use of the parallel port does require low level programming, generally using assembly language, although one could achieve the same thing using either TurboForth or FbForth. This means that you are essentially out of luck unless you know how to program in assembly or Forth. But not anymore! I have written a set of assembly language routines accessible directly from Extended Basic which allow you to communicate at the low level with the parallel port, thus allowing you to focus on the interfacing part. In this blog entry, I will detail the hardware as well as the software required to achieve successful interfacing. First off, before we start discussing the software side of things, we need to have some sort of physical experimentation set up connected to the parallel port. The parallel connector on the RS232 card is a 16 pin proprietary connector primarily meant to connect to a Centronics parallel printer. The easiest way to go about this is to get hold of a TI printer cable which you can purchase here: http://www.connectworld.net/cgi-bin/cabled/L0810?. However, it is pricey, and you might check Ebay or AtariAge as an alternative. You can of course make your own as well if you are so inclined. Next cut off the Centronics end, strip the ends of the wires, and solder them to a DB25 connector (either male or female) just so: You can also use crimp type DB25 connectors if you don't want to solder, but I find that the latter provides a more sturdy connection. Pin 1 is the wire with the red stripe, and pin 16 is the last wire on the other side. The DB25 connector pins are numbered from 1 to 25, so you will only use 16 of them. Match the pin numbers with the proper wire on the cable. It is fiddly work, but well worth the effort. Once completed, you can get a parallel port breakout connector off of Amazon or Ebay, making sure that it mates with the sex of the connector on the cable: Now you should have easy access to all the parallel port pins. Just connect jumper cables from the breakout connector to a breadboard and off you go. Let's briefly describe the pinouts of the parallel port: Pin I/O Function Access1 O HANDSHAKEOUT CRU bit 22 I/O D7 (lsb) Byte >50003 I/O D64 I/O D55 I/O D46 I/O D37 I/O D28 I/O D19 I/O D0 (msb)10 I HANDSHAKEIN CRU bit 211 - Ground -12 O +5V via 10 Ohm -13 I SPAREIN CRU bit 314 O SPAREOUT CRU bit 315 O +5V via 1 KOhm -16 - Ground - The parallel port is bidirectional, meaning that it can be used for input or for output. It has 8 data lines D7-D0 corresponding to pins 2-9 which will be the main pins you will use for your projects. There are 2 input only lines (HANDSHAKEIN AND SPAREIN - pins 10 and 13) and 2 output only lines (HANDSHAKEOUT AND SPAREOUT - pins 1 and 14). There are also 2 +5V sources (pins 12 and 15), but I usually prefer to use an external power source for my projects. The remaining pins (11 and 16) are ground. As you can see, it is quite a versatile port with plenty of possibilities. I have used it to control a robotic arm, to drive a slot car and to connect to a raspberry Pi camera for vision experiments to name a few. A little further down, I will give you a practical example on how to use that set up and demonstrate how easy it is to experiment with it. But for now, I'll discuss the use of Extended Basic to control the parallel port. What you will need is the Extended Basic cartridge, 32K RAM, RS232 card and a disk drive. Download the attached disk image and transfer it to a real floppy disk or a Lotharek drive. It contains the assembly language routines required by Extended Basic for low-level parallel port access. You can peek at the code here if you want. The first thing your program should include are these 2 lines: CALL INIT CALL LOAD("DSKx.PIOLIB") Replace the x with the drive number where the file resides. These statements load up the utilities needed to control the parallel port. The following is a description of the actual control statements you will have available: CALL LINK("DATOUT",n) n is an integer between 0 and 255 and can be an explicit number or a numeric variable. The number is converted to binary and put out on the 8 data lines of the parallel port. This will allow you to control any or all of the data lines just by selecting the appropriate number. A discussion of the conversion between decimal and binary is beyond the scope of this blog, but the information is easy to obtain online and to understand. CALL LINK("DATIN",var) var is a numeric variable. This call will read the data lines of the parallel port, convert them to a decimal number, and place it in the variable. Based on the number returned, you will be able to tell which data lines were active. CALL LINK("SPROUT",n) n can be either 0 or 1, thus making the SPROUT line either low or high respectively. CALL LINK("SPRIN",var) var is a numeric variable. This call returns the logic state of the SPRIN line, 1 for high, 0 for low. CALL LINK("HSKOUT",n) n can be either 0 or 1, thus making the HSKOUT line either low or high respectively. CALL LINK("HSKIN",var) var is a numeric variable. This call returns the logic state of the HSKIN line, 1 for high, 0 for low. That's it! With these calls, you will be able to take complete control of the parallel port at the low level. Now for the fun part I'm going to demonstrate all these routines in action. I created a setup using LED's connected to the parallel port which will provide a visual demonstration of the XB commands. Here's the basic circuit: There is no need for an external power supply in this case because the circuit draws very little current. However, for more advanced interfacing, an external power supply will likely be needed. Note that the LED labeled D9 in the picture above should actually be D7. For starters, here's a simple XB program that asks you to input a number between 0 and 255, and outputs it to the parallel port, lighting up the appropriate LED. It's a good way to brush up on your decimal to binary conversion knowlege 10 CALL CLEAR20 CALL INIT30 CALL LOAD("DSK5.PIOLIB")40 CALL LINK("DATOUT",0) :: CALL LINK("HSKOUT",0) :: CALL LINK("SPROUT",0)50 INPUT "ENTER NUMBER: ":N :: IF N<0 OR N>255 THEN 5060 CALL LINK("DATOUT",N) :: GOTO 50 Line 40 clears all the data and signal lines. This is important because the initial state of the lines when you start the computer up is unpredictable. This next program exercises all the output lines by playing a game of ping pong between the HANDSHAKEOUT and SPAREOUT lines. First the HSKOUT LED lights up and throws the "ball" which travels along the data LED's. When it reaches the end, the SPROUT line lights up in turn to throw it back to the SPROUT LED. And so on and so forth. 10 CALL CLEAR20 CALL INIT30 CALL LOAD("DSK5.PIOLIB")40 CALL LINK("DATOUT",0) :: CALL LINK("HSKOUT",0) :: CALL LINK("SPROUT",0)50 CALL LINK("SPROUT",0) :: CALL LINK("HSKOUT",1)60 FOR I=0 TO 770 CALL LINK("HSKOUT",0)80 N=2^I :: CALL LINK("DATOUT",N)90 FOR DELAY=1 TO 10 :: NEXT DELAY100 NEXT I110 CALL LINK("SPROUT",1)120 FOR I=7 TO 0 STEP-1130 CALL LINK("SPROUT",0)140 N=2^I :: CALL LINK("DATOUT",N)150 FOR DELAY=1 TO 10 :: NEXT DELAY160 NEXT I170 GOTO 50 The main thing to understand here is that each data LED, from the LSB to the MSB, is represented by the value 2x, with x going from 0 to 7 for an 8 bit data bus. So 20 is 1, and the LSB LED lights up. Next, 21 is 2, and the second LED lights up, etc... Again this is basic binary notation. So in the program, line 50 lights up the HSKOUT LED and shuts off the SPROUT LED. Then it turns off the HSKOUT LED and starts a sequential lighting of the data LED's from 20 to 27. Once it gets to the end, the SPROUT LED lights up, then it turns off and the data LED's are sequentially lit in reverse from 27 to 20, then the cycle starts over. This last program demonstrates the HANDSHAKEIN AND SPAREIN lines: 10 CALL CLEAR20 CALL INIT30 CALL LOAD("DSK5.PIOLIB")40 CALL LINK("HSKIN",HSK) :: CALL LINK("SPRIN",SPR)50 PRINT "HSK: ";HSK;" SPR: ";SPR60 GOTO 40 All it does is poll the HSKIN and SPRIN lines and display their status. For this test, you need to supply a 5V power source to the setup in order to provide a logic state to the input lines. The same process is applicable to the data lines when used for input. These XB demo programs are included on the attached disk as well. Here's a video demonstrating all 3 programs in action on real hardware: https://youtu.be/NNFkgXqQR7A You should now have all the needed information and tools to go ahead and start experimenting with connecting your TI to the real world. You are only bound by your imagination! Feel free to ask for help if you run into any snags. XBPIO.dsk
  5. To start, I know most of you will ask why? Because I don't have one in my collection. I have an extra functioning stock (except for an led colour change) silver and black TI 99/4A to trade for a beige one. Would prefer to trade in Canada. Thanks
  6. Hello, I have been unable to load any cassette programs onto my Ti 99/4A. This is the first time I have attempted to do this in many years. I was able to save a test program onto a cassette, but each time I attempt to load it I receive a "No Data" or "Error in Data" message come up. I am able to hear the sound from the monitor so I know it is getting into the TI. I have tried different cassette players and used different volume settings. Any suggestions are appreciated. I would like to know as well if anyone has seen this happen. Thanks!
  7. Slot car racing sets have always fascinated me, and I have owned a few over the years. Unfortunately, it was always difficult to find opponents to race against beyond just a few runs. I have dabbled many times with the idea of a computer controlled opponent over the years, and finally decided to tackle it as a demo project for the 2016 Chicago International TI Faire in October 2016. I have a lot of experience under my belt interfacing the TI computer to the real world, using the PIO, joystick and cassette port as interfaces, and therefore it was only natural for me to attempt doing this using my good old TI 99/4A computer. The first idea I came up with was outfitting one of the slot cars with a centrifugal force sensor that could send a wireless signal to the TI equipped with a compatible wireless receiver, and thus allow the computer to adjust the speed of the car in order to keep the centrifugal force under a certain limit that would keep the car on the track. The obvious advantage here is that this would be track independent regardless of how tough and twisted the track was. I may still do that at some point, but it required a fairly large scale car and track in order to be able to accommodate the needed electronics and power supply, and I did not want to invest in a large slot car race track at this time. The alternative idea required a different approach, with 2 problems to solve: How to sense the location of the car on the track How to control the speed of the car The sensing part was solved by strategically positioning photoresistors on the track which will sense when the car is over them and thus report back a location to the computer. One only needs to know where a particular type of track starts, whether a curve or a straight, and adjust the speed of the car accordingly. These track sections will be labeled as sectors with a fixed car speed for each optimized by trial and error. Here's the basic circuit diagram: When the photoresistor is fully lit, i.e. there is no overlying car, then its resistance is very low and the PIO line is connected to the positive pole of the battery, and so is in a high state or 1. When the car is on top of the photoresistor, then the latter's resistance becomes very high, therefore the PIO line goes to ground or 0. From there, it's just a matter of masking in software the appropriate bit in the PIO data lines (there are 8 of them) to find out whether it is high or low and thus figure out which photoresistor got triggered. Since there are 8 available PIO lines, it's possible to detect up to 8 sectors on the track. As for speed control, I decided to use the cassette port motor control plug for the purpose. Earlier on, I had experimented with that method to ignite a rocket motor igniter at the request of a fellow TIer (Omega) as seen in the video below: https://youtu.be/4FHgEjmP8C4 Here, I replace the igniter with the connection to the track hand controller which is nothing but a variable resistor. The problem here is that when the relay is activated, then the slot car will get full power and will very likely fly off the track in an instant. One way I came up with to mitigate that problem was to use what I call Pulse Frequency Modulation, where full power is applied for a very brief amount of time, but then repeated frequently. The frequency of the on/off cycles will then determine the speed of the car. The frequency can be easily controlled in software and again I relied on a previous project where I control a robotic arm with the TI as detailed below (skip to 14:11 for the relevant part): https://youtu.be/HrDUJUfcD2k And here's the basic control circuit. I will be using a solid state relay instead of a mechanical one for durability, speed of actuation and lack of bounce. So now we have solved both problems, and it's just a matter of experimentation and putting it all together. I created a small PCB which incorporates both the sensing and motor components as discussed above. The slot car racing set I'm using is a cheap small one which only requires 5 photoresistors. The PCB layout was designed using Circuit Wizard and the PCB was produced using a homebrew process. And the finished product. It won't win any design awards, but hey it's functional Here's the source code for the control program: Below is the video of the experimentation and the completed project: https://youtu.be/TNhTnfGklIg That was a fun one SLOTCAR.dsk
  8. Here's an Extended Basic version of the classic board game Stratego where your opponent is the computer. The theme is the battle of Waterloo pitting Napoleon Bonaparte (you, with the blue units), Emperor of France, against the coalition forces led by the Duke of Wellington (the computer, with the red units). While the AI will put up a stiff defense, its success, or yours, will depend heavily on the initial setup of the forces on the field. The computer will vary its setup from game to game in order to avoid predictability. Designing the AI was pretty challenging because this is a game of incomplete information, and actually zero information at the start, and so the usual tree searches fail spectacularly. It turns out that programming common sense and strategic acumen is ridiculously difficult, particularly when memory is limited. There is definitely room for improvement, but with under 30 bytes of RAM left I had to make some tough choices, although I think the overall AI strength is pretty decent. At the very least it will not make idiotic mistakes Being an XB game fitted into 2 separate but linked programs, one for the initial setup and another for the main gameplay, it is pretty slow, so joystick jockeys need not apply. Average response time during the early and late game is about 55 seconds but can take several minutes during the middle game, and a complete game can easily take a couple of hours. UPDATE 4/7/19 With the help of Senior Falcon and his outstanding XB compiler, we were able to get Stratego to compile! Along the way, both the game and the compiler were enhanced, so make sure you check out the latest version of the latter, ISABELLA 2.0, under the XB development thread. Now, Stratego runs over 6x faster, with an average response time of 10 seconds only, and it gets shorter as the number of units dwindles! The AI has been beefed up as well since compilation freed up more memory, and I even managed to uncover a couple of deep bugs within the depth of that complex code. The game is now far more playable from a time-requirement standpoint, and I'm very pleased with the end-product. UPDATE 4/13/19 This last update does not make any enhancements to the gameplay. It combines the 2 parts of Stratego into one large program that is compiled using Senior Falcon's XB32K utility, thus eliminating the need to save/load data from disk when transitioning between the 2 parts, and in the process reducing the loading delay by a couple of minutes. This is mostly apparent for real hardware users however. Oh and the program now autoloads from XB. The manual has also been updated with the addition of a back cover as well. I think I'm going to officially sign off on this project at this point and call it done. Splash screen Setting up the forces Ready for battle! Combat resolution Napoleon ravaging Wellington's deep lines Wellington attempting a desperate right flank counter-attack Can you guess where the flag is? Napoleon wins the day! Enjoy! Here's the disk label courtesy of Omega. I do plan on creating a printed manual and disk package in very limited quantities hopefully in the next month or so. Stratego Manual.pdf STRATEGO.dsk
  9. The Heathkit Hero Jr robot came out in 1984 as a more home friendly version of the original Hero 1 robot, but was still equipped with multiple sensors, speech and programming capabilities albeit without a robotic arm attachment. I bought my robot on Ebay and upgraded it with extra memory (24K), an updated ROM, serial communication and a multi-cartridge which combined all of the cartridges produced for the Hero Jr into one master cart, as well as a beefy 10Ah battery and full documentation. The Robot Workshop (https://www.robotworkshop.com/robotweb/) still has most parts, upgrades and documentation for the Hero Jr at very reasonable prices. Manufacturer Heathkit Type robot Release date 1984 Introductory price Kit US$599.95, Assembled US$1000[3] Discontinued Before October 1987 (Assembled)[15] 1995 (Kit) Units sold 4000 (across 8 years) CPU Motorola 6808 1 MHz Memory RAM: 2 kB, expandable to 24 kB Monitor ROM: 32 kB Display 9 LEDs Sound Votrax SC-01 speech synthesizer[5] Input Hex keypad with 17 keys Power Batteries:6 V 3.8 A·h x2, x4 optional Dimensions 19 inches high[16] Mass 21.5 pounds[16] The interesting thing is that all the electronics are located in the "head" of the robot and under the front panel, while the drive mechanism and battery are in the bottom part, leaving most of the mid-section open, which was very inviting for modifications and modern upgrades. And while I dabbled with this idea for a while, I ended up deciding not to modify the robot from its original condition and opting to experiment with using the serial port as the only means of communication with it. The Hero Jr is capable of baud rates from 300 to 9600 with Even parity and 7 data bits. An early experiment I did involved a wired serial connection to a Raspberry Pi Model B where I had a Pi camera recognize a ball using the OpenCV framework running on the Rpi, and the result was communicated to the Hero Jr who in turn verbalized it using its on-board speech synthesizer: This served as a proof of concept, but I really wanted to ditch the serial tether and go completely wireless. I also wanted to use the TI 99/4A computer, and I already had quite a bit of experience with wireless serial communication on it from my previous wireless weather station project: The main problem I ran into was the the Xbee transceiver I used for that project did not support 7 data bits, only 8, and it turned out that almost all available modern transceivers had the same issue!. Luckily, I finally was able to find a very cheap Chinese transceiver called the HC-12 which costs less than $5 per module and supports a wide range of communication parameters. It's really designed for use with an Arduino, but with the addition of a GPIO to serial converter, one can connect it to a standard computer terminal. From there, I went through a couple of experimental tests as shown below. The main difficulty encountered was the very short range of the coil antenna that comes stock with the HC-12 module, and so this required upgrading it to beefier coax antenna. From there I was finally ready to put the project together using the TI 99/4A computer. I opted to use RXB on the TI side because it allowed low-level access to the serial card using the CALL IO command, something not available on other Basics. This was necessary because the HC-12 was not very reliable in its wireless transmissions and communication was frequently dropped, thus requiring a form of communication time-out feature in order to resend dropped data packets. Here's the code for the TI. You might note that there are a lot of repetitive routines which could not be consolidated into subroutines because the ON ERROR command in Extended Basic does not work within subroutines. // HERO Jr remote exploration program // November 2019 // INITIALIZATION CALL CLEAR OPTION BASE 1 DIM MAP(23,32) HOMEX=16 HOMEY=12 PRANGE=0 TCOUNT=0 DIR=1 !1=N 2=E 3=S 4=W OPEN #1:"RS232.BA=9600.DA=7.PA=E.EC",UPDATE CRU=2464 !CRU ADDRESS OF TMS9902 (>1340) DIVIDED BY 2 // CHECK IF ROBOT IS READY PRINT "CHECKING ROBOT STATUS" CheckStatus: CALL IO(3,1,CRU+18,0) PRINT #1:65 GOSUB BytePresent IF FLAG=0 THEN CheckStatus Status: ON ERROR Status INPUT #1:ANS$ ON ERROR STOP IF VAL(ANS$)<> 1 THEN CheckStatus ELSE PRINT "ROBOT IS READY!": : PRINT "PRESS ANY KEY TO START" GetKey: CALL KEY(0,K,S) IF S=0 THEN GetKey // SET UP DISPLAY CALL CLEAR // CHARACTER DEFINITIONS CALL CHAR(104,"FFFFFFFFFFFFFFFF") !BLACK LEVEL 0-20 CALL CHAR(112,"FFFFFFFFFFFFFFFF") !GRAY LEVEL 21-100 CALL CHAR(120,"FFFFFFFFFFFFFFFF") !WHITE LEVEL 101-255 CALL CHAR(105,"FFC3A59999A5C3FF") !OBSTACLE CALL CHAR(106,"183C5A9918181818") !UP ARROW CALL CHAR(107,"080402FFFF020408") !RIGHT ARROW CALL CHAR(108,"18181818995A3C18") !DOWN ARROW CALL CHAR(109,"102040FFFF402010") !LEFT ARROW DIRSPR=106 CALL COLOR(10,2,16,11,15,16,12,16,16) CALL SPRITE(#1,DIRSPR,9,(HOMEY-1)*8+1,(HOMEX-1)*8+1) // START EXPLORATION RX=HOMEX RY=HOMEY Explore: TCOUNT=TCOUNT+1 IF TCOUNT>10 THEN Home // GET LIGHT LEVEL LightInput: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:6 !Read light sensor GOSUB BytePresent !WAIT FOR BYTE TO COME IN IF FLAG=0 THEN LightInput Status1: ON ERROR Status1 INPUT #1:LIGHT$ ON ERROR STOP IF VAL(LIGHT$)<21 THEN CALL HCHAR(RY,RX,104) ELSE IF VAL(LIGHT$)<101 THEN CALL HCHAR(RY,RX,112) ELSE CALL HCHAR(RY,RX,120) CALL DELAY(1) // Check for movement in front of robot MotionCheck: CALL IO(3,1,CRU+18,0) ! CLEAR RECEIVE BUFFER PRINT #1:8 !Read infrared sensor GOSUB BytePresent IF FLAG=0 THEN MotionCheck Status7: ON ERROR Status7 INPUT #1:HEAT$ ON ERROR STOP IF VAL(HEAT$)=0 THEN RangeInput DISPLAY AT(24,1)BEEP:"MOTION DETECTED!" Speak1: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:9 !Speak CALL DELAY(1) PRINT #1:1 !PLEASE MOVE CLEAR OF ME GOSUB BytePresent IF FLAG=0 THEN Speak1 Status8: ON ERROR Status8 INPUT #1:ANS$ ON ERROR STOP IF VAL(ANS$)<>89 THEN Speak1 DISPLAY AT(24,1):" " GOTO MotionCheck // Check for obstacles RangeInput: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:7 !Read sonar GOSUB BytePresent IF FLAG=0 THEN RangeInput Status2: ON ERROR Status2 INPUT #1:RANGE$ ON ERROR STOP IF VAL(RANGE$)>40 AND ((DIR=1 AND RY>2) OR (DIR=2 AND RX<31) OR (DIR=3 AND RY<22) OR (DIR=4 AND RX>2)) THEN GOTO PathClear IF DIR=1 THEN CALL HCHAR(RY-1,RX,105):: MAP(RY-1,RX)=1 IF DIR=2 THEN CALL HCHAR(RY,RX+1,105):: MAP(RY,RX+1)=1 IF DIR=3 THEN CALL HCHAR(RY+1,RX,105):: MAP(RY+1,RX)=1 IF DIR=4 THEN CALL HCHAR(RY,RX-1,105):: MAP(RY,RX-1)=1 Speak2: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:9 !Speak CALL DELAY(1) PRINT #1:2 !OBSTACLE DETECTED GOSUB BytePresent IF FLAG=0 THEN Speak2 StatusObs: ON ERROR StatusObs INPUT #1:ANS$ ON ERROR STOP IF VAL(ANS$)<>89 THEN Speak2 //Back up Reverse: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:2 GOSUB BytePresent IF FLAG=0 THEN Reverse Status3: ON ERROR Status3 INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN Reverse IF DIR=1 THEN RY=RY+1 IF DIR=2 THEN RX=RX-1 IF DIR=3 THEN RY=RY-1 IF DIR=4 THEN RX=RX+1 CALL LOCATE(#1,(RY-1)*8+1,(RX-1)*8+1) CALL DELAY(2) //Check for surrounding blocked path IF DIR=1 THEN CALL GCHAR(RY,RX+1,BLOCK):: GOTO Turn IF DIR=2 THEN CALL GCHAR(RY+1,RX,BLOCK):: GOTO Turn IF DIR=3 THEN CALL GCHAR(RY,RX-1,BLOCK):: GOTO Turn CALL GCHAR(RY-1,RX,BLOCK) Turn: IF BLOCK<>105 THEN Go_Right ELSE Go_Left //Turn right Go_Right: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:4 GOSUB BytePresent IF FLAG=0 THEN Go_Right Status4: ON ERROR Status4 INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN Go_Right DIR=DIR+1 DIRSPR=DIRSPR+1 IF DIR>4 THEN DIR=1::DIRSPR=106 CALL PATTERN(#1,DIRSPR) CALL DELAY(2) IF HFLAG=1 THEN Home GOTO Explore //Turn left Go_Left: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:5 GOSUB BytePresent IF FLAG=0 THEN Go_Left Status6: ON ERROR Status6 INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN Go_Left DIR=DIR-1 DIRSPR=DIRSPR-1 IF DIR<1 THEN DIR=4::DIRSPR=109 CALL PATTERN(#1,DIRSPR) CALL DELAY(2) IF HFLAG=1 THEN Home GOTO Explore //Move forward PathClear: CALL DELAY(1) Forward: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:3 GOSUB BytePresent IF FLAG=0 THEN Forward Status5: ON ERROR Status5 INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN Forward IF DIR=1 THEN RY=RY-1 IF DIR=2 THEN RX=RX+1 IF DIR=3 THEN RY=RY+1 IF DIR=4 THEN RX=RX-1 CALL LOCATE(#1,(RY-1)*8+1,(RX-1)*8+1) CALL DELAY(2) IF HFLAG=1 THEN Home GOTO Explore // Go home routine Home: HFLAG=1 IF RX=HOMEX AND RY=HOMEY THEN DISPLAY AT(24,1)BEEP:"AT HOME!":: GOTO GetKey1 ELSE DISPLAY AT(24,1)BEEP:"GOING HOME..." Speak3: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:9 !Speak CALL DELAY(1) PRINT #1:3 !GOING HOME GOSUB BytePresent IF FLAG=0 THEN Speak3 StatusHome: ON ERROR StatusHome INPUT #1:ANS$ ON ERROR STOP IF VAL(ANS$)<>89 THEN Speak3 IF RY>HOMEY AND MAP(RY-1,RX)=0 THEN TDIR=1:: GOTO CheckFacing IF RY<HOMEY AND MAP(RY+1,RX)=0 THEN TDIR=3:: GOTO CheckFacing IF RX>HOMEX AND MAP(RY,RX-1)=0 THEN TDIR=4:: GOTO CheckFacing IF RX<HOMEX AND MAP(RY,RX+1)=0 THEN TDIR=2:: GOTO CheckFacing GOTO Explore CheckFacing: IF DIR<>TDIR THEN FacingTurn ForwardH: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:3 GOSUB BytePresent IF FLAG=0 THEN ForwardH StatusHF: ON ERROR StatusHF INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN ForwardH IF DIR=1 THEN RY=RY-1 IF DIR=2 THEN RX=RX+1 IF DIR=3 THEN RY=RY+1 IF DIR=4 THEN RX=RX-1 CALL LOCATE(#1,(RY-1)*8+1,(RX-1)*8+1) CALL DELAY(2) GOTO Home FacingTurn: IF ABS(TDIR-DIR)>2 AND TDIR<DIR THEN TurnRightH IF ABS(TDIR-DIR)>2 AND TDIR>DIR THEN TurnLeftH IF TDIR<DIR THEN TurnLeftH TurnRightH: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:4 GOSUB BytePresent IF FLAG=0 THEN TurnRightH StatusHR: ON ERROR StatusHR INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN TurnRightH DIR=DIR+1 DIRSPR=DIRSPR+1 IF DIR>4 THEN DIR=1::DIRSPR=106 CALL PATTERN(#1,DIRSPR) CALL DELAY(2) GOTO CheckFacing TurnLeftH: CALL IO(3,1,CRU+18,0) !CLEAR RECEIVE BUFFER PRINT #1:5 GOSUB BytePresent IF FLAG=0 THEN TurnLeftH StatusHL: ON ERROR StatusHL INPUT #1:ANS$ ON ERROR STOP IF ANS$<>"89" THEN TurnLeftH DIR=DIR-1 DIRSPR=DIRSPR-1 IF DIR<1 THEN DIR=4::DIRSPR=109 CALL PATTERN(#1,DIRSPR) CALL DELAY(2) GOTO CheckFacing // Resume exploration GetKey1: CALL KEY(0,K,S) IF S=0 THEN GetKey1 DISPLAY AT(24,1):" " HFLAG=0 GOTO Explore // Check for incoming byte over serial line BytePresent: COUNTER=0 CheckByte: CALL IO(2,1,CRU+21,BYTEIN) IF BYTEIN=0 THEN COUNTER=COUNTER+1 ELSE FLAG=1:: RETURN IF COUNTER>50 THEN FLAG=0:: DISPLAY AT(24,1)BEEP:"TIME OUT! RETRYING...":: CALL DELAY(1):: DISPLAY AT(24,1):" ":: RETURN ELSE GOTO CheckByte // Delay routine SUB DELAY(DUR) FOR I=1 TO DUR*100 NEXT I SUBEND On the Hero Jr side, I ran a very simple Basic program which accepted coded commands mapped to specific robot functions and executed them, and also sent back sensor data and communication acknowledgments. All actual control and decision making was made by the TI. 1 REM HERO ROAM PROGRAM 10 INPUT C 20 IF C<>65 THEN GOTO 10 21 FOR I=1 TO 100:NEXT I 22 PRINT 1 30 INPUT C 35 IF C<1 THEN GOTO 30 36 IF C>9 THEN GOTO 30 40 ON C GOSUB 500,600,700,800,900,1000,1100,1200,1300 50 GOTO 30 500 REM FORWARD 5 UNITS 510 FWD 5 511 GOSUB 1510 515 PRINT 89 520 RETURN 600 REM BACKWARD 5 UNITS 610 BWD 5 611 GOSUB 1510 615 PRINT 89 620 RETURN 700 REM FORWARD 10 UNITS 710 FWD 10 711 GOSUB 1510 715 PRINT 89 720 RETURN 800 REM RIGHT ROTATION 810 RIGHT 90 811 GOSUB 1510 815 PRINT 89 820 RETURN 900 REM LEFT ROTATION 910 LEFT 90 911 GOSUB 1510 915 PRINT 89 920 RETURN 1000 REM LIGHT LEVEL DETECTION 1010 L=EYE 1011 GOSUB 1510 1015 PRINT L 1020 RETURN 1100 REM RANGE MEASUREMENT 1105 R=SONAR 1110 GOSUB 1510 1115 PRINT R 1120 RETURN 1200 REM INFRARED HEAT DETECTION 1210 I=MOTION 1211 GOSUB 1510 1215 PRINT I 1220 RETURN 1300 REM SPEAK FUNCTION 1305 INPUT C 1306 IF C<1 THEN GOTO 1305 1307 IF C>3 THEN GOTO 1305 1308 ON C GOTO 1310,1340,1370 1309 REM PLEASE MOVE CLEAR OF ME 1310 SPEAK "PLEZHPA1MOO1VPA1KLEERPA1OVPA1MEE" 1315 GOSUB 1510 1320 PRINT 89 1330 RETURN 1335 REM OBSTACLE DETECTED 1340 SPEAK "OBSTAEKLPA1DE1TEH3KTEHD" 1345 GOSUB 1510 1350 PRINT 89 1360 RETURN 1365 REM GOING HOME 1370 SPEAK "GOWINGPA1HO1O1MM" 1375 GOSUB 1510 1380 PRINT 89 1390 RETURN 1500 REM DELAY SUBROUTINE 1510 FOR T=1 TO 200:NEXT T 1520 RETURN > And here's the final result: Another fun one
  10. Our intention is to collect as much historical background to the Why, When, Who and How GPL came to be. Please contribute by commenting to this topic. Things like : 1. When did it all start ? 2. Why ? 3. Who worked on it's development and interpreter ? 4. What was the real purpose ? 5. How does it compare to other languages ? 6. What can we do with it today ? 7. Coding in GPL in the 1980's compared to 2020 the stark difference. 8. What commercial software was written in GPL ? 9. Who were the important people around this language ? 10. Links to important material. If we can collect snippets of information from as many people as possible we can then compile it into a solid web page that will serve as a historical snapshot of this quirky yet beautiful language that time almost forgot. Thanks for your contributions. We will share a link to the webpage that will contain all you need to know about GPL as soon as we set it up.
  11. Sid1968

    WTB: TI-99/4a

    If someone would sell me a working TI-99/4a for a friendly price i would be glad. Alternativly i can offer in exchange for a full working TI-99/4a a full working recapped (New electolytic capacitors) Commodore C64 (PAL) or VIC-20 (NTSC or PAL). Kind Regards from Germany Sid1968
  12. Hi. New game can be found in the Development section: http://atariage.com/forums/topic/288039-new-game-stratego/
  13. This has been packed and shipped and on its way to a new home. Texas Instruments Omni 800 Model 840 printer for free! Formerly owned (and probably used at work) by a TI employee here in Houston. It even comes with TI work product! I have not tested the printer at all so I make no claims on its work ability. Local pickup is preferred but I'm willing to ship if there is no local interest and you want to pay the shipping. It's already packed well in the original box which is 29"x23"x14" and about 32# I can't keep this around any longer and need to get rid of it. If I can't find any takers then it will sadly have to go to the recycler.
  14. Hey all, I haven't been using my TI much as of late, and I wanted to get back into things with a nice game of centipede. I don't own the game, but I have a ROM of it and in the past was able to play it using the editor assembler cart along with my nanoPEB so that I could assemble and run the game from my CF card. Unfortunately, I cannot remember how to do it now. Everything is set up, I have the editor/assembler diskettes on the CF card as well and they are working just fine. I can load the assembler and everything, I just can't figure out how to get this centipede assembly file working. From what I remember I need a .DSK file, and to copy that to the CF card, then I need to mount it on the TI into disk 3, then I need to call something like DSK3.CENT, but that doesn't seem to be working. Any ideas?
  15. EDITED TO ADD: These are all sold! Thanks to everyone who responded! Merry Christmas! ************************ Hi everybody, A friend of the family passed away recently and while cleaning out his shed we found seven Texas Instruments TI-99a that were out of the box, and one that was in the box and looks rather new. Also a bunch of cartridges and some books. And a few cassettes. No joysticks though. We might have had floppy drives and such, but they were not labeled and several boxes of old 5.25 floppies and drives were donated to the local Goodwill. The one in the box has the cords, but we only found three other power cords. Again, there may have been some that got donated. Is anyone interested in buying the whole lot? I've taken some pictures and will attach them. Or should the we stick them on ebay? I figure y'all will most likely use them. I have no way to test them, my tv is newer and does not have rca jacks on it. Thanks! -Mike "gandalf23"
  16. In 2009, I for some reason changed my YouTube user name, and in the process a couple of hardware videos I had under the old name were no longer linked to my newer projects. This bugged me, so I decided to included them here for posterity 1- Light pen for the TI 99/4A computer This was a crude attempt at creating a light pen for the TI given that this machine lacked the necessary circuitry to create an effective one. The solution I came up with is actually pretty simple as detailed in the video... Programmed in TI Extended Basic. https://youtu.be/Acn0IbHpPho 2- Magnetic strip card reader This project was a bit more involved from a preparation standpoint in trying to understand how magnetic strip readers on credit cards worked and the kind of encoding used, then figuring out how to connect one to the TI. The quality of the video is poor, but it's still watchable. https://youtu.be/U4t0Zg-_lVw
  17. Vorticon

    Why a blog?

    I am by nature a tinkerer with a wide range of interests, and every year I come up with a variety of projects, whether in hardware or software, most of which nowadays end up on YouTube. Unfortunately, I have rarely documented my thought processes with each project, nor any mistakes I made along the way to completion. So I figured going forward I would start keeping such a blog, if nothing else for my own records, although I suspect that some readers might be interested in some aspects of it. So here it goes...
  18. Folks, I have a pile of trade/sale fodder that needs to hit ePay or trade for other stuff I do not have. I am open to offers for cash and VERY open to trades. The only thing I have a definite price range on is the 7800 as I need to *try* and get what I paid for it. I have a LOT of stuff to put up, so I will slowly add to this post and, hopefully, edit as stuff gets sold/traded. I have attached photos. (WARNING: They are big, click at your peril!)1 DETAILS: I take PayPal // eBay feedback is eBay Seller: marlin4 I ship worldwide, but be aware USPS raised its rates recently. I prefer trades, in the following order of 'desire.' WANTS: Atari 8-bit carts/hardware. (IDE Plus 2.0 hint, hint ) Not so much disks, but sometimes cassettes. TI 99/4a carts/hardware/cassettes. Sometimes disks. Atari Jaguar games Atari Lynx games PS3/PS4/PS Vita games I do not have (ask for haves list, is long) Exactly which ones? Anything that is NOT on the attached PDFs is something I would be interested in trading for. If you have it and it is NOT listed on my "Haves" list, I am interested. Some may think that is too much. I assure, I am serious. If you want to buy something, make an offer, I will respond politely either way. HAVES: (Pictures attached, but not in body): [Everything that is going up right now is photographed. Some trades are being discussed, but not finalized. As soon as everything gets written up and/or traded. Then, it goes to ePay. Please save me (and the stuff) from that painful fate!] [However, don't wait to message if you want to trade/buy, I will trade/sell it right away!!] MISCELLANY: 2015 Playstation Experience Trading Cards PM for pics and list Consoles Atari 7800 - Peritel/French/PAL Version in box, with docs SOLD to AA Member Tested & Working, Works JUST fine with a US power supply. This is my second one. Includes: 2 CX78 Joypads, working (both have the little joysticks, but only one actually stays in) 1 220v//european power supply 1 SCART cable Manuals & registration cards Why you want this: 1) It has an RGB board & port BUILT-IN by Atari!! If you get an Atari ST SC1435 cable (or build your own), it will connect directly to an RGB (15KHz) monitor!2 2) It plays all of the PAL versions of the 7800 carts which are less expensive say, for example, Motor Psycho! 3) The serial number matches the box What I am asking: US$200 OBO (shipping worldwide, NOT included) INTELLIVISION Major League Baseball (Box, docs, overlays, catalog) Atari 5200 THREE versions 5200 Owners Manual (some water damage) 2 5200 SuperSystem manual/poster Controller Holder manual VCS Cartridge Adapter (severely water damaged) RealSports Football w/ manual Pac-Man w/ manual Pac-Man w/ manual & overlay Super Breakout Pole Position Missile Command (manual ONLY) Q*bert (manual only) Qix (manual only) Galaxian (manual only) Centipede (manual only x2) MAC/WINDOWS Intellivision Great Hits CD (from 2003!!!) MS-DOS Police Quest (5.25" floppy) ask for pic Atari 400/800/XL/XE Hardware & Software ANALOG Magazines January 1985 February 1986 April 1988 November 1989 +1 more Parker Bros. Atari 8-bit carts (in box w/ docs) --as a lot-- Frogger Box is a little discolored, cartridge holder a little flattened Super Cobra Label has Actiplaque™ Manual has tear Star Wars: Return of the Jedi: Death Star Battle Box is a little crushed Loose Atari made A8 carts --separate or as a lot-- Galaxian traded Centipede Jungle Hunt traded Pole Position traded Robotron: 2084 AtariWriter Missile Command traded Pac-Man Asteroids traded E.T. Phone Home SUPER RARE HTF MOAR POWER UBER RARE: "Star Raider" {ahem}3 Dig Dug Defender Loose Grab Bag A8 Carts --as a lot or separate-- XE Lode Runner XE Ace of Aces XE Flight Simulator II K-Star Patrol Fun With Art Super Cobra Actiplaque! Buck Rogers: Planet of Zoom River Raid Demon Attack Loose Atari carts Grab Bag #2 --as a lot or separate-- Defender Dig Dug Asteroids Pengo Super Breakout Pac-Man River Rescue Loose Atari Made A8 cartridge --separate-- Educational System, Master Cartridge (Brown label) Loose w/ Manual A8 carts --separate or as a lot-- Qix traded Frogger Computer Chess Complete A8 Carts --separate-- Kickback (Thorn EMI, Box, docs, catalog, all good shape) Plattermania (Epyx, sealed) Gorf (Roklan Software, grey/blue cart; docs & box: see pics) Robotoron: 2084 (Atari, big box w/ Joystick holder, manual) E.T. Phone Home (box is "okay") Jungle Hunt Asteroids Lg Box (even has a notice telling you if you leave it on pause too long, you cannot unpause!) Galaxian (lg Box, okay) Joust (Lg XL Box, fair to middlin box) Sealed A8 Carts --separate-- Blue Max Ballblazer Food Fight Centipede Jungle Hunt (smooshed box)4 Caverns of Mars (smooshed box)4 Qix (smooshed box)4 RealSports: Football Galaxian (small) Joust (smooshed box)4 K-Start Patrol (box is old, dusty, but technically sealed) TI 99/4a Software & Hardware TI Books Using & Programming the TI 99/4a Including Ready-To-Run Programs Entertainment Games in TI BASIC & Extended BASIC Complete TI 99/4a Carts Defender (AtariSoft, Box, docs, reg. cards) Demon Attack (TI, Box, docs, stickers on box) TI 99/4a Carts with manual & loose CartVer: Bg=Beige, Bk=Black, CL=Bk Cart, Color Label, BgBL=Bg Cart, Bk style label ManVer: P=Plain version, F=Fancy graphics version TI 99-4a Loose Trade.pdf MORE COMING SOON!! 1PM if you want additional pics or have questions 2LIke a Commodore 1084/1084S/Phillips/Atari SC1435. I have tested them working with all but the Phillips. The connector is the ST monitor port, but the 7800 did not sync correctly to the SC1224 I had. 3I say, I KNOW it's not rare, that's what makes it funny. Now go away, you're bothering the customers . . . 4"smooshed" is a highly technical term. You should PM for pics TI 99-4a Collctn.pdf Atari8bit Lists (Have).pdf
  19. From the album: Repairing TI 99/4A

    An image of my TI 99/4A motherboard soon after I pulled the 8 VDP RAM chips (TMS4116).

    © David Vella

  20. Davvel

    ti99 VRAM 1

    From the album: Repairing TI 99/4A

    A few photos whilst repairing my TI 99/4A

    © None

  21. Link to pictures below Here's a link to my inventory https://docs.google.com/spreadsheets/d/1dCJT3pHeUUF9dzB3BwMCbtYloNuqf7tgph6k8Reglvk/edit?usp=sharing Hey guys! I own a small retro store in Dracut, Ma called Bazaar Game Trading (Facebook.com/bazaargametrading) and being the only retro gaming store in the area that takes anything pre nes, I am seeming to run into a lot of really really cool stuff. I got an atari 400/800/xl/xe lot in recently, most CIB, most including ALL inserts, most having pristine beautiful labels, and I'm seeming to only find loose cart copies circulating for a lot of these. I have a variety of stuff though, please message me if you're interested in anything =D so, Message me by reply, private message, email- bazaargametrading@gmail.com, or facebook message at facebook.com/bazaargametrading Thanks everyone! My pictures are uploaded on flickr at this address https://www.flickr.com/photos/128465609@N08/
  22. I'm going to be at PRGE this weekend, and inquired about putting my TI-99/4 (the original, not 4A) in the auction but was told it's worth about the same as a 4A, and could only be auctioned with a start price of $20 with no reserve. That didn't sound right to me. Anyway, if someone is interested in this, and will pay fair market (not sure if one has been on Ebay recently, I couldn't find one), I can bring it and sell it there. I have powered it up, and it seems to work fine, played some TI Invaders on it for a bit.
  23. All prices are before shipping - Updated and lowered prices for what's left 7/20 TI-99 4/A games with manuals - All in great shape - not tested but I have sold some on eBay and have not heard they did not work from the buyers $2 each Weight Control and Nutrition Blasto Tombstone City Early Learning Fun Video Chess Chisholm Trail SNES $1 each Super Play Action Football Super Bases Loaded Super Tecmo NBA Basketball NCAA Basketball Bill Laimbeer's Combat Basketball Gameboy Bo Jackson's Two Games in one $1 Dreamcast $1 each NBA2K1 CIB (Broken Jewel Case) World Series Baseball 2K1 (Broken Jewel Case) NHK2K NFL2K1 Gamecube Avatar: The Last Airbender (disc only) $3 Will ship in smaller jewel case
  24. I have a CorComp RS232 Serial & Parallel card for the PHP1200 Peripheral Expansion Box (PEB) for sale. I bought it over 6 months ago so I could connect it to a parallel printer and to a UDS10 serial to Ethernet adapter. While I could get the parallel interface working with the printer, I could not get it communicating with the UDS10, even trying different serial and null modem cables. This maybe due to me accidently shorting out the power regulator of the card which took out the PEBs PSU or to an incompatibility between the card and UDS10 . However, on repairing the PEB, the card appeared to function correctly as I the LED came on and the PIO worked as before. So, it's being sold as-is, may be faulty. No refunds. I am looking for offers of around $20 plus $10 shipping by USPS 2 day priority tracked.
  25. Deal pending... The bad: writing and tape on the box and no sponge on the mic I don't have any of the MB games to test it.
×
×
  • Create New...