Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


mizapf last won the day on August 31 2016

mizapf had the most liked content!

Community Reputation

2,979 Excellent

1 Follower

About mizapf

Profile Information

  • Gender
  • Location
  • Interests
    MAME, TIImageTool, Ninerpedia
    Linux advocate (openSUSE/KDE)

Recent Profile Visitors

16,827 profile views
  1. Also on WHTech: http://ftp.whtech.com/Cartridges/MAME/zip/demonatb.zip (demonatb = Demon Attack Beta)
  2. MAME loads the disk image when you insert it via the menu or on startup (when specified as a parameter). It creates a magnetic cell image in memory (so the disk image is not cached directly but in another form), and it writes back the image again when swapping disks via menu, or when shutting down the emulation. In between those events, the disk image is not changed.
  3. We had this a while ago: Also, see Speech in Alpiner: https://www.ninerpedia.org/index.php?title=Alpiner
  4. I did not mean to replace the current competition; there we can enjoy new fights all over the time. Until all games will have been played. My proposal is to introduce a second event with recurring challenges. I believe many of us have their favorite games which they would like to play again. Often, during the current competition, you finally gained some skills, and then the month is over. I'd like to play Munch Man, Parsec, and TI Invaders again, but we had all of them years ago. I'd find it interesting to have such a fixed collection of games, and maybe one could have another championship with another set of games ("TI Classics", "Atarisoft challenge", "Modern games"). You may have to play two or more games per month to keep your rank in all of these ... which may get a bit stressful, I see. 🙂 We may have to stretch the periods if we don't have 12 games in a category, i.e. just every two months, or every six weeks. Repetition is just the crucial point here, it is not a limitation.
  5. The important point is that the games reappear each year, so you have to defend your last score. Or replace your failure last time with a glorious fight.
  6. Just a (obvious?) tip: If you hold your smartphone in landscape orientation, you could get more of the line on the photo. 🙂
  7. Ah, I finally understood the point. The first program is this RORG >0010 DATA 1 DATA 2 DATA 3 END and the loader loads the data at addresses A010, A012, A014. When I now load RORG >0020 DATA 4 DATA 5 DATA 6 RORG >0030 DATA 7 DATA 8 END the data are put at A036, A038, A03A, A046, A048; just saw it in the MAME debugger. That is the way it should be. The relocatable location counter points to the first free word in the relocatable space, and this is RORG 0. Anything else would not make sense. If you concatenate the sources for a single file, then of course, the location counter is a single one for the concatenated file. If I inserted the second file before the end of the first one, the locations of 4, 5, 6, 7, 8 would be A020 etc.
  8. Can it be read out? It would be interesting for the SGCPU emulation which currently pretends to have a normal TI keyboard.
  9. You mean AORG >B000? (Assuming that the relocatable location counter starts at A000.) Overwriting would be - I'd say - intentional. (Or: The program author just deserves it. ) One more suggestion from the section "1% of the people actually thought about this, but much less actually need it": You could think about including PSEG / CSEG / DSEG for your linker - just in case we discover that we could need that. (I actually included it in TIMT's disassembler. Just in case.)
  10. The first example is as expected; the RORG value is absolute with respect to its location counter (i.e. the value is not an offset, but the relocatable address). I don't see the second result with TASM - or did you mean separately loaded object code (e.g. multiple calls of E/A option 3)? This is RORG1_S: RORG >1000 DATA 1 COPY "RORG2_S" END This is RORG2_S: RORG >2000 DATA 2 RORG >2800 DATA 3 The resulting object code: 01 28 02 20 20 20 20 20 20 20 20 41 10 00 42 00 .(. A..B. 01 41 20 00 42 00 02 41 28 00 42 00 03 46 20 20 .A .B..A(.B..F 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 20 20 39 39 2f 34 41 20 61 6e 64 20 39 36 : 99/4A and 96 34 30 20 43 72 6f 73 73 2d 41 73 73 65 6d 62 6c 40 Cross-Assembl 65 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er with tags as text: A 1000 B 0001 A 2000 B 0002 A 2800 B 0003 F : 99/4A and 9640 Cross-Assembler I think for compatibility's sake you should allow for RORG <address>.
  11. I guess this is quite unlikely, but do we have the source code of TASM? There is at least one bug that requires a fix: COC is not recognized as a valid mnemonic.
  12. I did not yet assemble GeneveOS/MDOS, but I do have some projects (TIC or assembly language) that have several source files (XModem e.g. has 14 source files, Fractals' executable files use 29K together). If one assembler takes 5 minutes and the other 8 minutes, I don't care, but this is just my personal view, of course. (I admit, at some time I stripped down the set of systems in MAME to the TI family when I built MAME, as I started to get annoyed from waiting 15 minutes every time that I started a build during debugging; now I am down to five minutes.)
  13. These assembler directives are directed at the linking loader (E/A option 3, Extended Basic loader, Geneve LDR). As I once said, what we - in the TI world - disparagingly call "just E/A 3" actually corresponds to Windows EXE files or Linux ELF files. The "E/A option 5" files correspond to the COM files in MSDOS. I know, it is a matter of loading speed for us.
  14. Switch the location pointer to relocatable mode and optionally set its value ("Relocatable origin"). The location pointer is the address pointer used by the assembler and the loader. In contrast, AORG ("Absolute origin") switches to absolute (non-relocatable) mode and places the argument into the location pointer. The code after this directive will be loaded starting from the provided address. To switch back to relocatable mode, you have to use RORG.
  15. Reading the manual of GenASM, I now know why it creates such a strange code: It is a one-pass assembler. For that reason, it writes object code with forward references using a 0000, then rewinds the location counter when the symbol appears, inserts the values, then forwards again. What a nonsense. Why should one do a one-pass assembler? Just to save some time? I'd rather get a reasonable object code, I'm not so short of time. I think I'll return to TASM again.
  • Create New...