Search the Community
Showing results for tags 'Action!'.
-
I wrote this library for managing text windows starting in 2015 in the Action! language. The windows have different ornamental controls. I've added features I've dubbed gadgets like radio buttons, regular buttons, checkboxes, progress bars, spinners, and input controls that have type restrictions and scroll if they are larger than displayable space. The gadgets allow building forms which are very close to modern dialogs. I blogged the progress of the library over the years, and over the last couple of months converted the library to C (CC65). I blogged about the C conversion as well. I created full API documentation for both and build some sample apps in each language. The blog has some video demonstrations. Once I completed the C version, I decided to create GitHub repositories for distribution rather than my blog. Maybe someone will find them useful. The C version now includes support for FujiNet, SIO, and APE Time. FujiNet bindings include support for Base64 encode/decode and Hashing using SHA1, SHA256, and SHA512. These updates are not in the Action! library, or the Pascal library. (edit) Amarok converted the C version to Mad-Pascal. I created a corresponding API document, and published it on GitHub. Thanks Amarok! Here are the links: C blog entries: https://unfinishedbitness.info/tag/c-cc65/ C GitHub page: https://github.com/Ripjetski6502/A8CLibrary Action! blog with latest release: https://unfinishedbitness.info/2022/08/27/action-library-v1-51/ Action! blog entries: https://unfinishedbitness.info/2016/04/27/action-windows/ (first post on window library) Action! GitHub page: https://github.com/Ripjetski6502/A8ActionLibrary Mad-Pascal GitHub page: https://github.com/Ripjetski6502/A8MadPascalLibrary Enjoy.
- 31 replies
-
- 15
-
Hi all, I had played a bit with Action! more than a year ago, basically putting it to run and compiled a Hello World application. I remember that I read the very complete wiki about the language and being a little overwhelmed by the amount of versions and options. Today, I decided to start looking into it again with the objective to write some articles for my website about it and also finally learn something about Atari 8-bit programming in general. With that in mind, I'd like a little help from you guys answering (or pointing me to the right direction) these questions (all referring to information from the atariwiki.org page): 1. What version should I use? I see there is the ZIP file containing the recently compiled 3.7 version with some fixes and versions for cartridge and disk. Is this the right one to start with, or should I stick with 3.6? Or it really doesn't matter 2. In case I want to create standalone programs, what runtime should I be using? My guess is for the "unprotected copy of the original disk from a good soul from AtariAge" but I'd like to confirm. 3. What would be a nice development setup (using the Atari or an Emulator, no cross-compiling for now) if using disks? First disk for the editor/compiler? Second disk as work disk? What about many other modules/libraries listed on the wiki? 4. I want to try some graphic programming, so Player/Missile is something that I would like to try, etc. I see there is a PM link (https://atariwiki.org/wiki/Wiki.jsp?page=Player Missile) but there is also a PM module inside one of the disks (I just can't recall which one right now) I am also doing some research trying to answer the questions myself, but some input from here would be valuable. Thanks in advance!
-
I incorporated a modified verison of the DLI routine from this Action! program into a character set redefiniton program I'd previously written, which draws six rows of Breakout-style bricks. This actually works, but it only changes the color of rows 3-6, no matter how I modify it, I can't get the first two rows to change. Those lines do have DLI enabled, but the Playfield Color 1 (0) is only changed starting with the third line. DEFINE RTI="$40", PHA="$48", PLA="$68", TXA="$8A", TAX="$AA", TYA="$98", TAY="$A8", JMP="$4C" BYTE CHBAS = $2F4, PMBASE = $D407, RAMTOP=$6A, NMIEN=$D40E, COLP0=$D016,WSYNC=$D40A, COUNT=[0] CARD SDLSTL=560, VDSLST=512 BYTE ARRAY COLTABLE(0) = [$42 $74 $C4 $18 $00 $0E] BYTE ARRAY DLIST PROC DLINT() BYTE DUM [PHA TXA PHA TYA PHA] DUM=COLTABLE(COUNT) WSYNC=1 COLP0=DUM COUNT ==+ 1 IF COUNT=6 THEN COUNT=0 FI [PLA TAY PLA TAX PLA RTI] PROC INIT_GR() GRAPHICS(1) SETCOLOR(0,2,10) SETCOLOR(1,5,12) SETCOLOR(2,0,0) RETURN PROC DLSETUP() BYTE I INIT_GR() NMIEN=$40 DLIST=SDLSTL VDSLST=DLINT FOR I = 6 TO 11 DO DLIST(I)=134 OD NMIEN=$C0 RETURN PROC CHANGE_CHARSET() BYTE ARRAY NC0 = [255 128 128 128 128 128 128 255 255 1 1 1 1 1 1 255 ] CARD MEMTOP MEMTOP = RAMTOP - 8 MEMTOP = MEMTOP * 256 ZERO(MEMTOP,512) MOVEBLOCK(MEMTOP,57344,512) MOVEBLOCK(MEMTOP+8,NC0,16) CHBAS = MEMTOP/256 RETURN PROC MAIN() CARD SAVMSC=$58 BYTE I CHANGE_CHARSET() DLSETUP() FOR I = 0 to 120 STEP 2 DO POKE(SAVMSC+I,1) POKE(SAVMSC+I+1,2) OD DO OD RETURN (for some reason I can't edit the code portion, Change_Charset() and DLsetp() are in the wrong order in the main procedure) A couple of additional questions for Action! experts. Why is count set to [0] instead of 0? I'm beginning to understand that anything in brackets is not actually an array, but some sort of machine code instruction, but I'm not clear on why it's done this way (if you remove the brackets there's a different result.) Also, why is Coltable dimensionalzed with a size of 0? This is the only example I've seen where an inline array declaration dimensionalizes the array, much less saying it's empty when it has a size of 6.
-
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
- 154 replies
-
- 13
-
How does one use DEFINE to set a string value? Such as: DEFINE SSREADY = "TEST" PROC Main() PrintF("SSREADY=[%S]%E", SSREADY) RETURN This will not compile correctly as TEST is SSREADY is replaced by TEST without quotes. Double quoting results in syntax error, but it is how you embed a double quote in a string. I've tried these as well which won't work either: DEFINE SSREADY=""TEST"" DEFINE SSREADY='"TEST"' Is this just not possible with Action!?
-
Whats the best way to determine the amount of free memory in Action!? RAMTOP - MEMLO ? CARD RAMTOP=106 CARD MEMLO=743 MODULE PROC Main() CARD dT,dL,dF dT=RAMTOP*256 dL=MEMLO dF=dT-dL PrintF("%EFrom:%E") PrintF("RAMTOP=%B%E",RAMTOP) PrintF("Top=%U (%H)%E", dT, dT) PrintF("Bot=%U (%H)%E", dL, dL) PrintF("Fre=%U (%H)%E", dF, dF) PrintF("%EReserving 1K...%E") RAMTOP==-4 dT=RAMTOP*256 dL=MEMLO dF=dT-dL PrintF("%ETo:%E") PrintF("RAMTOP=%B%E",RAMTOP) PrintF("Top=%U (%H)%E", dT, dT) PrintF("Bot=%U (%H)%E", dL, dL) PrintF("Fre=%U (%H)%E", dF, dF) RETURN
-
As by-product of my most recent article (https://vintageisthenewold.com/going-into-action-with-atari-xl-xe-part-4-using-vscode-and-action-with-syntax-highlighting/), I have crated a syntax highlighting for VSCode. I haven't found anything similar for this editor, so I hope it will be useful for more people other than myself! If you use vscode already it can be installed from the Extension explorer. Just search for "OSS Action". You can also download from here: https://marketplace.visualstudio.com/items?itemName=pgarcia.ossaction Bug reports and suggestions are welcome. Cheers
-
Hey guys, so I've started on a set of bindings for ACTION! and they almost work(tm). https://github.com/FujiNetWIFI/fujinet-apps/tree/master/netcat-action What does not work: * Write doesn't work. * Interrupt routine isn't being called, even though I vector it in, and toggle PACTL's PROCEED interrupt enable. Anybody want to peer at this and give some insight?
-
I'm looking for a good and finished games written in Action! At the moment, I only know about a few, of which, in my opinion, the following are noteworthy: At Arion Line: Mission Zero Problem Jasia Can anyone name any other title?
-
To help me learn Action! I have started a tutorial on Action! in my Atariage blog. I'm up to lesson 4 on my blog. I post about once a week or so. below is part one. http://atariage.com/forums/blog/528/entry-15422-learning-action/
- 11 replies
-
- 6
-
- action!
- programming
-
(and 1 more)
Tagged with:
-
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?
-
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.
-
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?
- 15 replies
-
* 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
-
Hi together, The ACTION! site is very close to be completed. Just: https://atariwiki.org/wiki/Wiki.jsp?page=ACTION#section-ACTION-StillMissingGraphicsUtilitiesLibraryAndShapeEditor is missing. Therefore, any help, just any hint is very welcome at any time. Many thanks in advance. The source for this is the OSS Newsletter: Winter 1987: https://www.atariwiki.org/wiki/attach/Newsletters/OSS_Newsletter-Winter_1987.txt
-
Not to sound like an ad for Atarimax but I just created an Action! cartridge using the maxflash device and it was real easy and cheap. With Action! cartridges going for some ridiculous prices as of recent to make one for about $25 was nice. Here is my blog on the process: http://8-bitretrocomputerguy.tumblr.com/post/143402124019/creating-an-atari-8-bit-action-cartridge-and P.S. also made a nice manual for Action! and had it bound for about $5.
-
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.
-
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
-
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.
- 34 replies
-
- ASCII
- translation
-
(and 4 more)
Tagged with:
-
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.
-
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?
-
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