trying to make 80 columns on YIS-503II (which has 9938 VDP)

By Pencioner

Paladin (993)

Pencioner's picture

08-06-2019, 19:52

Hi!

I have got a Japanese YIS-503II which is MSX1 but with V9938 VDP and i'm trying to make a small DOS untility to switch to 80 column mode. I have written very simple and small program but it kind of shows very strange behaviour and i'm stuck with it. The screen switches to 80 column but the coordinates shift in a weird way and then all characters (including cursor) appear on the screen twice, more like if screen is mirrored. I post the prog here and the photo of what it looks like - maybe someone knows what happens there?

    org 100h

start:
    xor a
    ld (0FCB0H), a   ; text screen is 0

    rst 30h
    db 00
    ; dw 005fh  ; screen 0
    dw 006Ch  ; screen 0

    ld a, 80
    ld (0F3B0h), a  ; LINLEN
    ld (0F3AEh), a  ; LINL40

    ld hl, 0F3DFH  ; RG0SAV
    ld a, (hl)
    or 4
    ld (hl), a
    ld b, a
    ld c, 00
    rst 30h
    db 00
    dw 0047h  ; WRTVDP

    ret

[img] http://msx.in.ua/z/80bug.jpg[/img]

Login or register to post comments

By sdsnatcher73

Hero (663)

sdsnatcher73's picture

09-06-2019, 08:27

Hey Pencioner, great idea! Did you have a look at CX5MII? It is the only MSX1 (I believe) to officially support 80 column mode (and very similar to the YIS-503II I presume). It has a Sub rom in slot 3-0 of 16kB (only 8kB is used apparently). I am not sure what it does (will try emulating CX5MII later in openMSX). Maybe it can be made to work on YIS503-II...

By PingPong

Prophet (3460)

PingPong's picture

09-06-2019, 09:32

if your utility this does work on a regular msx2, i suggest you to use openMSX and try on a msx2 then dump the vdp register values.
Next, try on your machine (emulated) and see if the same problem appear.
If is show the same problem, then dump vdp register values.

Do a comparison to make sure you have the same VDP Register values.

By zPasi

Champion (474)

zPasi's picture

09-06-2019, 17:18

sdsnatcher73 wrote:

Hey Pencioner, great idea! Did you have a look at CX5MII? It is the only MSX1 (I believe) to officially support 80 column mode (and very similar to the YIS-503II I presume).

On CX5MII one can simply do WIDTH80 in BASIC. Should be easy to track on an emulator what that command does.

BTW also SVI 738 X'press supports 80 column mode, officially.

By Eugeny_Brychkov

Paragon (1106)

Eugeny_Brychkov's picture

10-06-2019, 10:24

Multiscreen is caused by the R#2 having its lower two bits as zeros. They both must be 1s. The similar issue goes for color table registers R#3 and R#10. By the way, when changing bit M4 to 1 in openMSX debugger, its VDP register view highlights these bits in abovementioned registers as being set incorrectly.

By Pencioner

Paladin (993)

Pencioner's picture

10-06-2019, 11:21

@Eugeny_Brychkov Thanks a lot! That makes sense. Actually that means that in 80 column mode the pattern layout address has less usable bits, and all unused address bits SHOULD be set to 1 (i had this issue once in the past, with lower unused bits were set as zeros in screen 2 and it made me some really weird picture on the screen, too). And i of course missed it. I will try it when i'm at home Smile

By Manuel

Ascended (15829)

Manuel's picture

10-06-2019, 13:33

Pencioner: there is no openMSX config for a Japanese YIS-503II... do you want to help to create one?

By Pencioner

Paladin (993)

Pencioner's picture

10-06-2019, 14:11

Manuel wrote:

Pencioner: there is no openMSX config for a Japanese YIS-503II... do you want to help to create one?

I can dump the BIOS and tell you the exact slot configuration so you can create one, are you looking for this? If so i'm in Smile

By Manuel

Ascended (15829)

Manuel's picture

10-06-2019, 15:12

Best thing is to follow the steps as specified in the README of this file: http://frs.badcoffee.info/files/MSX_machine_reverse_engineer...

Thanks in advance!