Search the Community
Showing results for tags 'assembler'.
-
lately I have been trying to find Atari Ed Assem cartridge on eBay at a reasonable cost but to no avail. I want to get back into 6502 assembler (yes I know there are better assemblers the EA but all the beginner books use EA) and need the Ed Assem. SO I got to thinking, it shouldn't be too difficult to convert the EA for booting off disk. It's just an 8mg cart. I have made a few attempts at converting to no success since I'm still learning about headers and such. I did find an .atr image that someone seems to have attempted it, but it never worked. question is, is there any reason why this won't work and if it can could some covert a .rom for me and tell me how you did it for future reference. thx, HLO PS also, I know I could just use an Altirra and the EA.rom (which I now do) but I like going old school with my 800xl from time to time complete with carts and disk.
- 46 replies
-
- editor assembler
- disk conversion
-
(and 1 more)
Tagged with:
-
2019.12.29 I've found a bug, that only shows up in the disk version here at my end. I forgot to clear a memory location used for scoring. Files updated. blockc.bin block.dsk Filename: BLOCK blockbuster.instructions.pdf - - - - - The idea will be to insert pairs of colored blocks into two piles, one on either side of the screen. Create a group of three or more adjacent blocks of the same color and they'll disappear, gaining you points. Pile up too many and you lose the game.
-
Estoy con el siguiente problema, necesito convertir el hexadecimal $44000 a decimal. por ende no puedo utilizar el floating point por que este solo trabaja hasta 2 bytes y un máximo de 65335, trate de todos los medios, incluso sumando de un byte a uno y comparando hasta llegar a la igualdad, pero el proceso es demasiado lento, casi 1 minuto. He revisado revistas manuales y ninguno da señal de algún código que pueda ayudar a realizar este proceso. traduccion I am with the following problem, I need to convert the hexadecimal $ 44000 to decimal. so I can not use the floating point because it only works up to 2 bytes and a maximum of 65335, try all media, even adding one byte to one and comparing until you reach equality, but the process is too slow , almost 1 minute. I have reviewed manual journals and none gives a signal of any code that can help to carry out this process. *=$2000 M=17 MEMORY .BYTE $00,$00,$00,$9B DISPONIBLE .BYTE $00,$00,$00,$00,$00,$00,$9B CALCULO .BYTE $00,$00,$00,$00,$00,$00,$9B SUMAMOSMEMORIA LDX M SUMAMOSMEMORIA? CLC LDA MEMORY+2 ADC #$00 STA MEMORY+2 LDA MEMORY+1 ADC #$40 STA MEMORY+1 LDA MEMORY ADC #0 STA MEMORY SUMAMOSMEMORIA?? CPX #0 BEQ FINSUMAMOSMEMORIA DEX JMP SUMAMOSMEMORIA? FINSUMAMOSMEMORIA RTS INICIO LDA #0 STA 710 LOOP JMP LOOP *=$02E0 .WORD INICIO como se puede apreciar en el código tengo la variable M con un valor de 16 que realiza el bucle de SUMAMOSMEMORIA sumando de a $4000 bytes que equivale a 16384 y este resultado queda en MEMORY( $04 $40 $00) y eso quedo dejarlo como disponible ( $02,$07,$08,$05,$02,$08 ). Alguna idea de como realizar la conversión. traducción As you can see in the code I have the variable M with a value of 16 that makes the SUMAMOSMEMORIA loop adding up to $ 4000 bytes that is equivalent to 16384 and this result is in MEMORY ($ 04 $ 40 $ 00) and that is left as available ($ 02,$07,$08,$05,$02,$08). Some idea of how to perform the conversion.
-
To share more on the progress, this is the current output of the tool I am working on: http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_A.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_B.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_C.html The content in these files is the original commented source code for TI-99/4A System Rom, created by the TI developers. Basically an assembler source code file is read in by TIcode99 and parsed to generate a new assembler source code file. These html files are something I wanted to do for a long time already, they include rich syntax highlighting, which is only possible because the tool actually understands and categorizes the content in the code. The tooltips (hover with the mouse on certain elements) show you detailed information about the opcode, about the symbols and their resolving, the operand type,... The symbols can be clicked on to jump to the location where they are defined. However with the enhanced tooltips you hardly need to jump for and back just to read the definition of the symbol. All this is done automatically and can be done for any Tms9900 source code file. When I change the render options to always render numbers in hexadecimal format, it generates these instead: http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_A%20-%20Hexadecimal.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_B%20-%20Hexadecimal.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_C%20-%20Hexadecimal.html When I change the render options to always render numbers in decimal format, it generates these instead: http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_A%20-%20Decimal.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_B%20-%20Decimal.html http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_C%20-%20Decimal.html Here are the original source files for reference: http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_A.a99 http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_B.a99 http://www.ti99.eu/wp-content/uploads/TIcode99/ROM-4A_C.a99 See also the formerly used thread where people helped me get this far: http://atariage.com/forums/topic/274552-lots-of-assembler-questions/
-
Hi there, you can find a new bugfixed version of lyxass on my website, lyxass v49. Fixes: * 64 bit and architecture problematic code has been replaced * some strange things about the parser have been (hopefully) fixed * few includes have been changed -> works now with 64 bit gcc and clang please report if you find more issues
-
From the album: The Best Assembly Computer
This is what the section header for the main program would look like. Note that it doesn't have a section number. -
From the album: The Best Assembly Computer
Another example of a program's section header. This could be used for all the math routines used in the game (e.g. multiply, divide, random numbers). -
From the album: The Best Assembly Computer
This is what a section's header would look like. The color and font can be variable, but the header text is always in the same font throughout the same source file. The example here is for a program's vertical blank routine. -
A good assembler has ROM section headings. These are a way to cleanly divide the source code into settings, so you can definitely figure out at which address each section starts. Think of an assembler as if were like Microsoft Word. Section headings could appear as solid-colored bars with text on them. The user should have control over what color to make the bar. They also might have control over the font. For example, your main program header might look like this (note that all images are simulated): Notice I used the Roco font. Anyone familiar with Sonic The Hedgehog 2 will recognize this, but it's the actual font, not the Sonic 2-rendered one. Every computer program needs a vertical blank (or "V-Blank") routine. Its header might look like: One common thing to have in any program are math routines. So, you might include a section like this: For a hardware/software implementation, fonts could use a bitmap. Up to 96 different character glyphs can be stored. In addition, the numbers could be made a little bit bigger if the user chose to. Each character's bitmap can be stored using 1, 2, or 4 bits per pixel. For each character, the size needs to be specified, as well as where its glyph data can be found. For file storage, section headers could use this format (each pair of letters represents a byte): hh ff rr gg bb ll tt tt ... hh = Token for a section header (a fixed value). ff = Flags. If bit 7 is set, restart the numbering at 1. If bit 6 set, toggle whether the number is shown for this and later sections. rr gg bb = Section header color, a 24-bit RGB value. ll = Length of text. tt = The text shown. It doesn't include "Section #". It's in ASCII. Let's say that the section header token is $00, and I'll use the vertical blank section header as an example. The byte stream in the source file would look like this: 00 C0 00 60 20 0F 56 42 4C 41 4E 4B 20 52 4F 55 54 49 4E 45 53 The 00 signals the start of the section header. C0 means to make this section #1, and turn on section numbering (by default, it's off). 00 60 20 is the RGB value. It produces a dark green color. The 0F determines how many characters there will be in the section's name. The rest is the text, in ASCII. The text says "VBLANK ROUTINES". Section headers are not taken into account when compiling a ROM. They are there to cleanly divide source code. When the file is opened, the number of headers is counted, and section numbers are assigned accordingly.
-
I always wanted to know how software sprites worked in this demo. Here it is a dis6502 2.2.2015-04-06 zipped workspace of laser demo. I don't think i will be working on disassembling it anymore. Maybe someone will use it for something else. laserdemo.zip
-
Hi together, Does someone know of the ATARI CAMAC Assembler Ver 1.0A? Must be used for big projects in the late 70's. Does anyone have an atr image of the program or a listing? Thank you very much in advance. :-)))
-
Anyone feel like writing a MegaDemo? Well now you can! Here are two versions of an assembler that was used extensively for demo coding back in the day: http://www.pouet.net/prod.php?which=47999 http://www.pouet.net/prod.php?which=62372 (apparently this one includes a manual) If anyone knows of other assemblers that are good for this sort of thing, feel free to post links in this thread.
-
Latest version 0.4 mondrianc.bin - - - - - I don't know if the most famous work by Piet Mondrian is his "Tableau 1" An iconic source of inspiration for many like Yves Saint Laurent ... I took a look at the style for these types of paintings. Looks as if the black lines can easily be represented on the TI screen with a thickness of 4 pixels. Going for the multicolor mode (1979) is obvious and would fit perfectly, I could even add some high resolution sprites for a bit of text. One could choose bitmap mode (1981) with no vertical color limit, but still only the maximum 2 colors per 8 pixels horizontally. I chose standard graphic mode (going as far back as 1979 opposed to 1981 for bitmap). With a base 4 by 4 pixel design and only 2 colors in every 8 by 8 pixel character, it still complies - no clashes. I'm sure it's not optimal, but I made a few routines bottom up. One for plotting a black "pixel" (4 by 4 pixels). The technique is like the one I used in this XB program. And then one for drawing lines and then I need one for filling boxes.
-
squaryc.bin - - - - - Well, steering a mouse with a joystick is perhaps not optimal, but here goes anyway. For this demo, you'll get to move around leaving a trail behind. No, it's not going to be another snake game. You accelerate and de-accelerate. If you hit the borders, you'll bounce off. Just like Parallax Starfield, you'll be able to form some pretty perfect circles, that is, if you know how to apply the right pressure(s) at the right time. And there's a bit of friction as well. As for the registration point of the mouse, I'm using the same original default from the Amiga Workbench 1.x.
-
parac.bin - - - - - In the footsteps of managing 32 sprites, without more than 4 sprites per horizontal line, as explored in Bubbles (demo). If you keep a number of sprites stacked vertically (no vertical overlap), they will only occupy 1 of the 4 sprites allowed horizontally. In Bubbles I made each stack move up with their own individual speed. This time I will try and move the 4 stacks in any direction. Here's a quick setup of 4 stacks. Oh, and instead of having 8 sprites in each stack (or plane), it's 6 + 7 + 9 + 10 = 32 sprites. The number of stars close to you are less than those far away.
-
Shout out to Tursi and Senior Falcon. I ran in to another issue compiling today. I was determined not to ask for help. So I read all the things you guys posted and shared all the other times I had issues and it was a success. So happy. Thank you. For others drawn here because of the title, here's what happened and how it played out. I'm using classic99 with Harry Wilhelm's XB256 and his 256D Compiler to compile an Extended BASIC program. The program compiled without issue. It was the Assembler that threw this at me... . So without changing any DSK settings (I do not save all dv to windows text and I do not save in TIFiles format) I typed this into the compiler "DSK2.?w.Z43,TXT" The ?W being a flag for classic99 to tell it to save dv as windows text as long as I use the txt extension I think. I assumed that everything after the DSK2. was a filename character count. so ? to the second T equals 10 total characters. I could be mistaken but better safe than sorry. . Then I loaded the saved txt file into notepad++ with line numbers turned on and scrolled down to line number 1252. I found 1252 to contain a line reference to line 3500 and it was right above line 3500 with line 3490 preceding it. . I went to lines 3490 and 3500 in my Extended Basic program and found a typo! I'm so grateful for the knowledge everyone shares with the community. Bravo and thank you for making me that much more self reliant. So happy.
-
# vecZ - vertical-shootemup - launch on 5. nov at gameZfestival.ch (23.30h) at the end the vectors won. everything is now vector based in games (as an opengl or directx scene .-) therefore step back, step into the beginning 80ies with assembler and the vector console vectrex. and of course vecZ is a shootemup the most complicated (timing, a lot of action etc.) thing in those times. # release/launch at gameZfestival vecZ will be released online on 5th november 2016 at gameZfestival.ch in zurich/switzerland. enjoy the spirit of painted lines! # roms the game will be released online and later also at madtronix.com # greetings hudson for the usb-cartridge, matronix for his publishing, baudsurfer for his work and the designers of xenon2, gunroar, ikaruga, zynaps ... thanks for your code_style # who finished it first? i wonder who will send me the first "game won" photo on a emulator and of course on a real vectrex .-) the latest infos you will find here: http://www.la1n.ch/vecz/ la1n
-
Hi guys, does anyone know of any other TMS9900 assemblers for the PC similar to WinAsm99.exe that I can use with Classic99, and that can also output Uncompressed Object Code and Compressed Object Code? WinAsm99.exe has a couple of bugs that I've found, once of which is a deal breaker for the projects I am working on, with the way it handles Relocatable Addresses.
-
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 LIMITCLIP.139@ 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.
-
snakec.bin - - - - - Origin https://en.wikipedia.org/wiki/Snake_(video_game) Back in 2005 I did a routine for scrolling a line of text. Added a few bits to make a demo. It scrolls the text and reacts when you press fire, but otherwise stalls / stalled (wasn't brought any further).
-
Hi, I found no easy to use code for loading and storing on a SaveKey or AtariVox. Therefore I am presenting my code here. All it takes are: add the attached include file to your code's directory define the three variables/constants at the beginning of the code call WriteSaveKey for storing your score etc. call ReadSaveKey for reading what you have stored Notes: if you have multiple scores to store (e.g. different game modes), you have to modify the address used in SetupSaveKey. the X register is not used in any i2c subroutine. after calling WriteSaveKey you must wait at least 5ms (~80 scan lines) before accessing the SaveKey again. update i2c v2.3 attached, fixes unwanted noise issues when using an AtariVox skBuffer = <score RAM> ; define the RAM address you want to store SK_BYTES = <n> ; define how many bytes your want to store SAVEKEY_ADR = $xxxx ; ask Albert for a free slot! include "i2c_v2.3.inc" ; a highly optimized (for space) version i2c_subs ; this makes the i2c macros of the include file known to the code ;------------------------------------------------------------------------------- WriteSaveKey SUBROUTINE ; total cycles = 1923 (for 3 bytes) ;------------------------------------------------------------------------------- ; setup SaveKey: jsr SetupSaveKey ; 6+927 bcc .noSKfound ; 2/3 ; write high score: ldx #SK_BYTES-1 ; 2 = 937 .loopWriteSK lda skBuffer,x ; 4 jsr i2c_txbyte ;6+296 transmit to EEPROM dex ; 2 bpl .loopWriteSK ; 2/3=932 ; stop write: jsr i2c_stopwrite ; 6+42=48 terminate write and commit to memory .noSKfound rts ; 6 ;------------------------------------------------------------------------------- ReadSaveKey SUBROUTINE ; total cycles = 2440 (for 3 bytes) ;------------------------------------------------------------------------------- ; setup SaveKey: jsr SetupSaveKey ;6+927 bcc .noSKfound ; 2/3 ; start read: jsr i2c_stopwrite ;6+42 end of "fake" write jsr i2c_startread ;6+284 Start signal and $a1 command byte ; read high score: ldx #SK_BYTES-1 ; 2 = 1275 .loopReadSK jsr i2c_rxbyte ;6+333 read byte from EEPROM cmp #$ff ; 2 EEPROM slot empty? (we are assuming $ff for uninitialized space) bne .skipEmptySK ; 2/3 no, skip clear lda #0 ; 2 clear EEPROM slot .skipEmptySK sta skBuffer,x ; 4 dex ; 2 bpl .loopReadSK ; 2/3=1061 ; stop read: jsr i2c_stopread ;6+92=98 terminate read .noSKfound rts ; 6 ;------------------------------------------------------------------------------ SetupSaveKey SUBROUTINE ; = 927 ;------------------------------------------------------------------------------ ; detect SaveKey: jsr i2c_startwrite ;6+312 bne .exitSK ; 2/3 ; setup address: clv ; 2 lda #>SAVEKEY_ADR ; 2 upper byte of address jsr i2c_txbyte ;6+296 lda #<SAVEKEY_ADR ; 2 lower byte offset jmp i2c_txbyte ;3+296 returns C==1 .exitSK clc rts ; 176 bytes in total (less if you inline the subroutines) I hope this answers all questions. Else let me know. SaveKey & AtariVox memory allocation list i2c_v2.2.inc i2c_v2.3.inc
-
Hello! Based on user input, I took my game, Jet!, and turned it into a new game: Drive! I decided to make this a new topic to avoid confusion. Story: This is a 4K, single player paddle game, made entirely in assembly, in which you must move your car left and right to dodge obstacles as you drive down the bridge. As you drive, you will encounter treasures (dots on the ground). When you collect a treasure, you will gain 1500 points and it will be added to your collection (the gold dots on the left side of the status bar). You can have up to five treasures in your collection at a time. You can press the paddle's trigger to "burn" a treasure, which gives you the energy to jump a short distance. Any treasures you have when your game ends will grant you an extra 1000 points. The game is won upon reaching 99999 points. In addition, certain treasures will grant you extra powers: - Red: Gives you an extra life (the pink dots on the right side of the status bar). You can have up to 4 lives at a time. - Green: Makes you invincible for a few seconds. - Purple: Allows you to jump as much as you want for a few seconds with no penalties. Oh yeah, and if you press the paddle trigger when you have no treasures in your collection, you can honk the horn. So there's that. At certain points, the game will speed up. The game will stop generating obstacles for a few seconds, and the speed-up will occur while there are no obstacles on the screen. Finally, the difficulty switches toggle certain functions: - The left difficulty switch will make obstacles farther apart (B) or closer together (A). - The right difficulty switch turns moving platforms off (B) or on (A). Set both to A for the ultimate experience! (Note: Stella sets both to B by default.) I'm very interested to see what everyone thinks of the new direction this game has taken! === UPDATE: v1.1 === What's new: - Introducing speed freak mode! Press the game select switch on the title screen to access this. This makes the game run at hyper speed, so good luck! Combine with both difficulty switches on A for a real challenge! - Better sound and colours for both NTSC and PAL. - Purple powerup has been changed to blue to make it more distinct. - Each treasure in your collection now adds 1500 points instead of 1000 when your game ends. - A few bug fixes. === UPDATE: v1.2 === What's new: - Full SaveKey/AtariVox support! It will save two different high scores depending on which difficulty you have selected on the title screen. Press the game select and game reset switches together to delete your high scores. - You can now switch difficulty modes without going back to the title screen. Simply press the game select switch at any point. - Jerky scrolling is finally fixed. - Treasures now have defined graphics: Gold coin: Takes the place of the gold treasure (no powerup other than the default). Necklace: Takes the place of the red treasure (adds an extra life). Jar: Takes the place of the green treasure (makes you invincible for a few seconds). Statuette: Takes the place of the purple/blue treasure (allows you to jump with no penalty for a few seconds). - You accumulate points faster when you have below 50000 points, meaning it takes about half as long to reach full speed. - Other graphical improvements. === UPDATE: v1.3 === - Fixed a few bugs. - Now has a standard PAL version. === UPDATE: v1.4 === - PAL version should work perfectly. - Updates to Speed Freak mode. Drive! v1.4 NTSC.bin Drive! v1.4 PAL.bin
-
Hello together! Charles W. Marslett has released his A65 Assembler source code: https://atariwiki.org/wiki/Wiki.jsp?page=A65%20Assembler Charles, again(!) Giga-thanks from the community once more! :-))) ;-) ;-) @all others: AtariWiki is now on a new server with higher speed! :-) We already have the attached files, but are missing: A65 Files Vol1.atr A65 Files Vol2.atr If anyone, who is reading this, is in the possession of these 2 files, please be so kind and upload them. Thank you very much in advance. :-) A65 Files Vol3.atr A65 Files Vol4.atr A65 Files Vol5.atr A65 with docs and examples.atr A65_with_DOS_2.5.atr A65_12.ZIP
-
Hi there! I try to find an overview and comparison of all mnemonics of all CPU TI made. I'm looking for a comparative table with all mnemonics for each processor with its addressing modes an opcodes, perhaps with additional descriptions like affecting status bits etc. Does anybody know of such a list? I'll be thankful for any tips.