Loading ...
Sorry, an error occurred while loading the content.

218Re: First screenshot of TutorEm uploaded!

Expand Messages
  • spirantho
    Apr 11, 2003
      --- In tomytutor@yahoogroups.com, emucompboy <no_reply@y...> wrote:

      > Tell us everything you've learned about the system!

      I will do when I know more.

      I`m currently at the stage where the graphics editor displays lots of
      blue bordered black boxes, like it should, but it displays all over
      the screen, so either my graphics mode I emulation is wrong (for it
      runs in mode 1, not gfx mode 2) or else my CPU is wrong.

      In BASIC I`m getting a read from an odd offset, so it's jumping into
      weird locations before giving me the ready prompt. I`m working on it!
      The good news is that I have keyboard input mostly working and I can
      select between graphics editor and BASIC mode even though I don`t have
      sprite support so can`t see the little hand.

      > How about... at what addresses is the 9918a appearing in the CPU's

      > memory space?

      I`m going to write an article about my findings in RetroReview - my
      magazine (www.retroreview.com for those who are interested) but I`ll
      also share any useful information with you. Certainly the floodgap
      pages need a little updating, but the most important facts are that
      the TMS9918ANL is written to at port @>E000 (and @>E002 when the MODE
      line is selected). So in other words, to write >FF to VDP register 12:

      LI R9,@>FF0C

      MOVB R9,@>E002

      ORI R9,@>0080 ; 0080 means write to register IIRC

      SWPB R9

      MOVB R9,@>E002

      SWPB R9

      ANDI R9,@>FF7F

      That should, from memory (I may be wrong as until last week I knew NO
      TMS assembler):

      Load R9 with >FF0C - in other words the value FF and the register 0C.

      Put FF into the VDP register space (MODE is 1)

      Set the "Set register" flag high (that's the MSB of the register no.)

      Swap the bytes round, so we can then...

      shove the value >8C (0C + register set flag) into the register space.

      then swap them back and restore the value.

      Incidentally, the keyboard is read by reading the CRU at address >EC10
      through to >EC70.

      I shall keep you all updated...


      Ian Gledhill

      IanG@... IanG@...
    • Show all 6 messages in this topic