Jump to content

Search the Community

Showing results for tags 'Action!'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type

Marker Groups

  • Members


  • 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
  • Classic Consoles
  • Classic Computing
  • Modern Consoles
  • Gaming General
  • Marketplace
  • Community
  • Community
  • Game Programming
  • Site
  • 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 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
  • Robin Gravel's new blog's Games released
  • 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
  • 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


There are no results to display.

There are no results to display.


  • 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


Last Updated

  • Start


Filter by number of...


  • Start










Custom Status



Currently Playing

Playing Next

Found 16 results

  1. Here is new version of Effectus (0.3). Mad-Assembler (MADS) is now integrated into Effectus program, the version used is 2.0.8. There are some other changes, including program parameters changes. Planned is further code revision to maintain even better Action! compatibility. It would seem like there were no significant changes, but this is a start. Unfortunatelly, currently pointers are of no use, but this will be fixed. Also, programs are compiled and assembled in the root directory of Effectus program. This will also be fixed later. The program is compiled with Free Pascal 3.0.4. The command in the console to compile the code: fpc -Mdelphi -vh -O3 effectus.pas
  2. Atari 8 Bit dBase III Utilities Project Background: This is a project I wanted to do for quite a while. While refreshing my Action! programming skills I wrote the first program in a suite that I plan on writing. The idea is to have a dBase III work-alike for the Atari 8 bit computers. Yes, it won't be as robust as PC version, and there will be limits, but that's not the point. I already know, and don't care, that there are better databases for the Atari. The intent of this project is to support dBase III structures directly and have the files fully compatible with the PC-DOS counterparts - all done in Action!. In this thread I will post updates as I progress through the utilities. Planned Utilities: DBF Info - Display information about a DBF file. dBase flavor, structure, number of records, header and record size, and optionally print. DBF Make - Create a DBF file, and optionally a DBT file if there is a memo field. This includes are the pertinent header information and field structure. DBF Query - Browse and query a DBF file. I want to support at least one index as well. DBF Edit - Browse and edit a DBF file. Field data editor. Wish List: Stand alone executables. Optional printing where applicable. Support at least one index per file. Support at least one relationship to another DBF file. dot Prompt utility (unlikely) Updates: I will and have been documenting the progress on my blog http://unfinishedbitness.info/action, and will be posting shorter updates here announcing components, how to use them, and availability. The first two components are complete. The first has a blog entry already, and the second blog entry is being worked on. I realized after the fact that there may be an audience here on AtariAge that is interested. In case you read this far and feel the need to question why, then you've missed the point. Any negative comments will simply be ignored.
  3. I've just uploaded my scans of these to dropbox (305.22 MB) Someone care to make a PDF of these and repost? https://www.dropbox.com/s/4qk4cu0vngxuic1/My%20Scans.rar Thanks, Jay
  4. * ACTris! 2.1 by Hayden Doan - July 04, 2016 * Introduction: ============ Only a brief introduction is needed this time. I continued making refinements on ACTris! 2.1. One of the first priorities was to improve the Title Screen, again! I had to work out some programming challenges with the color gradients for the texts. Overall, I'm now pleased with the end result Also, I wanted to fix some Page Zero memory usage issues to make my program compatible with the Altirra OS. And since I was deep into the codes already, I implemented a few other refinements (and a major Random Generator change) listed in the What's New section below. Lastly, this is most likely the final version of ACTris! to be released in the GTIA 10 mode. In the distant future (I hope!), I would like to explore other sound and graphics techniques used in programs such as the excellent "Thetris" written by MaPa and combine them with some key features developed in ACTris! Thanks: ====== Thank you, phaeron for helping me to figure out the issues with my program not working correctly with your Altirra OS. Thanks for the feedback that I received from everyone who gave my program a try. Thanks to therealbountybob's feedback, I've adjusted the "Popcorn" song tempo to not be so fast and "annoying". The valuable feedbacks really help me to develop a more polished program. What's New in ACTris! 2.1: ========================= * "Rotated" the program version from 1.2 to 2.1 * Rewrote the Tetriminos Random Generator completely! - The previous random generator was just simply "random". I know that it's technically only pseudo-random. - The new random generator is a statistical tracking algorithm. Over a period of time, the total number of EVERY Tetriminos will be EVENLY DISTRIBUTED. - The new algorithm has been thoroughly tested and the random distribution tracked within +/-3 counts from the mean over thousands of test cycles which provides the effect of "randomness". - During testing, I found that the new random generator has greatly increased the playability of the game! - In my opinion, this is the most fair way to play Tetris. There have been many times that I would be waiting for a much needed Tetriminos to be available and it may never even come! Now, the player can have A LOT more playing strategy since he/she can actually "plan" for every Tetriminos to become available within a reasonable period of time. - Actris! may be the only existing Tetris program that has a statistical tracking random generator. * Reduced the "U Can't Touch This" celebration music playing from two loops to only one - With the new Tetriminos Random Generator AND a good playing strategy, the player can achieve a lot more four-line completions. Therefore, playing the music just once will keep the game interruptions to an acceptable level. * Improved the Title Screen - Improved color gradients for the texts - Added Tetriminos. Now it looks more like the Title Screen for a Tetris program * Improved the High Score Screen - Added Tetriminos to the "Hall of Fame" text * Added a new "Thud" sound for the Hard Drop and a new "Drop" sound for the Normal Drop -> Use the [M]usic keyboard command to toggle between the Music and the new Drop Sound effects * Balanced the volumes of the Music and the Sound Effects * Adjusted the "Popcorn" music tempo to not be so fast and annoying per therealbountybob's suggestion * Modified the Pause Screen Rainbow effect. Now it scrolls upward. * Fixed Page Zero memory usage to be compliant with the Atari OS memory map and compatible with the Altirra OS * Used TxtMsc ($294) to find the memory address of the Text Window as recommended by phaeron * Used VCount ($D40B) to detect NTSC/PAL video modes to work properly even with custom Atari hardware Have Fun! Hayden ACTris! 2.1_Release.zip
  5. Have called a new subpage - Top Ten. It will be a ranking of games written in TB XL and Action!, With exactly the division. I look forward to hearing your voices, in their respective categories. Voting will take place through e-mail, and I expect it as: a maximum of three titles, providing details of TB XL / Action!, You can vote once every three months. The three selected programs - points awarded according to the principle of 3 points, 2 points, 1 point. Top 10 games gets on the list, the rest - is waiting in the waiting room. Game list will be updated with the voices. Feel free to send in your selections! [Google Translate] http://turbobasicxlandaction.pl/top.htm
  6. This Action program solves the board game solitaire: Action Solitaire.ATR I wrote several versions of this in different languages in the 1980's when I was learning about recursion and game theory, but this one is my favourite because it was the first that actually succeeded in solving the game - by searching millions of moves over the course of several days. I liked Action because of its speed and structure, and I certainly think it deserves its place in 8 bit history. I hope this solitaire program qualifies as an interesting piece of retro-software and illustrates some of Action's strengths. There are two program files on the ATR disc image: SOLIT.ACT contains the source code. It can be compiled and run using the Action cartridge. My 800XL, 65XE and 130XE can all compile the program from the editor buffer, but it is close to the maximum size that can be handled this way and, depending on the configuration of your machine, you might run out of code space (error 14). If this happens, clear the editor and compile from disc. SOLIT.OBJ is a compiled object that can be loaded and run from DOS without the cartridge (my thanks to Kevin Savetz for describing how to make these object files in his blog). The program also works in emulation. I've tried it with AtariWin800 Plus 4.1, and Altirra 2.20 (which produces the closest match to the original PAL display). When it is run the program immediately starts to search. It displays the starting position and the current search position, also the number of moves examined, the depth of recursive calls (with an up/down arrow to show whether the depth decreased/increased on the last call), and an "x" if the last position was cut (pruning all its sub-branches from the game tree). The program processes about 200 moves per minute, but it spends more time updating the display than searching. In attract mode it speeds up to around 1000 moves per minute by skipping all the display routines and turning off ANTIC. In this state you just see a blank screen cycling through the attract colours (it looks as though the program has crashed, but it is actually searching in overdrive). You can check the progress of the search at any time by pressing any key (except break) to bring the machine out of attract mode. When it eventually finds the solution, the program automatically switches ANTIC back on and displays it. The program works by scanning the board systematically from left to right, and top to bottom, considering moves in the north, east, south and west directions. It calls solit() to see if each proposed move is possible. If it is not, solit() returns without doing anything. If it is, it executes the move, generating a new board position which it places on a stack; then it scans the new position, calling itself to examine possible moves, and so on. After each move it checks for the solution (a single pin remaining in the central hole) and sets a flag to terminate the search when it is found. A procedure called treesaw() is called to examine every new board position. If it judges that the pins are too spread out to lead to the solution it causes solit() to return without searching further. This prunes hopeless positions from the tree and roughly halves the size of the search. The spread is expressed as the sum of the sides of an imaginary rectangle enclosing all the pins. There is nothing mathematically precise about the algorithm used in treesaw(). I designed it by just playing around with pins on the board and trying to establish reasonable thresholds, erring on the safe side to avoid accidentally pruning off the solution. Action has many good features and a few awkward ones too (although I believe these are all the result of reasonable design compromises). In particular, the representation of the board cries out for a two dimensional array, but these are not supported, so it has to be mapped onto a one dimensional array instead. I recall thinking that Action's lack of support for automatic variables would be a problem in the recursive application, but although it means that some extra code is required to support the stack, there are advantages in working this way. In particular, all the stacked variables are retained as the recursive calls unwind (and not discarded, as would be the case with automatic variables). So the whole solution remains available for reference when the search has ended. The program uses this feature to replay the solution in an endless loop. I always knew that game trees tend to be large, but I was surprised to find that solving such a simple game involved searching millions of moves. Later I discovered that this is a bit of an illusion because in solitaire there are often many different routes to the same position - so the tree contains duplicates and the program spends a lot of time searching these repeatedly. It would be possible to reduce the search by a factor of 10 by extending the pruning algorithm to recognise and reject duplicates. One thing that really impressed me was the speed with which Action raced through the moves (about 100 times quicker than Basic) - and my sense of awe only increased in subsequent years, as successive platforms ran the program quicker and quicker. My current PC, running C, solves the game in less than 10 seconds; and with improved pruning, less than 1 second. However, such extreme speed conceals what's going on, and in my opinion these programs have none of the charm of the Action version - but this is pure nostalgia, I know. Best Regards to All Cliff
  7. Howdy everyone! Recently I read a post by someone here on AtariAge, in some forum or another, who mentioned how much he dislikes the key click sound on our beloved A8 machines. I don't remember who or which forum right now but, I got thinking about it, and decided that for the most part, I too really don't care for the artificial key click sound the Atari makes. There are times I like it, but mostly not. Anyway, I use SpartaDOS X and thought that it would be handy to whip up a batch file which can turn the click on or off. I did that, and it worked. The problem is, it isn't callable from another batch file except as the last command. The reason for this is SpartaDOS X only allows batch chaining, not nesting. So I decided to just go ahead and make a .COM file which does the same job. Of course this can be called from anywhere in an AUTOEXEC.BAT or of course manually at the command prompt too. I just finished it and tested it some. Works good so far. I will post it tomorrow after I get everything put together into a package that is fit for distribution.
  8. Recently I coded up a program to allow converting ASCII and ATASCII files. The program is command line driven and intended for use under SpartaDOS X (earlier versions may also work). I posted this program in the Sparta DOS 4.47 topic, but am moving it here to its own. I am hoping for testing and feedback. When the program is finally done to the level of performance I am happy with, hopefully it can be made part of the SDX Toolkit. But if not, anyone will be free to add it to their own tools collection as they see fit. So, download it and give it a try if you like. Keep the following program usage in mind because right now, very little user entry validation is performed. It is therefore important that you spell out your device:filename entries. AAC (ASCII ATASCII Converter) is designed to copy a source text file to a destination text file, doing a text translation in the process. Only the output format is specified. It will be assumed the input file will be the opposing type. For example, if an ASCII, (either DOS/Win or Unix) output translation is used, then the input file is assumed to be in ATASCII form. Usage: AAC <source> <dest> /[T|A|U|H] /T = convert to ATASCII /A = convert to ASCII (DOS/Win) /U = convert to ASCII (Unix) /H = this help summary Eg: X AAC.EXE D1:COOLINFO.ASC D2:COOLINFO.TXT /T If using COMEXE you can get by with this: AAC D1:COOLINFO.ASC D2:COOLINFO.TXT /T Download the program.
  9. Hello together! Nearly everything in Action! is restored now, just two things are missing: a) the Action! source code b) the file: SIMPLREL.ACT Once, b) was published on a BBS, please see below. If anyone of you has this file, we would really appreciate that to complete the Action! project. Many thanks in advance to you and Happy Easter! :-) ACTION OBJECT CODE RELOCATION PROGRAM The program SIMPLREL.ACT on this BBS may be used to cause an ACTION! program to load and run at a different address than that address at which it was compiled. The same program will also work for assembly language object files, providing you also follow the given instructions. The program takes two object files as input and produces a third file which will load and run at a desired address. The relocating program prompts the user for the two input files, which must have been compiled one page (256 bytes) apart. It then prompts for an output file name (the relocated file), the page number of the starting address of the first file, and the page number of the desired destination address. Both page numbers must be decimal values. For example, specifying 32 as the destination page will cause the output file to load at address 32*256 ($2000), not $3200. See part V, "The ACTION! Compiler", chapter 2, page 144, for information on compiling programs to a specified address (Used to compile the two object files one page apart). In order to use the relocating program, download SIMPLEREL.ACT and read the instructions therein.
  10. I have some items up on ebay that may be of interest to Atari 8-bit enthusiasts. Auctions are ending today (sorry for late notice) Still "cleaning out the Attic"... OSS Action! programming language cartidge, + lightspeed C and MAC65 disks http://www.ebay.com/itm/301850710170 OSS BASIC XE cartridge + Atari BASIC cartridge: http://www.ebay.com/itm/301850721290 Original Atari 8-bit Visicalc disk and manual: http://www.ebay.com/itm/301850746506 Collection of various original Atari documents, manuals, catalog, including original Atari 1200XL manual: http://www.ebay.com/itm/301850746008 I am selling some Atari ST stuff as well. And I have some more stuff coming. You can check out all my ebay listings here: http://www.ebay.com/sch/chris82369/m.html
  11. Im trying to learn how to use bank switching in Action! ; PORTB banking bit scheme ; SLF,NA,ANT,CPU,BNK,BNK,BAS,OS = FLDS ; 7, 6, 5, 4, 3, 2, 1, 0 = BNUM ; 128,64, 32, 16, 8, 4, 2, 1 = BVAL ; 1, 1, 1, 1, 0, 0, 1, 1 = 243 M ; 1, 1, 1, 0, 0, 0, 1, 1 = 227 1 ; 1, 1, 1, 0, 0, 1, 1, 1 = 231 2 ; 1, 1, 1, 0, 1, 0, 1, 1 = 235 3 ; 1, 1, 1, 0, 1, 1, 1, 1 = 239 4 MODULE ; Bank switch defines DEFINE PORTB = "$D301" DEFINE BANKM = "243" DEFINE BANK1 = "227" DEFINE BANK2 = "231" DEFINE BANK3 = "235" DEFINE BANK4 = "239" PROC Main() BYTE ARRAY bMem(16384)=$4000 ; Set bank 1 memory Poke(PORTB,BANK1) SetBlock(bMem,16384,50) ; Set bank 2 memory Poke(PORTB,BANK2) SetBlock(bMem,16384,51) ; Set bank 3 memory Poke(PORTB,BANK3) SetBlock(bMem,16384,52) ; Set bank 4 memory Poke(PORTB,BANK4) SetBlock(bMem,16384,53) ; Set bank M memory Poke(PORTB,BANKM) SetBlock(bMem,16384,49) RETURN When I compile and run this in the Action! monitor, it works fine. PORTB is correctly set at 243, and 4000 to 7FFF is filled with 49. When I include it in a larger program, with the Action! runtime, it crashes the machine. At crash, PORTB is 227, and 4000 to 7FFF is filled with 0. I think its crashing on the SetBlock for bank 1 "SetBlock(bMem,16384,50)". So two questions. 1) Am I doing this right? 2) What could be causing it to crash when in a larger program using the runtime?
  12. Hey everyone. I wanted a way to know what values correspond to the various colors available on the A8. I hunted around for a while trying to find a program that showed them to me as I was pretty sure I had seen something before. Anyway, I didn't find what I wanted so I started writing something in BASIC. But as I started to code it in BASIC I realized it is actually less tedious in many ways to code it in Action! It's a simple program that adjusts the hue and luminance of the screen border based on user key entry in the form of increment or decrement. It's compiled with the Action! RTL, so it is ready to run on most any Atari 8-bit computer. No Action! cartridge required. I have ARCed the executable, along with my source code. Hopefully it's useful to someone else besides myself too. But it was fun to code in any event. SHWCOLOR.ARC
  13. I ran across this nice beginner level tutorial: https://www.atariwiki.org/wiki/Wiki.jsp?page=Action%20and%20BBS%20Express%20PRO%20Tutorial It indicates there is a Part 2 which describes writing commands for Pro BBS. Does Part 2 exist? I can't seem to find it. I'm looking for any info on Action! and Pro BBS. Also, is there a good Action! De-Compiler? I want to make a few minor changes to the WAITCALL module. Specifically things concerning modem commands, etc. Gracious Thanks In Advance (GTIA) It is almost impossible to find good info about this online.
  14. My son tried the following in Action! (version 3.7) INT Array x=[-1 -2 -3 -4] This results in an Error 9. The same happens when initializing a single INT to a negative value. Parentheses around the (-1) make no difference. I didn't find anything in the the manual that would prohibit initializing to negative numbers. Any ideas how to work around this or where/how to store values to initialize the array after it has been declared?
  15. Asking $125 shipped, but open to offers. Included is the Action! cartridge, Pro Card which illustrates the error codes and their meaning, as well as the Programmers' Aid Disk
  16. I'm having trouble computing the LSB and MSB of a CARD value. My routine works fine through 65281. At 65282 it breaks and I can't figure out why. Values 65282 through 65535 (last 253) CARD values, compute with MSB=0 while the LSB is still correct. Here is my routine (used to write a CARD value to a device (file) in LSB/MSB form: PROC PutCD(BYTE bDev CARD cVal) BYTE bL=[0],bM=[0] bM=cVal/255 bL=cVal%256 PrintF("PutCD: %U (L=%B,M=%B)%E",cVal,bL,bM) PutD(bDev,bL) PutD(bDev,bM) RETURN Output using 65281: Output using 65282 (note you can also see the value 65535 being converted wrong (from an INT routine that calls PutCD). Not worried about the INT at this point since the problem appears with the CARDs. What have I done wrong?
  • Create New...