Jump to content

algarsoft

New Members
  • Content Count

    5
  • Joined

  • Last visited

Posts posted by algarsoft


  1.  

    Though your solution of loading >8000 at >83D6 at every interrupt certainly does the trick, slightly faster than loading with something like

    MOV @H8000 @>83D6 (?)  

    would be to set >83D6 to >FFFF with

    SETO @>83D6
    

    Even though faster, I suppose it is doubtful it would really make a difference in game-play, but you never know.

     

    ...lee

     

     

    Yes, nice suggestion!

     

    After more than 30 years I didn't recall

    that the counter is incremented BY TWO, not

    by one. (To be honest, I didn't even recall

    if the counter was incremented or decremented

    and so, I felt safe with >8000)

     

    As a matter of fact, I've checked the system

    ISR in ROM and (once decided that the current

    interrupt is from VDP) it will land at:

     

     0A8A LWPI >83C0    ; Interrupt workspace
     0A8E INCT 11       ; Increment BY TWO counter
     0A90 JNE >0AA8     ; jump if counter is not 0
     0A92 ....          ; blank the screen if ==0        
          ....
    
     0AA8 LWPI >83E0    ; GPL workspace
          ....          ; increment tick at @>8379
                        ; call user ISR, if any 

     

    so it's definitely more efficient (and without

    potential side-effects) performing a:

     

    SETO @>83D6

     

    than a clumsy:

     

    LI R0,>8000

    MOV R0,@>83D6

     

    The forced >FFFF will always be >0001 at the next

    vertical screen blank interrupt, thus disabling

    the system screen saver. (Moreover, the game has

    ITS own screen saver for user inactivity)

     

    Thanks a lot Lee...

     

    • Like 1

  2. Hail to the TI-99 community!

    I've recently purchased a CF7+ with parallel
    interface and I've reviewed my OLD TI99 programs.
    I've learnt my first assembler on the TI-99 when
    I was 13.

    I've found here on atari age, the links to a lot
    of interesting stuff, among which the Atari port
    of PacMan, by Howard E. Scheer.

    In my humble opinion, It's the BEST port of an arcade
    for the TI-99 and it's VERY playable and responsive
    (even with the original TI Joysticks).

    Played on "real iron" it's VERY fun and addictive!

    Unfortunately, the disk version had two annoying bugs:

    1) The high score was trashed at startup with a very
    high number, not allowing ANY user score
    to be recorded.

    2) The screen flickered every now and then while playing
    and sometimes the game crashed after the flicker.

    I've studied in my spare-time the binary and found that:

    1) The high score was trashed because the scratch-pad
    area was not properly initialized by the loader
    (originally it was a Solid State Cartridge)

    2) The original system interrupt routine blanked
    the screen every 9/10 minutes without pressing a
    key and, sometimes, trashed some VDP registers
    restoring the screen.

    So I've simply added a by-pass fragment on startup
    that clears the scratch pad area and installs an
    user ISR that loads the blank screen count-down
    at >83D6 with >8000, thus disabling the screen
    blank for keyboard inactivity.

    Now You can load the binary with an option 5
    loader (E/A, XB, Beaxs) and play the game without
    problems.

    You can use the .dsk attached:

    with E/A: choose 5 and then type DSK1.PACMAN

    with XB: let the XB loader run and
    type DSK1.PACMAN


    By the way, my personal hi-score (played on a real
    TI99) is 170.460 points at the 16th screen.
    Anyone knows the official one?

    Cheers!

    • Like 2
×
×
  • Create New...