Jump to content

Search the Community

Showing results for tags 'TMS9900'.

  • 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
  • DOS and Vintage PCs's DOS Discussion

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

Product Groups

  • Subscriptions

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. Don't forget to visit Ninerpedia; our wiki about the TI-99/4A. Check here. If you are the owner of one of the programs or sites and do not want it posted, please let me know and it will be removed immediately. Also if you think a reference to an important development resource is missing, then please let me know and I'll be happy to add to the list. If you are new to the TI-99/4A or returning after a long time, then you might want to check out the TI-FAQ page here. Also make sure to visit the TI-99/4A Home Computer Book Archive by @airernie, now hosted by @acadiel. It's a great collection of excellent technical books about programming the TI-99/4A. Latest update: March 17th 2024 1. Emulators classic99 win Windows-based emulator including TI-99 ROMs under license from Texas Instruments. Debugger, memory heatmap, OS file support, support for 128K bank-switch carts, can create ROM/GROM cartridges, possibility to record AVI movies. User manual is included. Check the classic99 Updates thead for the latest news on classic99. Click here to watch Tursi's classic99 tips and tricks video tutorial. Author: @Tursi MAME win+linux Multiple system emulator that supports the TI-99/4, TI-99/4A, TI-99/8, and Geneve. Emulates more than 400 systems. Requires ROMs from the original systems. Features a powerful Debugger, most accurate emulation, support for 64K bank-switch carts / Gram Kracker / UCSD p-code expansion card. Possibility to record AVI movies. Also see the MAME section in ninerpedia. Author: @mizapf Js99'er All major browsers TI-99/4A emulator written in javascript. Has support for TMS9918A VDP & supports most of the F18A functionality, TMS9919 sound. Virtual disk drives using google drive. Some preloaded games, demos and applications included. Js99'er development thread on Atariage can be found here. Js99'er source code repository on Github can be found here. Author: @Asmusr V9t9 win+linux TI-99/4A emulator written in java. Has support for TMS9918A VDP, TMS9919 sound & TMS5220 speech. Debugger included. V9t9 also supports the UCSD P-Code system. Some of the advanced V9t9 features include: ability to save/restore emulator state, record & playback, support for V9938 VDP. Requires ROMs from the original systems. This emulator needs the Java Runtime Environment available for free at Oracle. V9t9 discussion thread can be found here. Author: @eswartz DS99/4a DS/DSI TI99/4a Emulator for the Nintendo DS/DSi. DS99/4a discussion thread can be found here. Author: @wavemotion Win994a win Windows-based emulator of the TI-99/4a Good TMS9900 cross-assembler included. No debugger. Ti994w win Windows based emulator. Offers 80 column support, SAMS card 1Mb of RAM, V9938 support, built-in debugger, ... Author: @F.G. Kaal TI-99/Sim linux Linux-based software simulation of the TI-99/4A. PC99 DOS Commercial DOS-based emulator licensed by Texas Instruments to sell ROMs. 2. Programming languages Assembly language - Software Winasm99 win Windows based TMS9900 cross assembler with GUI and ability to build 8K cartridge roms. Is part of the Win994a emulator. asm990 linux Linux based cross Assembler for the TI 990 by Dave Pitts. You'll also need lnk990 a separate linker which can be found on the same page. TIasm win TMS9900 cross assembler TIasm will build 8K console (>0000) or cartridge (>6000) rom. Is part of the old V9T9 emulator package. Source is included. Editor/Assembler IV TI-99/4A Editor/Assembler IV is a module for the TI99/4A home computer. The software this cartridge contains is the in TMS9900 assembler rewritten Editor and Assembler loader, Program loader and an implementation of my own written Linking Loader and a simple debugger. The editor and debugger are running completely in the module space (>6000 - >7FFF). The assembler is copied from EPROM to CPU RAM before it is started. Author: @F.G. Kaal XA99 - Cross Assembler 99 win XA99 (Cross Assembler 99) is a program for assembling TMS9900 assembler code on the PC. Author: @F.G. Kaal L99 - Linker 99 win L99 is a tagged object file linker by Fred Kaal for creating program files for the TI99 and Geneve home computer. Author: @F.G. Kaal xdt99 - TI 99 Cross-Development Tools win, linux, OS X The TI 99 Cross-Development Tools (xdt99) are a small suite of programs that facilitate the development of programs for the TI 99 family of home computers on modern computer systems. All programs are written in Python and thus run on any platform that Python supports, including Linux, Windows, and Mac OS X. Includes xas99 (TMS9900 cross-assembler), xga99 (GPL cross-assembler!) and some command line tools for handling disk images and nanoPEB/CF7A+ volumes. The development thread on atariage can be found here. Author: @ralphb Assembly language - Manuals Editor/Assembler reference manual PDF The official Editor/Assembler reference manual. Note that this is not a tutorial for beginners. Still, it's an essential manual when writing assembler for the TI-99/4A. The online version can be found here. The TMS9900 Cheat-Sheet PDF Very helpful reference card with opcodes, VDP tables, colors, etc. Author: @SteveB COMPUTE!'s beginner's guide to assembly language on the TI-99/4A PDF The Lottrup book. The only manual available today focusing on programming games in TMS9900 assembler. The examples in the book are for the Mini Memory line-by-line assembler which is rather limited. The manual also contains a few errors. Check here for the corrections. Nonetheless this book is a must-read for everyone seriously interested in writing assembler games for the TI-99/4A. The online version can be found here. Introduction to Assembly Language for the TI Home Computer PDF The Molesworth assembly language introduction book. Covers VDP communication, keyboard reading, file access and a lot more. The Art of Assembly series PDF The full series of articles by the late Bruce Harrison compiled as PDF. Over 600 pages, very well written and thorough. Assembly on the 99/4A WEB Excellent thread on Assembly language programming for the TI-99/4A, focussing on game loops, etc. Author: @matthew180 SPECTRA2 zip Library for programming games in TMS9900 assembly language. Has routines for handling tiles, sprites, sound & task scheduler. Documentation manual PDF is included. Author: @retroclouds BASIC - Software Cortex BASIC TI-99/4A This is a port of the 'Cortex BASIC' interpreter used with the TMS9995-based Powertran Cortex machine. It is written in pure assembly. Graphic commands, sprites and saving to disk are supported. Currently no sound and speech supported. Power BASIC instruction manual available. Playground TI-99/4A Playground is a package making it possible to create assembly language programs that run from TI BASIC on an unexpanded console using only a cassette player to load the program(!) Although primarily intended for use in TI BASIC, programs written for playground can be run from XB, saved in E/A 5 format, loaded into a supercart, and even made into an actual cartridge. The manual describes in detail the differences in style necessary when programming for an environment that runs in only 256 bytes of memory. There is a library of subroutines for printing text, printing a number, shifting blocks in VDP, generating random numbers, using the line editor from BASIC, HCHAR, VCHAR,GPLLNK, a bit reversal routine, and a fast scroll routine. Source code is included for three different programs that should help you get started. Check here for the development thread on Atariage. Check this related thread for some clever work based on Playground. Author: @senior_falcon Extended BASIC - Software Extended Basic Game Developers Package "JUWEL4" TI-99/4A This package consists of two applications that make it possible to produce arcade quality games using Extended BASIC. Although they are designed to complement each other, each is a stand alone utility. Also included is XB 2.9 G.E.M. which offers greatly enhanced graphics in Extended BASIC. The package has been extensively updated to be fast, versatile, and simple to use. It is meant to be used with the Classic99 emulator, but the programs it creates are fully compatible with a real TI99, requiring nothing more than XB, 32K and a disk drive. Purists can use Juwel994 which has modified prompts to work with a real TI99. There is an option to use the older, more compact TI BASIC only runtime routines. This replaces for the older "Harry Wilhelm's BASIC COMPILER" and as a bonus, it's much easier and faster to use. Author: @senior_falcon 1) XB256 XB256 lets you toggle between two independent screens as desired. Screen2 lets you define all 256 characters and still have up to 28 double sized sprites using the character definitions available to Screen1. Scrolling routines let you scroll characters left, right, up, or down or scroll using single pixels. There is a text crawl that gives an effect similar to the STAR WARS title screen. You can highlight text, set the sprite early clock, print in any direction on the screen using 32 columns, read/write to VDP ram, write compressed strings or sound tables to VDP ram, play a sound list, and catalog a disk. A utility lets you save selected areas of VDP memory as compressed strings that cn be merged with your program. With this, character definitions, sound tables, screen images, etc. can be saved in a more compact form that can be loaded virtually instantaneously, even in XB There are two utilities that can convert the CALL SOUNDs in an XB program into a sound table containing music and sound effects. Sound tables can be loaded directly into VDP memory and played automatically while your XB program does other things. Also, a second player can play a different sound list simultaneously with the first, so you can have music playing with sound effects on top of the background music. 2) XB COMPILER COMPILER lets you compile an XB program into an equivalent assembly language program that will run about 30 times faster. All the XB256 subprograms are supported by the compiler and in general, all the major features of XB are supported, including XB style IF/THEN/ELSE and named subprograms. Programs using assembly support routines such as The Missing Link, T40XB and T80 XB programs can now be compiled. About the only unsupported XB features are DEF and the trig functions. There are provisions to save programs in EA5 format, as an XB loader, as a grom cartridge, or as a rom cartridge. T80XB TI-99/4A T80XB is a collection of assembly language subroutines that give the Extended BASIC programmer easy access to the 80 column screen mode offered by the F18A and other 80 column upgrades. Lets you select from two independent screens. G32 is the default screen when a program starts running.. This is the 32 column graphics mode screen normally used by Extended BASIC. It is accessed using the usual XB graphics statements. T80 is the 80 column text screen which offers 24 rows of 80 columns.. You can toggle between the two screens as desired, preserving the graphics on each screen. When using the T80 screen there are assembly equivalents that replace PRINT, CLEAR, COLOR, INPUT, CHAR, HCHAR, VCHAR plus routines that will scroll the screen and invert text on the screen. Author: @senior_falcon XB 2.9 G.E.M. (Graphics Enhancement Module)TI-99/4A XB 2.9 G.E.M. is a greatly expanded version of Tony Knerr's XB 2.7 The cartridge contains utilities that enhance Extended BASIC's graphics capabilities. XB256, T40XB, T80XB, THE MISSING LINE, and THE MISSING LINK GRAPHICS ADVENTURE are all available from the main menu or from a running program. 60 different fonts can be loaded from the cartridge or loaded from or saved to disk. Programs can be chained together and when the new program runs it will retain all numeric and string variables. This allows very large programs with the size limited only by disk capacity A powerful new editor is included that permits full screen editing in 40 and 80 columns. You can save or load programs in either IV254 format or DV80 format, and windows text if you are using an emulator. RXB 2024B TI-99/4A Rich Extended Basic (RXB) is an updated version of TI Extended Basic. Most bugs in XB have been fixed in RXB and GKXB is in the main core of RXB. RXB has features no other XB has such as batch processing, SAMS support, hard drive access or updated CALL routines. The below RXB tutorials on Youtube give a good overview of RXB's power: RXB 2020 Release video on features video RXB memory manager routines in RXB 2020 video RXB 2021 demo 1 video RXB 2021 demo 2 video RXB 2021 demo 3 video RXB 2021 demo 6 video RXB 2021 demo 7 video RXB 2021 demo 8 video RXB 2022 demo 9 video RXB 2022 demo 10 video RXB 2022 demo 11 video RXB 2022 demo 12 video Full documentation, examples, links to YouTube tutorials and GPL source code are all included in the ZIP package. Cartridge image for classic99 emulator also included. Requires a GRAM device such as a GRAM Kracker or finalGROM99 cartridge for running RXB on the TI-99/4A. Author: @RXB RXB 2024B.zip RXB 2023.zip RXB 2022.zip RXB 2021.zip RXB2020E.zip TiCodEd Windows + MAC OSX Modern, structured Extended Basic. Integrated PC editor. Development thread on Atariage. Author: @SteveB My Little Compiler (MLC) TI-99/4A Library for using assembler-like language & routines from Extended Basic. Great for putting more power in Extended Basic programs. Now includes a precompiler for high-level language syntax. Demo Pong game and documentation included. The MLC development thread can be found here. Check out the video by @rocky007 on his MLC based TI-99/4A port of Kaboom! Author: @moulinaie The Missing Link 2.0 (TML) TI-99/4A The zip archive contains "The Missing Link 2.0" and its documentation. This was published by Texaments in 1990. It gives the XB programmer easy access to the bit mapped features of the 9918 VDP. Full color cartesian graphics, turtle graphics, sprite graphics (32 sprites with auto motion) are supported. Text can be displayed on screen with fonts having sizes ranging from 4x6 pixels to 8x8 pixels. The manual is updated with many previously undocumented features. A tutorial called "Potatohead" is included. There is a loader that embeds A/L programs in high memory - they can be saved as an XB program and run directly out of high memory. Author: @senior_falcon TidBiT - BASIC/XB Translator win, linux, OS X A translator program that reads a program written in a custom, structured form of BASIC and translates it to a BASIC / Extended BASIC program. PHP required when doing a local installation. Check here for the latest revision, installation instructions included. Author: @matthew180 Kull KXBII Extensions TI-99/4A Kull Extended BASIC II programming package. High resolution graphics and clock support in Extended Basic. Documentation by @hloberg. Extended BASIC - Manuals COMPUTE!'s Programmer's Reference Guide to the TI-99/4A PDF TI-Basic programming manual touching graphics and sound. COMPUTE!'s TI Collection volume One PDF The online version can be found here. Best of TI-Basic programming by C. Regena Texas Instruments TI-99/4A user reference guide PDF The official user reference guide with details how to setup and connect your TI-99/4A. Includes an introduction on the TI-BASIC programming language. Extended Basic reference manual PDF The official extended basic manual, explaining the 40 new or expanded commands, sprites, etc. Check here for the online version with command lookup functionality. MG Night Mission PDF Advanced tutorial on how to program an arcade game in Extended Basic. MG Smart Programming Guide for Sprites PDF Advanced tutorial on how to efficiently use sprites in Extended Basic. C - Software C99 v4 TI-99/4A C99 is a small C compiler for the TI-99/4A written by the famous C. Pulley. Documentation included. C99C - C99 cross compiler and optimizers win C99C is the enhanced PC version of the C99 compiler for the TI99/4A home computer. Also included are multiple optimizers for compacting the generated assembly source (C Optimizer, Function Call Optimizer, ...) Author: @F.G. Kaal GNU C Compiler (GCC) win + linux + osx GCC for the TMS9900 allows you to cross-compile C programs on your PC (Linux, OSX or Windows) for the TI. Insomnia's release contains a set of patches against GCC 4.4. Just check out the code from the GCC project, apply the patches and build according to the build instructions for your platform and you're on your way to write programs and games for the TI in a high level language that rival the speed of assembly. And if you need just that little bit extra in terms of speed, you can always inline TMS9900 assembly for the critical sections of your code and compile everything with the same toolchain. For access to the VDP, the SN76489, etc... you can use Tursi's ti99 library, which you can find in the GCC thread. Hop over to the INSOMNIA LABS blog for background information on this port. Check the "Setting up the GCC compiler for the TI-99/4A" video by @Tursi for detailed steps on how to build and install GCC on your Windows PC. You can now download the cygwin binary port of the older TI GCC 1.10 for Windows here. (Thanks @lucien2). Author: @insomnia Fortran - Software 99-9640 Fortran TI-99/4A & Geneve The zip archive contains LGMA Products' FORTRAN v4.4 in both a version for the TI-99/4A and the Geneve 9640 computer. Documentation in PDF format included. The discussion thread on Atariage can be found here. Forth - Software Turboforth TI-99/4A A brand new implementation of the Forth langugage for the TI-99/4A. The Forth system itself is written in assembler and is optimized for speed. It runs from the cartridge space so there's plenty of space for your program in the 32K memory expansion. Check TurboForth.net the companion web site for the TurboForth system. Click here for seeing some Turboforth video tutorials. Author: @Willsy TI Forth Instruction Manual "2nd Edition 2013" PDF 2012 enhanced version of the original TI Forth Instruction Manual in PDF format by @Lee Stewart. Look here for details on manual improvements, etc. The updated TI-Forth system disk can be found here. Author: @Lee Stewart fbForth TI Forth with File-based Block I/O zip fbForth uses Level 3 file I/O for I/O of Forth blocks. It also implements 80-column text mode if you have a system with that facility. fbForth 32KB 2.0.X ROM cartridge available. Check the fbForth website Author: @Lee Stewart CAMEL99 V2 Forth TI-99/4A Multi-tasking Forth for the TI-99/4a. CAMEL99 Forth has been built as an educational tool for those who are interested in how you could cross-compile Forth to a different CPU using an existing Forth system. Camel99 Forth Development thread on Atariage can be found here. Author: @TheBF GPL - Manuals/Tutorials GPL Programmers Guide PDF The original GPL programming reference manual from Texas Instruments. Covers all opcodes and advanced stuff like coincidence detection, I/O routines, etc. The Graphics Programming Language (GPL) PDF GPL manual with instruction syntax as accepted by the RAG Software GPL Macro Assembler. Edited by @Lee Stewart TI-Intern PDF Details on "Monitor", the OS of the TI-99/4A. Disassembly of console ROM/GROMS and GPL interpreter. Has details on interrupt routine, utility subprograms, basic interpreter, etc. GPL HOW 2 Series video A complete series on how to program GPL (Graphics Progroamming Language) on the TI-99/4A. Each tutorial has its own support package with example code, GPL assembler, etc. Video tutorials done by Rich, the programmer of Rich Extended Basic. Author: @RXB GPLHOW2A - Introduction video / zip GPLHOW2B - Sprite demo video / zip GPLHOW2C - How to make a Screen Editor like TI Writer or Editor Assembler video / zip GPLHOW2D - Editor Assembler TI BASIC support.video / zip GPLHOW2E - DMII cartridge upgrades and how GPL works video / zip GPLHOW2F - TI Basic to GPL. Converting a TI Basic program to GPL video / zip GPLHOW2G - TI Basic CALL SOUND to GPL video / zip GPLHOW2H - Simultaneous sound lists and interrupt timer in GPL video / zip GPLHOW2I - XB2GPL demo of a XB game Baloons converted into a GPL program video / zip GPLHOW2J - Update to GPLHOW2I and adds a automatic music to the game from the last demo video / zip GPLHOW2K - How to make XB Program Image files into I/V 254 files video / zip LOGO - Manuals TI-LOGO programming manual PDF The official TI-LOGO programming manual. The online version can be found here. Pascal - Software Turbo Pasc'99 TI-99/4A The zip archive has the patched version of Wiposofts Turbo Pasc'99 which you can run on your favorite emulator or on the TI-99/4A itself. While Turbo Pasc'99 is not as complete an implementation of Pascal as the UCSD Pascal system, it does have the advantage of not requiring any special hardware other than 32K RAM and a disk drive, and will likely meet the programming needs of most TIers. Check here for an english translation of the german documentation. This version is started by running the Editor Assembler #EA5 program image DSK1.TP99A Pascal - Manuals UCSD Pascal ZIP + PDF The official UCSD Pascal programming manuals and disks. The zip file contains all manuals in PDF format. Here are the PDF manuals for online viewing: Compiler, Editor, Filer, Utilities, Assembler, Linker, p-code card The UCSD system disk images in v9t9/MESS format can be found here. Note that you need the UCSD P-code expansion card for running UCSD Pascal on the TI-99/4A. Thierry Nouspikel has lots of information on the technical implementation of UCSD Pascal on the TI-99/4A. Check here for details on the P-Code card and here for details on the P-Code system software. 3. Technical Documentation Hardware TMS9900 Microprocessor Data Manual PDF Data Manual on the TMS9900 16-bit processor. The TMS9900 is the CPU used in the Texas Instruments TI-99/4A Home Computer. Contains instruction execution times, opcode size, etc. TMS9901 Programmable Systems Interface Data Manual PDF Data Manual for the TMS9901, Interrupt and I/O interface controller VDP Programmer's guide PDF The official programmer'a guide for the TMS9918A and its variants. The 9918A is the Video Display Processor chip used in the TI-99/4A and several other home computers + game consoles of that era. SN76489 sound chip datasheet PDF Data sheet for the SN76489 sound generator. The TMS9919 in the TI-99/4A is close to being identical with the SN76489. SN76489AN Sound Generator TMS5220 Speech Synthesizer Data manual PDF Data manual for the TMS5220 chip used in the TI-99/4A speech synthesizer device. Interface standard & Design Guide for TI 99/4A peripherals PDF The purpose of this manual was to consolidate all information available in the public domain on the design and development of peripherals for the TI 99/4A computer into one reference. Also covers the software aspects such as DSR architecture, PABs, etc. ROM Command Module Guide 2.0 PDF This manual provides a complete description of how Assembly Language User Programs need to be written so that the object code can be downloaded into (EP)ROM's which canthen be used in the "(EP)ROM module", a module designed to be used with the TI 99/4A Home Computer. TI Hardware Manual txt Compilation of valuable hardware & programming info on Myarc memory cards, Disk Controllers, Hard Drives, CPU identification (TMS9900, TMS9995, TMS99000) in assembly language, etc. DSR (Device Service Routine) / Disk & File Management Device Service Routine Specification for the TI-99/4(A) Personal Computer PDF Functional Specification for the 99/4 Disk Peripheral PDF Software Specification for the 99/4 Disk Peripheral PDF GPL Interface Specification for the 99/4 Disk Peripheral PDF File Management Specification for the TI-99/4 Home Computer PDF File Operations in assembly language 4. Homebrew Hardware Graphics & Sound F18A Video Display Processor The F18A is a FPGA based hardware and pin compatible replacement for the TMS9918A/TMS9928/TMS9929 VDP's (Video Display Processor). Besides VGA output it offers enhanced functionalities such as 80-column mode, additional video resolutions, hardware register scrolling, an embedded TMS9900 compatible GPU, etc. The development thread on Atariage, which includes the F18A programming documentation can be found here. The store on code|hack|create has the details on F18A availability, costs, etc. Author: @matthew180 SID Master 99 sound synthesizer card The SID Master 99 is a new sound synthesizer expansion card for the Peripheral Expansion Box. It integrates the famous MOS 6581 or 8580 SID chip (as used in the Commodore 64 home computer). SIDPLAY99 sound player software available for use with this expansion card. Author: @marc.hull Homebrew cartridge boards There are a number of Homebrew cartridge boards available to the users of the TI-99/4A now. Each has its own advantages and disadvantages from a usability standpoint, and some earlier types are only available by having your own made. To read the PCB layout files mentioned below, you need the ExpressPCB software which is available for free. Check here. The files are currently not released in Gerber/Excellon format, but can be converted to it using the RobotRoom Copper Connection software, available here. Note that to convert files to Gerber format you have to have the licensed version of the software ($50). 16K board PCB file The first of the new cartridge boards is the 16K board designed by @acadiel and @Stuart. This board used an inverted output from a 74LS379 to select between two 8K banks at >6000 in the TI memory map. The banks are selected by writing to >6000. This board allows most of the third-party cartridges designed for the 99/4A to be replicated. Further details on this board (components, EPROMS, software, etc.) can be found in: 16k_board_details.rtf FlashROM 99 PCB file, firmware source code The TI 99/4A Flash ROM Cartridge, or FlashROM 99 for short, is a cartridge for the TI 99/4A home computer that allows for running ROM cartridge images stored on an SD card. The FlashROM 99 supports ROM-only images of up to 32K that use the write-to->60xx bank switching scheme. It will not work with programs using GROMs or CRU-based bank switching. The cartridge does not require the Peripheral Expansion Box and runs on both PAL and NTSC consoles. Discussion thread on Atariage can be found here. Author: @ralphb FinalGROM99 PCB file, firmware source code The TI 99/4A FinalGROM Cartridge, or FinalGROM 99 for short, is a cartridge for the TI 99/4A home computer that allows you to run ROM and GROM cartridge images from an SD card. It succeeds the FlashROM 99 released in 2016. The FinalGROM 99 supports ROM images, GROM images, and mixed images of up to 1 MB in size that use the write-to-ROM bank switching scheme. The cartridge does not require the Peripheral Expansion Box and runs on both PAL and NTSC consoles, including modified consoles with an F18A. It will also run on v2.2 consoles and enables those to run ROM-only programs. The development thread on Atariage can be found here. Author: @ralphb UberGROM code, binary, image This cartridge board significantly expands the capabilities of the TI cartridge port by providing up to 512K of ROM memory using a non-inverted 8K bank-switching scheme. This is the opposite of the scheme originally found on the 16K and 64K cartridge boards built by Jon Guidry, as that method could not extend the banking beyond the 128K maximum imposed by the 74LS379 design. The Guidry boards using the 74LS379 do not impose an expected initialization state on the latch outputs, thus requiring header files in each bank to ensure cartridge initialization. The 512K of bank-switched ROM on the the new board uses the 74LS378 and does not require the bank inversion used in prior versions of Jon’s cartridge board, but it still requires the header files in each bank to ensure stable startup. Finally, the board includes a socket for an ATMega 1284 (or 1284P) AVR. Tursi provided code to allow the AVR to be used as 128K of GROM memory space, using up to 16 GROM bases. The combination of these feature changes now allows the board to be used to replicate older ROM/GROM cartridges using 6K or 8K GROMs, with the exception of MBX cartridges, as those would require some additional logic to add 1K of RAM to the board. It is now possible to play some of the unreleased TI titles from a cartridge, as they were originally designed to be used, instead of from disk. Authors: @Ksarul @Tursi @acadiel 5. Utilities (file transfer, graphics, sound, ...) File Transfer TIImageTool win + linux TIImageTool is a tool that allows you to open disk image files as used with many emulators, and to work on them with common disk operations (like cut/copy/paste of files). It is particularly tailored for use with MESS but can also be used with other emulators. Has support for v9t9 format, PC99 format, CHD format, working with files & directories, Archiver support (can process Archiver files on the images), ... This utility needs the Java Runtime Environment available for free at Oracle. Supports Cf7a+ card images. Author: @mizapf TI99Dir win TI99 filemanager for windows. Great for transferring disk images to the TI-99/4A. Supports Cf7a+ cards and Cf7a+ card images. Author: @F.G. Kaal TiDisk-Manager OS X The TiDisk-Manager is a disk tool for disk images from floppy disks used by a TI-99/4A home computer. You will need an Apple Macintosh or Hackintosh running with Mac OS X 10.9 or newer. Has many features including file preview, export, etc. and even an interactive editor to disassemble program files and create good readable source code. The development thread on atariage can be found here Author: @HackMac Cf2k - Compact Flash 2000 TI-99/4A Cf2k (Compact Flash 2000) is a file manager for the TI99/4a with a CF7A+ compact flash adapter. With CF2k it is possible to protect/unprotect files, rename files/volumes, format volume, mount volume, copy/move/delete files, execute program files, ... Supports Cf7a+ cards. Author: @F.G. Kaal Graphics Convert9918 win Windows program for converting images into TMS9918A Graphics II (bitmap) mode. Output is in TI-Artist format or raw image/pattern dump. The article Modern Graphics on the 9918APDF gives an interesting overview on the techniques used in Convert9918. Author: @Tursi GraphiCV win/linux/osx Sprite Editor written in java. Draw your sprites on the PC and export them for use in Extended Basic and Assembler. Also supports export to Colecovision C format. Work with multiple sprite "layers" for creating multi-colored sprites. Click here for the GraphiCV development thread on atariage. Source code is also available at github. Check here. This utility needs the Java Runtime Environment available for free at Oracle. Author: @unhuman Magellan win/linux/osx TI-99/4A map editor written in java. This is the latest, updated, unofficial version. Draw your maps/screens on the PC and export them for use in Extended Basic and Assembler. Has a rich feature set: Import character set from '.PNG' or '.GIF' file, copy & paste, drawing functions, support for half-bitmap mode, Export in XB display merge format, etc. Possibility to export maps as data statements for Extended Basic and Assembler, binary export also possible. Click here for the Magellan development thread on Atariage This utility needs the Java Runtime Environment available for free at Oracle. Author: @The Codex Sprite Editor TI-99/4A TI-99/4A sprite editor written in C99. Runs from Editor/Assembler #EA5. Draw your sprites in an emulator or on the TI-99/4A machine. The zip file contains both the files for use in emulator and a TI disk image for easy transfer to the TI-99/4A. README file with detailed instructions included. You can see the Sprite Editor at work building some sprites: Jet Set Willyvideo and Parsecvideo. Author: @Willsy Sound VGM player Compresses VGM files into a format that can be played back on the TI using the included player from C and assembly. Author: @Tursi Mod2PSG2 Fully featured PC tracker for arranging music for the SN76489 and compatible sound chips. Can export to VGM and other formats. Author: KonTechs/Martin Sound List Ripper PC tool for ripping and playing back sound lists from TI files. Supports basic editing of sounds lists. Author: @Asmusr Sound list player Plays back sound lists from XB and assembly. Author: @matthew180 Advanced Sound List Player TI tools for editing and playing back advanced sounds lists. Author: @marc.hull Speech QBOX Pro win QBOX Pro is the windows software that converts WAV files to LPC speech data for playback on the TI-99/4A speech synsthesizer. This is a 16bit windows application but it still runs in Windows 2000/XP/Vista. It requires the BWCC.DLL library. BlueWizard osx LPC analysis tool for the Texas Instruments TMS5220 chip. Replacement for QBOX Pro. Has very good speech quality. Source code and pre-built install image for OS X can be found on gitHub here. Discussion thread on Atariage available here. Author: @patrick99e99 Python Wizard unix/win This project is a python port (command line version and GUI) of the great macOS tool BlueWizard. It is intended to convert (voice) audio streams into LPC bitstreams used in the TMS 5220 chip or e.g. in the Arduino library Talkie. Now you can generate your own LPC streams and make your chips say the things you want them to. Author: @deladriere TI Synth Editor win TI LPC speech pattern exploration and editing app in the spirit of the venerable Speecoder. Watch the "How To" video to create custom speech synth here Author: @pixelpedant Editors Notepad++ win Notepad++ is a free source code editor that supports several languages. Runs in Windows environment. Notepad++ syntax highlighting file win Syntax highlighting file for Assembler and Extended Basic to be used with the Notepad++ text editor. 6. Tutorials Assembly language How to implement an assembly sound player for XB web Very well written tutorial on how to implement an assembly sound player for Extended Basic. It covers the tools needed and steps involved. Commented assembly source code Not a tutorial in the classical sense, but the commented source codes of the below games should help you get the idea. Pitfall! source code ZIP Munchman source code PDF TI invaders source code PDF TI Invaders source code TXT PARSEC source code PDF Moon Mine source code PDF Hopper source code PDF TI-99/4A Operating System source code repo on GitHub The thread "The TI-99/4A Operating System" is an ongoing community project for commenting the source code of the TI-99/4A and allowing it to be assembled with todays' assemblers. TMS9918/TMS9928 Video Display Processor TMS9918/9928 video modes video Video tutorial explaining the supported graphic modes of the video processor used in the TI-99/4A. TMS9918/TMS9928 Sprites and Characters video Video tutorial about the use of sprites and character patterns in the different video modes. TMS9918/TMS9928 How to create a bitmap title screens video Video tutorial on how to create a bitmap screen for games. Speech Synthesizer Convert WAV file for playback using speech synthesizer video Video tutorial on how to use QBOX Pro to convert a 8kHz mono WAV file to LPC speech data for playback on the TI-99/4A with the speech synthesizer device. It shows how to embed the LPC byte stream into your own assembly language program. Compilers The Wilhelm Basic compiler video Video tutorial on how to compile a basic program to assembly language. Author: @Opry99er File transfer (TI99->PC) RS232 File Transfer video Video tutorial on file transfer from the TI-99/4A to the PC using a serial connection cable. Author: @Opry99er (PC->TI99) RS232 File Transfer VIEW PART 1 / VIEW PART 2 video Video tutorial split in 2 parts dealing with file transfer from the PC to the TI-99/4A using a serial connection cable. In detail: DL a game from TI Gameshelf, Use ARC303G to unarchive it, Test in Classic99, Transfer using QModem and MFM, Running game on TI. Author: @Opry99er 7. TI-99/4A related websites TI-99/4A @ wikipedia Introduction and basics of Texas Instruments TI-99/4A Home Computer. ninerpedia Wiki with information on MESS and its multicart format (RPK). Home of the TI-FAQ. Thierry Nouspikel's Tech Pages Probably the best TI hardware and software tech page. It has a wealth of technical details on all things TI-99/4A. This includes GPL, GROM, keyboard scanning, speech, etc. You can also download the full site as a zip file for offline viewing. Mainbyte's home of the TI-99/4A Very good tech site with many detailed pictures and reference area. Includes various projects for upgrading your TI-99/4A, e.g. build a supercart cartridge. Jon's hexbus page Several hardware projects including pictures. Home of the 64K bank-switched cartridge project. Author: @acadiel [code|Hack|Create] New website run by Matthew of the Atariage group. The site covers many new hardware projects as the F18A FPGA based VDP and Bank-switch mini 256K. There's also a store where you can buy cartridge PCB's and other funky stuff. Author: @matthew180 The nanoPEB & CF7+ Website Official website archived by internet archive wayback machine. Has the documentation, tools and some source code of the popular TI-99/4A Compact Flash device. Stuart's TI-99/4A Computer Home of Cortex BASIC port and lots of other projects for the TI-99/4A. TurboForth.net TurboForth.net is the companion web site for the TurboForth system written in TMS9900 Assembly Language by Mark Wills for the Texas Instruments TI-99/4A computer. TI projects page Several hardware and software projects for the TI-99/4A. Home of TI-99Dir, TI99HDX and several other must-see projects. Author: @F.G. Kaal TI-99/4A Home Computer Book Archive Site where you find many books about the TI-99/4A not seen elsewhere, all collected by @airernie and now hosted by @acadiel Author: @airernie TI-99/4A Game Shelf Provides a gallery of interesting games with images of the opening screen as well as an in-play snapshot, along with a brief review tested on a real TI 99/4A system. Hardware requirements are also listed. Has many good Extended Basic games. Author: @Vorticon WHTech WHTech is the primary archive - though it's a bit overwhelming. But pretty much all software, hardware docs, etc, are available there. 99er.net Site with useful file archive and forum functionality. comp.sys.ti Covers all TI devices, including calculators.
  2. I will be using this thread to document the development of a new programmer editor for the TI-99/4a called "Stevie". Download the cartridge image in the official release thread. As you might expect from its name, the editor is somewhat inspired by the unix editor "vi" and will also take elements of "tmux". So what do I have in mind: Designed from the ground up for 80 columns mode, specifically using the F18A but 9938 will be supported as well. Designed from the ground up for using SAMS card. Programming language of choice is TMS9900 assembly language The editor itself will run from cartridge space (multi-bank cartridge). Uses my spectra2 library as foundation (been doing major changes in the last couple of months, not related to games) Will have some "API" so that I can integrate with external programs and go back and forth between programs. Would like to add some kind of mouse support. This will not be a GUI in the traditional sense. If you used tmux with a mouse before you know what I mean. Possibility to have multiple editor panes open at once. Should handle files with up to 65536 lines Undo functionality, well up to a certain extent that is. Language awareness, e.g. behave differently based upon language (e.g. assembly, C, Basic, ...) Internal text representation will be decoupled from what actually will be rendered on screen. Should make the editor more responsive when dealing with large files, allow split panes, etc. Reconfigurable keymaps, possibility to swap between keymap with single key combination. Not everyone is into VI This is the start of a large project and I don't expect to have a truely useful version anytime soon. I expect this project to take multiple years, but you gotta start somewhere. Now I've taken my mouth full, I will use this thread to keep myself motivated ? There aren't too many resources out there discussing the architecture of a text editor, so cross-linking here: Dr. Dobb's Journal 1993 - Text Editors: Algorithms and Architecture Gap Buffers: a data structure for editable text Rope (data structure) - Wikipedia Vi Editor: Why Programmers Think This Old Editor is Still Awesome Threads on Atariage discussing topics -somewhat- related to Stevie: F18a F18a 30 rows 80 columns mode F18A high-resolution timer How to lock the F18a and halt the F18a CPU File handling CRU scan sample code, my implementation of a CRC-16 Cyclic Reducancy Check DSRLINK Code Tutorial File operations in assembly language E/A file access Opinions on TI-99/4a text file formats TI Basic integration Jump to TI Basic from assembly language Detect if TI Basic is running a program TI Basic move crunch buffer in assembly TI Basic session manager Others: Favourite text (programmers) editor on the TI-99/4a Better keyboard scanning? tmux for developers github: Stevie source code Issue tracker
  3. Here's a thing I've been playing with, and thought about putting it in a separate thread. With the help of @Asmusr I tweaked the f18a emulation in my local clone of js99er, so that it can now run in 60 rows, 80 columns mode. The idea was to see how I need to setup VDP memory to get stevie running in 60 rows, 80 columns mode and do refactoring for the different video modes (24x80, 30x80, 60x80, ...) This is still a work-in-progress and will never be officially released, but it does prove that it's doable. As a starting point I took the stevie build I made for classic99 where I use a character cursor instead of a sprite cursor. (Sprite cursor is possible, but will only get halfway the screen, due to 1-byte for Y in the sprite attribute table, so of no real use here) Anyway, the build for classic99 was also a hack, because I refresh the frame buffer each time the cursor blinks. That clearly shows here, because I'm dumping quite a bit of data to the VDP and it gets a bit slow. So, next thing to do for me is to get that cursor routine a bit smarter. You never know, maybe the f18a mk2 will support a 60x80 mode. I'm still wondering if it'd be doable on the f18a mk1 with a firmware update, but I think Matthew said it won't work because of VHDL already being chuck-full. 16K of VDP memory is enough though, as my demo shows. Enjoy the demo (VDP corruption at the end when turning on the ruler., but that's part of the fun. I still need to fix some things in stevie). js99er-20230123204409.webm
  4. I found this unusual paper: COMPUTER SYSTEM CROSS-FERTILIZATION: MAKING YOUR TI 980 PLAY YOUR TMS 9900 by John D. Meng Presented at TI-MIX Atlanta 1979 It describes creating a cross-assembler for the new TMS9900 chip, within the assembler on the laboratory's TI 980A minicomputer. The TI 980 had a different instruction set than its successor, (you guessed it) the TI 990 minicomputer. However, the 980 assembler had two directives for defining new instructions! OPD (operation define) and FRM (Format a new instruction) The syntax looks scary--but they grew to love it. For example, the arithmetic format I instructions are defined with a FRM. There are constant values for the mnemonics and addressing modes. ARI FRM 4,2,4,2,4 BIT FIELDS FOR 9900 FORMAT I D EQU 0 I EQU 1 A EQU >A MOV EQU >C To assemble a MOV instruction, ARI MOV,I,0,D,2 MOV R2,*R0 which packs the 16 bits of a word, according to the FRM above: 1100 (four bits, opcode) 01 (two bits, register indirect, dest addressing mode) 0000 (four bits, dest register 0) 00 (two bits, register direct , src addressing mode) 0010 (four bits, src register 2) Note that the format here is opcode, destination, source... backwards... (a matter of debate) Another example, EXT FRM 6,4,2,4 MPY EQU >E EXT MPY,D,1,D,0 produces MPY R0,R1 In other cases, the format of a 9900 instruction fit neatly into the pattern of a completely unrelated 980 instruction, so they took advantage of that with the OPD directive. Format 8 of 9900 instructions, such as AI (add immediate), happen to fit into the TI 980 Format 7. This declares a mnemonic with Format 7: AI OPD >220,7 Then, how to debug the code? This scheme was exactly what TI's AMPL microprocessor laboratory would later provide, of course with the cost of a new TI 990 bundled in. But programming and debugging in assembly was no joyride. Therefore they invented a little language. Reminiscent of the Forth inner loop, the interpreter follows a list, calling BLWP on each address. Translated back into TI syntax for y'all, the inner loop was: START LI R0,PROGM POINTER TO FIRST STEP (PSEUDO PC) RUN MOV *R0,R2 OPCODE IS PARAMETER POINTER JEQ START ZERO OP CODE MEANS RESTART INCT R0 STEP PSEUDO PC BLWP *R2 EXECUTE THE PSEUDO-INSTRUCTION JMP RUN LOOP The sample program is: PROGM @SCAL RESET @TIMR RESET @TIMR START @ADC ON FIN END. RESTART. which is, in 9900 syntax, PROGM DATA SCAL,RESET DATA TIMR,RESET DATA TIMR,START DATA ADC,ON DATA 0 FIN inside the SCAL routine, the parameter RESET is picked up via something like: MOV *R13,R0 MOV *R0,R0 INCT *R13 In the Epilog, the author makes me feel sad that this effort was superseded. What we have described is not a tutorial on what to do. Nearly everything we have done has been superceded in economic and efficient fashion by material now available from Texas Instruments. We still use our cross assembler simply because we have it and we are very familiar with it. However, TIBUG achieves much of what we were attempting with our cross-connection between the 980 and a 9900 chip, and the recent introduction of POWER BASIC supercedes our own pseudo-language develop­ments. What we have described is,first of all, history. It is a story of challenges successfully met when a new and apparently useful device appeared without much manufacturer support. It is also a story of how to learn in great depth about a new device. Finally it is a story about the immeasurable value of ingenuity in the face of crucial challenges coupled with a perennial budget crunch. ------------ Some cute instruction mnemonics of the 980 are SNO (Skip on Not all Ones) and SOO (Skip On all Ones). All the conditional branches are called Skip and they only jump over the next instruction! You might follow a Skip with a BRU, branch unconditional, for the opposite case. I would like to have its directive BRR (Base Register Reset.) I imagine this as a valid 980 program: BRR ADD SNO BRU IDL Here is a gentle introduction to 980 assembly, prepared for the TI-MIX group (much more under bitsavers TI-980) I chuckled at this sequence, since CR refers to both Card Reader and Carriage Return. Hit it. Notice that our beloved name CS1 was used by the operating system to refer to the cassette tape unit. If you don't have enough grey hair: the Card Reader/Punch* was a frightful I/O device where a stack of paper cards held your data, punched out with little holes across 12 columns. For example, the numbers 0 through 9 were single punches of the columns 0 through 9... letter A would be 0 plus a hole in the "X" column, and so on. The 990 reference card still featured a table of punch codes, listing the 64 characters of IBM ECBDIC, followed by a helpful ASCII conversion table (also 64 codes...) Dave Pitts mentions a card reader for the 990. From the style of these two documents, it's for sure that 980 users had a sense of humor. 980s in working order were still put to use at TI, in the late 70s, alongside 990s. (see the speech lab manual that I uploaded.) *In the most antiquated lab course I had in college (6811 embedded lab), we had a network of computer terminals (MTS) connected to the IBM mainframe with all its disk storage and programs. Yet its 6811 assembler still referred to your input source file as "SCARDS" and output file as "SPUNCH". I forget what the next step was called--you referred to that assembler output as SCARDS again, and sent it out your terminal's second serial port (STYPE?), assuming the 6811 board was hooked up there and ready to receive it. Typically I avoided writing code on the lab terminal. Instead I logged into MTS and uploaded files from my Geneve 9640. Fast-Term (hmm) mapped the extended keys on the Geneve keyboard to MTS escape codes. Reference Meng, John D. (1979). COMPUTER SYSTEM CROSS-FERTILIZATION: MAKING YOUR TI 98C PLAY YOUR TMS 9900. February 1979. Lawrence Berkeley Laboratory, University of California at Berkeley. To be presented at 8th annual TI-MIX, Atlanta GA, 3/27/1979. Downloaded on 1/27/2023 from https://escholarship.org/content/qt1vz517x5/qt1vz517x5_noSplash_0a4bcf88c0d7a86260d9787b1bc5fc73.pdf?t=li5ywu TI-980 playing the TMS9900.pdf
  5. I like to do my programming, these days, for my TI99 using a PC. First off I can use the wonderful Notepad++ for editing and test the software in the equally wonderful MAME and secondly I don't wear out my 40+ old TI99/4a. And to increase the already massive wonderfulness I have added language support for the TI99 to the already extensive list of programming languages built into Notepad++. I added TMS9900 and TI99 XB support to Notepad++ with the two .XML files attached in the .ZIP below. To add language support for TMS9900 & TI88 XB to Notepad++ use | Language>User Defined Language>Define Your Language. on the 'Define...' page click the Import button and add one .XML file at a time. Shutdown Notepad++ then restart and TMS9900 & TI XB will now be a choice in the Language list. Note: the TI XB works well with AdvBASIC of the Geneve too. I then use Classic99 and paste straight in XB or for Geneve ABASIC I use TIImageTool to import the file into a .dsk or .hd by | Edit>'Import from Text Editor' then paste>save the file. For TMS9900 a cross compiler would work nicely as well as the other two previous methods. that's it. Enjoy. notepad++-xml-lang-files.zip
  6. ** This question is about the crunch buffer in TI Basic, not the crunch buffer in Extended Basic ** ok, so I have been doing some experiments with TI Basic lately. For one of the tests I'm doing I am using the F18a with 30 rows mode. What I would like to do is add some information on the rows 25-30. The thing is that the VDP memory for that area is "blocked" by the TI Basic crunch buffer that starts at VDP >320 So here are my questions: Is it possible to move the TI Basic crunch buffer to another location in VDP memory? I presume it's hardcoded in the TI Basic interpreter in GPL. Was thinking about using a ISR routine in assembly routine that "kicks-in" and changes addresses (GPL registers, addresses) in a transparent way. Considering that TI Basic is so slow I might actually get away with it Any ideas on this one? Is the TI Basic disassembly available somewhere? I'm aware of TI XB disassembly, but not TI Basic itself. Actually I start liking TI Basic much. Yes it's slow, but I'd like to learn a lot more about its internals before addressing TI Extended Basic.
  7. I'd like to jump into the TI Basic interpreter coming from an assembly language program running from cartridge space. It's not that I want to run a specific call or so, just start the TI Basic interpreter like selecting option 1 "TI Basic" on the selection screen. Is there any sample code to show how that works? Guess that I basically need to get the GPL interpreter running TI Basic at >216F (?) Was hoping for a vector address in the console ROM that triggers the TI Basic interpreter, but couldn't find it.
  8. Is there a standard in the level-2 IO calls for setting path and directory handling? If yes, where can I find description/details on PAB & subprograms. What I'm after is a way to change into a new directory and also to create a new directory, rename a directory and delete a directory. Target is the TIPI and the IDE card. These are the sole PEB cards that I'm aware of that support this. Any other PEB cards are unobtainable I'd say (SNUG, HDFC, ...) Thanks.
  9. From the album: UPduino V3 projects

    The orange wire connects pin 23 to ground. This pin is reset, high level = reset active.
  10. So I have a few lines of code I want to optimize for speed. Have some ideas what I can do, but I'm also very interested seeing what the community comes up with... The code is used for reorganizing my TiVi editor index when I delete a line in the editor. Note that when I reorganize the index, I make sure that the index pages form a continuous memory region, so I don't have to worry about mapping pages or anything. That's already been taken care of. The index can grow up to 5 SAMS pages mapped to (>b000 to >ffff) for 10240 lines of text. ok, Here's what I would do: Copy code to scratchpad and work from there for reducing wait states Reduce loop counter overhead by putting multiple mov instructions in a single loop, say 8 Look at the fastest mov instructions (only use registers?) What else could be done for faster access? Note that in the code fragment tmp0=R4, tmp1=R5, tmp2=R6 and so on. *************************************************************** * _idx.entry.delete.reorg * Reorganize index slot entries *************************************************************** * bl @_idx.entry.delete.reorg *-------------------------------------------------------------- * Remarks * Private, only to be called from idx_entry_delete *-------------------------------------------------------------- _idx.entry.delete.reorg: ;------------------------------------------------------ ; Reorganize index entries ;------------------------------------------------------ ! mov @idx.top+2(tmp0),@idx.top+0(tmp0) inct tmp0 ; Next index entry dec tmp2 ; tmp2-- jne -! ; Loop unless completed b *r11 ; Return to caller *////////////////////////////////////////////////////////////// * TiVi Editor - Index Management *////////////////////////////////////////////////////////////// *************************************************************** * Size of index page is 4K and allows indexing of 2048 lines * per page. * * Each index slot (word) has the format: * +-----+-----+ * | MSB | LSB | * +-----|-----+ LSB = Pointer offset 00-ff. * * MSB = SAMS Page 00-ff * Allows addressing of up to 256 4K SAMS pages (1024 KB) * * LSB = Pointer offset in range 00-ff * * To calculate pointer to line in Editor buffer: * Pointer address = edb.top + (LSB * 16) * * Note that the editor buffer itself resides in own 4K memory range * starting at edb.top * * All support routines must assure that length-prefixed string in * Editor buffer always start on a 16 byte boundary for being * accessible via index. ***************************************************************
  11. In the 4K Basic Support Module thread, @Schmitzi found three disk images with Disassemblers on them. As I pointed out in this post, the second disk contains an XB LOAD program that can load a GPL Assembler or a GPL Disassembler. Those two programs appear to be written in TMS9900 Assembly Language Code (ALC) rather than Forth, as was hoped. What interested me, and the topic of this thread, were disks one and three. They happen to be two different versions of René Leblanc’s Universal Disassembler, which he wrote in TI Forth. As near as I can tell, Universal Disassembler is for ALC rather than GPL. The first disk is v1.2 on a 90 KiB disk and the third is v2.3 on a 360 KiB disk. Unfortunately, neither of these disks work. As I discussed in the above-referenced thread and will repeat here, it appears that these disks were prepared from the originals by copying the three files, FORTHSAVE, SYS-SCRNS, UNIVERSAL (aka FORTH) (in that order), from the system disks with no further processing, which is verboten for TI Forth system disks because the system screens (blocks) will never be copied properly. They will all be there, just not in their proper places and almost certainly misregistered, i.e., each block’s line 0 will not start on a 4-sector boundary. The only way to properly duplicate a TI Forth system disk is to copy the disk, sector by sector. Creating a larger system disk is more complicated, but doable. I have every reason to believe I can restore these two disks to working order, unless there is more than misregistration wrong with them. My intention is to produce 90 KiB (SSSD), 360 KiB (DSDD) and 400 KiB (CF7+/nanoPEB) versions of each disk. Right now, I need to mow a lawn—TTFN! ...lee
  12. I'm currently implementing file access in my TiVi editor. The editor is designed to run in 80 columns mode. My question is what text file formats should be supported? I mean DIS/VAR 80 for sure. But are there editors out there that support other file formats as well. Does it make sense to implement scrolling in the editor so that I can let say open a file with 255 record length and show it on a single line with scrolling? Any opinions on that?
  13. Has anybody documented the undefined behavior of the TMS9900 data and address buses when no memory cycle is happening? I noticed this today while debugging a hardware glitch (unsuccessful so far): During the Add instruction, the databus repeats the two operand values. I don't see this behavior documented in the TMS9900 manual. It seems like a nice feature to have. I guess it's the ALU "leaking" its values onto the data bus. What does an Add instruction do? The sequence of operations is roughly: instruction fetch instruction decode fetch source operand fetch destination operand internal ALU cycle (in this case, ADD) store destination operand Here is an observed sample case where the cpu adds 0010 + dec8 = ded8: My registers: WP 83E0 PC 7d32 (whole program from 7d00 to 7d80) R0 0010 R5 A000 Bus observations (each row is at least 1 clock cycle): ADDR DATA Signals Action 7d32 a540 MEMEN DBIN IAQ read instruction: A R0,*R5 ???? xx40 decode ???? xx10 decode 83e0 xx10 MEMEN DBIN fetch R0 from 83e0 a000 dec8 MEMEN DBIN fetch dec8 from a000 ???? xxc8 internal ???? xx10 internal a000 ded8 MEMEM WE store result to a000 xx are the high byte I can't see (I'm reading the side port. I only see one half of an internal 16 bit bus read.) ?? are addresses I missed cuz I only grab the address when MEMEN is asserted. The internal cycle values xxc8 and xx10 match the destination and source values. I'll be taking more notes on other instructions.
  14. Do we have sample code showing how to do a device CRU scan. What I would like to accomplish is scan and identify peripheral expansion cards like HRD3000, RS232, SAMS, ... Basically something like we have in the CFG834 configuration program.
  15. Hi everyone. I've enhanced my pretty6502 formatter to allow for TMS9900 assembler source code plus xas99 directives/syntax. It works very well with my games Astro Cube and Borzork. Of course it could need more testing Enjoy it! https://github.com/nanochess/pretty6502/releases/tag/0.5
  16. Hi everybody, I'm looking for some good working examples of doing disk file I/O operations in assembly language. Already looked at section 3 DSR (Device Service Routine) / Disk & File Management in the development resources thread. Lots of good stuff there, but seeing some working code definitely would help. What I want to accomplish is to create, read, update text files and load binary files. Basically I'd like to write a small programmer's editor for running on the TI-99/4a. For keeping things simple and compatible with as many disk devices as possible I would only focus on level 3 I/O calls. Now here's where things get tricky. I want to use my spectra2 library for most of the stuff. I learned that scratchpad memory and VDP memory must be setup in a certain way for DSR calls to work successfully. Currently I'm exclusively using scratchpad memory for all my stuff, so will have to reallocate that to somewhere else. That should be possible easily enough. Now here are my questions: 1. Does a scratchpad memory map exist, with the minimal requirements for calling DSR routines ? 2. How do I need to setup VDP memory so that file I/O is possible. I understand that a PAB must always reside in VDP memory. But the disk controller DSR also uses VDP memory for work buffers during file I/O. Does the disk controller DSR always loads files from disk to VDP or is it possible to directly load to RAM ? 3. Is it possible to do file I/O calls in pure assembly language or do I have to involve GPL in some way? The documentation being focussed on Monitor, Basic, etc. seems to imply that GPL is always involved. Is that a necessity? 4. What is the easiest way to "interface" with DSR memory setup. I mean would have to switch between my "application workspace" outside of scratch-pad memory, into the "DSR workspace" in scratch-pad memory and return safely. 5. Any good examples out there? On a sidenote, I remember a discussion with InsaneMultitasker many moons ago where it was mentioned that a file operations document was in the works. My memory is a bit blurry on that, can't recall if this was finished or not. Cheers Filip
  17. To share more on the progress, this is the current output of the tool I am working on: http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_A.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_B.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_C.html The content in these files is the original commented source code for TI-99/4A System Rom, created by the TI developers. Basically an assembler source code file is read in by TIcode99 and parsed to generate a new assembler source code file. These html files are something I wanted to do for a long time already, they include rich syntax highlighting, which is only possible because the tool actually understands and categorizes the content in the code. The tooltips (hover with the mouse on certain elements) show you detailed information about the opcode, about the symbols and their resolving, the operand type,... The symbols can be clicked on to jump to the location where they are defined. However with the enhanced tooltips you hardly need to jump for and back just to read the definition of the symbol. All this is done automatically and can be done for any Tms9900 source code file. When I change the render options to always render numbers in hexadecimal format, it generates these instead: http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_A%20-%20Hexadecimal.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_B%20-%20Hexadecimal.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_C%20-%20Hexadecimal.html When I change the render options to always render numbers in decimal format, it generates these instead: http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_A%20-%20Decimal.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_B%20-%20Decimal.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_C%20-%20Decimal.html Here are the original source files for reference: http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_A.a99 http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_B.a99 http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_C.a99 See also the formerly used thread where people helped me get this far: http://atariage.com/forums/topic/274552-lots-of-assembler-questions/
  18. ok, so I'm working on a cross-compiler for my own little high-level language called b99. The language is kinda similar to Pascal or ADA. The target is to create software in b99, compile and then assemble the TMS9900 assembly source code. It uses my spectra2 library as its runtime. So the program will run on a bare console, no 32K memory expansion required. It's still very early work (started in january), so I'm not releasing the compiler yet. The compiler itself is written in perl (using Parse::RecDescent as parsing module) Language constructs are subject to change as I'm playing around and doing funky stuff sndtest.b99 : Here's a little b99 music demo. Tunes converted by @OLD CS1 Here I am using multiple cartridge menu entries, some labels and the play sound command. Note that I make use of resources (e.g. binary files that are automatically dumped to byte statements). The idle command is used for passing control to the runtime library kernel. This is what starts the tune. sndtest.a99 : The resulting assembly source code ... and this is the cartridge binary you can run in classic99 or on the real deal: CART.bin
  19. Hi, can the experienced programmers confirm if the following statements are true and I understood the topics correct? The background is that I am working on a tool TIcode99 and would like to get it reading in 99xx(x) source code files correct. Special operand types [CruBit <cnt>, Xop <xop>, ShiftCount <scnt>] - If an opcode requires a numeric input for an operand, the sourcecode can define the number as decimal or hexadecimal. - If an opcode requires a numeric input for an operand, the sourcecode can always define a symbol (EQU opcode) and refer the symbol name instead of a direct numeric input - If an opcode requires a numeric input for an operand, the sourcecode can refer a Workspace Register instead (like 'SLA R5,R0'). However not the value of the Workspace Register is used but the number of the Workspace Register - for these operand types I can not use '1+2' as operand. Immediate operand type <iop> - If I define a Symbol, I can refer the symbol as immediate operand. Here I can also use a symbol reference like below to define an immediate operand. -SYMB1 SYMB1+2 SYMB1*256 SYMB1+SYMB2 All of these examples don't work for the operand types CruBit <cnt>, Xop <xop>, ShiftCount <scnt>. - Below instruction is not supported on the TI-99 Editor Assembler, but probably on the TI-990 Assembler (SDSMAC). LI R1,MF1+(>F*4) I assume it can be translated to? LI R1,MF1+>FFFF Questions about the Immediate Operand type: 1. What does this instruction mean? CI R0,@ENDDAT ... ENDDAT EQU $ It fails for me in the EA, never the less the 99/8 source code uses such code in DEBUGG. Other example: PAR02 CI R8,@INTEG$*256 ... INTEG$ EQU >AE 2. How can a String be useful as immediate Value? 'E' 'I'-'0' -'0' '--' '-'*256 I don't understand the usecase when to use a String like shown as Immediate operand. How are these "translated" into a numeric value? Symbol operand type <symbol> This operand type is a bit unclear to me. Afaik this i used by opcodes DEF, REF, SREF, LOAD, DXOP, END and DFOP. Should this solely allow the definition/reference of a symbol? Or should I be able to use something like "SYMB1+2" or other 'expressions'? Workspace operand type <wa> XPTL EQU 6 SRL XPTL,8 Since this works, it seems I can use a Symbol instead of a direct reference of one of the Workspace Register. Is it translated to Shift R6 by 8 to the right? However I can not use "XPTL+2" for that operand. Expression operand type <exp> It is quite clear that wherever the syntax definitions says here should be an <exp> as operand type it allows an expression to be used. However it seems that the Immediate operand type <iop> and the General Address operand types <gas>,<gad> are heavily using expressions as well. Is the assumption correct, that every expression has to result in some number (address) during assembling time? General operand type <gas>, <gad> I see sometimes an operand looking like indexed memory addressing, however the @ sign is not there. WRTADD EQU >402 ... MOVB R4,WRTADD(R9) Any explanations on why this is missing the @ sign? Many thanks for your help in advance.
  20. I was looking over an old game in a hex editor recently, and I noticed something interesting with the text data embedded in the program. All of the strings seemed fine until the end character, which was a byte value of 128 or greater. I realized what the program was doing was using the top bit on ASCII characters to determine the string end. This lets you store strings at their exact size, rather than one byte more to store either a length byte or a null terminator byte. Very clever! So I thought, how to leverage this on the TI, where I've spent a considerable amount of effort building menus and interfaces that consumed a lot of memory because of having to store strings and their addresses and lengths? So I write a routine, VTEXT, and it's companion, VTEXTC. It's a subroutine that takes the address on screen into R0, and a pointer to the desired text in R1. No length needed! It writes to the screen until it encounters the eighth bit, and stops. VTEXTC is the same, except it doesn't alter the VDP address. This will allow you to write concurrent strings to the screen one after the other. Advantages are: - Your text strings take up exactly their length in space - Reduced operations for plotting text to screen Disadvantages are: - All static text in source files has to end with the top bit set, which can be aggravating to figure out the value of a given ASCII character - Slower than a straight VMBW due to the need for a COC and copy operation on every character - If you don't have the top bit set, it could overrun the screen buffer and the rest of VDP Future expansion may include the idea of "values". Using characters 0-31 can be used as an indicator to, for example, switch to a stored numeric value in text form, so you can introduce string formatting. "%0 takes %1 damage!" for example, so it knows to plug in the 0 and 1 pre-calculated values into the string as it's writing to the screen. TOPBIT DATA >8000 * Top bit word VDPWA EQU >8C02 * VDP Write address port VDPRD EQU >8800 * VDP Read address port VDPWD EQU >8C00 * VDP access port (input/output) SCRADR EQU >0000 * Screen address TXTLN1 TEXT 'This is sample tex' BYTE 244 TEXT 'More sample tex' BYTE 244 TEXT 'Sample Tex' BYTE 244 TEXT '-Sample Tex' BYTE 244 * Video Text writer, CPU to VDP * Uses only R0 and R1 for location, length is determined by the top bit * Sends R1 value back to calling rouine for continuous stream of text * VTEXTC does not update position in VDP, so you can write multiple strings concurrently VTEXT ORI R0,>4000 * Set address for VDP write SWPB R0 * Swap to low byte MOVB R0,@VDPWA * Move to VDP address SWPB R0 * Swap MOVB R0,@VDPWA * Move to VDP address ANDI R0,>3FFF * remove extra bit so address is preserved for subsequent calls VTEXTC MOVB *R1+,R2 * Copy character to R2 COC @TOPBIT,R2 * Check if top bit is set (end of line indicator) JEQ VTEXT1 * If so, skip to end MOVB R2,@VDPWD * Write character to screen JMP VTEXTC * Loop VTEXT1 ANDI R2,>7F00 * Reset top bit on character MOVB R2,@VDPWD * Write to screen RT * return to calling program * Example LI R0,SCRADR+128 * Set R0 to SCRADR+128 LI R1,TXTLN1 * Set R1 to start of text BL @VTEXT * Write string to screen AI R0,32 * Add 32 to screen position BL @VTEXT * Write a second line of the text LI R0,SCRADR+256 * Change R0 to a different position BL @VTEXT * Write next line to screen BL @VTEXTC * Write the next text segment immediately after the prior * Program continues...
  21. I completed the replacement of the crystal in this TI99/4A so the color stability should last years and years. I also re-did the thermal paste on the two IC chips. Cleaned every part. Sadly the machine was missing one of its metal case covers. So I asked a professional auto body painter to give it a new metal look. The paint looks great and won't rub off like spray paint cans. I added the BASIC manual, AC adapter and home made composite video cable. This is a machine that will work and work for many years at that. http://r.ebay.com/CIIJg9 Thanks for looking!
  22. Hi there! I try to find an overview and comparison of all mnemonics of all CPU TI made. I'm looking for a comparative table with all mnemonics for each processor with its addressing modes an opcodes, perhaps with additional descriptions like affecting status bits etc. Does anybody know of such a list? I'll be thankful for any tips.
  23. So it has been a few years since I've done TMS9900 assembly language programming. Here's a recycled demo where I've now attached a speech sample. Tried it with classic99. Anyone willing to try if this also works on the real deal? It's an 8K image, scratchpad memory only. You'll need a supercart and a speech synthesizer to run this. CART.bin
  24. Probably lots of people had this idea already, and I've been reading about TMS9900 assembly only sporadically. Let CALLEE be the address of a subroutine like this: CALLEE (instruction) (instruction) (instruction) ... RTWP And my idea for a "reentrant call": STWP R8 S 36,R8 MOV R8, @32(R8) MOV CALLEE, @34(R8) BLWP @32(R8) Could be turned into a macro, and the trashed register cound be any one that doesn't have a special use (R12-R15). I did this on paper only, so it may have a few holes. Also, this is NOT for hardware interrupts! And, of course, for machines with a respectable amount of RAM -- definitely not a base 99/4A! So, makes sense? Is it horribly slow and wasteful and a much better method exists? EDIT: No, wait, wait. I don't need that additional space for the transfer vector. It can be located in the middle of the new workspace. STWP R8 S 32,R8 MOV R8, @8(R8) MOV CALLEE, @10(R8) BLWP @8(R8) EDIT II, THE SEQUEL: And if I didn't mind trashing the first few registers of my current WP I could even make them overlap! What do you think?
  25. Had to say this; just installed the F18a and WOW. it was so easy to install and the picture is great! The only hard part is cutting the hole for the plug. The only program I, so far, have problems with is 'The missing link'. keep getting, 'out of memory' and Stack memory goes to 0. Since I don't use it much, don't care. on the other hand It might be my imagination but the graphics seem faster. can't wait to delve into some of the extended features.
×
×
  • Create New...