[Coco] Re: X-PAD question

Torsten Dittel Torsten at Dittel.info
Thu Jan 8 13:41:53 EST 2004


> What's wrong with the addresses $FF60-FF62 on a Coco3? Look like valid
> addresses to me.

Ah, you're right. The MaxPak works unpatched at $FF80, this is a problem
with a CoCo3-upgraded MultiPak interface. There were some hardware
patches around to move it down to $FF60 (grrr... I should have saved
that information, now I can't find it any more).

Luckily it looks like I don't have to write a driver, I found that one:

                 Using CoCoMax on the CoCo-3
                         by Ken Schunk
 
     This information is public domain. Post it anywhere. Copy it and
give
 it to your friends. Line your bird cage with it. Just please leave my
name
 on it (Unless you decide to line your birdcage. Then I don't care..)
 
     Two simple poke's are all that is needed for CoCoMax-2 to run on
the
 CoCo-3. The file that must be modified is the COCOMAX/BIN file. To
modify
 it to work on the CoCo-3, place a BACKUP of the CoCoMax disk in your
disk
 drive and type the following:
 
      CLEAR 200,&H3FFF
      LOADM"COCOMAX/BIN"
      POKE &H53FB,&HFE
      POKE &H53FC,&HEF
  If you are using a X-Pad driver, LOADM it at this point.
      SAVEM"COCOMAX/BIN",&H4000,&H7FFF,&H492B
 
    That's all there is to it if you can use an unmodified HiRes input
pack.
 If you are using a multipak with Tandy's new PAL chip, you will need to
 modify the HiRes pack to get it to work, since the PAL chip will not
let
 you read from the pack. You have a choice of a couple of solutions. You
can
 modify the pack to be readdressed below &HFF80, such as &HFF60. This
will
 require some knowledge of electronics, since some switching of address
 lines is required. The other possibility is to use a different PAL chip
 that allows reading of addresses above &HFF80. I THINK that Spectrum
 Products may have such a device. Yet another solution would be to not
use
 the pack, and use a different device, such as an X-Pad.
    If you do readdress the pack or use an X-Pad, you will need to
modify
 MAXTITLE/SYS to allow it to work with the new device. One poke is all
that
 is needed to prevent MAXTITLE/SYS from locking into an endless loop. To
fix
 it, use:
 
    PCLEAR 5
    LOADM"MAXTITLE/SYS"
    POKE &HED8,&H21
    SAVEM"MAXTITLE/SYS",&HE00,&H266C,&HA027
 
    If you readdress the pack, you will also need to modify COCOMAX/BIN
to
 allow it to read the pack at it's new address. The pokes needed are:
 
    POKE &H562D, (Low order byte of pack address)
    POKE &H7ACE, (Low order byte of pack address)
    For example, if you modified to pack to be addressed at $FF60, you
would
 use the pokes :POKE &H562D,&H60:POKE &H7ACE,&H60.
    Remember, these pokes modify COCOMAX/BIN. You first need to LOADM
it,
 then do the pokes. Remember to SAVEM it when you are done.
 
    If you use the X-Pad, you will need a driver for the X-Pad, such as
the
 following EDTASM+ assembly code:
 
         ORG     $5839  ;Start of first mouse area
  START  CMPB    #2     ;Is it a button request?
         LBEQ    L2     ;Yes - handle button call
         LDA     $FF61  ;Read pen Y position
         DECB           ;B has 1 if Y and 2 if X
         BNE     L4     ;Skip if call was for Y
         LDA     $FF60  ;Get pen X position
  L4     LDY     #TMP   ;Point to data storage
         STA     ,Y     ;Save pen position
         CLRB           ;Point to data with B,Y
         RTS            ;Back to CoCoMax
  TMP    RMB     1      ;Data area
         ORG     $562A  ;Start of second mouse area
         LBRA    START  ;Jump to read if called here
  L2     LDA     $FF62  ;Read pen status
         ASRA           ;Get pen switch bit to 'C'
         BCS     L3     ;Return pen down info
         LDA     #$80   ;Map in expected pen value
  L3     LBRA    L4     ;Return value to COCOMAX
         END     START
 
    Enjoy




More information about the Coco mailing list