Jump to content

Search the Community

Showing results for tags 'diamond'.

  • 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

Found 22 results

  1. After the MIDI Keyboard started working, the change channel, Radio buttons and adjusting the control values quickly followed. These were assembled into TEST15.APP and the video was recorded. The NTS-1 arpeggiator was turned on and the controls were adjusted. The control values were sent by moving the mouse pointer into the slide area. While the mouse was over the area, the value was displayed above the slide. While the button was pressed, the value was sent to the NTS-1 and displayed in the radio button area. An "XXX" indicates that the control hasn't been set. The patch evolved throughout the video. Near the end it started to produce a sound resembling an organ (I think). Now the LOAD and SAVE routines have to be written and a couple of minor changes need to be made. I think I'm going to start by writing a Save routine for the Random Patch Generator. Considering the last time I programed using the FILESELECT macro was 1993, I can use some practice. It seemed like yesterday until I looked at the 30 year old program listing.
  2. I haven't abandoned the Diamond - NTS-1 patch editor project(yet). A Test of a display concept looked reasonable and thought if a set of random numbers for the CC# were created and placed on the screen they could be sent to the NTS-1 without much effort. All worthwhile routines to work out the bugs. I now have a platform to develop a method of adjusting the CC data before getting back to the official patch editor. So plug in your Korg NTS-1 into your MIDI interface, put your Diamond cartridge in the slot, boot up your Atari with the "M:" handler and give RND(NTS-1) a try. Set the MIDI channel number and then press the ? Icon. A set of random numbers is created and sent to the NTS-1. You can then play the keyboard or set the arpeggiator to hear the results. They are not all great patches so you may want to turn some knobs to make some adjustments. Due to the lack of a MIDI out port, the Atari can't show what the values are adjusted to. Click the "Q" icon to quit back to the Desktop. Where to go from here. I need to know how these patch settings can be saved to a file that is compatible with the MIDI Music System voice file format. In this way they can be imported and sent to the NTS-1. I'm 99% sure that it can but I took the long way around for this example. Below is a screen printout of a patch created with RND(NTS-1). The dump was accomplished with the SDUMP11.ACC loaded during boot-up. For me it completed the printout but don't be surprised if the computer locks up and you need to reboot. What do you expect from a <300 byte accessory. The printout of the CC#,values are then used to enter the values into MMS using the command P CC#,value (ex. P53,63). The example split the 26 CC# between 2 voices to show them in one screen shot. Voice 1 was played to move the numbers into the NTS-1. Do this once and you'll also want a SAVE function. For the Diamond programmers: The disk contains RNDPATCH.APP and all the source code including the INCLUDEd macro files. I've been using files for subroutines and macros Midway through the project I decided I needed a way to tell if the files contained macros(MAC), subroutines(JSR) or macro and subroutine(MAS). The files are RNDPATCH.APP - compiled Diamond application program RNDPATCH.M65 - Dropdown menu data, start up, and Event Loop. INFODIAL.JSR - Shows info dialog box when called ICONS.M65 - Icons for ? And Q icons SYSPRT.MAS - much like the SYSDRAW diamond macro but receives address of object table CCLAYOUT.JSR - uses SYSPRT.MAS to print screen data layout SETCHAN.JSR - called from EVENT loop. Unchecks old Channel#, saves and checks new. CCDATA.JSR - Tables for SYSDRAW, Uses data tables for X,Y, placement. Calls BYTE2DEC.JSR BYT2DEC - turns BYTE into 3 character decimal string for display. SYSEQU.M65 & IOMAC.M65 - Macros supplied with MAC65 DMACRO01.M65 - Diamond macros with some modifications. see comments. *.TXT - Listed code for view without MAC65 Cart. AUTORUN.SYS - M: device handler TEST.MUS - Midi Music File of patch data. RND PATCH for NTS1 project.atr
  3. Getting Started: Been thinking long and hard about programming a patch editor for the Korg NTS-1 synth. There are patch editors out there, but none will output the Continuous Controllers (CC#) as program change commands used in the MIDI MUSIC SYSTEM (MMS) voice file format. Since I'm aware that I may be the only person to use this program, I have decided to write the program in assembly (MAC65) to run using the Diamond GOS 3. I should be able to write the code in stages and test as I go. This is going to take a greater amount of preplanning and am hoping to avoid the helter-skelter approach normally used when I program in BASIC. I know that there will never be a spit-n-polished version. I'm not delusional enough to believe that Korg will ever add it to their catalog. I am going to blog as the plan is executed. It may be of interest to those that want to develop Diamond programs. Dialog boxes, the Dropdown menu, icons and the event handler will all be used in the program. The Diamond 3.0's internal File Select routine will be used; one of those Diamond macros that can never have enough examples. There might be a little bit of 2-byte math, limited to screen positioning. MIDI is all done with 8-bit numbers with much of it limited to 7 bits. I like that. The biggest problem is how to handle the lack of a 5pin-Din MIDI output from the NTS-1. If the knobs are adjusted on the NTS-1 the Atari will never know. If the program can output the CC# values to the NTS-1, save the set of numbers that define the patch, and load the values for later use, then it will be of some use. If it does that and is compatible with MMS , I will feel the time I put into this project is well spent. The second problem is discovering what I need to relearn about Diamond programing after a 4-year hiatus. Step 1 Always my first step is to build and test the Info Dialog box. It gives me something to do while I think about screen designs and drop-down menu options. It also gives an idea on how much Diamond knowledge has been forgotten over the last 4 years. The "How to build a Simple Info Dialog Box" sheet was Greek to me. By the time the Dialog box was correctly displayed, the sheet made perfect sense. Seeing the program title on the screen also symbolizes a commitment to see the project to the end. DLOGTEST.M65 is the source code to display the "Info…." dialog box. Running the DLOGTEST.APP will show the program information. Click anywhere within the box to exit back to the desktop. INFODLOG.M65 is the DLOGTEST.M65 modified to be a subroutine. This subroutine will be #INCLUDEd in the program in hopes of keeping program versions form together. DMACRO01.M65 is the set of Diamond macros, some of which I have modified for various reasons. Check back in the blog for why changes have been made. And to check my logic. Step 2 Building the drop-down menu and starting to develop the EVENT logic is going to be the start for many test routines. I already know that the Note and Octave categories should be removed if possible. In this test the Desk-INF… will display the Info dialog box and the FILE-QUIT option takes you back to the desktop. All other program options have been defined as inactive. The LOAD and SAVE options look inactive only because the MENUENABLE macro prints them in italic. Also MENUCHECK was used to indicate the current setting for Channel, Note, and Octave. MENUTEST.M65, MENUTESTAPP. It’s a start. nts1 blog1.atr What's next: Get the MIDI data flowing through the MIDI port out to the NTX-1. This way I can tell if any future additions to the program interfere with the data as they are added. I know that the ICON event returns the X,Y position of the mouse but not so sure if they are in reference to the screen or within the icon? Also, I need to start thinking of the ICONs in groups of objects that share attributes and methods. Should be easier to write subroutines, if they all share the same data structure. I think there's a name for that.
  4. Ever wonder if you could output MIDI data to a MIDI synthesizer from your Diamond GOS equipped ATARI 8 bit through a MIDI MAX compatible interface? I didn't think so but I had to ask. And the answer is: YES - {video removed} I came across a MIDI device handler(M:) and blogged about the adventure of writing a test program in ATARI BASIC. I have had the time to try it out with a Diamond GOS program written in machine code using the MAC65 assembler. It seems that the handler, if loaded as an AUTORUN.SYS, will stay operational when quitting to BASIC or when running an APP. The program DMIDITST.APP loads and then sets up the menu bar with a quit command. Then it places 8 icons for the C scale. These where borrowed from a previous program. The M: device is opened for output to the MIDI interface. There is no error checking for the M: device and am not sure what will happen if it's not loaded. I did note that after running SDUMP.ACC, the program stopped working. This was most likely caused by the ACC opening the same IO channel for the printer that was opened for the M: device. Haven't run into an other glitches. On the chance you have an A8, Diamond GOS, MIDI interface and a MIDI sound module, the disk with the m: device, application, source and macro library files is attached. Diamond MIDI test.atr Create a Diamond boot disk with DOS and configuration files. Copy the AUTORUN.SYS and DMIDITST.APP to your boot disk. Hook up your synth, push in your Diamond cart, boot up the system, and load the app. I used DOS 2.5 on an xe with st mouse, Diamond GOS 3 and MIDIMAX. There shouldn't be any reason why the program sill not run under Diamond 2.0. It would be nice to hear that someone else was able to get it to run on their system.
  5. This is from the Diamond 3.0 GOS user manual on page 8. "Command Line Files with a COM extender are considered to be Command Line files. When executing such files you will be asked to enter various parameters. This allows various options to be passed from the DeskTop to another program. If you do not need any parameters to be entered then simply press RETURN and the program will be executed as if it were a normal APP. The command line used by Diamond is not the same as the one used by SpartaDOS, however Diamond's command line is SpartaDOS compatible when SpartaDOS is active." I don't know of any reason why the command line can not be used with the FujiNet commands but it will be some time before I can experiment. If anyone has had any experience with the Diamond command line and FujiNet COMs please consider sharing them with me/us.
  6. Found an article within a PDF of the Status Newsletter on archive.org. It explained how to rewire a CX-22 Trackball for use as an ST-mouse for an A8-Diamond GOS based system or the ST. I have been using a mouse from Best Electronics (model CBM1) for quite some time and should have a backup. I made the modifications to my CX-22 as explained in the article and it worked the first time. Diamond has been configured to use STMOUSE2.DRV for the mouse driver and worked just as well with the modified trackball. Arnold, Blake, "Trackball to Mouse", Status Newsletter v7i4, 1988, Page 13-14. https://archive.org/details/Status_Atari_newsletter_1988-v7i4 The article is well written and contains all the information you'll need. I took pictures as I made the modifications in case I wanted to revert back to the trackball and to explain how I made them. The next six photos are of the track ball before modifications. Remove 4 screws. Notice the posts to the north and south of ball. The top has pins that are inserted in these and they are friction fit. Care should be taken so that these pins are not broken while pulling the top off. Wiring on Left side of unit Wiring Right side trigger. Ball removed. Separated parts. The wiring could be unplugged without damage and was put aside for safe keeping. Making the Mods. Since the case was apart, it was placed in the dishwasher for cleaning. The chips are all socketed , so they were removed and the pins were cleaned, then reinserted. The LM339 was set aside until after the soldering on the board was completed. When you look at the photos don't use the wire colors for reference. I happen to have a couple of old cords out of a Sega(?) or was it a Genesis( ?) joystick. (been a long time). I know the cords had 9 pin plugs and 9 wires. Both Blake and I recommend mapping the wire colors to the pins before you start soldering. I made the connections on the bottom of the board. I also reminded myself several times were the #1 pin of the chip was as the board was flipped over. This allowed the wires to be run safely under the board. The board was put back into place and the LM 339 chip reinserted. Holes were drilled through the button boards for the wires. Wires were then soldered directly to the boards. I've never had much luck with those push on connector thingies. Right button. The 5volt and ground wires were connected using the female ends of a couple of jumper wires. This way I didn't have to solder the wires directly to the power pins. Its an option I had sitting in my Arduino kit. The ball is in place and the wiring doesn't look like it will interfere with the rotational sensors. Time to put the top back and tighten the last 4 screws. The TEST The 130XE was booted up with Diamond and the Best Electronic's ST Mouse as usual. The mouse was unplugged and the trackball plugged in. The pointer moved as would be expected and the system responded to the left button presses, although sometimes rather sluggish. I can't remember ever having to use the right mouse button for Diamond GOS so it wasn't tested. (I'm not getting out the ST, so am assuming the right button will work.) While I had the trackball apart I considered replacing the spring caps with micro switches. I didn't want to take the time to figure out if there was enough room for a micro switch and put it off for another time. In use not every button click was registered and if I were going to make the trackball my mouse of choice this would have to be fixed.
  7. Summer is coming to a close and soon it will be too cold to ride the bicycle. I’m running out of old programs to post and look forward to writing new ones. When I wrote this one back in 1990 I had a lot of hiRes pictures that were produced using Graphics Master and Map Ware (APX). Both these programs (and a lot more) save pictures in a 62 sector format. It is saved screen memory without compression. The HiRez is also used for the Diamond Desktop. So knowing how to load background pictures (I think they call it wallpaper now.) can have its uses. I’m not sure what I was thinking back then but I’m thinking graphic adventures at the moment. The zip files contain revision 3. It uses the file select function in Diamond 3.0. The first version used the MAC/65 file select macro. This worked well but the default file extension was .PIC. The second was to fix a bug and the default extension was changed too .GR8. To Run- 1. Open a window to the disk with View8 on it. 2. Click on VIEW83.APP to run. 3. Put the disk with the pictures into the disk drive (having them renamed with extension GR8 is a good idea) 4. Click on Load-picture in the drop down menu. 5. Now use the file selector to select a file. With any luck the file will load. It will overwrite the menu bar titles but don’t worry. When the mouse is moved to the menu bar the selections will drop down. Luckily there are only three options. The first is the ACC list. If SDUMP.ACC is active you should be able to print out the screen. The second is for Load Picture and the Third is to quit VIEW8 and return to the desktop. This is one of those “it worked for me..you’re on your own” programs. If you have problems and find a fix, I’d like hear all about it. VIEW83.zip contains VIEW83.APP and VIEW83.M65 VIEW83.zip GR8.zip – assorted pictures/maps GR8.zip
  8. Hello, all. I've purchased a Diamond Trackstar 128 but the utility disk wasn't included. Sadly this disk is needed in order to actually use the hardware. A Teledisk disk image is available from the asimov FTP, but it doesn't work... because the original disk is copy-protected. Software for the later Trackstar models is also available for download -- and by this time the company learned that copy-protecting the disks made no sense -- but these don't work with the 128. If someone has an extra working utility disk available for the Trackstar 128 I'd like to arrange to either buy it, or borrow it for proper disk imaging using special hardware. Thanks. Please contact me here or by e-mail (e-mail preferred) if you can help... contact@superfighter.com
  9. Talking about rare, peculiar, obscure, fascinating, and expensive. (Though there is much doubt on the latter existing in some form.) I wonder if anyone here has ever encountered these back in the day? (Let alone had one hooked up to their PC.)
  10. The MULTIPLY function for Diamond GOS is stated as: MULTIPLY (39) - Word sized multiply(please note overflow error are not detected) Receives: W5 - Multiplicand 1 W6 - Multiplicand 2 Returns: W7 - Result As with the DIVIDE macro, the original macro received the numbers when calling it. It was changed to accept an address of the numbers and the numbers are then copied into W5 and W6. Original macro 8500 ; 8510 .MACRO MULTIPLY 8520 LDA # <%1 ;MULTIPLICAND 1 8530 STA W5 8540 LDA # >%1 8550 STA W5+1 8560 LDA # <%2 ;MULTIPLICAND 2 8570 STA W6 8580 LDA # >%2 8590 STA W6+1 8600 LDA #MULTIPLY 8610 JSR DIAMOND 8620 .ENDM 8630 ; Modified macro 8500 ; 8505 ;MODIFIED TO LOAD NUM FROM ADDR. 8506 ;KPACK - 5/16/2018 8510 .MACRO MULTIPLY 8520 LDA %1 ;MULTIPLICAND 1 8530 STA W5 8540 LDA %1+1 8550 STA W5+1 8560 LDA %2 ;MULTIPLICAND 2 8570 STA W6 8580 LDA %2+1 8590 STA W6+1 8600 LDA #MULTIPLY 8610 JSR DIAMOND 8620 .ENDM 8630 ; The test program: 10 ;THIS PROGRAM IS TO TEST CHANGES 20 ;TO THE DIAMOND MULTIPLY MACRO 30 ; 40 ;MACRO NOW LOAD NUMBERS AT ADDR 50 ; -NOT NUMBERS 60 ;DOUBLE BYTE MATH ON TWO NUMBERS. 70 ;RESULTS PRINTED IN HEX. 80 ; 90 ; 95 .OPT NO LIST 96 .OPT OBJ 0100 *= $2200 0110 .INCLUDE #D2:DMACRO01.M65 0120 ; 0130 NUM01 .WORD 1211 0140 NUM02 .WORD 37 0150 MULRST .WORD 0 ; MUL RESULTS 0180 DVAR .WORD 0 0190 HEXSTG .BYTE "$ ",255 0200 HEXCHR .BYTE $30,$31,$32,$33,$34 0210 .BYTE $35,$36,$37,$38,$39 0220 .BYTE $41,$42,$43,$44,$45 0230 .BYTE $46 0240 ; 0250 START INIT 0 0260 MULTIPLY NUM01,NUM02 0270 LDA W7 ;STORE RESULTS 0280 STA MULRST 0290 LDA W7+1 0300 STA MULRST+1 0400 LDA NUM01 ;LOAD NUM TO CONVERT 0410 STA DVAR 0420 LDA NUM01+1 0430 STA DVAR+1 0440 JSR DB2HEX 0450 SYSDRAW HEXSTG,10,20,0 0460 LDA NUM02 ;LOAD NUM TO CONVERT 0470 STA DVAR 0480 LDA NUM02+1 0490 STA DVAR+1 0500 JSR DB2HEX 0510 SYSDRAW HEXSTG,10,30,0 0520 LDA MULRST ;LOAD NUM TO CONVERT 0530 STA DVAR 0540 LDA MULRST+1 0550 STA DVAR+1 0560 JSR DB2HEX 0570 SYSDRAW HEXSTG,10,40,0 0691 LOOP EVENT 0692 LDA EVENTTYPE 0693 BEQ LOOP 0694 EXIT ;DIAMOND 0695 EXECDESKTOP 0696 ; 0700 ; 0710 ;CONVERT HEX TO STRING 0720 DB2HEX LDA DVAR 0730 AND #$0F 0740 TAX 0750 LDA HEXCHR,X 0760 STA HEXSTG+4 0770 LSR DVAR 0780 LSR DVAR 0790 LSR DVAR 0800 LSR DVAR 0810 LDX DVAR 0820 LDA HEXCHR,X 0830 STA HEXSTG+3 0840 LDA DVAR+1 0850 AND #$0F 0860 TAX 0870 LDA HEXCHR,X 0880 STA HEXSTG+2 0890 LSR DVAR+1 0900 LSR DVAR+1 0910 LSR DVAR+1 0930 LSR DVAR+1 0935 LDX DVAR+1 0940 LDA HEXCHR,X 0950 STA HEXSTG+1 0960 RTS 0970 ; 0980 *= $02E0 0990 .WORD START My test results are as follows: TEST# NUM01 * NUM02 = Result Correct 1 $0B44 $0025 $2F07 $AF07 2 $FFF6 $0025 $7E8E 3 $1FFF $0004 $7FFC 4 $1FFF $0005 $9FFB 5 $0004 $1FFF $7FFC 6 $0005 $1FFF $9FFB 7 $00FF $00FF $FE01 8 $FFFF $0001 $7FFFF $FFFF 9 $0001 $04BB $04BB 10 $0001 $FFFF ---- CRASH Every time I look at this list, I see numbers I should have tried. I just got tired of trying. There seems to be a problem when the result is above $7FFF but not always(#4). Switching the numbers can have unexpected results(#8 and #10). Zero should have been tested. The only recommendations I will make at this time is to know the limits of the numbers you will be using in your program and test them using the macro call. Now, I'm hoping I will remember that I wrote those words of wisdom the next time I have the need to call Diamond's MULTIPLY macro.
  11. While programing dMetronome I had to learn a few things. How to divide the number of DLIs in a minute by the number of DLIs to get beats per min. I finally got to the point where I could use the Diamond Macro Divide to handle the division and as long as I kept the answer to one byte I was fine but there were many tribulations along the way. My first revelation was that the macro needed the numbers to be passed to them. Many of the d-macros pass the address pointer to W0 to W7 but not the divide and multiply macros. They require that the numbers be passed to the macro. The answer is much different when dividing two numbers or two address . The macros were changed to accept 2 addresses as pointers and then the macro moves the numbers at those addresses into W4 and W5. The answer of the division will be located at W6 and W7. Original DIVIDE Macro 8630 ; 8640 .MACRO DIVIDE 8650 LDA # <%1 ;NUMBER 8660 STA W4 8670 LDA # >%1 8680 STA W4+1 8690 LDA # <%2 ;DIVISOR 8700 STA W5 8710 LDA # >%2 8720 STA W5+1 8730 LDA #DIVIDE 8740 JSR DIAMOND 8750 .ENDM 8760 ; Modified Macro 8630 ; 8635 ;MODIFIED TO LOAD NUM FROM ADDR. 8636 ;KPACK - 5/16/2018 8640 .MACRO DIVIDE 8650 LDA %1 ;NUMBER 8660 STA W4 8670 LDA %1+1 8680 STA W4+1 8690 LDA %2 ;DIVISOR 8700 STA W5 8710 LDA %2+1 8720 STA W5+1 8730 LDA #DIVIDE 8740 JSR DIAMOND 8750 .ENDM 8760 ; This would seem to make more sense but luckily on the first try I used 2 numbers that yielded erroneous results. The following program was used to test the modified macro. Change the values for NUM01 and NUM02, compile to evaluate the result. Test Program 10 ;THIS PROGRAM IS TO TEST CHANGES 20 ;MADE TO THE DIAMOND MACRO LIBRARY 30 ; 40 ;MACRO NOW LOADS NUMBERS AT ADDR. 50 ;NOT NUMBERS 60 ; DOUBLE BYTE MATH ON TWO NUMBERS. 70 ; RESULTS PRINTED IN HEX. 80 ; 90 ; 0100 .OPT NO LIST 0110 .OPT OBJ 0120 *= $2200 0130 .INCLUDE #D2:DMACRO01.M65 0140 ; 0150 NUM01 .WORD 1211 0160 NUM02 .WORD 37 0180 DIVRST .WORD 0 ; DIV RESULTS 0190 DIVREM .WORD 0 ; DIV REMAINDER 0200 DVAR .WORD 0 ;Used to hold print variable 0210 HEXSTG .BYTE "$ ",255 ; 4 spaces for double byte 0220 HEXCHR .BYTE $30,$31,$32,$33,$34 0230 .BYTE $35,$36,$37,$38,$39 0240 .BYTE $41,$42,$43,$44,$45 0250 .BYTE $46 0260 ; 0270 START INIT 0 0280 DIVIDE NUM01,NUM02 0290 LDA W6 ;STORE RESULTS 0300 STA DIVRST 0310 LDA W6+1 0320 STA DIVRST+1 0330 LDA W7 0340 STA DIVREM 0350 LDA W7+1 0360 STA DIVREM+1 0370 LDA NUM01 ;LOAD NUM TO CONVERT 0380 STA DVAR 0390 LDA NUM01+1 0400 STA DVAR+1 0410 JSR DB2HEX 0420 SYSDRAW HEXSTG,10,20,0 0430 LDA NUM02 ;LOAD NUM TO CONVERT 0440 STA DVAR 0450 LDA NUM02+1 0460 STA DVAR+1 0470 JSR DB2HEX 0480 SYSDRAW HEXSTG,10,30,0 0490 LDA DIVRST ;LOAD NUM TO CONVERT 0500 STA DVAR 0510 LDA DIVRST+1 0520 STA DVAR+1 0530 JSR DB2HEX 0540 SYSDRAW HEXSTG,10,50,0 0550 LDA DIVREM ;LOAD NUM TO CONVERT 0560 STA DVAR 0570 LDA DIVREM+1 0580 STA DVAR+1 0590 JSR DB2HEX 0600 SYSDRAW HEXSTG,10,60,0 0610 LOOP EVENT 0620 LDA EVENTTYPE 0630 BEQ LOOP 0640 EXIT ;DIAMOND 0650 EXECDESKTOP 0660 ; 0670 ; 0680 ;CONVERT HEX TO STRING 0690 DB2HEX LDA DVAR 0700 AND #$0F 0710 TAX 0720 LDA HEXCHR,X 0730 STA HEXSTG+4 0740 LSR DVAR 0750 LSR DVAR 0760 LSR DVAR 0770 LSR DVAR 0780 LDX DVAR 0790 LDA HEXCHR,X 0800 STA HEXSTG+3 0810 LDA DVAR+1 0820 AND #$0F 0830 TAX 0840 LDA HEXCHR,X 0850 STA HEXSTG+2 0860 LSR DVAR+1 0870 LSR DVAR+1 0880 LSR DVAR+1 0890 LSR DVAR+1 0900 LDX DVAR+1 0910 LDA HEXCHR,X 0920 STA HEXSTG+1 0930 RTS 0940 ; 0950 *= $02E0 0960 .WORD START This is a list of the numbers used for the tests and the results as printed to the screen. Test NUM01 / NUM02 = Result Remainder (W4) (W5) (W6) (W7) 1 $04BB $0025 $0020 $001B 2 $FFFF $0001 crash 3 $FFFF $FFFF crash 4 $B478 $C3B2 crash 5 $0000 $F2F7 $0000 $0000 6 $F2F7 $0AB4 crash - 7 $FFFE $0002 crash 8 $0FFF $0002 $07FF $0001 - 9 $7FFF $0002 $3FFF $0001 10 $8000 $0002 crash - 11 $0002 $7FFF $0000 $0002 12 $0002 $8000 $0000 $0002 13 $0002 $FFFF $0000 $0002 14 $7FFF $7FFF $0001 $0000 15 $75D1 $72A5 $0001 $032C After test 6 it was noted that any number that had bit 15 set might crash Diamond 3.0. Test 7 and 8 proved that it is within the upper 4 bits of the double byte number that a problem occurred. Test 9 and 10 proved that it was bit 15 that was the problem. Tests 11 - 15 were tried to verify the crash point. In conclusion I believe (at this moment in time) that the DIVIDE macro, as modified, will accept the addr-s for 2 numbers and give the proper results if: The numerator (NUM01) is between 0 - 32767 ($0000 - $7FFF). The denominator(NUM02) is a double byte number but not 0. Disclaimer: I have only tested the Divide Diamond function on my Diamond 3.0 cartridge. I have included the ATR with the source files so you can generate test results on your system. You'll need the MAC/65 cart. div macro test.zip I'm not up to delving into the Diamond Source code and will simply try to stay within the restrictions defined above. Of course, if these assumptions are incorrect I won't find out until after I click "Publish". When the tests on the multiply function have been finalized a report will be issued.
  12. The dMetronome project was my first requiring multibyte math. Now I want to modifiy the Diamond Macros for Multiply and Divide to make them easier to use. I have written the test program and am getting unexpedted results for the MULTIPLY function. I'm hoping someone can/will run the MATHTEST.APP and let me know their results. I would like to varifiy resutls for Diamond 2.0 and 3.0. The program simply lists the following numbers in HEX. 1 number 1 2 number 2 3 multpication result 4 division result 5 division remainder Once the numbers are displayed the program waits for an event(key press or mouse click) and returns to the desktop. I have included the source code but not the modified macro file. I will post in the "Diamond in the Rough" blog when I understand the problem(s) I'm having. Thanks in advance. MATHTEST.zip
  13. Programing Axiom - The solution for every programming problem becomes obvious only after the solution has been found. The PARAPRNT(2) and SYSDRAW(44) Diamond functions are both used to print text or font elements to the screen. The SYSDRAW is fast because it is a no frills text display function. If you have the time, the PARAPRINT allows the use of control characters in the text object to create bold, italic, outline, underline, inverse, light, mirror, and reverse characters. You can also change fonts and enlarge the print using magnification factors. The 3.0 programming manual covers PARAPRINT and the text object on page 6 and 7. I had a problem getting the PARAPRNT macro to display a three character string at magnification level 4 for both height and width. Actually I couldn't get the macro to display anything and it took me a couple of days to find the obvious solution. The Function parameters as explained in Appendix I: Function Reference PARAPRNT (2) - Prints a text string using Diamond's styling and font features. Receives: B0 - X Offset B1 - Y Offset B2 - Line spacing W1 - X Position W2 - Y Position W3 - X Clipping Location W4 - Y Clipping Location W5 - Address of the Text String Returns: None You can set up the Diamond registers, load the Accumulator with the function number and JSR to Diamond or…… Use the MAC/65 PARAPRNT macro in the DMACROS.M65 file. There are a few options that are configured within the macro. If you are not using the B0,B1,W3 and W4 settings you can use the macro call …. PARAPRNT ADDR of TEXT, X,Y,LINESPACING Although I couldn't get it to work until….. Spoiler Alert - just in case you want to solve this one on your own. The obvious solution is: 1- In the macro file DMACROS.M65, locate the PARAPRNT macro . PARAPRNT is the second macro in the file. The line number changes if you are using the library included with Developer's Kit version 2.0 or 3.0. 2- You want to set W3 and W4 to $FF. Add the line "LDA #$FF" after the line setting B1 to 0. LDA #0 STA B0 STA B1 LDA #$FF ;added date by self STA W3 STA W3+1 STA W4 STA W4+1 3- comment this line for future reference and save the macros. 4- Be sure the .INCLUDE directive is pointing to the revised file. I started seeing characters printed to the screen on the first try using the modified macro. The following example code is being used to build and test a subroutine that will be added to a much larger program. Its what was used to test the macro fix. 10 ;MATH AND PRINT SUBROUTINE TEST 20 ; 30 .OPT NO LIST 40 *= $4000 50 ; 60 .INCLUDE #D:DMACROS.M65 70 ; 80 PU .BYTE "XXX - 60THS SEC.",255 90 PBLANK .BYTE " ",255 0100 BPMU .BYTE "BPM",255 0110 BPMBLANK .BYTE 252,0,254,4,255,4 0120 .BYTE "123",0 ;CHANGE LATER 0130 ; 0140 START ; DIAMOND MACROS 0150 INIT 0 0160 SYSDRAW PU,11,125,0 0170 SYSDRAW BPMU,25,72,0 0180 PARAPRNT BPMBLANK,52,48,8 0190 ; 0200 ; 0210 LOOP EVENT 0220 LDA EVENTTYPE 0230 BEQ LOOP 0240 EXIT 0250 EXECDESKTOP 0260 ; 0270 *= $02E0 0280 .WORD START P.S. If this is old news please let me know where I can find any other old Diamond news on the web.
  14. When starting a Diamond project, I have a tendency to utilize a lot more design time before sitting down in front of a computer. Sketching out displays, icons and menus seem to consume a lot of time but having this all worked out before committing it to code helps. (Random Thought - Remember going into the office supply store and finding a whole section of graph paper. This time I had to ask the clerk where it was. He pointed me toward the paper section and said, "Its next to the carbon paper." I found one - 5 squares to the inch spiral binder.) Probably the first thing that I design is the title dialog box (sometimes called "about" or "Info…" in the drop down menu. It holds important information about the title, version #, author and the date. It kind of represents the big picture and helps solidify a commitment to the project. And…. Each time I start coding a project I seem to be spending a day or two trying to make the screen look like the sketches. And… I always say that I'm going to take notes on the process so I don't have relearn it each time. And…. Each time I didn't. So this time, I made this reference sheet on how to define a dialog box, put a text object into it and define the hole box as a touch area. All the information I need to create a simple info box. Its definitely not a substitute for the manual. Diamond Simple Dialog.pdf All the information is in the Diamond Develop Manual but scattered on several pages though out the manual. My biggest problem was figuring out the reference points. Where the 0,0 reference point is seems to change. I concluded that the touch areas are located using the upper left corner on the outer edge of the boarder. The text is place in reference to the upper left-corner inside the boarder and is calculated using the lower left corner of the first print character. The other thing to keep straight is the count units. Are you counting bytes, characters, color clocks, pixels or scan lines? I did the rough draft of the reference sheet and tested it by designing the HELLO WORLD dialog box. I found one misconception on the reference sheet and 3 mistakes in math. I believe those have been corrected. I hope to be running more tests before the end of the year. I'll up date with any refinements in the comment area, so check back here if you should ever be in need of a simple text dialog box. This HELLO WORD Dialog box was programed using M65 and the Diamond macro library from the Diamond Develop Kit. 0100 ;HELLO WORLD dialog example 0110 ; 0120 .OPT NO LIST 0130 *= $4000 0140 ; 0150 .INCLUDE #D:DMACROS1.M65 0160 ; 0170 HELLOOBJ 0180 .BYTE 1 ;TEXT OBJECT 0190 .WORD HELLOSTRING ;ADDRESS 0200 .WORD 0 ;START X 0210 .WORD 8 ;BOTTOM OF FIRST LINE OF TEXT 0220 .BYTE 8 ;SCAN LINES/LINE FEED 0230 .BYTE 255 ;END OF LIST 0235 ; 0240 HELLOSTRING ; TEXT 0250 .BYTE "HELLO",13 ;LINE FEED 0260 .BYTE "WORLD" 0270 .BYTE 0 :END STRING 0275 ; 0280 HELLOTOUCH 0290 .BYTE 0,28,0,36 ;WHOLE BOX 0300 .BYTE 255 ;END OF LIST 0310 ; 0320 ; 0330 START ; DIAMOND MACROS 0340 INIT 0 0350 DODIALOG 7,32,HELLOOBJ,HELLOTOUCH 0360 EVENTDIALOG 0370 RELEASEDIALOG 0380 EXIT 0390 EXECDESKTOP 0400 ; 0410 *= $02E0 0420 .WORD START
  15. At some point during the writing of the last blog entry it dawned on me that accessories could be written to toggle the logic output for the joystick port from within any Diamond application that uses the drop down menu. Six machine language programs were developed to do just that. JSP1OUT.APP Application to set the joystick port 1(JSP1) to output. JSP1IN.APP Application to set JSP1 for input. JSP1P1.ACC – JSP1P4.ACC Accessories to toggle the pins on and off when loaded during boot up. Down load this video to view the programs in action. dControl acc.wmv As you can see by the MAC/65 listings that these files are small. Just be aware that they were written to control JSP1 while using JSP2 for mouse input. Small is a good thing when writing accessories. Only 6 .ACC flies can be loaded at one time and there is 300 bytes reserved for their use. JSP1OUT.APP - This program sets the JSP1 PIN1-4 as outputs. Then sets the output values to 0. The jump to Diamond function #48 returns you to the Diamond desktop. 1000 ;PROGRAM TO SET UP THE JOYSTICK1010 ;PORT FOR OUTPUT TO BE1020 ;CONTROL BY DIAMOND.ACCs1030 ;1040 ; BY PACK007 V1.0 JUNE 20151050 ;1060 .OPT NO LIST1070 PORTA = $D3001080 PACTL = $D3021090 DIAMOND = $8E001100 ;1110 *= $30001120 ;1130 START LDA #481140 STA PACTL1150 LDA #151160 STA PORTA1170 LDA #521180 STA PACTL1190 LDA #01200 STA PORTA1210 LDA #48 ;DIAMOND FUNCTION1220 JSR DIAMOND1230 ;1240 *= $02E01250 .WORD START JSP1IN.APP – Sets the JSP1 pins to inputs. No need to reset the logic levels . 1000 ;PROGRAM TO RESET JSP11010 ;FOR INPUT 1020 ;1030 ;1040 ; BY PACK007 V1.0 JUNE 20151050 ;1060 .OPT NO LIST1070 PORTA = $D3001080 PACTL = $D3021090 DIAMOND = $8E001100 ;1110 *= $30001120 ;1130 START LDA #481140 STA PACTL1150 LDA #01160 STA PORTA1170 LDA #521180 STA PACTL1190 LDA #48 ;DIAMOND FUNCTION1200 JSR DIAMOND1210 ;1220 *= $02E01230 .WORD START JSP1P1 to JSP1P4.ACC – Toggles the appropriate pin on and off. Writing accessories is a bit more complicated due to Diamond’s need for some header information in order to add the program to the drop down menu. It also needs to know where put the program in memory and its length. SKELETON.M65 is setup to organize this information in the required order while assembling an .OBJ file. This .OBJ file is then read by the MAKEACC.APP, manipulated, and then written as an accessory (.ACC). JS1P1 is listed. There are but two lines to change for the other pins. Line 1130 contains the 10 Character title. Line 1210 uses the bit value 1, 2, 4, and 8 for pins 1 – 4 of JSP1. 1000 ;ACC TO TOGGLE OUTPUT ON PIN 11010 ;Of JSP11020 ;1030 ;PACK007 V1.0 JUNE 20151040 ;1050 ;Start with SKELETON.M651060 ;for Desk Accessories1070 ;1080 .OPT NO LIST1090 ;1100 ;1110 *= $2FF01120 ;1130 .BYTE "PIN 1 " ;10 Byte Name1140 .WORD ENDACC ;End of Accessory1150 .WORD 01160 .WORD RUNACC ;Run Address1170 ;1180 ;ACCESSORY VARIABLES1190 ;1200 RUNACC1210 LDA #1 ; PIN BIT VALUE1220 EOR $D300 ;PORTA1230 STA $D300 ;PORTA NEW VALUE1240 RTS1250 ENDACC One possible use for these pins is suggested in this “Out of the Pack” blog entry. http://atariage.com/forums/blog/572/entry-11626-relay-boards-under-atari-8bit-control/ References: Chadwick, Ian, Mapping the Atari, Compute! Books, 1985 Chasin, Mark, Assemble Language Programming for the Atari Computer, A Byte Book, 1984 Diamond Develop User Manual, Third Addition, Reeve Softs, 1991 Lawrow, Stephen D., Mac/65 reference manual For Atari, Optimized System Software, 1984 Mansfield, Richard, Machine Language For Beginners, Compute! Books, 1983
  16. This is the last accessory from the ones written pre-2000. I was hoping that by this time I would have remembered how they had been created. Looks like the learning curve will start from the beginning again. It should take me about 10 min. to go over vast amount of literature about programming Diamond accessories. The zip file contains DIRPRINT.ACC and DIRPINT.M65 DIRPRN.zip Diamond DIRECTORY ACCESSORY Ever want to print a disk directory while your at the Diamond desktop. It's at those time you miss the "A" command in DOS 2.x - "D1:*.*,P:". This ACC will print out the Directory of D1: or D2: without leaving the Desktop. Diamond reserves about 300 bytes for accessories. At boot up it scans the disk for files with the ACC extension. When it finds one, it loads the program into an area of memory. When called, the accessory is moved to a predefined location, executed and then moved back. This process and file header information is explained in much greater detail in the DIAMOND Developers Kit. Directory Printer is one such accessory. The short program dumps the disk directory of a disk formatted in DOS 2.x to the printer. Nothing to complicated, but it's sometimes handy to have the capability at the click of the button. Copy the file to your Diamond set-up disk. This accessory requires 213 bytes and may not leave enough room for others. If there are conflicts some .ACC files will have to be deactivated. This can be done by changing the extension (DIRPRN will load in with the REBOOT accessory that comes with the operating system without problems). Now reboot the system. If you check the drop down menu section, DIR PRINT should be one of the options. Be sure that the printer is on and there is a disk in drive 1. Click on the menu option and a disk directory should be printed. If you want a print out of drive 2, hold down the START key before you click. Try loading an application program, such as DIAMOND Paint. You will find that DIR PRINT is still there. Now, any time from any program you can print out a directory. There is one thing worth mentioning. Memory for accessories is limited and it remains the domain of short programs. The shorter the better. One way to keep accessories short is to reduce the amount of error checking. DIR PRINT has absolutely no error checking. If you try to run the accessory while the printer is off or there is a problem with the disk or drive, more then likely, the computer will lock up.
  17. I recently activated this accessory to see if I could get one of my 410 tape machines to work. I can hear the motors running but the tape no move. I hope you have better luck. The Atari Program Recorder is a stereo recorder/player. The right channel is used for program storage and the left can hold audio information. This audio channel can hold music or speech and is sent to the TV or monitor speaker. Of course you can control this from the computer, which makes for some interesting options. This accessory makes it possible to play music(left sound track) using the program recorder while using Diamond. First plug in your Program Recorder. Copy RECORDER.ACC to your Diamond BOOT disk, then re-boot. Put a prerecorded cassette into the recorder and push play. Now point to the accessories in the menu bar and click on CAS ON/OFF. The recorder motor should start and you should be hearing whatever is on the left channel of the tape. Click CAS ON/OFF again to turn off the music. Be sure to keep in mind that you can not have the motor on and use the disk drive. Stop the recorder motor before you try to access the disk drive. The accessory is about 25 bytes long. There is only enough room for about 300 bytes of accessories. Deactivate one if you need to. RECORDER.zip The ZIP file contains RECORDER.ACC and RECORDER.M65
  18. It seems I may be procrastinating the start of my next Diamond program project. I have analyzed the situation and found that the postponement is not due to a lack of ideas as much as the fear of finding out how much I have forgotten about programing the Atari. Here is a sample of what else has been found to do. Delay #1 I have decided to usurp the letter “d” to denote the presents of Diamond. Finding ways to delay the pain of carpal tunnel syndrome is of growing importance. So when I push the Diamond cartridge into my Atari it will become dAtari. (Or I should say dCartridge). Diamond Write will become dWrite and Diamond Paint will become dPaint. I am still trying to figure out if “dAtari” or “the dAtari” will be the correct usage. Maybe I need to think this through and find out how to keep OpenOffice from capitalizing the first letter of a sentence. Delay #2 My wife had me take a piece of cheep furniture we used as a night stand out with the garbage. It made it as far as my basement office where it sat under the desk for a couple of years. Luckily it was there to set up dAtari but was soon crowded with equipment. So instead of writing programs I put a shelf under the draw for the disk drives and mounted the computer on its side. A shelf was constructed to set on the extended drawer to accommodate the keyboard and mouse. There is a little more room to work. Delay #3 Several dDisks had been found and examined for content. One disk was formatted with SpartaDOS 3.2. It must have come with one of the computer systems destined for landfills. I was one “DIR” away from a couple of programs I had forgot about. FONTEDIT.APP - This appeared to be a font editor from Reeve Software (1989). It is a good start to a useful program. Upon closer inspection the menu functions were not working and only the letter “A” could be edited. Nice dDemo. FONTCONV.BAS – This program should convert a standard format(?) font into a dFont. I have not seen this program in action so can not attest to its usefulness. Maybe someday. It's on my dTodo list. JACKET.APP – A disk jacket maker for Epson FX printers. Written by D.M.A. in 1991. This will print the disk directory onto a sheet of paper that can be cut, folded and pasted to make a disk sleeve. CHECK.APP – Check writer by D.M.A (1991) for Epson FX compatible printers. It creates a dialog box to input the check information for printing on a check. Delay #4 Played a couple of games of Mix and Match to determine if I should video tape for Blog. Delay #5 LEGO Batman 2 for the Wii. Now over 94% complete. I did decide on a starter dProgram. I need a calculator app. I think I'm going to call it dCalculator. I keep changing my mind about the method of implementation. (To icon or not to icon) Reverse Polish Notation and Atari BASIC's floating point math should make it simple to program. Since I'm not trying to make the payments on the Lamborghini, there is not that much of a rush. A trip to the office supply store was in order 'cause there was no graph paper in the house. That whole section of coordinate paper has shrunk to one spiral book with 5 squares to the inch. Luckily its good enough for my needs. This hole ordeal with the graph paper makes me think the first project should have been a dIcon Editor utility.
  19. I keep searching the web looking for any references to programs that were written for Diamond beyond Paint and Write. It might surprise some people that they exist. Finding them is unlikely in the places I've looked. REEVEsoft offered some on a public domain disk and most were on CompuServe. The author of the following list is a personal friend. He remembers that some people were able to run the programs and others could not. Your Diamond version, DOS or computer model will determine a programs success or failure. VIEW8.APP I was a big fan of Graphic Master and the world mapping program from APX. Both these programs used the GR.8 graphics mode to display the screen and save the bit mapped image. VIEW8.APP used the diamond select routine to load these images if the extension was changed to .GR8. There were 2 versions. VIEW82B.APP ran under Diamond 2.0 and used an M65 file select macro. VIEW83.APP used the cartridge based file select routine in Diamond 3.0. MIXNMATCH.APP Is a game to match hidden symbols on a 6X6 game board. There was one player, two player modes or play against the computer. A redefined Diamond Font (MIXNMATCH.DFT) was used to define the symbols and is required for game play. TILES.APP This is the game where you have a matrix of mixed up tiles, one is missing and you have to put them back in order. BASLOADR.APP A utility that will create a file to auto-load a BASIC program when quitting from Diamond. Its an adaptation of a program from COMPUTE! January, 1983 issue called Automate. It creates a file for each of the BASIC program you want to run. I have had intermittent problems using this program. At first I though it was the switch from Diamond 2.0 to 3.0 but that is not the full explanation of the problems. I hope this is something I can report upon in the future. DIRPRT.ACC An accessory that that will print the directory to a printer. I'm just not sure which printers/interface it will work with. RECORDER.ACC This accessory will turn the motor of an Atari cassette recorder on and off. The audio channel can be listened to. The draw back is you can't access the disk drives while the motor is on. SBLANK.ACC This screen blank turns off the screen display until the mouse is clicked. Part screen saver – Part security when someone enters the room. SDUMP.ACC Uses the “49 Second Screen Dump” to print the screen display. With the right printer it works with the desktop and with VIEW8.APP. If you lament about the lack of Diamond software please remember that it is not a total lack of software.
  20. A funny thing happened on the way to Diamond enlightenment. It all started because I re-read the manual and examined each of the files on the Diamond GOS Utilities and Diamond Develop disks. The Diamond GOS Utilities disk has the support files that work with the Desktop, Diamond Paint, and Diamond Write. You can read the manuals to find out how to configure your system. Configuring your system will improve Diamonds performance. I was able to identify most of the files. I'm not clear on the difference between STMOUSE.DRV and STMOUSE2.DRV. I'm wondering if I'm going to be using the best one. The Diamond Develop disk contains demo, MAC65 source code, and other programs to aid in your programming efforts that use the Diamond Functions. All the assembly source code and macro libraries are for use with the MAC65 assembler. There must be a disk image somewhere. I know not where. At this time, I have no easy way to upload them but then do you have the means to download them? Equipped with the Diamond Cartridge, Diamond GOS Manual (from previous blog) and Diamond GOS Utilities disk, you are ready to bring your Atari into the 21st century. Add the Develop manual and disk, you're ready to take control. Diamond GOS Utilities including Diamond Paint/Write c 1989, 1991 REEVEsoft REBOOT.ACC – Accessory to reboot computer from desktop PAINT.APP – Diamond Paint 3.0 WRITE.APP – Diamond Write 3.0 CONFIGUR.APP – Configures system memory and mouse drivers OSSTODOS.BAS – Converts OSS A+ Binary File to Atari DOS EXITDMND.BAS – Clears Diamond to run DUP.SYS from BASIC SYSTEM.DFT – Diamond Font GOTHIC.DFT – Diamond Font COMPUTER.DFT – Diamond Font BOLD.DFT – Diamond Font WEIRDO.DFT – Diamond Font JAPAN.DFT – Diamond Font EIGHTY.DFT – Diamond Font EPSON.DMP – Printer driver for Diamond Paint README.DOC – Sample Document for Diamond Write MEMORYXL.DRI – XL memory diver MEMORYXE.DRI – XE memory driver KOALA.DRV – Koala mouse driver KOALA2.DRV – Koala mouse driver JOYSTICK.DRV - Joystick mouse driver JOYSTCK2.DRV - Joystick mouse driver STMOUSE.DRV – ST mouse driver STMOUSE2.DRV – ST mouse driver TOUCHTAB2.DRV – touch tablet mouse driver DEGAS.IMP – Import Degas file format used by Diamond Paint NEOCHROM.IMP - Import Neochrom file format used by Diamond Paint DESKTOP.INF – System configuration file SPYVSSPY.PIC – Sample picture for Diamond Paint DRAGON.PIC – Sample picture for Diamond Paint SKUNK.PIC – Sample picture for Diamond Paint STARG10.PRT – Printer Driver for Diamond Write EPSNRX80..PRT – Printer Driver for Diamond Write ESPNMX80.PRT – Printer Driver for Diamond Write DIAMOND.SDX – configuration file for Sparta DOS X DOS.SYS – Atari DOS 2.0 CLICKME.TXT – Text about some of files on this and develop disk Diamond Develop Super Cartridge c 1990 REEVEsoft ACCMAKER.APP – Converts .OBJ files to .ACC using accessory rules MENU.APP – Demo menu function WINDOW.APP – Demo window function DIALOG.APP – Demo dialog function DEVELOP.BAS – Shell for using functions by Atari BASIC DESEG.BAS – converts segmented binary files to Atari DOS ? MESSAGE.M65 – Test of Message Box function IOMAC.M65 – I/O Macro files SYSEQU.M65 – System equates for IOMAC.M65 MENU.M65 -Source code for MENU.APP LIBRARY.M65 – Register equates and useful macros MEMORYXE.M65 – Source code for memory driver JOYSTICK.M65 – Source code for joystick mouse driver WINDOW.M65 – Source code for WINDOW.APP DMACROS.M65 – Equates/ Macros for Diamond CONFIGUR.M65 – Source code for CONFIGUR.APP SKELETON.M65 – Shell used for app creation DIAMBASIC.M65 – Source code for Page 6 routine in DIABASIC.BAS DIALOG.M65 – Source code for DIALOG.APP (comments wrong) SKELETON.OBJ – example bin code created using SKELETON.M65 for conversion by accmaker.app Now about that funny thing....... I was looking through the GOS manual for file information when I read on page 14 about not using the mouse driver in the cartridge while using Diamond Write. The default mouse driver can be used to move the mouse pointer using the curser keys and the space bar as the button. It should be used to gain access to configur.app to choose the proper mouse driver. I was having the very problem that was described in the Diamond Write section. The cursor was doing strange things when I tried to type so I thought it best to see which mouse driver I was using on my boot disk. There was no mouse driver on my boot disk. I don't think that there was ever a mouse driver on the disk because I can't remember not have problems typing into Diamond Write program. The memory Driver was there so I must have configured my system at some point. I copied STMOUSE2.DRV to the boot disk, reconfigured using CONFIG.APP. The ability to type into Diamond Write was greatly improved. Actually it became possible. I may have to rewrite my opinions of Diamond Write. I have to think that this was more strange funny then funny funny; that it took me over 20 years to notice the lack of a mouse driver on my boot disk. I did learn that having the Diamond manuals are a great help and the greatest value comes from reading them.
  21. ITEM 1 I made a reference, in my last blog entry, to a USR call to run a Diamond function from Atari BASIC. In assembly language you would set the data and pointers required by the Diamond function, place the function number in the accumulator, then jump to Diamond at $E800. In BASIC you set the data and pointer data as defined by B0-B7 and W0-W7, then call a machine language routine that BASIC loaded into page 6 memory. Because Diamond and BASIC both use the same Zero page addresses, when jumping from BASIC to Diamond the BASIC data in those locations has to be saved and the Diamond data has to be relocated into those addresses before the jump to $E800. Then the BASIC data has to be moved back into Page 0 before BASIC takes control of program flow. I have edited out the reference but want to apologize for any confusion that my last blog entry may have caused or that which has been caused by the last paragraph. ITEM 2 I was playing around, trying to get BASLOADR.APP to work. This was a program that would take the file name of a BASIC program and save it along with ml code that would act like an AUTORUN.SYS file to run the BASIC program when quitting from Diamond. It didn't work. Then I hit the scroll-lock key and it worked. I guess I have some more experimenting to do. Right now it looks like it will work with both Diamond 2.0 and 3.0. ITEM 3 I need a solution to the fact my short term memory just isn't what it use to be. Sometimes I can remember a file name of a BASIC program that I want to run, quit out of Diamond, type - RUN “D:FILENAME.BAS”, and it runs. And sometimes I can't. I have written a BASIC program that uses the Diamond File Select Routine to load a list of files with the .BAS extension, select the file with a click of the button and then click the run button. I seem to be able to remember RUN “D:MENU.BAS”. I am not sure if the program got published but I was going to update it to run with both the DEVELOP.BAS and a public domain SHELL.BAS from DIABASIC.ARC. I haven't done that yet 'cause I wanted to find out what the differences between the ml-PAGE 6 routines were. To do that I had to de-compile the ml routines. (I checked the DEVELOP.BAS programs on the development kits for Diamond 2.0 and 3.0 and they are the same program.) Although there are programs that can de-compile compiled Assembly programs, doing it by hand has its challenges. ITEM 4 Having read almost every book on Assembly language for the Atari and the Boot Camp series in Analog Computing, I felt like I had learned a lot. It wasn't until I de-compiled the 49 Second Screen Dump from Compute! for a Diamond accessory by hand did I feet like I was starting to understand Assembly language. So, when I decided to compare the BASIC shell USR calls contained in the two shell programs it seemed like the way to go. I assembled the needed aids. Pencil (with eraser), Paper(lined), “The Analog Computing Pocket Reference Card c1985” (Code Translation Table is quite helpful), Book on machine language (I used Machine Language For Beginners by Richard Mansfield) and Mapping The Atari (in case the program references memory locations). The Code Translation table can be used to convert numbers between decimal and hexadecimal but I have been using the Texas Instruments TI-34 calculator to make the conversions plus it has the ability to do binary math and octal conversions. A new one will cost about $50 on Amazon or $10 for a used one. Some of the free phone apps will make the conversions for free. The most important thing you need is a print out of the numbers that make up the ml routine. The shell program that came with development kit for was called DEVELOP.BAS. The routine is contained in the data statements at the end of the program. READ the data then POKE it into Page 6. Between the POKE X,Y and NEXT X commands add the command “PRINT X,Y:”. Run the program and the Address and BYTE data will print to screen. Use LPRINT if you have a printer. The code for the public domain program iis contained in the file DIABASIC.OBJ. The SHELL.BAS program opens this file and calculates the Address for each Byte. Again, add the print command between the POKE and NEXT (line 24) and then run the program. I used the scroll lock and wrote down the code. If it had been any longer I might have gotten out the printer. Also you should change the error in defining W4 in line 31. W4 should equal 1547. Now its just a matter of looking up the fist byte in the Code Translation Table to see if there is an Assembly instruction associated with the number. The Addressing Mode will tell what to do with the next bytes. Knowing the addressing modes is a must and should be learned before attempting this. The Branching instructions should be reviewed at least once ever 15 years, I have yet to master those calculations(but I'm getting close). Below is listed the code for the 2 URL calls. Feel free to check my work. The two routines do the same thing in two different ways. The only real difference is that in DIABASIC.OBJ a byte location PORTB, something to do with memory bank switching, is saved and restored. Knowing this could prove important at a future date. DEVELOP.BAS from Diamond 2.0 developer's kit. Addresshex Dec Instruction ASM Comment0600 1536 76,27,6 JMP $061B ;Jump over data bytes0603 ;24 bytes to hold information Address variable W0-W7061A ; bit data in B0-B70601B 1563 32,36,06 JSR $0624 ;swap data 1566 104 PLA 1567 104 PLA 1568 104 PLA 1569 32,0,142 JSR $8E00 ;call diamond function0624 1572 162,23 LDX #23 ;swap data back (pass 2)0626 1574 189,03,06 LDA $06038,X 1577 168 TAY 1578 181,128 LDA $80,X 1580 157,03,06 STA $0603,X 1583 152 TAY 1584 149,128 STA $80,X 1586 202 DEX 1587 16,241 BPL $0602 ; - 15 Bytes 1589 96 RTSDIABASIC.OBJ from DIABASIC.ARC - Public Domain Addresshex Dec Instruction ASM Comment0600 1536 76,27,6 JMP $0633 ;JUMP OVER 48 BYTES0603 1593 ;Holds data for page 0 that is used0632 1886 ;by diamond and basic0633 1587 104 PLA 1588 162,0 LDX #00630 1590 181,128 LDA $80,X 1592 157,27,6 STA $061B,X 1595 189,3,6 LDA $0603,X 1598 149,128 STA $80,X 1600 232 INX 1601 224,24 CPX #24 1603 208,241 BNE $0636 ; -14 BYTES 1605 173,1,211 LDA $D301 ;PORTB - bank switch 1608 9,2 ORA #2 1610 141,1,211 STA $D301 1613 104 PLA 1614 104 PLA 1615 32,0,142 JSR $8E00 ;JUMP TO DIAMOND 1618 173,1,211 LDA $D301 1621 41,253 AND #253 1623 141,1,211 STA $D301 1626 162,0 LDX #0065C 1628 181,128 LDA $80,X 1630 157,3,6 STA $0603,X 1633 189,27,6 LDA $061B,X 1636 149,128 STA $80,X 1638 232 INX 1639 224,24 CPX #24 1641 208,241 BNE $065C; -14 BYTES 1643 96 JSR
  22. Does anyone know the right way to bring up the Diamond for the ColecoVision version of Mr. Do! which awards you with 10,000 points and a quick move to the next screen? As in, what would the proper algorithm be to get the Diamond to appear on the CV version? ~Ben
×
×
  • Create New...