Jump to content

Search the Community

Showing results for tags 'mads'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • 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

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

  1. Hi all, I've made an extension for IDE Visual Studio Code. It just highlights syntax of MADS assembler. Follow https://marketplace.visualstudio.com/items?itemName=mirao.mads Enjoy Mira
  2. Hello! After some searching for MADS highlighting for Vim, I haven't found nothing useful, so I decided to write something new… The only solution like this which I found was vim-xasm, the XASM highlighting, but it wouldn't enough good to use with MADS (lack of preprocesor directives and so on) So, here it is! Completely new plugin, suitable for every serious Atari coder with Vim as his main editor. (Note: If Vim isn't your primary editor yet, give it a try! But remember, some of your habits will be quickly broken :>) URL for GitHub Repository (aka "The Giant DOWNLOAD Button"): https://github.com/skrzyp/vim-mads (of course, if you're not familiar with Git, you can still grab this plugin as archive, but you'll lose the ability to update it when something new will be added/corrected) Installation Manually: Put folders syntax and ftdetect in your Vim configs directory: Windows: %USERPROFILE%\vimfiles Rest of world: ~/.vim Recommended: Using Pathogen Clone this repo into your Vim path: git clone https://github.com/skrzyp/vim-mads ~/.vim/bundle/vim-mads Of course, I'm fully open for any suggestions and comments, even if you found any bug or problem, tell me here or make a pull request. I'm also very interested about any feedback from users. Screenshot (sorry, I don't have a code which use a full potential of MADS, but if someone has, send me your pic, please)
  3. First one. Full screen (160*192) scroll in 160B in charmode (2chars) Graphics from Mayhem in Monsterland (C64) I'm using only 7 colours so far. edit: Linkt to JS7800 https://raz0red.github.io/js7800/?cart=https://atariage.com/forums/applications/core/interface/file/attachment.php?id=802867 Scroll.a78
  4. Operating from a Windows PC development environment, I would like to be able to test my 6502 Assembly code. So, for example: I might have this code: org $0600 CLC LDA #5 ADC #3 STA 203 <end of code> I would like to be able to execute a command from the PC which will check that the above code puts the value of '8' into memory location 203. It may run Altirra or a 6502 emulator in the background, but I need to be able to extract that memory location and then report it back to the calling program. At the end I want "Test passed" or "Test failed" or something similar displaying. This way I can build up an automated test suite for all of my procedures / sections of code / macros. I have no problem with it bringing up windows whilst testing is going on, but I want all of the windows closed at the end of the tests. Any ideas of the best way of implementing this? I guess I'd need to automatically dump the memory contents and then extract the memory values that I require...
  5. 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.
  6. Just stumbled into a bug with MADS' built-in ADW macro when used with (ZP),Y: LDY #$04 ADW (OBSPEC),Y PTR2 PTR4 A334: A0 04 LDY #$04 A336: 18 CLC A337: B1 C1 LIMITCLIP.OFFSCREEN LDA (OBSPEC),Y A339: 65 E2 [email protected] ADC PTR2 A33B: 85 E6 STA PTR4 A33D: C8 INY A33E: B1 C1 LDA (OBSPEC),Y A340: 65 E3 ADC $E3 A342: 85 E6 STA PTR4 ; <<<<<<< should be $E7, not $E6 LDY #$04 MWA (OBSPEC),Y PTR4 A334: A0 04 LDY #$04 A336: B1 C1 LDA (OBSPEC),Y A338: 85 E6 STA PTR4 A33A: C8 INY A33B: B1 C1 LDA (OBSPEC),Y A33D: 85 E7 STA $E7 ; <<<<<<<<<<<<< $E7 = correct Using the latest build here, and I'm sure ADW used to store the MSB correctly in older versions. Haven't looked to see if the bug exists in SBW as well.
  7. Many of us are learning assembler with Atariroots it would be great to translate here the main example programs to try on mads like: PROGRAM FOR PRINTING ON THE SCREEN 10 ;20 .TITLE "PRNTSC ROUTINE"30 .PAGE "ROUTINE FOR PRINTING ON THE SCREEN"40 ;50 *=$500060 ;70 BUFLEN=2380 ;0100 EOL=$9B0105 ;0110 OPEN=$030120 OWRIT=$0B0130 PUTCHR=$0B0135 ;0140 IOCB2=$200170 ICCOM=$3420180 ICBAL=$3440190 ICBAH=$3450200 ICBLL=$3480210 ICBLH=$3490220 ICAX1=$34A0230 ICAX2=$34B0235 ;0240 CIOV=$E4560250 ;0260 SCRNAM .BYTE "E:",EOL0270 ;0280 OSCR LDX #IOCB2;OPEN SCREEN ROUTINE0300 LDA #OPEN0310 STA ICCOM,X0320 ;0330 LDA #SCRNAM&2550340 STA ICBAL,X0350 LDA #SCRNAM/2560360 STA ICBAH,X0370 ;0380 LDA #OWRIT0390 STA ICAX1,X0400 LDA #00410 STA ICAX2,X0420 JSR CIOV0430 ;0440 LDA #PUTCHR0450 STA ICCOM,X0460 ;0470 LDA #TXTBUF&2550480 STA ICBAL,X0490 LDA #TXTBUF/2560500 STA ICBAH,X0510 RTS0520 ;0530 PRNT0540 LDX #IOCB20550 LDA #BUFLEN&2550560 STA ICBLL,X0570 LDA #BUFLEN/2560580 STA ICBLH,X0590 JSR CIOV0600 RTS0610 ;0620 TXTBUF=*0630 ;0640 *=*+BUFLEN0650 ;0660 .END THE VISITOR 10 ;20 ; THE VISITOR30 ;35 TXTBUF=$504140 OPNSCR=$500350 PRNTLN=$503170 ;80 *=$60090 ;0100 TEXT .BYTE $54,$41,$4B,$45,$20,$4D,$45,$200110 .BYTE $54,$4F,$20,$59,$4F,$55,$52,$200120 .BYTE $4C,$45,$41,$44,$45,$52,$210130 ;0140 VIZTOR0150 ;0160 LDX #00170 LOOP LDA TEXT,X0180 STA TXTBUF,X0190 INX0200 CPX #230210 BNE LOOP0220 JSR OPNSCR0230 JSR PRNTLN0240 INFIN JMP INFIN all 2 can be combined in one on Mads RESPONSE 10 ;20 ; RESPONSE30 ;40 TXTBUF=$504150 OPNSCR=$503160 PRNTLN=$503170 ;80 EOL=$9b90 ;100 *=$650110 ; 120 TEXT .BYTE "I AM the leader, you fool!",EOL130 ;140 RSPONS150 ;160 LDX #0170 LOOP180 LDA TEXT, X190 STA TXTBUF, X200 CMP #$9B210 BEQ FINI220 INX230 JMP LOOP240 FINI250 JSR OPNSCR260 JSR PRNTLN270 INFIN280 JMP INFIN finally A Demonstration of Fine Scrolling FINESCRL.SRC for the Atari Assembler Editor Cartridge 05 ;10 ;20 ;HELLO SCREEN (FINE)30 ;40 *=$300050 JMP INIT60 ;70 TCKPTR=$200080 FSCPTR=TCKPTR+190 ;0100 SDMCTL=$022F0110 ;0120 SDLSTL=$02300130 SDLSTH=$02310140 ;0150 COLOR0=$02C4;OS COLOR REGISTERS0160 COLOR1=$02C50170 COLOR2=$02C60180 COLOR3=$02C70190 COLOR4=$02C80299 ;0210 HSCROL=$D4040220 ;0230 VVBLKI=$0222; OS INTERRUPT VECTOR0240 SYSVBV=$E45F; INTERRUPT ENABLE VECOTR0250 ;0260 SETVBV=$E45C; SET VERTICAL BLANK INTERRUPT (VBI) VECTOR0270 XITVBV=$E462; EXIT VBI VECTOR0280 ;0290 ; DISPLAY LIST DATA0300 ;0310 START0320 LINE1 .SBYTE " PRESENTING "0330 LINE2 .SBYTE " "0340 .SBYTE " the big program "0350 .SBYTE " "0360 LINE3 .SBYTE " By (You"0370 .SBYTE "r Name) "0380 LINE4 .SBYTE "PLEASE STAND BY "0390 ;0400 ; DISPLAY LIST WITH SCROLLING LINE0410 ;0420 HLIST ;('HELLO' LIST)0430 .BYTE $70, $70, $700440 .BYTE $70,$70,$70,$70,$700450 .BYTE $460460 .WORD LINE10470 ;NOTE THAT THE LAST BYTE IN THE0480 ;NEXT LINE IS $57, NOT $47 AS IT0490 ;WAS IN THE PRECEDING CHAPTER0500 .BYTE $70,$70,$70,$70,$570509 ;THIS THE LINE WE'LL SCROLL0510 SCROLN ;(THIS IS THE LINE WE'LL SCROLL)0520 .WORD $00; A BLANK TO BE FILLD IN LATER0530 .BYTE $70,$420540 .WORD LINE30550 .BYTE $70,$70,$70,$70,$460560 .WORD LINE40570 .BYTE $70,$70,$70,$70,$700580 .BYTE $410590 .WORD HLIST0600 ;0610 ;RUN PROGRAM0620 ;0630 INIT ;PREPARE TO RUN PROGRAM0640 LDA COLOR3; SET COLOR REGISTERS0650 STA COLOR1;0660 LDA COLOR4;0670 STA COLOR2;0680 ;0690 LDA #00700 STA SDMCTL0710 LDA #HLIST&2550720 STA SDLSTL0730 LDA #HLIST/2560740 STA SDLSTH0750 LDA #$220760 STA SDMCTL0770 ;0780 JSR TCKSET; INITIALIZE TICKER ADDRESS0790 ;0800 LDA #40; NUMBER OF CHARACTERS IN SCROLL LINE0810 STA TCKPTR0820 LDA #80830 STA FSCPTR; NUMBER OF CLOR CLOCKS TO FINE SCROLL0840 ;0850 ; ENABLE INTERRUPT0860 ;0870 LDY #TCKINT&2550880 LDX #TCKINT/2560890 LDA #60900 JSR SETVBV0910 ;0920 ; TICKER INTERRUPT0930 ;0940 TCKINT0950 LDA #SCROLL&2550960 STA VVBLKI0970 LDA #SCROLL/2560980 STA VVBLKI+10990 ;1000 INFIN1010 JMP INFIN; INFINITE LOOP1020 ;1030 SCROLL1040 LDX FSCPTR; 8 TO START1050 DEX1060 STX HSCROL1070 BNE CONT1080 LDX #81089 ;CONINUE1090 CONT1100 STX FSCPTR1110 CPX #71120 BEQ COARSE1130 JMP SYSVBV1140 COARSE1150 LDY TCKPTR; NUMBER OF CHARACTERS TO SCROLL1160 DEY1170 BNE SCORSE; LOOP BACK TILL FULL LINE IS SCROLLED1180 LDY #401190 JSR TCKSET; RESET TICKER LINE1199 ;DO COARSE SCROLL1200 SCORSE1210 STY TCKPTR1220 INC SCROLN; LOW BYTE OF ADDRESS1230 BNE RETURN1240 INC SCROLN+1; HIGH BYTE OF ADDRESS1250 RETURN1260 JMP SYSVBV1270 ;1280 TCKSET1290 LDA #LINE2&2551300 STA SCROLN1310 LDA #LINE2/2561320 STA SCROLN+11330 ENDIT1340 RTS
  8. Hi, I played with the new directive .DEFINE and found an issue. Not sure where to report it, so I'm trying this site. Have this code: .define poke mva #%%2 %%1 lda\ #\ 12 Then assembler fails: $ mads testmads .define poke mva #%%2 %%1\ testmads.asm (4) ERROR: Multi-line argument is not supported If you omit the definition of "poke", it works well - the next lines are interpreted as "lda #12" Used SW: Ubuntu 16.10, MADS 2.0.6 Regards Mira
  9. Hello, I recently got a 130XE off EBay as a way of getting back into Atari 8-bits. (I sold my original Atari 800, with a Happy 1050, in 1985 to upgrade to an Amiga 1000). I have an Assembler/Editor cartridge left over from my '90s retrogaming collector days. I think it would be fun for learning 6502 programming since it's on the actual hardware. When I get going with "real" projects, I would switch to a cross-assembler and I wondering which is best to use for a newbie. I definitely would use WUDSN IDE, since I'm already familiar with Eclipse. ATASM seems nice because it is compatible with MAC/65, but judging from this forum all the cool kids seem to be using MADS. My concern with MADS is that if you know only English, the documentation seems a bit like folklore. It also seems like a "power user" tool that might be overwhelming at first. Interested in hearing comments from people who are using these tools now. Thanks!
  10. Hey guyz, I have programmed an online racing game for C64 using CC65, and now trying to port it to Atari 8bit. After reviewing the various GFX modes, I selected CIN. But I am looking for some advice on CC65 integration. Here is what I have done so far: (1) Used Atari Interlaced Studio to generate CIN data of a map, and exported as assembly code. (2) Simplified the ASM file, replaced the main loop with "jsr $2001", compiled it with MADS, and located it between $6010 - $A21A (RUN $A194). (3) Compiled an hello world prog with CC65, and located it $2E00-$3031 (RUN $2001). (4) Used merge-xex to combine the 2 progs, with default run location $A194. When I test in Altirra, the ASM code does the CIN setup, and move to the CC65 prog as expected. However, things get tricky from here: (1) Doing simple loops to modify the CIN memory seem to work (for instance blacking out half the lines). (2) But functions like sleep() or cgetc() do not seem to work at all. I have attached my files for reference: The prog shows the map, blacks out half the lines, then waits for a key press... but never detects it. Commenting line 27, the prog carries on to the next part...?!? I must be doing something stupid, but I can't figure out what. Converting the ASM code to CC65 assembly would probably be best, but CC65 does not support many of the MADS macros... Is there an easy way to transcode from MADS to CC65? CIN-CC65.zip
  11. Inspired by: I've used Cybernoid2 cover by @miker PAL version A7800 version sounds little bit strange. I'm still waiting for Dragonfly, so I can't fully test it on real hardware. Eagle https://raz0red.github.io/js7800/?cart=https://atariage.com/forums/applications/core/interface/file/attachment.php?id=801883 Cybernoid2byMiker.a78
  12. This worked for a while but is broken is recent MADS releases which happened to fix other stuff I depend on, so I'm now stuck. .DS now produces no empty block but a block of zero padding instead. Got no response to a PM so reporting the bug here instead.
  13. I could probably work this out with enough time, but I guess that enough of you clever people know how to do something like this.... I have an integer stored as a byte which can be a value of between 0 and 99 inclusive. I then want to create a filename, so I need this number as text. If the integer is between 0 and 9 inclusive, I would like to print it as "07" (i.e. a zero at the start). If the integer is greater than 9 and will always be less than 100, I just want the number as the 1st 2 bytes of the filename. I want some compact code to do this, could I use CIOV somehow? Or can I do better with your code?
  • Create New...