Correct usage of VDP ports following the standard

Page 15/18
8 | 9 | 10 | 11 | 12 | 13 | 14 | | 16 | 17 | 18

By sd_snatcher

Prophet (3068)

sd_snatcher's picture

13-06-2017, 22:57

@msxholder

You mean to connect both to the same MSX? First, be sure what I/O ports the obscure 80 columns adapter uses. If it uses the same I/O ports as the MA-20, they can be damaged if you connect both simultaneously.

By DarkSchneider

Paladin (869)

DarkSchneider's picture

14-06-2017, 10:03

Grauw wrote:

If you want to use some reserved space in upper memory, the PLAY queues are often a good candidate, as long as you don’t use the PSG BIOS routines I think.

Also the USR space for user functions. Useful as beacons when placing things into the stack. Anyway a good idea to save them first and restore at exit. As the user can exit to basic from DOS.

sd_snatcher wrote:

I hear so much destructive criticism about the MSX platform that I wonder what is the motive for such people to keep such disgraceful machine around, without doing anything to improve.

I love the system "as is", much more since I understand it and see that was a proposition for a "cheap PC", open architecture.

sd_snatcher wrote:

@msxholder

You mean to connect both to the same MSX? First, be sure what I/O ports the obscure 80 columns adapter uses. If it uses the same I/O ports as the MA-20, they can be damaged if you connect both simultaneously.

And precisely the conflicts for multiple manufacturers releasing devices are the reason of a "getting variable environments" and registering in the system in some way, and then the software to use them properly.

By gdx

Prophet (3040)

gdx's picture

14-06-2017, 14:44

Piter Punk wrote:

But still, it could be possible to keep to the MSX standard, and run into problems with an exotic or future MSX.

MA-20 is not really standard. Ports 88h~8Bh are reserved for a second VDP but not specially for make a MSX2 extension. Replace the Bios is not standard. For this to be almost standard, it would require a replacement Bios for each similar MSX1. I think we should consider it a hack.

Piter Punk wrote:

2. At least 64KB VRAM (the ones with V9938 sold in Brazil had only 16KB VRAM on-board)

Cartridge with 16kB VRAM are not MA-20 but probably the 80 columns cartridge like the Spectravideo SVI-727.

Piter Punk wrote:

Again, you're talking as the MSX1->MSX2 upgrade was a new or an yet to do thing. But even in the MSX good times it was the most popular way to have a MSX2 in Brazil.

The Brazilians had no choice.

By yzi

Champion (441)

yzi's picture

14-06-2017, 21:19

So did I understand correctly... The legendary/mythical Brazilian MSX1->MSX2 expansion cartridge doesn't completely follow the MSX standard? Wink

By ARTRAG

Enlighted (6250)

ARTRAG's picture

14-06-2017, 23:12

It replaces the rom bios: or it is not standard because it assumes I/O ports in the usual positions or it adds multiple jumps and an inter slot calls to reach the original bios for any operation, the standard would be respected but at cost of adding lag and inefficiency to any bios and ISR call. Needless to say, for games the former option would be the best.

By PingPong

Prophet (3449)

PingPong's picture

15-06-2017, 01:18

ARTRAG wrote:

It replaces the rom bios: or it is not standard because it assumes I/O ports in the usual positions or it adds multiple jumps and an inter slot calls to reach the original bios for any operation, the standard would be respected but at cost of adding lag and inefficiency to any bios and ISR call.

And worse make execution time for an operation to depend from the bios implementation and create more problems whem one need to sync things

By Jipe

Paragon (1366)

Jipe's picture

15-06-2017, 10:28

see the note of the page 2 of this PDF http://msx.hansotten.com/uploads/files/msx2th07.pdf
-

Quote:

in MSX2 the MAIN ROM is NOT always located in slot 0 or slot 0-0
the adress FCC1 contain the slot adress of main rom ......

Quote:

-
this is because of the MSX2 adaptator for MSX1
-

By DarkSchneider

Paladin (869)

DarkSchneider's picture

15-06-2017, 10:33

Yes you have to get it from the system vars.

By Grauw

Ascended (8456)

Grauw's picture

15-06-2017, 11:48

There was an earlier discussion about the definition of 0FCC1H and 0FFF7H here and here.

Especially the part where 0FCC1H has a double meaning (not just an expansion bit) is a bit confusing. I think this quote from TheSpecialist covers how I currently think it is:

TheSpecialist wrote:

It's fairly simple. The way NEOS MA-20 works is a hack. It should have left FCC1h unchanged and all MSX2 software should have made use of FFF7h. Unfortunately that didn't happen.

As a side result, software which uses 0FCC1H to determine the slot 0 expansion status must explicitly always only examine bit 7, so they can’t OR it over a slot ID without first masking out bits 0-6, because the contents of these bits might be non-zero in the presence of an MA-20.

By hit9918

Prophet (2867)

hit9918's picture

15-06-2017, 15:55

is the MA20 a hack. it doesn't matter, if you code variable port then the game runs for real. it is not just some hypothetic future machine. it can be checked out in openmsx.
is its bios slow. how does that matter when you code VDP OUT anyways.

it was an afterthought, but in the end it is not broken but this clear spec:

Quote:

ld a,(fcc1) is the slot ID of the bios and at same time bit 7 tells whether slot 0 is expanded.

it is the machines responsibility to get this spec, not applications job.
all the ld a,(fcc1) in the DOS corner are about this spec.

to have a different VDP port "the flexible standard" does not exist but the machine needs new ROMs.
and with fcc1 one can have whole new ROMs without butchering the machine.
that generaly is a thing, not limited to the MA20 topic.

Page 15/18
8 | 9 | 10 | 11 | 12 | 13 | 14 | | 16 | 17 | 18