Jump to content

Search the Community

Showing results for tags 'intellivision'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Atari Systems
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
  • Gaming General
  • Marketplace
  • Community
  • Game Programming
  • Site
  • Classic Gaming News
  • 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 CDFJ
  • Harmony/Melody's DPC+
  • Harmony/Melody's BUS
  • Harmony/Melody's General
  • 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 General Discussion
  • Dirtarians's Members' Rigs
  • Dirtarians's Trail Runs & Reports
  • Dirtarians's Wrenching
  • The Green Herb's Discussions
  • Robin Gravel's new blog's My blog
  • 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
  • Star Wars - The Original Trilogy's Star Wars Talk
  • 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

Blogs

There are no results to display.

There are no results to display.

Calendars

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

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 265 results

  1. Been going on a bit of a repair kick lately and got myself into a bit of trouble / mystery. Way back in the olden days, I got a catalog in the mail from some outfit named INTV Corporation. I ordered an INTV System III from them - so I could have my very own Intellivision to haul off to college! In the ensuing years, that system has gone through quite a lot, even tolerating my "repairs". One time when opening it (another story there, let's just say it needed fixing), I essentially destroyed the ribbon cable connecting the power board to the main board. I hacked together an absolutely horrible solution, and so it stayed for the past 15 years or so. I started using different systems as "daily drivers". I finally decided to remedy the hacky repair, because the system was unstable due to … shall we say … some extremely bad work on my part. At the time I did the "repair" I damaged the traces on the power board where the ribbon cable used to be, and age has not been kind to that board. (In my defense, I did the repair using materials at hand and a soldering gun -- yeah, that was fun!) OK, backstory done. Let's move to today: I removed the mess from the old "repair" and put in something more tidy and less prone to accidental grounding-of-things-that-should-not-be-grounded. However, the damage done so many years back must have caused more issues. The system seemed to work -- until I closed it all up. More investigation revealed further connectivity problems due to damaged traces. So, I reworked the connections again. More stress on an already compromised board... Now, I still have a really bad multimeter. If you're curious, it's this one. So while I can say the voltages on the connector pins are "ballpark", I can't say with any confidence that they are "in spec". Here's the weirdness: One controller does not work. (the right controller). But only with this power board. If I connect a different power board, both controllers work just fine. With this super duper hacky-fixed-up power board, only the left controller works. Using the 4.1 test cart, the chips all pass tests, etc. but I get zero response from the right controller... Swapping back to the brand new power board, everything works just fine. Ideas? I'd like to keep the original parts intact - hacked up damage and all - if possible. Plus it's useful to have a functioning, separate power board available for testing things like this.
  2. From the album: Colecovision collection

    Other cartridges in my collection. A pair of NES, seven Intellivision and one SMS.

    © (c) 2013 Oscar Toledo G.

  3. retroindiegamer5000

    Frogger

    From the album: RetroIndieGamer's classic games collection

    These two cartridges are the Parker Brothers version of Frogger for the Atari 2600 and the Intellivision. There's a funny story behind this pic, and that is that I ordered the Atari version, accidentally got the Intellivision version, the guy sent me the Atari version, and I got to keep both.

    © Retro Indie Gamer 2013

  4. From the album: MY Collection

    I've said all I can about it.
  5. Just got Ms Pac Man today. Havent got a chance to play. All I can say about it now is the box art looks good. :-) The box says you can play as 3 different characters. This should add alot of replay value and fun! Thanks Intelligentvision! Post your impressions...
  6. Stumbled upon this random Intellivision video of The Power of He-man. It's done by a super Masters fanatic "Pixel Dan", and it's quite good. I've just dipped my toe in Intellivision collecting and so far I love it. Easily my top 3 games would be Bump n' jump, Tron deadly discs and power of he-man. It's a fun little review. Who else likes the game? For me, its a nice little hi-score game. Although simplistic, you get a little (and I do mean little) variety in ship combat, and dodging enemy fire. And the music is just awesome. Anyways, cheers guys! ^>^ https://www.youtube.com/watch?v=vZ5Tk8phJw8
  7. Just had to brag a little bit by posting a pic of my wireless Intellivision setup. I picked up a set of these Quickshot wireless controllers for NES/SMS/MSX/Atari and used them with my grips03 SMS controller adapter. I'm still testing games, but it seems to work great! Not sure if you still have the opportunity to pick up grips03's new-and-improved adapter (for Genesis controllers). but here would be another reason to do so.
  8. Intellivision Boxed Console with 85 Games and Intellivoice 75 games complete in box all tested and working. More photos and game list to come shortly. All games shown in photos. Defender comes with reproduction box, reproduction manual and custom overlays. If shipping is less than the listed price, the difference will be refunded after payment. eBay Auction -- Item Number: 283785462949
  9. My intelvison 2 isn't outputting 12v when the rf modulator is connected. If I remove it the connection reads exactly 12v but as soon as its connected it drops to 11-6ish volts. Also was not getting any video from the rf out, and my composite mod is having problems keeping a stable signal. Wondering if the low voltage is the source of the problem. Also one of the ic's gets really hot and I'm not sure if that's related to the voltage or if that's normal. There is actually some yellowing inside the case in the area that its located.
  10. eBay Auction -- Item Number: 283801298955 Intellivision Dig Dug and Thin Ice Complete In Box and Tested Both games come complete in box. All original components plus custom overlays for Dig Dug. Actual items shown, tested and working but sold as is. Packed in plastic game protectors and mailed in a shipping box, NO PADDED ENVELOPES! Bid with confidence.
  11. Intellivision ABPA Backgammon FCTVVO Version Complete In Box Complete in box version with the rare FOR COLOR TV VIEWING ONLY label inside the box artwork. All original materials include full color manual, no insert line cart, logo overlays with protector sleeves, and early game catalog. Game is tested and working but sold as is. Item is in a plastic game protector (as sown) and will be shipped in a box, NO PADDED ENVELOPES! Bid with confidence. eBay Auction -- Item Number: 283816389566
  12. I am working on a late entry, inspired by my daughter's request to create a video game for her. The working title is "Mermaid". The objective is to collect treasure and locate the queen's crown along with the key to the underwater castle while avoiding various sea creatures including the shark, octopus, squid and a variety of fish. The mermaid can protect herself with a "mermaid bubble" (force field) and also has a "speed boost" option to briefly increase her swimming speed. Once you collect the key and the crown, locate and enter the castle. You need to deliver the crown to the queen before time expires. Here are several screenshots.
  13. I was wondering what items came with a fully complete-in-box Intellivision. Two questions, specifically, that have to do with the early model Intellivision (the kind with the Keyboard Component still on the box and with the LVB&P sticker): 1. What did the styrofoam look like? 2. Was the console shrinkwrapped or just placed in a plastic bag? Here's an auction for just a box, styrofoam, and plastic bags. Its going price surprises me a little. But does everything look stock? eBay Auction -- Item Number: 281063492789
  14. Just a quick heads-up: The big moving day is finally here. The last few weeks, I've been sorting and purging and packing and sorting and purging and packing. I've been interleaving that with a day job and shipping game orders. Now the big day is finally here. That means I need to take down the network tonight. We should be back up Thursday or Friday, depending on how quickly AT&T gets our Internet connection back up and how quickly I get the Left Turn Only Information Services Department back up and running. (Well, ok, just the web server—an aging AMD Duron system—but still...) Anyway, I've asked dZ to kindly host the ordering page for me, so you should still be able to order Christmas Carol. And, since I'll be off work for the rest of the year starting Saturday, your orders will go out quickly. However, my domains— http://leftturnonly.info/ , http://spacepatrol.info/ , http://spatula-city.org/ , and so on—will be offline for the next few days. We're coming back though once everything's good on the other side. Thanks for your patience!
  15. Christmas Carol vs. The Ghost Of Christmas Presents Following some false starts and many delays, I am very proud and happy to announce that the game Christmas Carol vs. The Ghost Of Christmas Presents is finally available for sale to the general public. Christmas Carol is a wholly new and original game concept for the Intellivision® Master Component, designed and programmed by James Pujals (a.k.a "DZ") and professionally produced by Left Turn Only Productions. As Carol Greenleaf, one of Santa's most trusted elves, you must explore the dark and frozen Ice-Cube Caverns to retrieve all the presents before the Evil Snowman returns. Packed with whimsical charm and exciting arcade action, Christmas Carol offers fun for kids and adults alike, and is destined to become an instant classic! The game comes complete with instruction booklet printed on high-quality glossy paper, and hand-controller overlays, all packaged in a glorious "gate-fold" style box. For more information on the game, or to place and order, please visit the official Christmas Carol web site at: http://www.CarolVsGhost.com/ The game is sold directly by Left Turn Only, LLC. Make sure to visit their site for information on additional game titles and other products available for sale. Also, visit the official game site often to stay abreast of the latest development in the world of Christmas Carol. "Christmas Carol vs. The Ghost of Christmas Presents" the game, title, characters, and all other related material are wholly owned by James Pujals, a.k.a. "DZ-Jay". The game cartridge is produced and distributed by Left Turn Only, LLC. INTELLIVISION® is a trademark of Intellivision Productions, Inc. - Neither James Pujals nor LTO are affiliated in any way with Intellivision Productions, Inc.
  16. I got two pretty cool games toward my full set recently. I plan on posting a lot more now that I'm settling down a bit. I think there are 17 games I need for the full set now as well as a couple of boxes. http://www.youtube.com/watch?v=Ud_F3aqBEAo&list=UUEG1NKW-wUtM4kaHPBSoJsw&index=1&feature=plcp
  17. I thought I'd share an article describing the square root algorithm that comes in SDK-1600. It's not new code -- I wrote this quite some time back -- but I'm fairly proud of it. It's also incredibly non-obvious, so I thought I'd share some of the tricks and techniques that went into making it. It runs very quickly compared to the EXEC square root routine (about .8ms worst case for an integer sqrt, and 1ms for sqrt(8Q8) => 8Q8), correctly supports the full range of unsigned integers, and can compute fractional bits of the square root. (eg. fixed-point arithmetic) The article below is adapted and extended from the documentation I included in SDK-1600. My code is based loosely on the following C code algorithm below by Paul Hseih and Mark Borgerding. It was originally published at http://www.azillionmonkeys.com/qed/sqroot.html , however it no longer appears to be there. Here is the original code I worked from: unsigned int mborg_isqrt2(unsigned int val) { unsigned int g, g2, b, b2, gxb; g = 0; // guess g2 = 0; // guess^2 b = 1 << 15; // bit b2 = 1 << 31; // 2*bit^2 gxb = 1 << 30; // bit*(2*guess+bit) do { if (g2 + gxb <= val) // (guess+bit)^2 <= val? { g ^= b; // guess += bit g2 += gxb; // (g + b)^2 = g^2+gxb gxb += b2; // b(2(g+b)+b) = b(2g+b)+b^2 } b >>= 1; // bit >>= 1 b2 >>= 2; // 2(b/2)^2 = 2b^2/4 gxb = (gxb - b2) >> 1; // b(2g+b/2)/2 = (b(2g+b)-2b^2/4)/2 } while (b != 0); return g; } The comments are very terse, so you may wonder: How does it work? The algorithm successively approximates the square root by attempting to set bits in the "guess", starting at the top and working its way down. It will set a bit in the "guess" if doing so will keep "guess*guess" smaller than the target value. Before I get into the formality, let's start with a simple example to set the stage. Suppose I wanted to take the square root of 26. I start with my "guess" set to 0, and start trying to set bits at the top, working down. Let's say I start with the '8' bit. 8 squared is 64 -- too large. So I don't set that bit, and my guess stays at 0. Now I can try setting the 4 bit. 4 squared is 16, so I can set the 4 bit in the guess. Next, I try the 2 bit. (4+2) squared is 36 -- too large. So, I don't set the 2 bit. Finally, I try the 1 bit. (4+1) squared is 25, so I can set that bit in the guess, giving '5' as the result. 5 is the largest integer whose square is equal to or below 26. Tada! The quick example above was hopefully easy to follow, but if you implement it naïvely, it will have a ton of multiplies -- one for each guess. Multiplies are not exactly cheap on the Intellivision. How does the code above actually do this, then, without doing a ton of multiplies? The trick is to rely on the following relationship you may remember from algebra class: (x + y)2 = x2 + 2xy + y2 In the context of this algorithm, 'x' is the guess, and 'y' is the bit it is considering to add to the guess. Let's rename those variables to make this easier to follow, using the names the C code above used. I'll use 'g' for the guess and 'b' for the bit being considered. That gives us: (g + b)2 = g2 + 2gb + b2 At a high level, here's what the code does: Is (g + b)2 bigger than val? Yes: Update 'g' by adding 'b' No: Do not update 'g' [*]Right shift 'b' by one to test the next bit position. Rather than find (g + b)2 directly, it instead keeps a variable, g2, that holds the square of the current guess. The variable 'gxb' represents "2gb + b2". Thus, it's simple to find (g + b)2 by simply adding g2 and gxb. The code that computes gxb is perhaps a little subtle. It has two pieces: The conditional piece that happens when you decide to set a bit in the guess, and the unconditional piece that happens each iteration when you shift your guess bit right by 1. Let's tackle these both separately, starting with the unconditional step. The variable gxb contains (2gb + b2). The variable 'b' contains the bit we just guessed on. And, the variable b2 contains (2b2). (Its purpose will hopefully become clear in a moment.) When we move from one iteration to the next, the value of b changes, so the required value for gxb also changes. To make the update step clearer, let's call the values for the next iteration gxb' and b'. We then have the relations: b' = b / 2 b2' = b2 / 4 -- If b drops by half, then its square drops by a factor of 4. gxb' = 2gb' + b'2 That last relation is kinda interesting. Let's do a little more algebra on it: gxb' = 2gb' + b'2 gxb' = 2g(b/2) + (b/2)2 -- substitution gxb' = 2g(b/2) + b2/4 -- break the fraction out of the square gxb' = (2gb + b2/2) / 2 -- factor a division by 2 out of everything gxb' = (2gb + b2/2 + b2/2 - b2/2) / 2 -- Let's try to turn b2/2 into b2 gxb' = (2gb + b2 - b2/2)/2 -- Tada... Part of the result should look familiar... gxb' = (gxb - b2/2) / 2 -- Aha! Expressed most of gxb' in terms of gxb. Now what about the last part? The remaining step is to figure out b2/2. Well, this happens to be the value that's in b2'. Tada! That gives us the expression we see in the C code above, gxb = (gxb - b2) >> 1. What about the conditional update, when we decide to add a bit to the guess? The value of g changes, which also changes the value of gxb for the next iteration. This part is perhaps easier to reason about, though. Let's walk through the math again to show how the update works. Here, g' and gxb' represent the new values of g and gxb after adding b to the guess: g' = g + b gxb' = 2g'b + b2 Again, applying a little algebra... gxb' = 2g'b + b2 gxb' = 2(g + b)b + b2 -- substitution gxb' = 2gb + 2b2 + b2 -- distribute multiplication over addition gxb' = 2gb + b2 + 2b2 -- reorganize terms. underlined portion should look familiar gxb' = gxb + 2b2 -- Aha! Now what's that last part? And again, we're able to write the update as a simple addition. The term we're adding is 2b2, which just happens to be the variable b2. Nice how that worked out, eh? That pretty much captures how the mborg_isqrt2() function works. That's the routine by Mark Borgerding and Paul Hseih. My code takes this a step further. The original code was content to take integer square roots with integer results. I wanted something that could work in a fixed-point environment. For example, if you take the square root of an 8Q8 number (that is, a 16-bit number with 8 integer bits and 8 fractional bits), you might want the result to also be 8Q8. If you used a plain integer square root function for this, though, you'd end up with a 4Q4 result. Aside: It may not be immediately obvious why the integer square root of an 8Q8 number is 4Q4. If you instead think of an 8Q8 number as a quotient, though, it's a little easier to see. If your original number is "x / 256" (recall, 256 = 28), the square root of that is sqrt(x / 256) == sqrt(x) / sqrt(256) == sqrt(x) / 16. This is equivalent to having 4 fractional bits, as 16 = 24. To accommodate this, I opt for a more "destructive" approach, and more creative shifting. What do I mean by destructive? The original code does not modify the value whose square root we're taking. Rather, as it builds its guess up, it also builds up guess2, comparing it against the original value. This is fine for a pure integer square root, but it can never give you fractional bits without going to a more extended accumulator. That's not terribly desirable. So, instead, as I commit bits to the guess, I also subtract their contribution to the square from the target value. Thus, the value we compare against each iteration gets smaller as we add 1 bits to the guess. This erodes away the original value as we establish what bits to set in the result. (If you've ever done long-division, this should feel a little familiar.) Every time we set a bit in the guess, we eliminate up to 2 bits of the original value. This suggests another tweak. Instead of shifting b and gxb right by 1 every iteration (and b2 right by 2), let's instead fix their position and shift the (now eroding) target value left every iteration. The value b2 then shifts right by 1. b and gxb don't shift at all. What does this buy us? Well, it eliminates at least one shift and reduces another from a 2-bit shift down to a 1-bit shift. Even more importantly, though, it allows us to keep iterating the algorithm beyond a simple integer square root. Once we start shifting the target value left, that begins introducing fractional bits to the right of the original input. Our "destructive" updates actually update these fractional bits. As a result, we can iterate this square root algorithm for another 7 or so iterations beyond what the original integer algorithm would have let us. This enables the algorithm to compute an 8Q8 square root from a 16 bit pure integer. I've included below both my assembly code (also available in SDK-1600), as well as a C model to help you understand how it works. This routine is, I estimate, between 5x and 25x as fast as the EXEC's square root code, and can handle numbers all the way up to 65535 (unlike the EXEC, which apparently tops out at 32767, based on the documented bug in B17 Bomber). An aside on performance: When searching around the net for other references on mborg_isqrt2(), I found a thesis paper from 2003 that referred to it. The author of the thesis implemented the mborg_isqrt2() routine on an 8-bit PIC16F76 MCU. Their implementation took around 5.5ms. The PIC16F76 has a 5MHz instruction rate. I'm rather proud that my 16-bit implementation is about 6x as fast on a machine whose instruction rate is around 50x slower (about 100k instructions/second vs. around 5M instructions/second.) Sure, theirs is probably a full 32-bit sqrt(), but still... I don't know why theirs should be so slow. The EXEC square root routine is also a dog, with a highly variable execution time. For fun, I measured a couple square-root calls that occur during B-17 Bomber. The fastest calls were a couple thousand cycles, and the slowest were around 15,000 cycles. ------------------------------------------------------------------------------ /* Note: The code below assumes 16-bit ints. It's easily generalized to 32 bits. */ unsigned int joe_isqrt(unsigned int val, unsigned int qpt) { unsigned int rslt = 0; /* result word */ unsigned int sqtb = 0x4000; /* 1/2 of square of test bit */ unsigned int updt = sqtb; /* bit * (2*guess + bit) */ unsigned int iters; unsigned int remd = val; /* What remains of the value we're rooting */ /* If Q-point is odd, force it to even. This loses 1 bit of precision. */ if ((qpt & 1) == 1) val >>= 1; qpt = (qpt + 1) >> 1; /* Iterate 8 times for integer part, plus qpt/2 times for fraction bits */ iters = qpt + 8; while (iters--) { /* ---------------------------------------------------------------- */ /* The 'guess update' relies on the following relationship, where */ /* 'g' is our current guess, and 'b' is the bit we wish to add. */ /* */ /* (g + b)^2 = g^2 + 2*g*b + b^2 */ /* */ /* The 'guess update' corresponds to "2*g*b + b^2" portion. If */ /* (g + b)^2 remains smaller than the original value, we can add */ /* the guess bit to the root. */ /* */ /* One transformation this algorithm makes is to subtract the */ /* value of the guessed bit from the original value, rather than */ /* add it to our successive guesses. Thus, we compare the guess */ /* update to the "remaining value" as opposed to our cumulative */ /* squared guess. */ /* */ /* The "obvious" implementation shifts the guess bit right every */ /* iteration, with the squared guess bit shifting right by 2. */ /* To keep everything fitting in 16 bits, and to support fixed */ /* point square roots, we instead shift the remainder left 1 bit */ /* every iteration, and shift our squared guess bit right one bit. */ /* This also means we never need to refer to the guess directly, */ /* only the squared guess bit. */ /* */ /* The transformation is legal because we're guaranteed to */ /* eliminate at least one bit of the remainder every iteration. */ /* */ /* The 'guess update' computation requires some explanation. If */ /* we guess '1', then we only need to add "2*g*(b/2) + (b/2)^2" */ /* to the guess for the next guess. If we guess '0', then we */ /* first need to subtract "2*g*b + b^2" from the guess, and */ /* then add "2*g*(b/2) + (b/2)^2" to the guess. */ /* ---------------------------------------------------------------- */ /* ---------------------------------------------------------------- */ /* The main test: */ /* */ /* If the 'guess update' is not larger than the remainder, or if */ /* the remainder was bigger than 0x7FFF, then we guess '1' into */ /* the square root. Otherwise, we guess '0'. */ /* ---------------------------------------------------------------- */ int big = remd >= 0x8000; remd <<= 1; if (big || remd >= updt) { rslt = (rslt << 1) | 1; /* Set bit in result */ remd -= updt; /* Subtract update from remainder */ updt += sqtb + (sqtb >> 1); sqtb >>= 1; /* Update squared guess bit */ } else { rslt = (rslt << 1); /* Clear bit in result */ sqtb >>= 1; /* Update squared guess bit */ updt -= sqtb; } } return rslt; } ------------------------------------------------------------------------------ ;* ======================================================================== *; ;* These routines are placed into the public domain by their author. All *; ;* copyright rights are hereby relinquished on the routines and data in *; ;* this file. -- Joseph Zbiciak, 2008 *; ;* ======================================================================== *; ;; ======================================================================== ;; ;; NAME ;; ;; SQRT Calculate the square root of a fixed-point number ;; ;; SQRT.1 Calculate the square root of an integer ;; ;; SQRT.2 Calculate the square root of a fixed-point number ;; ;; ;; ;; AUTHOR ;; ;; Joseph Zbiciak <intvnut AT gmail.com> ;; ;; ;; ;; REVISION HISTORY ;; ;; 12-Sep-2001 Initial revision . . . . . . . . . . . J. Zbiciak ;; ;; 24-Nov-2003 Minor tweaks for speed . . . . . . . . J. Zbiciak ;; ;; ;; ;; INPUTS for SQRT ;; ;; R1 Unsigned 16-bit argument to SQRT() ;; ;; R5 Pointer to DECLE containing Qpt, followed by return addr. ;; ;; ;; ;; INPUTS for SQRT.1 ;; ;; R1 Unsigned 16-bit argument to SQRT() ;; ;; R5 Return address ;; ;; ;; ;; INPUTS for SQRT.2 ;; ;; R0 Qpt for fixed-point value ;; ;; R1 Unsigned 16-bit argument to SQRT() ;; ;; R5 Return address ;; ;; ;; ;; OUTPUTS ;; ;; R0 Zeroed ;; ;; R1 Unmodified ;; ;; R2 SQRT(R1) ;; ;; R3, R4 Unmodified ;; ;; R5 Trashed ;; ;; ;; ;; NOTES ;; ;; The way this code handles odd Q-points on fixed-point numbers is ;; ;; by right-shifting the incoming value 1 bit, thus making the ;; ;; Q-point even. This has the negative effect of losing precision ;; ;; on odd Q-point numbers. Rectifying this without losing any ;; ;; performance would require significantly larger codesize. ;; ;; ;; ;; CODESIZE ;; ;; 44 words ;; ;; ;; ;; CYCLES ;; ;; cycles = 139 + 71*(8 + Qpt/2) worst case for SQRT ;; ;; cycles = 121 + 61*(8 + Qpt/2) best case for SQRT ;; ;; ;; ;; Subtract 4 cycles if Qpt is even. ;; ;; Subtract 8 cycles if calling SQRT.1. ;; ;; Subtract 14 cycles if calling SQRT.2. ;; ;; ;; ;; SOURCE ;; ;; Loosely based on a C code example (mborg_isqrt2) by Paul Hseih and ;; ;; Mark Borgerding, found on the web here: ;; ;; ;; ;; http://www.azillionmonkeys.com/qed/sqroot.html ;; ;; ;; ;; Includes additional optimizations that eliminate some of the math. ;; ;; ======================================================================== ;; SQRT PROC [email protected] R5, R0 ; 8 Get Qpt from after CALL INCR PC ; 6 (skip CLRR R0) @@1: CLRR R0 ; 6 Set Qpt == 0 @@2: PSHR R5 ; 9 Alt entry point w/ all args in regs. PSHR R1 ; 9 save R1 PSHR R3 ; 9 save R3 ;---- ; 41 (worst case: SQRT) ; 33 (if SQRT.1) ; 27 (if SQRT.2) CLRR R2 ; 6 R2 == Result word MVII #$4000, R3 ; 8 R3 == 1/2 of square of test bit MOVR R3, R5 ; 6 R5 == bit * (2*guess + bit) INCR R0 ; 6 SARC R0, 1 ; 6 Check to see if Qpt is odd ; BC @@even_q ; 7/9 ADCR PC ; 7 SLR R1, 1 ; 6 Note: We lose LSB if odd Q @@even_q: ADDI #8, R0 ; 8 B @@first ; 9 ;---- ; 60 (worst case, q is ODD) ; 54 (q is EVEN) ;==== ; 83 (worst case: SQRT, q is ODD) @@loop: SLLC R1, 1 ; 6 Shift the value left by 1 BC @@b1 ; 7/9 MSB was 1, force guessed bit to 1. @@first: CMPR R5, R1 ; 6 Is (guess+bit)**2 <= val? BNC @@b0 ; 7/9 C==0 means the bit should be 0 @@b1: RLC R2, 1 ; 6 Yes: Set bit in result and SUBR R5, R1 ; 6 subtract guess from value ADDR R3, R5 ; 6 \ SLR R3, 1 ; 6 |-- Calculate next guess value ADDR R3, R5 ; 6 / DECR R0 ; 6 BNEQ @@loop ; 9/7 Guess next bit PULR R3 ; 11 Restore R3 PULR R1 ; 11 Restore R1 PULR PC ; 11 Return ;---- ; 71*k + 31 worst case @@b0: SLL R2, 1 ; 6 No: Clear bit in guessed result SLR R3, 1 ; 6 \__ Calculate next guess SUBR R3, R5 ; 6 / DECR R0 ; 6 BNEQ @@loop ; 9/7 Guess next bit ;---- ; 61*k - 2 best case @@done: PULR R3 ; 11 Restore R3 PULR R1 ; 11 Restore R1 PULR PC ; 11 Return ENDP ;; ======================================================================== ;; ;; End of file: sqrt.asm ;; ;; ======================================================================== ;;
  18. Hello, I'm looking for these games for Intellivision : - Body Slam : Super Pro Wrestling - Commando - Congo Bongo - Leaning Fun I & II - Mountain Madness : Super Pro Skiing - Spiker! Super Pro Volleyball - Stadium Mud Buggies - Triple Challenge Thank you Pascal France
  19. Hey everybody! I have a box of shiny, new UM1285-8 RF modulators that I recently purchased as a lot from Alltronics. They're sitting in their factory tray, just itching to be installed in a waiting game system. If anyone would like to buy one or more at $2.50/ea plus shipping, drop me a PM. Left Turn Only, LLC would be happy to send one or more your way. This RF modulator is the one used in Intellivision 1 and 2 units as well as the Aquarius. I believe (but have not directly verified) that the same modulator appears in other Intellivision-compatible units such as the Sears SVA, Tandyvision 1, and INTV SuperPro System. (If anyone would like to verify that for me, just post below.) While I prefer to send Priority Mail for US shipment, it seems overkill for this, as the shipping would be twice as expensive as the part itself. It might make sense if you're buying more than one, though. I believe single units will ship OK in a padded mailer as they're built like tanks. I accept Paypal and personal check, although I will delay shipment for personal checks until they clear. PM for payment info and shipping costs. (TX residents: I will also need to charge you state sales tax.)
  20. From the album: Infographics

    The enemies in the Imagic game Nova Blast for Intellivision, in order of appearance.

    © Illustration by The Eyeball Mural, no rights reserved. Imagic intellectual properties belong to Activision Blizzard.

  21. From the album: My Game Collection

    I picked this up a while back, for $54.99 at my local V-stock. The box had some issues, and none of the packing foam, but the game console works well .
  22. I have been picking up Atari 2600 games for a little while, but only recently got a Retron 77 to play them with. I am running Stella 6 Beta. While at a used game store the other day, I grabbed what I thought was a 2600 cartridge. The clerk told me it was actually an Intellivision cartridge. I know many Intellivision carts have an angled top with a label, and he said to look for a Mattel copyright to tell the difference. I had one cart like that at home, and assumed I bought an Intellivision game by mistake. After I hooked up my Retron 77, I looked at the cartridge (Dark Chambers) and it looked as if it was compatible. I put it in, and it worked. I know the 2600 was not compatible with Intellivision games, and I can't find anything about the Retron 77 or Stella 6 being able to run them. I also am having a lot of trouble finding images of the connecting side of Intellivision carts. I can only assume this was a game made by Mattel for the 2600, but can anyone tell me the best way to determine the difference going forward. Thanks.
×
×
  • Create New...