NEOS Mouse

From C64-Wiki
Jump to: navigation, search
NEOS Mouse
The NEOS Mouse with withe buttons - also produced with blue buttons.
Type: Mouse
Producer: Nihon Electronics Co. Ltd.
Price:
Released: 1985
Discontinued: 199?
Processor:
Memory:
OS: GEOS compatibility
Info: differents designs

The Neos Mouse was a third party mouse, produced by the company Nihon Electronics Co. Ltd. (internally Mitshumi), introduced in 1985 for the C64 and C128 at the same time as the Commodore 1350, really a joystick shaped in a mouse form. (Edit: the 1350 mouse is inside a Neos mouse [1]).

It went inside a drawing package named "Mouse cheese" but had poor support by other software as Commodore launched in 1986 their 1351 real mouse.

Curiously similar packs existed for the MSX (Mouse+Cheese), Amstrad CPCs (Mouse Pack 2.0, Gerdes Mouse, Centaure mouse, ASS Reis-Mouse or Reisware-Mouse) and even the Enterprise 128 (Boxsoft's Paintbox). The reason was that in reality the Neos mouse was an MSX protocol mouse with the pins interchanged to suit the Atari standard.

MSX DB9 has the +5v in pin 5 and ground in pin 9, but the Atari DB9 standard (Amiga) has the +5v in pin 7 and ground in pin 8. Connecting the wrong mouse to a computer can fire it "some".

Commodore used a direct lecture protocol that charged the interpretation of the data over the processor.

On the other side MSX used an intelligent protocol that discharges the hard work on a little processor (MB88201) inside the mouse that sends the data over a 4 bit parallel port formed with the four direction switches. It needs four lectures of the port to form two bytes, x and y displacements on twos complements. Then the program managing the mouse only have to add the displacement to the actual position of the pointer to know the next move.

That simplicity of the protocol and its connection made it easy to implement it on other computers.

PC mice, both RS232 or PS/2 use a similar way to transmit data, but they do it over a serial line.

The mouse has two buttons. The ball and a light barrier with encoders are needed for the movement of the pointer's mouse.

Joystick mode and drivers[edit]

Same as with the Mouse 1513, a joystick mode can also be activated for using the mouse as joystick for software. The joystick mode is activated by restarting the computer and pushing the left mouse button. The mouse is compatible with GEOS, but the mouse driver cannot be used for the Mouse 1351.

Package and content[edit]

The mouse was sold together with the user manual and a datasette with program in styrofoam. The tape contained the mouse driver and the paint program Mouse-Cheese.

NEOS Mouse in styrofoam packgage
NEOS Mouse model MS-30


Bundles[edit]

The NEOS mouse was contained in the C64 bundle Commodore C64C Connoisseur's Collection, with a limited edition of the C64C series, which was sold in 1990 in Great Britain.

Models[edit]

  • MS-10 (MSX) - Image: VZ 1921
  • MS-10X (MSX)
  • MS-20 (MSX)
  • MS-30 (C64, C128, Atari pinout)
  • NM44-C (PS/2)

Software[edit]

Neos Cheese Paint[edit]

The demo pictures A-F

The paint program is used over icons at the lower screen border. (The version 1.1 of Mouse-Cheese is started with SYS 4096).

Driver[edit]

; da65 V2.15 - Git N/A
; Created:    2015-10-30 20:05:31
; Input file: neos-driver.bin
; Page:       1


        .setcpu "6502"

        ldy     #$3F
LC002:  lda     sprite,y
        sta     $0340,y
        dey
        bpl     LC002
        lda     #$0D
        sta     $07F8
        lda     #$01
        sta     $D015
        lda     #$07
        sta     $D027
        lda     #$7F
        sta     $DC00
        sei
LC020:  jsr     LC100
        lda     #$07
        bcc     LC029
        lda     #$0A
LC029:  sta     $D027
        jsr     LC190
        jsr     LC1D0
        lda     $DC00
        and     #$10
        bne     LC020
        cli
        rts

        brk
        brk
        brk
        brk
        brk
sprite: .byte   $FC
        .byte   $00
        .byte   $00
        .byte   $F0
        .byte   $00
        .byte   $00
        .byte   $F0
        .byte   $00
        .byte   $00
        .byte   $D8
        .byte   $00
        .byte   $00
        .byte   $8C
        .byte   $00
        .byte   $00
        .byte   $86
        .byte   $00
        .byte   $00
        .byte   $03
        .repeat 173
        .byte   $00
        .endrepeat
LC100:  lda     $DC00
        pha
        lda     $DC01
        pha
        lda     $DC02
        pha
        lda     $DC03
        pha
        lda     #$10
        sta     $DC02
        lda     $DC00
        and     #$EF
        sta     $DC00
        ldx     #$08
        jsr     delay
        lda     $DC00
        asl     a
        asl     a
        asl     a
        asl     a
        sta     $19
        lda     $DC00
        ora     #$10
        sta     $DC00
        ldx     #$05
        jsr     delay
        lda     $DC00
        and     #$0F
        ora     $19
        sta     $19
        lda     $DC00
        and     #$EF
        sta     $DC00
        ldx     #$05
        jsr     delay
        lda     $DC00
        asl     a
        asl     a
        asl     a
        asl     a
        sta     $1A
        lda     $DC00
        ora     #$10
        sta     $DC00
        ldx     #$05
        jsr     delay
        lda     $DC00
        and     #$0F
        ora     $1A
        sta     $1A
        lda     $D419
        cmp     #$FF
        pla
        sta     $DC03
        pla
        sta     $DC02
        pla
        sta     $DC01
        pla
        sta     $DC00
        rts

delay:  nop
        nop
        nop
        dex
        bne     delay
        rts

        rts

        rts

        rts

        rts

        brk
        brk
LC190:  nop
        nop
        nop
        lda     $19
        bmi     LC1A2
        sec
        lda     $FE
        sbc     $19
        bcs     LC1AF
        lda     #$00
        beq     LC1AF
LC1A2:  sec
        lda     $FE
        sbc     $19
        bcs     LC1AD
        cmp     #$A0
        bcc     LC1AF
LC1AD:  lda     #$9F
LC1AF:  sta     $FE
        lda     $1A
        bmi     LC1C0
        sec
        lda     $FF
        sbc     $1A
        bcs     LC1CD
        lda     #$00
        beq     LC1CD
LC1C0:  sec
        lda     $FF
        sbc     $1A
        bcs     LC1CB
        cmp     #$C8
        bcc     LC1CD
LC1CB:  lda     #$C7
LC1CD:  sta     $FF
        rts

LC1D0:  lda     $FE
        clc
        adc     #$0C
        asl     a
        pha
        bcc     LC1E0
        lda     $D010
        ora     #$01
        bne     LC1E5
LC1E0:  lda     $D010
        and     #$FE
LC1E5:  sta     $D010
        pla
        sta     $D000
        clc
        lda     $FF
        adc     #$32
        sta     $D001
        rts

Links[edit]