Jump to content

mizapf

Members
  • Content Count

    5,366
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by mizapf


  1. Please report your issues directly to me, including the operations that you do and the expected outcome. It's on me to fix the issues. All tests that I tried seemed to work correctly, but I may have missed something.


  2. 6 hours ago, globeron said:

    Not sure if we need to change to another game as in September 2015 we had a

    Miner2049'er competition (I love the game!), see link:

     

    Hmm, if we're going for a new game every month, we'll have had them all soon. If I remember correctly, Centipede was twice (and I won both 🙂 ).

     

    This brings back my idea of another competition (in parallel to this one) where we're playing the same games every year, like a championship. We could have different leagues like "classic pre-1982", "third-party", or "post-2000". You'll get a score for your result (winner = 12 points, follow-up = 10 points etc.) which you have to defend every year (like the Tennis ATP ranking).

    • Like 2

  3. 18 hours ago, Jeff White said:

    What if you did the following?

     

    LWPI >8300

    STWP R0

    MOV  *R0+,*R0+

     

    Will the 9900 (99/4A) with its destination prefetch give a different result than the 9995 (in the 99/8, 99/2, Tutor, and Geneve)?

     

    I believe so.  What are the values in R0, R1, and R2 after the MOV?

     

    R0 = >8304

    R1 = >8302

    R2 is unchanged

     

    On my (real) Geneve:

     

     

     

    geneve_autoinc1.jpg

    geneve_autoinc2.jpg

    • Like 1

  4. The Editor/Assembler manual states on page 89:

     

    If the destination operand is specified as Workspace Register 15, the first word of the destination operand is Workspace register 15 and the second word of the destination operand is the word in memory immediately following the workspace area.

     

     

    • Like 4

  5. 3 hours ago, Asmusr said:

    Edit: The output on line 5 is about overflowing workspace by dividing R15. In that case Classic99 appears to be right and MAME is wrong (at least the old version I'm using). It should read DIV=0000 and not DIV=0100.

    From what I saw in the source code, the operation is a division of R15 by R14. The problem is that the dividend consists of the two words starting at the specified address, which means R15 and the subsequent word (R16, which does not exist). So R15 is at >A09E and contains >0000, the subsequent word at >A0A0 is >1000, and R14 is >0010.

     

    I'd read this as a division >00001000 / >0010, and this should be >0100, remainder >0000.

     

    So why this is wrong?


  6. This is the microcode that I implemented in MAME:

     

    REG_READ, ALU_SETADDR_ADDONE, ALU_ADDONE, REG_WRITE, MEMORY_READ, RET

     

    for the data derivation sequence for *Rx+, according to the description in chapter 4 of "9900 Family Systems Design" (see attached copy). This is not a bug, but it may be a surprising effect indeed.

     

    RegAutoIncrement.png


  7. 3 hours ago, DavidC said:

    Can someone put together a .rpk of this for MAME...please?   I tried, and failed miserably..lol.  

     

    I did it some time ago:

    To update to the most recent release, use that RPK, unzip it, check the entries in layout.xml concerning the files gromimage and romimage (could be another file name), and pack the (G)ROM dumps together with that layout.xml into a new extended_basic_28_gem.rpk. If your packing program does not allow using the rpk suffix, use zip and rename to rpk after that.

     

    Edit: Here is the RPK. Mind that I don't always watch this thread so that I may miss one or another new release.

    extended_basic_28_gem.rpk

    • Like 2
    • Thanks 1

  8. They actually changed something, as you can see in the schematics. They added amplifiers on the outputs (marked blue). The problem with Alpha Lock was that a depressed Alpha Lock and a high P5 line raised the level on the INT7 input so strongly that the resistance in the cable and the contacts in the Joystick were not able to lower the level deeply enough to be detected as a 0.

     

    The drivers may be a solution to this, but only you who have such a QI console will be able to verify this.

    keyboard_qi.png

    • Like 3
    • Thanks 1

  9. 11 hours ago, Tursi said:

    This is not naive, it's how TI intended the computer to be operated. ;)

    I find it exciting to think about working with a TMS99xxx where LIMI is a privileged instruction that you can only use in kernel mode, i.e. which your programs do not have access to. This means a turnaround in terms of operation.


  10. I remember I was already playing some "Telespiele" (TV video games) in those years, using a small game console with the unavoidable Pong, Tennis double (two paddles per user) and a "light gun" with which you could play something like clay target shooting, with a bright moving square on the TV screen. I also seem to remember we had different generations of games, one with pluggable cartridges, another with a fixed set of games as a selector dial. Beside that, I was already working quite intensely with the "electronics experimentation kits" from Philips, where you could build your own circuits (or rather the proposed ones from the manual).

     

    In 1982, when I was 12 years old, there was a question about upgrading to the next video game generation, when my father suggested to go for a "computer". The ZX81 was available for some time already, so we followed the news and already thought about buying one, when he suddenly suggested to take the TI-99/4A, which I never heard of before. The TI was quite popular at that time in department stores, and the staff did their best to make it interesting for potential customers.

     

    We got the computer plus the language course "Compact English" from ILS Wiesbaden (audio cassettes, a textbook, and a cartridge with data cassettes). Maybe this was one of the incentives of my father to buy it; he was working at Pan Am in Frankfurt and could have thought about improving his English, but also to provide me with such a course for support my progress in school.

     

    We got the TI-99/4A in June 1982, just in time for the summer vacation, when I learned to program in TI BASIC, but in September 1982 we already got the Extended Basic module. The first game I got was TI Invaders on Christmas 1982.

     

    It was always me working with the TI console. My father kept searching for his life (until last year January) for the optimal computer that really simplified your everyday life, with all important functions at a single keypress. We went for different ways from the moment back in 1982 when I tried to explain to him that cleaning the screen is done with CALL CLEAR, not with FCTN=, anykey, 1. He changed to the Commodore path which led us ultimately to the Amiga 2000, while I got a Geneve in 1990.

    • Like 4

  11. Hard to find something exciting about the "shortest day" yesterday, but here are some facts I found interesting:

     

    - The day is called winter solstice in English, from Latin sistere = sit/stand, stitium as its noun, prefixed by sol = sun. Sistere (with past part. statum) was quite productive, consider "consist" (sit/stand together), "persist" (stay sitting), "resist" (keep standing against some force, stand back), "exist" (from ex-sist, "stand out"), "static" (sitting), "state" (what is sitting).

    - In German we say "Wintersonnenwende", which translates as "winter sun turn-around". The Latin term is merely known to astronomers, if at all. (The same holds for "equinox", which we call "Tagundnachtgleiche", "day and night equality", where "equinox" is known to astronomers plus fans of J.M. Jarre.) The lack of Latin terms in German makes it arguably difficult to learn its vocabulary for foreign language learners.

    - Most people believe that on winter solstice, the sun rises at the latest and sets at the earliest. This is only true if you measure time by sundials. Actually, according to our clocks, the sun begins to set later at Dec 10 already, while it takes until Jan 4 before it rises earlier again. The difference between sunrise and sunset is smallest at winter solstice, however. This is reflected in the "time equation", which states that our 24h clock deviates from the actual time by up to ±15 min due to the elliptical course of the Earth around the sun.

     

    By the way, as for temperature, we had 14°C today (57°F), definitely too warm, although the time around Christmas is known to bring us warm weather. I saw that New York and other areas of the US already had heavy snow, which shows a paradox that the climate change brings us rising temperatures in Europe throughout the year, while in the US you seem to get harder winters.

     

    • Like 2

  12. The TMS9900 has no interrupt queue. Interrupts are level-driven, not edge-driven. When there is a VDP interrupt, the VDP raises the interrupt line, this passes through the 9901 and then to the INTREQ input of the 9900.

     

    The VDPINT stays asserted until you read the video status register. This is normally done in the interrupt handler in ROM. So if you mask away the interrupts with LIMI 0, and an interrupt occurs, nothing happens until you do a LIMI 2, in which case the still pending interrupt is sensed. However, if during the LIMI 0 phase the video status register is read, the interrupt is gone.

     

    The 9995 is a bit different in that respect, as it latches incoming interrupts in the internal CRU space.

    • Like 1
×
×
  • Create New...