Jump to content

Search the Community

Showing results for tags 'programming'.



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
    • Classic Gaming General
    • Classic Computing
    • Modern Gaming
    • Prototypes
    • Arcade and Pinball
    • Emulation
    • Hardware
    • Gaming Publications and Websites
    • International
  • 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

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

  1. Hey all, I'm putting a query out to see if anyone has an interest in making XL BOSS, or a forward compatible version of OS B with PBI for the Ultimate 1 MB. I did various tests, and even confirmed with Jazzcat that PBI functions of XL Boss are not working for it, or non-existent. Now the rational for my query to make it PBI supported is this. I found that the game ENCOUNTER!, *Which has other revisions that work with the Base XL version on the Aug 2019 rev of the U1MB update works with other revs of the game. Sure, you'd think that would be the end of that knowing other copies work. But what if you ran into a game that was not? Or just needed to have that straight up backwards 800 compatibility, other than the OS B PAL or NTSC rev. For some reason, the XL Boss rev 2 works perfectly with loading up this un-patched version of Encounter! Now don't get distracted by me repeating this one game. I can live with the work around. What I'm looking for though it a community level update to XL Boss to use with the U1MB on a routine basis with PBI support. The original thread I found on XL BOSS is noted below. I've already had some discussions with Nezgar, and it does seem like a plausible idea to do. There's a few other features of XL Boss that are meaning full to use, and there's even many who've tried to use XL BOSS, but I can't find mention of quirks with PBI. NOTABLE TESTS RAN: Equipment: | Atari 800XL - U1MB | SDMAX - SIO - Gavin SIO board latest rev. | Side test with, same results as U1MB Boss Xl rev. Atari 800XL with OS rom replaced with patched HSIO and Boss XL with reverse Option only mod | Game: Encounter 3 versions ran against the default u1mb OS choices (excluding XEGS) - Either lead to black screen, start screen, but locks on starting the game. U1MB CHANGE: Replaced XEGS with Boss XL Rev 2. - Game runs as normal. --------------------------------------------------------------------------------------- Load Boss only, no cart, no SIO option, loading Sparta up. - Sucess OS works with Sparta seemingly normal. Load Boss with SideCart2 - Cart only mode and ATR mode - Unable to see it - Alternatively J.S.C. ran some inquiries for PBI fumction, and nothing indicated they we're found by the os. Keep in mind, this focus is not on the game, as much as it's an inquiry to make XL BOSS a possible alternative OS for the U1MB. Thanks for your input all!
  2. What I mean is that when you play Atari 5200 games on the Atari 800 using a Sio2sd will all the games play just like they would on a real Atari 5200, no emulation? I'm aware that the systems are very similar but the software is built differently but once you run it will the games play natively? Like is it comparable to other backwards compatible systems like the GBA with gbc and the Ps2 with ps1 games?
  3. [edited: link to PDF added] Hot news: the book Atari 2600 Programming for Newbies - Revised Edition by Andrew Davie is now available on Lulu.com for only $4.69. Order your copy here: http://www.lulu.com/shop/andrew-davie/atari-2600-programming-for-newbies-revised-edition/paperback/product-23644281.html Basically this book is the printed version of the Atari 2600 programming tutorials by Andrew Davie that he originally posted on these forums between 2003 and 2004 (and one extra session posted in 2012). Editing and formatting was done by yours truly. Note that in 2011 someone already bundled these tutorials into a book and published it on Lulu.com, but IMO there are a lot of issues with that version (e.g. no page numbers, missing session no. 25, images cut off on the end of the page, outlining issues, code samples hard to read because of wrapping). That's why I decided to call my version the "Revised Edition" :-) I formatted all code samples to make them readable in print-format, fixed a few spelling errors and also did some editing where the original text was clearly assuming the reader is reading the text online. Note that I'm not making a single dollar-cent on this; you only pay for the printing of the booklet. The consequence is that Andrew Davie is also not making any money from this, but knowing that in 2011 he was OK with the other published book on Lulu.com, I hope he's also OK with this new "Revised Edition". The binding and printing of this book is really nice. The pages are black & white, but the cover is full color (see attached images). I also added Andrew's avatar on the back of the book :-) And Lulu.com regularly has these promotions where they offer free shipping, making this a real bargain! Here is a link to the PDF for your convenience: Atari_2600_Programming_for_Newbies_Revised_Edition.pdf Cheers, Dion
  4. Hello all, So does anyone have experience programming a FG99? If so what did you use? My brain hurts from the weekend and I am missing neural connections somewhere. Did you use a RPI to program it? bout to try this out on my 3B+.
  5. Can someone recommend a relatively simple, easy to learn & use, yet powerful enough to do what I want, imperative programming language like BASIC or Visual Basic, for making Atari VCS and 8-bit type games for the Windows desktop (or maybe Linux but prefer Windows)? I would mainly be making 2-D games - stuff like Pong or Combat up to 8-bit Atari or Commodore era games, but probably nothing more complex. Maybe remake Pinball Construction Set or classic Ultima. Some features that would help relatively self contained (not 1,000,000 libraries you have to go through) free or not too expensive (this would be just for fun) easy to find lots of sample code for how to do things, and strong active community to ask questions built in IDE (preferably a visual IDE) and most importantly: currently supported and should continue to keep working for some time developed with a backwards-compatible philosophy so your programs will still work after a couple years! I have dabbled in various languages / systems over the years and made some games or partial games: Commodore 64 / BASIC - easy but games ran too slow, compiler helped speed games up, used some simple assembly for speeding up little routines (hard!) Commodore 64 / Gamemaker - easy but too limited (plus I missed being able to type code) Mac Classic / Pascal - limited to black & white graphics, couldn't find any info on making sounds (pre-Web so it was very hard to find docs or examples) Windows / QuickBasic - nice and easy but obsolete & couldn't figure out anything past text graphics and simple beeps Windows / VB6 - I liked the language and IDE but limited graphics support (bitblt, kind of confusing), and I never figured out playing >1 sounds at a time, just playing back WAV files one at a time; eventually VB6 became obsolete so I had to start over Windows / VB.NET 1.1 and some C# - the .NET language kept changing and got too complicated with the enterprise OO features JavaScript / HTML5 - figured out canvas graphics, Javascript syntax is easy but I am not crazy about HTML and CSS, and parts of language were too complicated and ugly (prototype stuff, too many libraries & frameworks, no types, etc.) Python / Pygame - mainly playing around with other people's code from pygame.org, still not comfortable with Python, not crazy about certain things like the indentation, no types, too many libraries / choices, dependencies and things changing too much that can break your code, etc. After all these years and languages I still prefer BASIC or VB6 syntax (JavaScript/C syntax is OK, Pascal is OK) and a visual editor. Mainly I don't have a ton of time to invest in learning stuff and if I get busy (which is often the case!), I might put a project down for months at a time, or even a couple years, and by the time I get back to it, the language I wrote it in has updated/changed or become totally obsolete, and I have to go back and fix my code or start over from scratch. I know computers change and all that but come on So anyway, if anyone has any advice or recommendations that would be grand. And hey, if it doesn't exist, it doesn't exist, but I thought I would ask! PS here are some pages I was looking at, in no particular order - if anyone can share any opinions on these, please: SDLBasic XBASIC BASIC Compiler (Windows, Linux) QB64 (Windows, Mac OS X, Linux), QB64 Just BASIC (Windows) SmallBASIC (Windows, Linux, N770/N800, PalmOS, eBookMan) ThinBasic Basic Interpreter (Windows) ElectronJS How to create a 2D game with Python and the Arcade library | Opensource.com FUZE4: Bringing BASIC to Switch — Wireframe Magazine I am really looking for Windows, but this caught my eye! Construct 2 – The Windows favourite Clickteam Fusion 2.5 – The veteran RPG Maker – The RPG specialist Microsoft Small Basic (wikipedia) Unity (probably not what I am looking for) Microsoft MakeCode Arcade (info) Atari Dev Studio A way to make games for the 2600 using BASIC? Hmm... DarkBasic GLBasic Liberty BASIC PureBasic RapidQ REALbasic (Xojo) XBasic Free BASIC Compilers and Interpreters (thefreecountry.com) https://www.gamedesigning.org/career/software/ https://www.websitetooltester.com/en/blog/best-game-engine/#GameSalad_The_Educators_Choice What is the easiest programming language to make games with? - Quora App Development - Infinite Runner - CodaKid Action! is an Atari-specific programming language written by Clinton Parker and sold by Optimized Systems Software (OSS) in ROM cartridge form starting in August 1983. It is the only language other than BASIC and assembler) that had real popularity on the platform and saw any significant coverage in the Atari press; type-in programs and various technical articles were found in most magazines. In comparison, languages like Forth and Logo saw much less use and almost no press coverage. Processing Tutorial: Building a Simple Game | Toptal Much appreciated
  6. Now i'm not a programmer, but I've been thinking of a Game where you play as a JSDF helicopter Pilot and you have to fight a division of evil helicopter pilots, alien U.F.Os and the final boss Godzilla. Even though I said i'm not a programmer, I drew up some crappy sprites on some graph paper as seen below. So what do you guys think? Would you play an atari game about godzilla?
  7. Hi everyone! I have trouble programming a gal yo make a custom d flop with reset un a gal22v10. Currently, I can program the reset and obtain all 0s or 1s. But i need to implement different values on reset, for example: 10101010 Is there any way to program something like they on Wincupl? Does anyone know how? Thanks in advance!
  8. Once upon a time there was a Mac OS X Xcode template for VCS development. Unfortunately time seems to have passed the VCS templates by. I couldn't even check them out. They are behind broken links and reportedly don't work with modern Xcode releases anyway. So I made a new template. The goal is to streamline my experimentation with 2600 programming, but it could be useful for others so I thought I'd share it here. I make no guarantees about how well it will work on your particular setup or any promises that I will update it in the future. Contents The template generates a simple project containing : main.s The main assembly file. Any additional files should be incorporated into main.s through include statements. This is the only file that is passed to dasm. The main.s default code is based on Andrew Davie's "Our First Kernel" though somewhat cleaned up with loops instead of repeated statements. It should give a solid blue screen when run. dasm, vcs.h and macro.h These files are embedded in the template and will be copied into any projects generated with this template. Any globally installed dasm or include files will be ignored in favor of these project specific ones. I like this approach because all the files necessary to generate the binary are embedded in the project. If I want to move this to another machine or build it years from now I do not have to recreate the build environment to make it work. Other's may want to use their globally installed dasm and in that case it shouldn't be too hard to hack the makefile. Makefile A dead simple makefile to kick off dasm. It will use your standard Xcode settings for project name and build location. The Xcode build destination is by default deep inside ~/Library/Developer/Xcode/DerivedData/ Considering that directory is hidden by default it seems like a weird place to put builds. I usually change my build destination to something more accessible and the makefile will honor those settings. Usage Unzip the archive and put the whole Atari folder into ~/Library/Developer/Xcode/Templates/ If you are using the GUI hold down the option key when opening the Go menu and a "Library" option will appear allowing you to access the Library folder. Now you can chose the Atari VCS template when you create a new project in Xcode. There doesn't seem to be a way to configure schemes through project templates so one more step is necessary if you want to auto launch your ROM in Stella. Choose menu : Product -> Scheme -> Edit Scheme... Select Run item from list on the left In the Info tab's Executable popup menu choose Other... Navigate to the Stella app and choose it In the Arguments tab add an argument with the value including the quotes of "$(BUILT_PRODUCTS_DIR)/$(PRODUCT_NAME).bin" Once you have setup Stella as the executable you can build and run from within the Xcode GUI and Stella will be launched with your changes. I have used this template a bunch on Xcode 6. In brief testing it does appear to be compatible with Xcode 7 as well. Even if this template doesn't create projects exactly how you wish, hopefully it will still be valuable as a starting point to configure Xcode as desired for VCS development. Atari.zip
  9. I am pleased to announce the release of my first Atari 2600 game programmed in assembly language. The game is called Gene Medic and it is based on a future of genome editing to cure common diseases. There is educational value to the game as it introduces concepts such as context-dependent mutations and the electronic health record. The full details along with the binary and heavily commented source code can be found at http://genemedic.org. Many thanks to everyone who has contributed to this forum. I learned a lot from this group and am, of course, still learning! I hope others will find my source code useful for their own Atari 2600 programming efforts.
  10. So I'm interested in learning how to program for the ColecoVision, but I can't find any good guide/walkthrough on how to do so. Can anyone please help me? I also can't find a good and active ColecoVision community/forum to join. So if someone can help with that too, it would be greatly appreciated.
  11. In the April 1984 issue of Compute! is a favorite type-in game called Worm of Bemer. It was largely written in basic, and is a great example of a basic action game. The author challenged readers to improve upon the game, and I do not know how many times this has already been done, but my son and I are taking the challenge! The author Stephen Fultz said "Some features you might add include a routine to save the high score to disk, adding more players, or having Nerm go to a different room depending on which exit he takes. " Now - I'm telling everyone about the WIP, because I just love hearing all the news about other works in progerss, and I hope everyone enjoys various updates around this game as well. Also, so that this doesn't become a never ending project, the feature list is set in stone. We are taking Stephens challenge by adding these features: 1. Save high score to disk 2. Two player mode 3. Different exits lead to different room PLUS: 4. Rewriting in C/Assembly 5. 2 player mode will be competitive or cooperative 6. And re-doing the graphics, including new welcome screen and animated snakes. There is always the possibility that the game never finishes, but I have a good feeling about this one.... be setting out the goals, in public no less, I will not let feature creep cause this to never finish....lol This weeks task, is to re-do the Welcome screen. Here is the original One thing we could do is change the fonts only - and leave it at that, here is a new font: And lastly, we could try to put an image on the screen - or do that and the fonts also, here is a mockup of placing an image:
  12. I want to start getting into the Programming community but I have some questions. Like "What programming language should I Look into?" and "are there any programs that make development on projects easier (e.g. BatariBASIC)?". I have little to no programming knowledge (the most I've done is write a very basic calculator in " BASIC256"), so beginning to learn any programming language will be difficult. Do you guys and gals on AtariAge have any tips?
  13. Papa

    Titan Axe Beta

    I would like to give folks a try at my new game before the finishing touches are added. If you like my game please consider buying it when it comes out!! This was programmed from scratch, by me!! Here are the instructions.. Joystick = moves the character Hold action = Jump (in Jump let go of action to attack) Left + action = attack Right + action = attack Down + action = special attack Hold up + action = Use magic (uses power) In easy hold action on the Game Over screen to continue In Hard hold action to begin at an earlier point in the game (usually), or choose a different character On the title screen hold a direction to listen to one of the music tracks, five in total! (I made all the music, too) This game is one of my most loved creations and I hope you all enjoy it and consider purchasing it when/if it comes out at AtariAge Please don't take my code or modify it in any way!! I present.. Titan Axe Beta TitanAxeBeta.bin
  14. While looking for something else the other night, I stumbled on this Wikipedia article that describes Quarter Square Multiplication. I had never seen this algorithm before. For a machine like the Intellivision, it appears to be a perfect fit! I won't repeat the Wikipedia article here, but the short version: With a few additions, subtractions and table lookups, you can perform arbitrary multiplication wicked fast. For an 8-bit x 8-bit multiplication (16-bit result), we're talking ~70 cycles. For 16x16 multiplication (also 16-bit result), we're talking ~302 cycles. It didn't take me very long to code it up at all. The algorithm is that simple. It just needs a 511 word lookup table. Here's the implementation of both 8x8 => 16 and 16x16 => 16 multiplies. . ; Quarter Square Multiplication ; Assembly code by Joe Zbiciak, 2015 ; Released to public domain. QSQR8_TBL PROC DECLE $0000, $0000, $0001, $0002, $0004, $0006, $0009, $000C DECLE $0010, $0014, $0019, $001E, $0024, $002A, $0031, $0038 DECLE $0040, $0048, $0051, $005A, $0064, $006E, $0079, $0084 DECLE $0090, $009C, $00A9, $00B6, $00C4, $00D2, $00E1, $00F0 DECLE $0100, $0110, $0121, $0132, $0144, $0156, $0169, $017C DECLE $0190, $01A4, $01B9, $01CE, $01E4, $01FA, $0211, $0228 DECLE $0240, $0258, $0271, $028A, $02A4, $02BE, $02D9, $02F4 DECLE $0310, $032C, $0349, $0366, $0384, $03A2, $03C1, $03E0 DECLE $0400, $0420, $0441, $0462, $0484, $04A6, $04C9, $04EC DECLE $0510, $0534, $0559, $057E, $05A4, $05CA, $05F1, $0618 DECLE $0640, $0668, $0691, $06BA, $06E4, $070E, $0739, $0764 DECLE $0790, $07BC, $07E9, $0816, $0844, $0872, $08A1, $08D0 DECLE $0900, $0930, $0961, $0992, $09C4, $09F6, $0A29, $0A5C DECLE $0A90, $0AC4, $0AF9, $0B2E, $0B64, $0B9A, $0BD1, $0C08 DECLE $0C40, $0C78, $0CB1, $0CEA, $0D24, $0D5E, $0D99, $0DD4 DECLE $0E10, $0E4C, $0E89, $0EC6, $0F04, $0F42, $0F81, $0FC0 DECLE $1000, $1040, $1081, $10C2, $1104, $1146, $1189, $11CC DECLE $1210, $1254, $1299, $12DE, $1324, $136A, $13B1, $13F8 DECLE $1440, $1488, $14D1, $151A, $1564, $15AE, $15F9, $1644 DECLE $1690, $16DC, $1729, $1776, $17C4, $1812, $1861, $18B0 DECLE $1900, $1950, $19A1, $19F2, $1A44, $1A96, $1AE9, $1B3C DECLE $1B90, $1BE4, $1C39, $1C8E, $1CE4, $1D3A, $1D91, $1DE8 DECLE $1E40, $1E98, $1EF1, $1F4A, $1FA4, $1FFE, $2059, $20B4 DECLE $2110, $216C, $21C9, $2226, $2284, $22E2, $2341, $23A0 DECLE $2400, $2460, $24C1, $2522, $2584, $25E6, $2649, $26AC DECLE $2710, $2774, $27D9, $283E, $28A4, $290A, $2971, $29D8 DECLE $2A40, $2AA8, $2B11, $2B7A, $2BE4, $2C4E, $2CB9, $2D24 DECLE $2D90, $2DFC, $2E69, $2ED6, $2F44, $2FB2, $3021, $3090 DECLE $3100, $3170, $31E1, $3252, $32C4, $3336, $33A9, $341C DECLE $3490, $3504, $3579, $35EE, $3664, $36DA, $3751, $37C8 DECLE $3840, $38B8, $3931, $39AA, $3A24, $3A9E, $3B19, $3B94 DECLE $3C10, $3C8C, $3D09, $3D86, $3E04, $3E82, $3F01, $3F80 DECLE $4000, $4080, $4101, $4182, $4204, $4286, $4309, $438C DECLE $4410, $4494, $4519, $459E, $4624, $46AA, $4731, $47B8 DECLE $4840, $48C8, $4951, $49DA, $4A64, $4AEE, $4B79, $4C04 DECLE $4C90, $4D1C, $4DA9, $4E36, $4EC4, $4F52, $4FE1, $5070 DECLE $5100, $5190, $5221, $52B2, $5344, $53D6, $5469, $54FC DECLE $5590, $5624, $56B9, $574E, $57E4, $587A, $5911, $59A8 DECLE $5A40, $5AD8, $5B71, $5C0A, $5CA4, $5D3E, $5DD9, $5E74 DECLE $5F10, $5FAC, $6049, $60E6, $6184, $6222, $62C1, $6360 DECLE $6400, $64A0, $6541, $65E2, $6684, $6726, $67C9, $686C DECLE $6910, $69B4, $6A59, $6AFE, $6BA4, $6C4A, $6CF1, $6D98 DECLE $6E40, $6EE8, $6F91, $703A, $70E4, $718E, $7239, $72E4 DECLE $7390, $743C, $74E9, $7596, $7644, $76F2, $77A1, $7850 DECLE $7900, $79B0, $7A61, $7B12, $7BC4, $7C76, $7D29, $7DDC DECLE $7E90, $7F44, $7FF9, $80AE, $8164, $821A, $82D1, $8388 DECLE $8440, $84F8, $85B1, $866A, $8724, $87DE, $8899, $8954 DECLE $8A10, $8ACC, $8B89, $8C46, $8D04, $8DC2, $8E81, $8F40 DECLE $9000, $90C0, $9181, $9242, $9304, $93C6, $9489, $954C DECLE $9610, $96D4, $9799, $985E, $9924, $99EA, $9AB1, $9B78 DECLE $9C40, $9D08, $9DD1, $9E9A, $9F64, $A02E, $A0F9, $A1C4 DECLE $A290, $A35C, $A429, $A4F6, $A5C4, $A692, $A761, $A830 DECLE $A900, $A9D0, $AAA1, $AB72, $AC44, $AD16, $ADE9, $AEBC DECLE $AF90, $B064, $B139, $B20E, $B2E4, $B3BA, $B491, $B568 DECLE $B640, $B718, $B7F1, $B8CA, $B9A4, $BA7E, $BB59, $BC34 DECLE $BD10, $BDEC, $BEC9, $BFA6, $C084, $C162, $C241, $C320 DECLE $C400, $C4E0, $C5C1, $C6A2, $C784, $C866, $C949, $CA2C DECLE $CB10, $CBF4, $CCD9, $CDBE, $CEA4, $CF8A, $D071, $D158 DECLE $D240, $D328, $D411, $D4FA, $D5E4, $D6CE, $D7B9, $D8A4 DECLE $D990, $DA7C, $DB69, $DC56, $DD44, $DE32, $DF21, $E010 DECLE $E100, $E1F0, $E2E1, $E3D2, $E4C4, $E5B6, $E6A9, $E79C DECLE $E890, $E984, $EA79, $EB6E, $EC64, $ED5A, $EE51, $EF48 DECLE $F040, $F138, $F231, $F32A, $F424, $F51E, $F619, $F714 DECLE $F810, $F90C, $FA09, $FB06, $FC04, $FD02, $FE01 ENDP ; R2 = R0 * R1, where R0 and R1 are unsigned 8-bit values ; Destroys R1 qs_mpy8 PROC MOVR R0, R2 ; 6 ADDR R1, R2 ; 6 a + b SUBR R0, R1 ; 6 a - b BPL @@ok ; 7 NEGR R1 ; 6 @@ok: ADDI #QSQR8_TBL, R2 ; 8 ADDI #QSQR8_TBL, R1 ; 8 [email protected] R2, R2 ; 8 [email protected] R1, R2 ; 8 JR R5 ; 7 ;---- ; 70 ENDP ; R1 = R0 * R1, where R0 and R1 are 16-bit values ; destroys R0, R2, R3, R4, R5 qs_mpy16 PROC PSHR R5 ; 9 MVII #QSQR8_TBL, R5 ; 8 MOVR R0, R2 ; 6 R2 is orig 16-bit a MOVR R1, R3 ; 6 R3 is orig 16-bit b ; lo * lo ANDI #$FF, R0 ; 8 R0 is lo(a) MOVR R0, R4 ; 6 R4 is lo(a) ANDI #$FF, R1 ; 8 R1 is lo(b) PSHR R1 ; 9 save lo(b) ADDR R1, R4 ; 6 R4 = lo(a) + lo(b) SUBR R0, R1 ; 6 R1 = lo(a) - lo(b) BPL @@pos_ll ; 7 NEGR R1 ; 6 @@pos_ll: ADDR R5, R4 ; 6 R4 = &qstbl[lo(a)+lo(b)] ADDR R5, R1 ; 6 R1 = &qstbl[lo(a)-lo(b)] [email protected] R4, R4 ; 8 R4 = qstbl[lo(a)+lo(b)] [email protected] R1, R4 ; 8 R4 = lo(a)*lo(b) ;---- ; 113 ; lo * hi SWAP R3 ; 6 \_ R3 = hi(b) ANDI #$FF, R3 ; 8 / MOVR R0, R1 ; 6 R0 = R1 = lo(a) ADDR R3, R1 ; 6 R1 = hi(b) + lo(a) SUBR R0, R3 ; 6 R3 = hi(b) - lo(a) BPL @@pos_lh ; 7 NEGR R3 ; 6 @@pos_lh: ADDR R5, R1 ; 6 R1 = &qstbl[hi(b)+lo(a)] ADDR R5, R3 ; 6 R3 = &qstbl[hi(b)-lo(a)] [email protected] R1, R1 ; 8 R1 = qstbl[hi(b)-lo(a)] [email protected] R3, R1 ; 8 R1 = lo(a)*hi(b) ;---- ; 73 ; 113 (carried forward) ;---- ; 186 ; hi * lo SWAP R2 ; 6 ANDI #$FF, R2 ; 8 R2 = hi(a) PULR R3 ; 11 R3 = lo(b) MOVR R3, R0 ; 6 R0 = lo(b) ADDR R2, R3 ; 6 R3 = hi(a) + lo(b) SUBR R0, R2 ; 6 R2 = hi(a) - lo(b) BPL @@pos_hl ; 7 NEGR R2 ; 6 @@pos_hl: ADDR R5, R3 ; 6 R3 = &qstbl[hi(a)+lo(b)] ADDR R5, R2 ; 6 R2 = &qstbl[hi(a)-lo(b)] [email protected] R3, R1 ; 8 \_ R1 = lo(a)*hi(b) + hi(a)*lo(b) [email protected] R2, R1 ; 8 / ;---- ; 84 ; 186 (carried forward) ;---- ; 270 SWAP R1 ; 6 \_ shift upper product left 8 ANDI #$FF00, R1 ; 8 / ADDR R4, R1 ; 6 final product PULR PC ; 12 ;---- ; 32 ; 270 (carried forward) ;---- ; 302 ENDP . I spent maybe 20 minutes on the 8x8 implementation, and another 40 - 60 minutes on the 16x16 implementation. (I first did a naive implementation that called qs_mpy8, and then a smarter implementation that inlined everything.) Tonight, I ran both through literally millions of random tests, comparing against JLP's multiply accelerator. (Side note: If you run jzIntv with rate control off (-r0), audio off (-a0), and minimize the window, it runs very, very fast. About 280x on my machine. 270x if you forget and leave audio on.) As the comment says, I release this to the public domain. If you use this in one of your games / programs / whatever, I don't mind a tip of the hat my way if you happen to think of it. And if not, eh, we still all get more cool games. If any of you find ways to improve this code (I'm sure it's possible), post it here and share with everyone! Homework assignment for the motivated: Add an 8x16 multiply to the library. With all three, then programs like IntyBASIC have a nice arsenal for implementing multiplication efficiently, with no surprises for oddball multiplicands. (That's presuming IntyBASIC can figure out if the arguments to the multiply come from 8 bit variables or 16-bit variables/intermediate results.) I think adding an 8x16 multiply mainly requires removing the 'hl' portion of the 16x16 multiply code and a PSHR, saving ~93 cycles. quarter_square_multiplication.asm
  15. set kernel_options playercolors player1colors dim zombiewalk=a dim zombiewalk2=b dim zombiewalkdelay=c dim zombiewalk2delay=d dim zombiespeed=e dim ballwasshot=f CTRLPF=$21 playfield: ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0: %1101100 %0100100 %0100100 %0100100 %0100100 %0010100 %0001000 %0001011 %1111111 %1111111 %0101010 %0011100 %0001000 %0011100 %0100010 %1000001 %1000001 %1000001 %0100010 %0011100 end player1color: $F0 $F0 $F0 $F0 $F0 $F0 $F4 $F4 $F4 $F4 $F4 $F4 $F4 $F4 $C4 $C4 $C4 $C4 $C4 $C4 end player1: %00011001 %00010010 %00010010 %00010010 %00011110 %00010000 %00011110 %10011100 %10011000 %10111101 %10111101 %10111001 %01111110 %00011100 %00011110 %00110001 %00111111 %00110101 %00111111 %00011110 end COLUBK=6 COLUPF=244 player0x=138 player0y=79 player1x=17 player1y=79 zombiespeed=20 ballheight=1 ballx=139 bally=71 ballwasshot=0 loop drawscreen player1: %00011001 %00010010 %00010010 %00010010 %00011110 %00010000 %00011110 %10011100 %10011000 %10111101 %10111101 %10111001 %01111110 %00011100 %00011110 %00110001 %00111111 %00110101 %00111111 %00011110 end if zombiewalk=1 then player1: %01100110 %01000100 %00100100 %00100100 %00011000 %00010000 %00011110 %10011100 %10111000 %10111010 %10111010 %10111010 %01111110 %00011100 %00011110 %00110001 %00111111 %00110101 %00111111 %00011110 end if switchreset then reboot if joy0left then player0x=player0x-1 if joy0right then player0x=player0x+1 if !joy0fire && !ballwasshot then ballx=player0x+1 if joy0fire then ballwasshot=1 if ballwasshot then ballx=ballx-2 if player0x>138 then player0x=138 if player0x<16 then player0x=16 if player1x>138 then player1x=138 if collision(ball,player1) then player1x=16:ballx=player0x+1:ballwasshot=0:score=score+1 zombiewalkdelay=zombiewalkdelay+1 if zombiewalkdelay=zombiespeed then zombiewalk=zombiewalk+1:zombiewalkdelay=0:player1x=player1x+1 if zombiewalk=2 then zombiewalk=0 goto loop The code was compiling and executing fine a while ago, but now, wherever I place my cursor, there is a syntax error there. Any tips?
  16. Hello all, I am a new to this forum. I would like to program the 2600 as a hobby. I have been reading posts this morning on how to begin. I am hoping that some of you nice folks can save me some time. I have read about DASM, batari Basic and others. Can someone answer a few questions for me and save me a great deal of time. Maybe this will help others also. What editor assembler software is used most these days? What do you recommend? Please leave a link. I have downloaded Barair Basic and and IDE and will install it today. Any useful links? Any other software that you folks use? I downloaded Stella and I have ordered a Harmony cartridge. I know these questions have been asked before but I ask for your patience and help. I hope to start writing some code today if I can get the software I need in place. Thanks to all of you in advance. Ed Cheek
  17. LEARN ASSEMBLY IN 8 HOURS with bB and the ASDK Tutorial Intro This tutorial will teach you 6502 Assembly programming for the Atari 2600 using a RAD Framework that abstracts the hardware so you can quickly marshal high level objects to build games like batari BASIC. Due to the similarities we will use BASIC examples side by side and use the bB compiler to illustrate (and to help with creating Assembly when preferred). Peruse and complete these short lessons over time or stay up all night drinking coffee and taking breaks to play Defender
  18. Hey everyone, I'm very new to programming with assembly. Anyways, from the tutorial in this section of the forums I played around with the first kernel that is presented in Session 8. I made the lines alternate their colors with it. I ran it with SECAM60 after being satisfied, and wow is it an eyesore. I attached an image of the screen when I ran it. Challenge: look at the SECAM60 screenshot for 30 seconds and then turn away. pantomchap_test_game_5-17-2017-2.27PM.bin
  19. I am looking for a simple example of: a) A MADS based program. b) ... which will use an AtariMax 1mb or 8mb cartridge when written to it. c) ... which then can switch in any bank from the cartridge. I'd also like some clarification of: - If a 2 megabit file is added to the 8mb cartridge, when you're addressing bank 0, is that bank 0 of the file that is being addressed or bank 0 of the cartridge as a whole? I guess the latter.
  20. Hi Guys, yesterday I have run into a nasty Syntax Error in Extended Basic, which also occurs in RXB. I don't understand it and wonder if the line really contains a Syntax Error or this is a Interpreter Bug. Version 1: 1 IF A=1 THEN 2 ELSE FOR I=1 TO 2 :: PRINT I :: NEXT I 2 END Version 2: 1 IF A=1 THEN 2 :: FOR I=1 TO 2 :: PRINT I :: NEXT I 2 END Both versions complain about a Syntax Error in Line 1. I would like to analyze it with the help of you and maybe RXB can be even fixed.
  21. I believe this falls into the programming section: 30 to 35 years ago I wrote a program for Hardball, the Baseball game, that allowed a person to replace the original baseball teams with modern teams in Hardball. I was much younger then and smarter than I am now so looking back at this program written in Atari Basic, What the heck did I do to write this? I don't even remember doing that , but it was in the KWEST library, so I am including it first. Once I figure out exactly what I did I will recreate the teams with 2019 teams, there may be some users on here that can look at my basic programs and tell me what I did? Because I am having a senior moment when it comes to remembering what I did 35 years ago. Here is the three programs in one zip file, Hardball Creator Disk, Hardball Creator Docs Disk, and of course Hardball itself. I may have changed the information with a sector editor and copied the text to data strings in the program. And from what I can see I wrote to specific spots on the COPY of Hardball itself, but beyond there? Russ Hardball Team Disk Creator.zip
  22. I just finished programming a music program into my Commodore 64 in BASIC. I ran it before saving, and it worked fine. I saved it and turned the computer off, then back on and loaded it, then typed 'list' to make sure all the lines of the program were there. They were. So I ran it. All that I could hear was (the best way I can describe it) a clicking sound rather than the musical melody that was there before saving and loading. The program ran for it's regular cycle and exited like it was supposed to, but the sound was messed up. I tried this a few times with the same results. Thinking that perhaps my sound chip was burned out, I loaded games on both cartridge and floppy disk. They worked fine. So my next step was to type the program again, save it under a different name and on a different disk, and run it. Same results.The last thing I did was turn the computer off and back on, then type the program into it again. I ran it without saving and it worked fine. Bad drive maybe? It's just weird that I can load it and the program shows all the lines, but it won't work right. And only after loading it from a 5.25 floppy. Any ideas or thoughts? Just so you know, I am doing this on original hardware. I am using an actual breadbox C64 with a 1541 disk drive and disks that were brand new in the packages(DD Fujifilm). They formatted just fine too. Any advice you can give would be appreciated. Thanks guys!
  23. Intellivision IntyBASIC Programming Contest 2015 Welcome to the first IntyBASIC game programming contest held on AtariAge (thanks Albert!). The contest is open to all IntyBASIC programmers and is sponsored by GroovyBee, nonner242, nanochess, CollectorVision and Albert. Further prizes are being offered by revolutionika and cmart604, and awards will be given to entries that place 1st, 2nd and 3rd respectively. Drop us a PM if you'd also like to help out with some more prizes! THE RULES So you can get started, the basic rules are laid out below: The competition starts today (Wednesday 1st of July 2015) and the deadline for submissions is 00:00 GMT on the 1st of January 2016 (midnight on the 31st of December) - this gives you around 6 months of development time. There will be no competition unless a minimum of six entries are submitted by the deadline. Your game(s) must be developed in IntyBASIC and use the default prologue/epilogue files. The only assembly language statement allowed within your game is the ORG statement so that you can develop a larger game. However, bank switching is not permitted. All submitted games must meet the entry criteria to be valid. The games submitted do not necessarily need to be new, but must be your own work, not sold commercially or released in cartridge format previously. NTSC must be supported, with additional PAL support optional (but encouraged). The maximum number of single entries from a person or group is set at three. If more entries are made, the applicant has the opportunity to replace a previous entry with a new one. The 1st prize winning game may be published by CollectorVision (should it's developer enter into an agreement to do so). This matter will be discussed privately with the parties concerned and if an agreement is reached a public announcement will be made later. There will be a panel of judges (announced in full over the coming weeks), and entries will be scored on a points basis across several criteria. The decision of the panel is final. All game ROMs below 1st prize (2nd, 3rd etc.) will be published after judging has been completed. However, if the 1st prize game is to be published by CollectorVision its ROM will be distributed after game sales have completed. All entries must be submitted via email to [email protected] by the closing date. The judges will declare the results of the contest by 12:00 GMT on the 31st of January 2016. GAME ENTRY Each entry into the contest must consist of the following items to be valid :- Game image in *.rom or *.bin+*.cfg. Brief instructions on how to play the game. IntyBASIC source code (and any data files). Instructions on how to build the IntyBASIC source code (this must also include IntyBASIC compiler version number). As part of the validation process, each entry's source code will be built using its instructions and the final binary produced must match the submitted binary image 100%. Any entry that fails this criteria will not be judged. It is not necessary for any contestant to publish the source code to their entry. However, if they wish to do so before the contest closes, they will be awarded an extra 5 points. Competition contestants are free to discuss their game's progress, provide source code and WIP ROMs and to also help other contestants should they wish to do so. Your entry must be submitted via email to [email protected] by the competition's closing date. THE JUDGING PANEL The panel of judges is as follows :- Albert Yarusso (Albert) Mark Ball (GroovyBee) nonner242 Oscar Toledo G. (nanochess) J-F (retroillucid) Judges are not permitted to enter the contest themselves. However, they are permitted to answer technical questions and provide assistance to applicants publicly when required. DZ-Jay will validate the entries. His role is to ensure that only the permitted assembly language is used in the game and that an exact game binary can be produced. SCORING SYSTEM The criteria that each game will be evaluated on are: Originality (1 ro 10) - Is the game based on a new idea or a twist on an established design? Concept (1 to 10) - Quality of game design. Execution (1 to 10) - Execution of design, taking into account controls, NTSC/PAL compatibility. Graphics (1 to 10) - Quality of graphics and animation. Sound (1 to 10) - Quality of music and sound effects. Presentation (1 to 10) - Overall presentation. Game play (1 to 10) - A measure of how enjoyable the game is to play. Lasting Appeal (1 to 10) - Replay value, addictiveness. Source code (5) - These points are awarded to any coder that publishes his/her game's source code publicly. When the panel has scored each game accordingly, the totals for each criteria will be added together for each game to give it a final score. PRIZES First prize: Game on Bee3 cartridge (1 copy only). End label and a box designed by nonner242 (1 copy only). Hive Multi-cart Deluxe Edition. 2 blank Bee3s. 1 Bee3 programmer adapter (donated by DZ-Jay). Optional: CIB publication with CollectorVision. CIB Copter Command Deluxe (donated by revolutionika). One console from CIB Intellivision I, CIB Intellivision II or CIB Sears (donated by cmart604). 30 pack of CIB common games (donated by cmart604). Choice of D1K or D2K (donated by cmart604). Second prize: Game on Bee3 cartridge (1 copy only). End label by nonner242 (1 copy only). Hive Multi-cart Standard Edition. CIB Copter Command (donated by revolutionika). One console from the remaining choice of CIB Intellivision I, CIB Intellivision II or CIB Sears after the 1st prize winner has picked theirs (donated by cmart604). 20 pack of CIB common games (donated by cmart604). Third prize: Game on Bee3 cartridge (1 copy only). A simple end label by nonner242 (1 copy only). CIB Space Raid (donated by nanochess). CIB Copter Command (donated by revolutionika). The remaining CIB Intellivision/Sears console after 1st and 2nd prize winners have picked theirs (donated by cmart604). 10 pack of CIB common games (donated by cmart604). Note: These rules are based on RGCD's Programming Contest 2014 rules and are used with permission. DEVELOPMENT The development tools and emulators needed to create and play your games can be found here.
  24. Another work in progress. Mode 0 , 0,0,0,0 Wait Print At 0 Color 7 , "Greensleeves (1)" Print At 80 Color 4 , "Press top side" Print At 100 Color 4 , "button to" Print At 120 Color 4 , "restart music." Print At 160 Color 1 , "Press bottom side " Print At 180 Color 1 , "button to exit." Wait Play Full Wait Play mymusic Wait Goto PlayLoop PlayLoop: Wait If Cont.B0 Then Wait : Play Off : Wait : Play mymusic If Cont.B1 Then Goto ExitThis If Cont.B2 Then Goto ExitThis Wait Goto PlayLoop ExitThis: Wait Print At 235 Color (Rand and 7) , "Bye." For spinWait = 0 to 5 Wait Next Play Off mymusic: Data 5 Music - , - Music - , - Music A4Y , - Music - , - Music A4Y , - Music - , - Music A4 , - Music S , A4Y Music C5 , S Music S , C5 Music S , S Music S , S Music D5 , S Music S , D5 Music E5 , S Music S , E5 Music E5 , S Music F5 , E5 Music E5 , F5 Music S , E5 Music D5 , S Music S , D5 Music S , S Music S , S Music B4 , S Music S , B4 Music G4 , S Music S , G4 Music G4 , S Music A4 , G4 Music B4 , A4 Music S , B4 Music C5 , S Music S , C5 Music S , S Music S , S Music A4 , S Music S , A4 Music A4 , S Music S , A4 Music A4 , S Music G4 , A4 Music A4 , G4 Music S , A4 Music B4 , S Music S , B4 Music S , S Music S , S Music G4 , S Music S , G4 Music E4 , S Music S , E4 Music S , S Music S , S Music A4 , S Music S , A4 Music C5 , S Music S , C5 Music S , S Music S , S Music D5 , S Music S , D5 Music E5 , S Music S , E5 Music E5 , S Music F5 , E5 Music E5 , F5 Music S , E5 Music D5 , S Music S , D5 Music S , S Music S , S Music B4 , S Music S , B4 Music G4 , S Music S , G4 Music G4 , S Music A4 , G4 Music B4 , A4 Music S , B4 Music C5 , S Music S , C5 Music S , S Music S , S Music B4 , S Music A4 , B4 Music S , A4 Music G4# , S Music S , G4# Music G4# , S Music F4# , G4# Music G4# , F4# Music S , G4# Music A4 , S Music S , A4 Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music A4 , S Music S , A4 Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music A3 , S Music S , A3 Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music A2 , S Music S , A2 Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music S , S Music Stop
  25. I have been working on a little 4k game trying to create something that feels in keeping with the arcade style gameplay many original 2600 games have. The ultimate goal of this game is to get a score of zero! Use the joystick to move around and pressing fire when moving increases your speed. Press fire while still to shoot your missiles and blow up bad guys. Not everything is a bad guy there are also power ups to obtain. Every thousand points you remove from the score a boss like ship will appear.... Don't get hit by its missiles! I have attached three different builds: 'Point Zero.bin' is the actual game. Have a blast let me know what you think and post you lowest score if you get a good one! 'Point Zero Boss Demo.bin' is a demo that quickly gets you to the boss section so you can see how it looks... If your not good enough to get there in the main game! 'Point Zero Trainer.bin' is a build that gives you infinite life's so you can practice technique and i also used this to test the game end to end. I have tried it on real hardware and it works great on my Harmony Cart. Hope you enjoy it and any feedback is welcome as this was my first assembly retro project and I'm currently looking for me next venture! Point Zero.bin Point Zero Boss Demo.bin Point Zero Trainer.bin
×
×
  • Create New...